JP3344559B2 - マージソート処理装置 - Google Patents
マージソート処理装置Info
- Publication number
- JP3344559B2 JP3344559B2 JP17335598A JP17335598A JP3344559B2 JP 3344559 B2 JP3344559 B2 JP 3344559B2 JP 17335598 A JP17335598 A JP 17335598A JP 17335598 A JP17335598 A JP 17335598A JP 3344559 B2 JP3344559 B2 JP 3344559B2
- Authority
- JP
- Japan
- Prior art keywords
- comparison
- data
- node
- input
- way
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/22—Arrangements for sorting or merging computer data on continuous record carriers, e.g. tape, drum, disc
- G06F7/36—Combined merging and sorting
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99937—Sorting
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
【0001】
【発明の属する技術分野】本発明は、データベース処理
におけるマージソート、すなわち大小比較によるデータ
の並び替え処理のハードウェアでの実現方式に関するも
のである。
におけるマージソート、すなわち大小比較によるデータ
の並び替え処理のハードウェアでの実現方式に関するも
のである。
【0002】
【従来の技術】一般に、データベースの要素であるレコ
ードは、複数のフィールドから構成される。あるフィー
ルドをキーとして、レコードを昇順あるいは降順に並び
替える処理をソートという。また、ソート済みのレコー
ド列が複数ある場合に、それらをひとつのソートされた
レコード列に再編成する処理をマージという。
ードは、複数のフィールドから構成される。あるフィー
ルドをキーとして、レコードを昇順あるいは降順に並び
替える処理をソートという。また、ソート済みのレコー
ド列が複数ある場合に、それらをひとつのソートされた
レコード列に再編成する処理をマージという。
【0003】ソートあるいはマージをソフトウェアで行
なう場合、プロセッサとメモリ、ディスクなどの補助記
憶装置との間で大量のデータが行き交い、処理に時間を
要する。それに対し、ソートを高速に処理するハードウ
ェアとしてパイプラインマージソータなどが存在する。
なう場合、プロセッサとメモリ、ディスクなどの補助記
憶装置との間で大量のデータが行き交い、処理に時間を
要する。それに対し、ソートを高速に処理するハードウ
ェアとしてパイプラインマージソータなどが存在する。
【0004】図10は、例えば「VLSIソートプロセ
ッサ」(情報処理、Vol.31、No.4、1990
年)に記載されているパイプラインマージソータの構成
図である。図10には、1次元接続されるソートプロセ
ッサ1000,1001,1002,1003と、各ソ
ートプロセッサ1000〜1003に接続されるメモリ
1010,1011,1012,1013が示されてい
る。
ッサ」(情報処理、Vol.31、No.4、1990
年)に記載されているパイプラインマージソータの構成
図である。図10には、1次元接続されるソートプロセ
ッサ1000,1001,1002,1003と、各ソ
ートプロセッサ1000〜1003に接続されるメモリ
1010,1011,1012,1013が示されてい
る。
【0005】パイプラインマージソータでは、n段目の
ソートプロセッサがn−1段目のソートプロセッサから
それぞれ2n−1レコードからなる2組のソート済みレ
コード列を入力し、マージして2nレコードからなる1
組のソート済みレコード列を出力する。各ソートプロセ
ッサに接続されるメモリには、入力される2組のレコー
ド列のうち第1のレコード列が格納される。パイプライ
ンマージソータを用いたソートのプロセスを図11に示
す。
ソートプロセッサがn−1段目のソートプロセッサから
それぞれ2n−1レコードからなる2組のソート済みレ
コード列を入力し、マージして2nレコードからなる1
組のソート済みレコード列を出力する。各ソートプロセ
ッサに接続されるメモリには、入力される2組のレコー
ド列のうち第1のレコード列が格納される。パイプライ
ンマージソータを用いたソートのプロセスを図11に示
す。
【0006】図11は2ウェイマージソートされるレコ
ード列の遷移の例を示した図であるが、一般にKウェイ
マージソートは、n段目のソートプロセッサがn−1段
目のソートプロセッサからそれぞれKn−1レコードか
らなるK組のソート済みレコード列を入力し、マージし
てKnレコードからなる1組のソート済みレコード列を
出力する。
ード列の遷移の例を示した図であるが、一般にKウェイ
マージソートは、n段目のソートプロセッサがn−1段
目のソートプロセッサからそれぞれKn−1レコードか
らなるK組のソート済みレコード列を入力し、マージし
てKnレコードからなる1組のソート済みレコード列を
出力する。
【0007】図12は、トーナメントツリー方式による
8ウェイマージソートのソートプロセッサの構成を示し
た図である。図12には、比較ノード1100〜112
0と、本トーナメント回路に投入するデータを保持する
8個のレジスタ1200〜1207と、比較の勝者を保
持するレジスタ1210とが示されている。トーナメン
トの1回戦に相当する比較ノード1100には、レジス
タ1200および1201のデータが入力され、出力は
2回戦の比較ノード1110の一方の入力となる。11
10の他方の入力には別の1回戦の比較ノード1101
の出力が接続され、1110の出力は3回戦すなわち決
勝戦の比較ノード1120の一方の入力となる。112
0の出力はレジスタ1210の入力となる。
8ウェイマージソートのソートプロセッサの構成を示し
た図である。図12には、比較ノード1100〜112
0と、本トーナメント回路に投入するデータを保持する
8個のレジスタ1200〜1207と、比較の勝者を保
持するレジスタ1210とが示されている。トーナメン
トの1回戦に相当する比較ノード1100には、レジス
タ1200および1201のデータが入力され、出力は
2回戦の比較ノード1110の一方の入力となる。11
10の他方の入力には別の1回戦の比較ノード1101
の出力が接続され、1110の出力は3回戦すなわち決
勝戦の比較ノード1120の一方の入力となる。112
0の出力はレジスタ1210の入力となる。
【0008】図13は、図12に示した各比較ノードを
詳細に示した構成図である。データXおよびYは、とも
に比較器1500とセレクタ1510の入力となる。比
較器1500における比較結果にもとづいてセレクタ1
510において選択が行なわれデータZが出力される。
詳細に示した構成図である。データXおよびYは、とも
に比較器1500とセレクタ1510の入力となる。比
較器1500における比較結果にもとづいてセレクタ1
510において選択が行なわれデータZが出力される。
【0009】図12および図13の構成による動作につ
いて説明する。入力レジスタ1200〜1207には、
図4に示すようなソート済みのレコード列が1ワードず
つ入力される。レコード列の各レコードはキーとレコー
ド本体から構成される。最初はレコード列0〜7の各先
頭レコードのキーの第1ワードがレジスタ1200〜1
207に設定され、その後必要に応じてそれぞれ順次後
続のワードがレジスタに設定される。
いて説明する。入力レジスタ1200〜1207には、
図4に示すようなソート済みのレコード列が1ワードず
つ入力される。レコード列の各レコードはキーとレコー
ド本体から構成される。最初はレコード列0〜7の各先
頭レコードのキーの第1ワードがレジスタ1200〜1
207に設定され、その後必要に応じてそれぞれ順次後
続のワードがレジスタに設定される。
【0010】しかしながら、従来の8ウェイマージソー
トにおいては、定常的に8本のレコード列を入力レジス
タ1200〜1207に供給する必要がある。一般にレ
コード列は、共通のメモリに格納され共通のデータバス
を介して読み出されるため、この場合は定常的に8本の
レコード列の読み出しが競合し、マージソート処理の性
能を低下させる要因となる。
トにおいては、定常的に8本のレコード列を入力レジス
タ1200〜1207に供給する必要がある。一般にレ
コード列は、共通のメモリに格納され共通のデータバス
を介して読み出されるため、この場合は定常的に8本の
レコード列の読み出しが競合し、マージソート処理の性
能を低下させる要因となる。
【0011】そこで、このような性能低下を防止するた
めに、特開平4−247571号公報では、交換選択法
を改良し、例えば定常的に5レコードを比較することに
より16ウェイマージソートを実現するデータ処理装置
が開示されている。これは、8ウェイマージソートを4
レコードの比較で実現することに相当する。
めに、特開平4−247571号公報では、交換選択法
を改良し、例えば定常的に5レコードを比較することに
より16ウェイマージソートを実現するデータ処理装置
が開示されている。これは、8ウェイマージソートを4
レコードの比較で実現することに相当する。
【0012】
【発明が解決しようとする課題】しかしながら、この従
来例においては、トーナメントツリーを初期化するプロ
セスが必要であり、その際に余計なクロックサイクルを
要する。すなわち、例えば8ウェイマージソートの場
合、パイプラインマージソータの1段目において8レコ
ードごとに余計なクロックサイクルが挿入されることを
意味しており、これはパイプラインマージソータ全体の
性能を低下させる要因となり得る。
来例においては、トーナメントツリーを初期化するプロ
セスが必要であり、その際に余計なクロックサイクルを
要する。すなわち、例えば8ウェイマージソートの場
合、パイプラインマージソータの1段目において8レコ
ードごとに余計なクロックサイクルが挿入されることを
意味しており、これはパイプラインマージソータ全体の
性能を低下させる要因となり得る。
【0013】このように、従来のKウェイマージソート
においては、メモリからのレコード列の読み出しが競合
し性能を低下させる、あるいはトーナメントツリーの初
期化に余計なクロックサイクルを要し性能を低下させる
という問題があった。
においては、メモリからのレコード列の読み出しが競合
し性能を低下させる、あるいはトーナメントツリーの初
期化に余計なクロックサイクルを要し性能を低下させる
という問題があった。
【0014】本発明は以上のような問題を解決するため
になされたものであり、その目的は、高速なマージソー
ト処理を可能とするマージソート処理装置を提供するこ
とにある。
になされたものであり、その目的は、高速なマージソー
ト処理を可能とするマージソート処理装置を提供するこ
とにある。
【0015】
【課題を解決するための手段】以上のような目的を達成
するために、第1の発明に係るマージソート処理装置
は、複数台を一次元的に接続することによってマージソ
ート対象のレコードに対してマージソート処理を実行す
るパイプラインマージソータを形成する装置であって、
各装置において所定の処理サイクル毎に複数の入力レジ
スタに逐次セットされる各データを比較することによっ
て、1乃至複数のデータで構成されるレコードを昇順あ
るいは降順に並び替えるマージソート処理装置におい
て、2つの入力データの比較処理を行った結果いずれか
一方の入力データを出力するとともにその比較結果を出
力する複数の比較ノードをトーナメントツリー状に接続
することで前記各入力レジスタから始まるウェイを複数
形成するトーナメント比較回路と、前記比較ノードが出
力した比較結果に基づき前記各比較ノードに入力される
各データの有効性を示す有効フラグ情報の設定内容を決
定するとともにその決定した有効フラグ情報を対応する
前記比較ノードへ供給する比較制御回路とを有し、次の
処理サイクルにおいて、前記各比較ノードに、前記比較
制御回路から送られてくる有効フラグ情報が双方の入力
データとも有効とされている場合には入力データの大小
関係により決定した入力データを出力し、有効フラグ情
報が一方の入力データのみ有効とされている場合には当
該入力データを出力し、有効フラグ情報が双方の入力デ
ータとも無効とされている場合には入力データを出力し
ないように動作させ、前記比較制御回路は、データ比較
処理において出力されなかった入力データに対応した有
効フラグ情報を無効にし、レコードの比較処理が終了し
た時点で前記各比較ノードの各入力データに対応した有
効フラグ情報の内容を、当該比較ノードへの入力データ
を出力する下位に接続された比較ノードに対応した有効
フラグ情報に有効が設定されていた場合に有効と設定す
ることでマージソート対象の全レコードの各比較処理の
間に前記トーナメント比較回路を初期化することなくマ
ージソート処理を実行するものである。
するために、第1の発明に係るマージソート処理装置
は、複数台を一次元的に接続することによってマージソ
ート対象のレコードに対してマージソート処理を実行す
るパイプラインマージソータを形成する装置であって、
各装置において所定の処理サイクル毎に複数の入力レジ
スタに逐次セットされる各データを比較することによっ
て、1乃至複数のデータで構成されるレコードを昇順あ
るいは降順に並び替えるマージソート処理装置におい
て、2つの入力データの比較処理を行った結果いずれか
一方の入力データを出力するとともにその比較結果を出
力する複数の比較ノードをトーナメントツリー状に接続
することで前記各入力レジスタから始まるウェイを複数
形成するトーナメント比較回路と、前記比較ノードが出
力した比較結果に基づき前記各比較ノードに入力される
各データの有効性を示す有効フラグ情報の設定内容を決
定するとともにその決定した有効フラグ情報を対応する
前記比較ノードへ供給する比較制御回路とを有し、次の
処理サイクルにおいて、前記各比較ノードに、前記比較
制御回路から送られてくる有効フラグ情報が双方の入力
データとも有効とされている場合には入力データの大小
関係により決定した入力データを出力し、有効フラグ情
報が一方の入力データのみ有効とされている場合には当
該入力データを出力し、有効フラグ情報が双方の入力デ
ータとも無効とされている場合には入力データを出力し
ないように動作させ、前記比較制御回路は、データ比較
処理において出力されなかった入力データに対応した有
効フラグ情報を無効にし、レコードの比較処理が終了し
た時点で前記各比較ノードの各入力データに対応した有
効フラグ情報の内容を、当該比較ノードへの入力データ
を出力する下位に接続された比較ノードに対応した有効
フラグ情報に有効が設定されていた場合に有効と設定す
ることでマージソート対象の全レコードの各比較処理の
間に前記トーナメント比較回路を初期化することなくマ
ージソート処理を実行するものである。
【0016】また、第1の発明において、前記比較ノー
ドは、2つの入力データの大小関係を比較する比較器
と、前記比較器による比較結果及び前記比較制御回路か
ら送られてくる有効フラグ情報に基づきいずれか一方の
入力データを出力するセレクタとを有するものである。
ドは、2つの入力データの大小関係を比較する比較器
と、前記比較器による比較結果及び前記比較制御回路か
ら送られてくる有効フラグ情報に基づきいずれか一方の
入力データを出力するセレクタとを有するものである。
【0017】また、第1の発明において、前記比較制御
回路は、前記各比較ノードから送られてくる比較結果を
保持する比較結果保持手段を有し、前記各比較ノードか
ら比較結果が送られてくる度にその比較結果を前記比較
結果保持手段に保持し、前記トーナメント比較回路にお
いてあるウェイが勝ち抜けた時にそのウェイの経路上に
位置する前記比較ノードの前記比較結果保持手段に保持
しておいた比較結果を初期化するものである。
回路は、前記各比較ノードから送られてくる比較結果を
保持する比較結果保持手段を有し、前記各比較ノードか
ら比較結果が送られてくる度にその比較結果を前記比較
結果保持手段に保持し、前記トーナメント比較回路にお
いてあるウェイが勝ち抜けた時にそのウェイの経路上に
位置する前記比較ノードの前記比較結果保持手段に保持
しておいた比較結果を初期化するものである。
【0018】また、第1の発明において、前記比較制御
回路は、前記トーナメント比較回路において最下位層に
位置するもの以外の前記比較ノードの有効フラグ情報を
保持する有効フラグ情報保持手段を有し、対応する前記
比較ノードの下位に接続されている前記比較ノードに対
応する前記有効フラグ情報保持手段のうち少なくとも一
方がセットされている時に有効と、対応する前記比較ノ
ードの他方の入力データが勝った時あるいは対応する前
記比較ノードの上位の前記比較ノードにおいて他方の入
力データが勝った時に無効と、前記有効フラグ情報保持
手段に設定するものである。
回路は、前記トーナメント比較回路において最下位層に
位置するもの以外の前記比較ノードの有効フラグ情報を
保持する有効フラグ情報保持手段を有し、対応する前記
比較ノードの下位に接続されている前記比較ノードに対
応する前記有効フラグ情報保持手段のうち少なくとも一
方がセットされている時に有効と、対応する前記比較ノ
ードの他方の入力データが勝った時あるいは対応する前
記比較ノードの上位の前記比較ノードにおいて他方の入
力データが勝った時に無効と、前記有効フラグ情報保持
手段に設定するものである。
【0019】更に、第1の発明において、前記比較制御
回路は、各ウェイに対応させた入力レジスタに設定され
たデータが次のデータ比較処理において処理対象とする
か否かを表す情報を保持する処理対象ウェイ保持手段を
有し、直前のデータ比較処理において勝ち抜けたデータ
が通ったウェイあるいは経路上に位置する前記比較ノー
ドのうちただ一つの前記比較ノードのみで負けたウェイ
に対応した入力レジスタに設定されたデータを次のデー
タ比較処理において有効と、経路上に位置する前記比較
ノードにおいて負けが決定した時点で当該ウェイに対応
した入力レジスタに設定されたデータを次のデータ比較
処理において無効と、前記処理対象ウェイ保持手段に設
定するものである。更に、第1の発明において、前記比
較制御回路は、前記各比較ノードから送られてくる比較
結果を保持する比較結果保持手段と、前記トーナメント
比較回路において最下位層に位置するもの以外の前記比
較ノードの有効フラグ情報を保持する有効フラグ情報保
持手段と、各ウェイに対応させた入力レジスタに設定さ
れたデータが次のデータ比較処理において処理対象とす
るか否かを表す情報を保持する処理対象ウェイ保持手段
とを有し、前記各比較ノードから比較結果が送られてく
る度にその比較結果を前記比較結果保持手段に保持し、
前記トーナメント比較回路においてあるウェイが勝ち抜
けた時にそのウェイの経路上に位置する前記比較ノード
の前記比較結果保持手段に保持しておいた比較結果を初
期化し、対応する前記比較ノードの下位に接続されてい
る前記比較ノードに対応する前記有効フラグ情報保持手
段のうち少なくとも一方がセットされている時に有効
と、対応する前記比較ノードの他方の入力データが勝っ
た時あるいは対応する前記比較ノードの上位の前記比較
ノードにおいて他方の入力データが勝った時に無効と、
前記有効フラグ情報保持手段に設定し、直前のデータ比
較処理において勝ち抜けたデータが通ったウェイあるい
は経路上に位置する前記比較ノードのうちただ一つの前
記比較ノードのみで負けたウェイに対応した入力レジス
タに設定されたデータを次のデータ比較処理において有
効と、経路上に位置する前記比較ノードにおいて負けが
決定した時点で当該ウェイに対応した入力レジスタに設
定されたデータを次のデータ比較処理において無効と、
前記処理対象ウェイ保持手段に設定する ものである。
回路は、各ウェイに対応させた入力レジスタに設定され
たデータが次のデータ比較処理において処理対象とする
か否かを表す情報を保持する処理対象ウェイ保持手段を
有し、直前のデータ比較処理において勝ち抜けたデータ
が通ったウェイあるいは経路上に位置する前記比較ノー
ドのうちただ一つの前記比較ノードのみで負けたウェイ
に対応した入力レジスタに設定されたデータを次のデー
タ比較処理において有効と、経路上に位置する前記比較
ノードにおいて負けが決定した時点で当該ウェイに対応
した入力レジスタに設定されたデータを次のデータ比較
処理において無効と、前記処理対象ウェイ保持手段に設
定するものである。更に、第1の発明において、前記比
較制御回路は、前記各比較ノードから送られてくる比較
結果を保持する比較結果保持手段と、前記トーナメント
比較回路において最下位層に位置するもの以外の前記比
較ノードの有効フラグ情報を保持する有効フラグ情報保
持手段と、各ウェイに対応させた入力レジスタに設定さ
れたデータが次のデータ比較処理において処理対象とす
るか否かを表す情報を保持する処理対象ウェイ保持手段
とを有し、前記各比較ノードから比較結果が送られてく
る度にその比較結果を前記比較結果保持手段に保持し、
前記トーナメント比較回路においてあるウェイが勝ち抜
けた時にそのウェイの経路上に位置する前記比較ノード
の前記比較結果保持手段に保持しておいた比較結果を初
期化し、対応する前記比較ノードの下位に接続されてい
る前記比較ノードに対応する前記有効フラグ情報保持手
段のうち少なくとも一方がセットされている時に有効
と、対応する前記比較ノードの他方の入力データが勝っ
た時あるいは対応する前記比較ノードの上位の前記比較
ノードにおいて他方の入力データが勝った時に無効と、
前記有効フラグ情報保持手段に設定し、直前のデータ比
較処理において勝ち抜けたデータが通ったウェイあるい
は経路上に位置する前記比較ノードのうちただ一つの前
記比較ノードのみで負けたウェイに対応した入力レジス
タに設定されたデータを次のデータ比較処理において有
効と、経路上に位置する前記比較ノードにおいて負けが
決定した時点で当該ウェイに対応した入力レジスタに設
定されたデータを次のデータ比較処理において無効と、
前記処理対象ウェイ保持手段に設定する ものである。
【0020】
【発明の実施の形態】以下、図面に基づいて、本発明の
好適な実施の形態について説明する。
好適な実施の形態について説明する。
【0021】図1は、本発明に係るマージソート処理装
置の一実施の形態を示した構成図であり、8ウェイマー
ジソートを例に示すものである。ここでは、各レコード
を昇順に並べる場合を例にして説明する。図1には、比
較ノード100〜103,110〜111,120、入
力レジスタ200〜207、出力レジスタ210及び比
較制御回路300が示されている。比較ノード100〜
120は、2つの入力データの比較結果及び比較制御回
路300から送られてくる入力データの有効フラグ情報
に基づきいずれか一方の入力データを出力する。これら
の比較ノード100〜120をトーナメントツリー状に
接続することで入力レジスタ200〜207から始まる
ウェイを有するトーナメント比較回路を形成する。入力
レジスタ200〜207は、このトーナメント比較回路
に投入するデータを保持する。出力レジスタ210は、
1回のデータ比較処理における勝者を保持する。図1に
示したトーナメント比較回路によると、トーナメントの
1回戦に相当する比較ノード100には、レジスタ20
0および201のデータが入力され、その出力は2回戦
の比較ノード110の一方の入力となる。比較ノード1
10の他方の入力には、別の1回戦の比較ノード101
の出力が接続される。比較ノード110の出力は、3回
戦すなわち決勝戦の比較ノード120の一方の入力とな
る。比較ノード120の他方の入力には、別の2回戦の
比較ノード111の出力が接続され、比較ノード111
の各入力には、それぞれ1回戦に相当する比較ノード1
02,103の出力が接続される。そして、比較ノード
120の出力は、出力レジスタ210の入力となる。比
較制御回路300は、各比較ノード100〜120と制
御情報のやり取りを行う。すなわち、送られてくる比較
ノード100〜120の比較結果に基づき決定した各比
較ノード100〜120における入力データの有効性を
示す有効フラグ情報を対応する比較ノード100〜12
0へ供給する。
置の一実施の形態を示した構成図であり、8ウェイマー
ジソートを例に示すものである。ここでは、各レコード
を昇順に並べる場合を例にして説明する。図1には、比
較ノード100〜103,110〜111,120、入
力レジスタ200〜207、出力レジスタ210及び比
較制御回路300が示されている。比較ノード100〜
120は、2つの入力データの比較結果及び比較制御回
路300から送られてくる入力データの有効フラグ情報
に基づきいずれか一方の入力データを出力する。これら
の比較ノード100〜120をトーナメントツリー状に
接続することで入力レジスタ200〜207から始まる
ウェイを有するトーナメント比較回路を形成する。入力
レジスタ200〜207は、このトーナメント比較回路
に投入するデータを保持する。出力レジスタ210は、
1回のデータ比較処理における勝者を保持する。図1に
示したトーナメント比較回路によると、トーナメントの
1回戦に相当する比較ノード100には、レジスタ20
0および201のデータが入力され、その出力は2回戦
の比較ノード110の一方の入力となる。比較ノード1
10の他方の入力には、別の1回戦の比較ノード101
の出力が接続される。比較ノード110の出力は、3回
戦すなわち決勝戦の比較ノード120の一方の入力とな
る。比較ノード120の他方の入力には、別の2回戦の
比較ノード111の出力が接続され、比較ノード111
の各入力には、それぞれ1回戦に相当する比較ノード1
02,103の出力が接続される。そして、比較ノード
120の出力は、出力レジスタ210の入力となる。比
較制御回路300は、各比較ノード100〜120と制
御情報のやり取りを行う。すなわち、送られてくる比較
ノード100〜120の比較結果に基づき決定した各比
較ノード100〜120における入力データの有効性を
示す有効フラグ情報を対応する比較ノード100〜12
0へ供給する。
【0022】図2は、本実施の形態における比較ノード
の内部構成を示した図である。図1に示した各比較ノー
ドの基本構成は、この図2に示した比較ノードと同じで
ある。比較器500は、2つの入力データX,Yの大小
関係を比較し、その比較結果を信号Rとして出力する。
セレクタ510は、比較器500からの信号R、更に比
較制御回路300からの有効フラグ情報である信号Vに
基づいて選択が行われ、入力データX,Yのいずれか一
方をデータZとして出力する。本実施の形態において
は、比較ノードをレジスタではなくセレクタ510を用
いて実現したので、トーナメント比較回路において1サ
イクルで勝者を決定することができる。
の内部構成を示した図である。図1に示した各比較ノー
ドの基本構成は、この図2に示した比較ノードと同じで
ある。比較器500は、2つの入力データX,Yの大小
関係を比較し、その比較結果を信号Rとして出力する。
セレクタ510は、比較器500からの信号R、更に比
較制御回路300からの有効フラグ情報である信号Vに
基づいて選択が行われ、入力データX,Yのいずれか一
方をデータZとして出力する。本実施の形態において
は、比較ノードをレジスタではなくセレクタ510を用
いて実現したので、トーナメント比較回路において1サ
イクルで勝者を決定することができる。
【0023】図3は、比較ノード500の動作を真理値
表で表した図である。信号Rは2ビットからなり、それ
ぞれデータXの勝ち“10”、データYの勝ち“0
1”、引き分け“00”を示す。比較制御回路300か
ら送られてくる信号Vも2ビットからなり、各ビットは
それぞれ入力されたデータX,Yが有効か否かを示す。
データX、Yがともに有効な場合“11”は、信号Rが
示す勝った方をZ出力とし、引き分けの場合はいずれを
出力してもよい。データX,Yのうち一方のみが有効な
場合は有効な方をZ出力とする。データX,Yがともに
有効でない場合はいずれを出力してもよい。
表で表した図である。信号Rは2ビットからなり、それ
ぞれデータXの勝ち“10”、データYの勝ち“0
1”、引き分け“00”を示す。比較制御回路300か
ら送られてくる信号Vも2ビットからなり、各ビットは
それぞれ入力されたデータX,Yが有効か否かを示す。
データX、Yがともに有効な場合“11”は、信号Rが
示す勝った方をZ出力とし、引き分けの場合はいずれを
出力してもよい。データX,Yのうち一方のみが有効な
場合は有効な方をZ出力とする。データX,Yがともに
有効でない場合はいずれを出力してもよい。
【0024】図4は、本実施の形態において比較されマ
ージソートされるレコード構成の例を示した図である。
各レコード列0〜7は、ソート済みのレコードにより構
成されており、各レコードは、キーとレコード本体から
構成される。各入力レジスタ200〜207には、対応
するそれぞれソート済みのレコード列0〜7が先頭から
1ワードずつ入力される。つまり、入力レジスタ200
〜207には、最初はレコード列0〜7の各先頭レコー
ドのキーの第1ワードが設定され、その後必要に応じて
それぞれ後続の1ワードのデータが順次設定される。例
えば、1レコードが1ワードのキーと3ワードの本体の
計4ワードで構成されている場合、最初にキーが、続い
てレコード本体の1ワード目、2ワード目、3ワード目
と順次設定されることになる。この例の場合の1回の比
較処理において対象となるデータというのは、入力レジ
スタ200〜207の大きさでありトーナメント比較回
路のバスの幅すなわち1ワード長である。なお、本実施
の形態においてデータというときは、レコードそのもの
ではなくレコードを構成する1ワード長のデータのこと
をいい、1サイクルの比較処理において比較されるデー
タのことをいう。この1サイクルにおける比較処理をデ
ータ比較処理ということにする。また、この例の場合、
4サイクルかけて4ワード分のデータ比較処理が行われ
て初めてレコードの比較処理が行われたことになる。こ
の4ワード分のデータ比較処理を含む比較処理をレコー
ド比較処理ということにする。レコードが1ワード長の
ときにレコードとデータは同義となる。
ージソートされるレコード構成の例を示した図である。
各レコード列0〜7は、ソート済みのレコードにより構
成されており、各レコードは、キーとレコード本体から
構成される。各入力レジスタ200〜207には、対応
するそれぞれソート済みのレコード列0〜7が先頭から
1ワードずつ入力される。つまり、入力レジスタ200
〜207には、最初はレコード列0〜7の各先頭レコー
ドのキーの第1ワードが設定され、その後必要に応じて
それぞれ後続の1ワードのデータが順次設定される。例
えば、1レコードが1ワードのキーと3ワードの本体の
計4ワードで構成されている場合、最初にキーが、続い
てレコード本体の1ワード目、2ワード目、3ワード目
と順次設定されることになる。この例の場合の1回の比
較処理において対象となるデータというのは、入力レジ
スタ200〜207の大きさでありトーナメント比較回
路のバスの幅すなわち1ワード長である。なお、本実施
の形態においてデータというときは、レコードそのもの
ではなくレコードを構成する1ワード長のデータのこと
をいい、1サイクルの比較処理において比較されるデー
タのことをいう。この1サイクルにおける比較処理をデ
ータ比較処理ということにする。また、この例の場合、
4サイクルかけて4ワード分のデータ比較処理が行われ
て初めてレコードの比較処理が行われたことになる。こ
の4ワード分のデータ比較処理を含む比較処理をレコー
ド比較処理ということにする。レコードが1ワード長の
ときにレコードとデータは同義となる。
【0025】図5は、本実施の形態における比較制御回
路300が保持するレジスタ群の構成を示した図であ
る。比較制御回路300は、マージメンバーレジスタ6
00〜607と、比較結果レジスタ700〜720と、
有効フラグレジスタ800〜820とを有している。比
較結果レジスタ700〜720は、各比較ノード100
〜120から送られてくる比較結果を保持する比較結果
保持手段として設けられており、保持される値は、それ
ぞれ比較ノード100〜120の信号Rによって決定さ
れる。マージメンバーレジスタ600〜607は、各ウ
ェイに対応させた入力レジスタ200〜207に設定さ
れたデータが次のデータ比較処理において処理対象とす
るか否かを表す情報を保持する処理対象ウェイ保持手段
である。有効フラグレジスタ800〜820のうちトー
ナメント比較回路において最下位層に位置するもの以外
の比較ノード110,111,120に対応して設けら
れた有効フラグレジスタ810,811,820は、各
比較ノード110,111,120の有効フラグ情報を
保持する有効フラグ情報保持手段である。マージメンバ
ーレジスタ600〜607及び有効フラグレジスタ81
0,811,820は、それぞれ比較ノード100〜1
20に供給される信号Vの値となる。なお、有効フラグ
情報を保持するという点では、マージメンバーレジスタ
600〜607も有効フラグレジスタ810,811,
820と同様なので、図では有効フラグレジスタ800
〜803として表す。換言すると、有効フラグレジスタ
800〜803は、実体としてはマージメンバーレジス
タ600〜607と同一のものである。
路300が保持するレジスタ群の構成を示した図であ
る。比較制御回路300は、マージメンバーレジスタ6
00〜607と、比較結果レジスタ700〜720と、
有効フラグレジスタ800〜820とを有している。比
較結果レジスタ700〜720は、各比較ノード100
〜120から送られてくる比較結果を保持する比較結果
保持手段として設けられており、保持される値は、それ
ぞれ比較ノード100〜120の信号Rによって決定さ
れる。マージメンバーレジスタ600〜607は、各ウ
ェイに対応させた入力レジスタ200〜207に設定さ
れたデータが次のデータ比較処理において処理対象とす
るか否かを表す情報を保持する処理対象ウェイ保持手段
である。有効フラグレジスタ800〜820のうちトー
ナメント比較回路において最下位層に位置するもの以外
の比較ノード110,111,120に対応して設けら
れた有効フラグレジスタ810,811,820は、各
比較ノード110,111,120の有効フラグ情報を
保持する有効フラグ情報保持手段である。マージメンバ
ーレジスタ600〜607及び有効フラグレジスタ81
0,811,820は、それぞれ比較ノード100〜1
20に供給される信号Vの値となる。なお、有効フラグ
情報を保持するという点では、マージメンバーレジスタ
600〜607も有効フラグレジスタ810,811,
820と同様なので、図では有効フラグレジスタ800
〜803として表す。換言すると、有効フラグレジスタ
800〜803は、実体としてはマージメンバーレジス
タ600〜607と同一のものである。
【0026】次に、比較制御回路300が有する各レジ
スタへのセット、クリアを行う基本動作等をより詳細に
説明する。
スタへのセット、クリアを行う基本動作等をより詳細に
説明する。
【0027】比較結果レジスタ700〜720は、それ
ぞれ2ビットで構成されており、各ビットは、対応する
比較ノード100〜120の入力に対応されている。例
えば、比較結果レジスタ700は比較ノード100に対
応しており、比較ノード100からの信号Rによってデ
ータXの勝ちあるいはデータYの勝ちが伝えられた時点
でその情報を保持する。比較対象となるレコードが最後
まで勝敗が決定しない場合(上記例では最後の4ワード
目のデータまで比較しても大小がつかなかった場合)
は、データXが勝ったものと見なして比較結果レジスタ
700にその旨を設定する。本実施の形態では“1”が
勝ちを示すことにしている。比較結果レジスタ701〜
720についても同様である。例えば、1回のレコード
比較処理においてレコード列2が勝ち抜ける場合には、
比較結果レジスタは図6に示すような値となる。そし
て、次のレコードの比較処理を開始するとき直前のレコ
ード比較処理において、例えばレコード列0のレコード
が勝ち抜けた時およびレコード列1のレコードが勝ち抜
けた時には比較結果レジスタ700,710,720の
対応する側がクリアされ、レコード列2のレコードが勝
ち抜けた時およびレコード列3のレコードが勝ち抜けた
時には比較結果レジスタ701,710,720の対応
する側がクリアされ、レコード列4のレコードが勝ち抜
けた時およびレコード列5のレコードが勝ち抜けた時に
は比較結果レジスタ702,711,720の対応する
側がクリアされ、レコード列6のレコードが勝ち抜けた
時およびレコード列7のレコードが勝ち抜けた時には比
較結果レジスタ703,711,720の対応する側が
クリアされる。すなわち、レコード比較処理終了直後の
状態を示した図6の後、次回のレコード比較処理開始時
点に比較結果レジスタ701,710,720がクリア
され、比較結果レジスタは図7に示すような値となる。
ぞれ2ビットで構成されており、各ビットは、対応する
比較ノード100〜120の入力に対応されている。例
えば、比較結果レジスタ700は比較ノード100に対
応しており、比較ノード100からの信号Rによってデ
ータXの勝ちあるいはデータYの勝ちが伝えられた時点
でその情報を保持する。比較対象となるレコードが最後
まで勝敗が決定しない場合(上記例では最後の4ワード
目のデータまで比較しても大小がつかなかった場合)
は、データXが勝ったものと見なして比較結果レジスタ
700にその旨を設定する。本実施の形態では“1”が
勝ちを示すことにしている。比較結果レジスタ701〜
720についても同様である。例えば、1回のレコード
比較処理においてレコード列2が勝ち抜ける場合には、
比較結果レジスタは図6に示すような値となる。そし
て、次のレコードの比較処理を開始するとき直前のレコ
ード比較処理において、例えばレコード列0のレコード
が勝ち抜けた時およびレコード列1のレコードが勝ち抜
けた時には比較結果レジスタ700,710,720の
対応する側がクリアされ、レコード列2のレコードが勝
ち抜けた時およびレコード列3のレコードが勝ち抜けた
時には比較結果レジスタ701,710,720の対応
する側がクリアされ、レコード列4のレコードが勝ち抜
けた時およびレコード列5のレコードが勝ち抜けた時に
は比較結果レジスタ702,711,720の対応する
側がクリアされ、レコード列6のレコードが勝ち抜けた
時およびレコード列7のレコードが勝ち抜けた時には比
較結果レジスタ703,711,720の対応する側が
クリアされる。すなわち、レコード比較処理終了直後の
状態を示した図6の後、次回のレコード比較処理開始時
点に比較結果レジスタ701,710,720がクリア
され、比較結果レジスタは図7に示すような値となる。
【0028】マージメンバーレジスタ600〜607
は、それぞれレコード列0〜7に対応しており、対応す
るレコード列の直前のレコードが勝ち抜けた場合、ある
いは経路上に位置する比較ノードのうちただ一つの比較
ノードのみで負けた場合、具体的にいうと対応する1回
戦から3回戦までの3つの比較ノードのうち2つの比較
ノードで勝った場合に次のレコード比較処理の開始前ま
でにセットされる。図6に示した例に基づくと、図7に
示す通りマージメンバーレジスタ600,602,60
3、605がセットされる。そして、マージメンバーレ
ジスタ600〜607は、次のレコード比較処理におい
て経路上に位置する比較ノードにおいて負けが決定した
時点、具体的には1回戦での負けが決定した時点、ある
いは1回戦での勝ちと2回戦での負けが決定した時点、
あるいは1,2回戦での勝ちと3回戦での負けが決定し
た時点でリセットされる。
は、それぞれレコード列0〜7に対応しており、対応す
るレコード列の直前のレコードが勝ち抜けた場合、ある
いは経路上に位置する比較ノードのうちただ一つの比較
ノードのみで負けた場合、具体的にいうと対応する1回
戦から3回戦までの3つの比較ノードのうち2つの比較
ノードで勝った場合に次のレコード比較処理の開始前ま
でにセットされる。図6に示した例に基づくと、図7に
示す通りマージメンバーレジスタ600,602,60
3、605がセットされる。そして、マージメンバーレ
ジスタ600〜607は、次のレコード比較処理におい
て経路上に位置する比較ノードにおいて負けが決定した
時点、具体的には1回戦での負けが決定した時点、ある
いは1回戦での勝ちと2回戦での負けが決定した時点、
あるいは1,2回戦での勝ちと3回戦での負けが決定し
た時点でリセットされる。
【0029】有効フラグレジスタ800〜820は、そ
れぞれ2ビットで構成されており、各ビットは、対応す
る比較ノード100〜120の入力に対応されている。
有効フラグレジスタの値は、信号Vとして比較ノード1
00〜120に伝えられる。最下位層に位置する有効フ
ラグレジスタ800〜803の各2ビットは、実体とし
てはマージメンバーレジスタ600〜607と同一のも
のであることは前述したとおりである。有効フラグレジ
スタ800〜820は、レコード比較処理が終了した時
点において、例えば、有効フラグレジスタ810の左側
のビットは、その下位に位置する有効フラグレジスタ8
00を構成する2ビットのうち少なくとも一方がセット
されている時にセットされる。そして、次のレコード比
較処理に含まれる各データ比較処理において、比較ノー
ド110においてY入力が勝った場合、あるいは比較ノ
ード110でX入力が勝ち比較ノード120でY入力が
勝った場合にリセットされる。有効フラグレジスタ81
0の他方のビット、および有効フラグレジスタ811の
2ビットに関しても同様である。同様に、有効フラグレ
ジスタ820の左側のビットは、レコード比較処理が終
了した時点においてその下位に位置する有効フラグレジ
スタ810の2ビットのうち少なくとも一方がセットさ
れている時にセットされ、次のレコード比較処理に含ま
れる各データ比較処理において比較ノード120におい
てY入力が勝った場合にリセットされる。レコード比較
処理終了直後の状態を示した図6の直後の有効フラグレ
ジスタ800〜820は、図7に示すような値となる。
れぞれ2ビットで構成されており、各ビットは、対応す
る比較ノード100〜120の入力に対応されている。
有効フラグレジスタの値は、信号Vとして比較ノード1
00〜120に伝えられる。最下位層に位置する有効フ
ラグレジスタ800〜803の各2ビットは、実体とし
てはマージメンバーレジスタ600〜607と同一のも
のであることは前述したとおりである。有効フラグレジ
スタ800〜820は、レコード比較処理が終了した時
点において、例えば、有効フラグレジスタ810の左側
のビットは、その下位に位置する有効フラグレジスタ8
00を構成する2ビットのうち少なくとも一方がセット
されている時にセットされる。そして、次のレコード比
較処理に含まれる各データ比較処理において、比較ノー
ド110においてY入力が勝った場合、あるいは比較ノ
ード110でX入力が勝ち比較ノード120でY入力が
勝った場合にリセットされる。有効フラグレジスタ81
0の他方のビット、および有効フラグレジスタ811の
2ビットに関しても同様である。同様に、有効フラグレ
ジスタ820の左側のビットは、レコード比較処理が終
了した時点においてその下位に位置する有効フラグレジ
スタ810の2ビットのうち少なくとも一方がセットさ
れている時にセットされ、次のレコード比較処理に含ま
れる各データ比較処理において比較ノード120におい
てY入力が勝った場合にリセットされる。レコード比較
処理終了直後の状態を示した図6の直後の有効フラグレ
ジスタ800〜820は、図7に示すような値となる。
【0030】次に、本実施の形態におけるレコード比較
処理の手順に沿って説明する。なお、ここでは、1レコ
ードが4ワードで構成されている場合(キーを含む)を
例にして説明する。
処理の手順に沿って説明する。なお、ここでは、1レコ
ードが4ワードで構成されている場合(キーを含む)を
例にして説明する。
【0031】まず、マージソート処理装置の動作開始時
において比較制御回路300の比較結果レジスタ700
〜720は“00”で、有効フラグレジスタ800〜8
20はデータX,Yとも有効なデータであることを意味
する“11”で、それぞれ初期化されている。
において比較制御回路300の比較結果レジスタ700
〜720は“00”で、有効フラグレジスタ800〜8
20はデータX,Yとも有効なデータであることを意味
する“11”で、それぞれ初期化されている。
【0032】1サイクル目において、入力レジスタ20
0〜207に図4に示すようなソート済みの各レコード
列から先頭の1ワードのデータ(ここではキー)が入力
されると、トーナメント比較回路は、そのデータに基づ
き大小関係を即座に判断し、最終的に選択したデータを
出力レジスタ210にセットする。本実施の形態におけ
る比較ノード100〜120は、セレクタを用いている
のでこのサイクル内において即座に勝敗を決めることが
できる。なお、出力レジスタ210に入力されたデータ
は、そのまま出力され、図示しないバッファに退避され
蓄積される。すなわち、出力するために特別なサイクル
は必要としない。信号Vによると入力されるデータX,
Yとも有効なので、各比較ノード100〜120におい
ては小さい方が選択されることになる。また、このと
き、各比較ノード100〜120からは信号Rが出力さ
れ、比較制御回路300の比較結果レジスタ700〜7
20にその内容がセットされる。例えば、X<Yのため
データXが選択された比較ノードの対応する比較結果レ
ジスタには“10”がセットされる。また、X=Yのと
きには選択されたデータの値に関係なく比較結果レジス
タには“00”がセットされる。
0〜207に図4に示すようなソート済みの各レコード
列から先頭の1ワードのデータ(ここではキー)が入力
されると、トーナメント比較回路は、そのデータに基づ
き大小関係を即座に判断し、最終的に選択したデータを
出力レジスタ210にセットする。本実施の形態におけ
る比較ノード100〜120は、セレクタを用いている
のでこのサイクル内において即座に勝敗を決めることが
できる。なお、出力レジスタ210に入力されたデータ
は、そのまま出力され、図示しないバッファに退避され
蓄積される。すなわち、出力するために特別なサイクル
は必要としない。信号Vによると入力されるデータX,
Yとも有効なので、各比較ノード100〜120におい
ては小さい方が選択されることになる。また、このと
き、各比較ノード100〜120からは信号Rが出力さ
れ、比較制御回路300の比較結果レジスタ700〜7
20にその内容がセットされる。例えば、X<Yのため
データXが選択された比較ノードの対応する比較結果レ
ジスタには“10”がセットされる。また、X=Yのと
きには選択されたデータの値に関係なく比較結果レジス
タには“00”がセットされる。
【0033】ここで、1サイクル目すなわち1ワード目
のデータ比較処理において、例えばレコード列5(入力
レジスタ205)から入力されるデータYが他方のレコ
ード列4(入力レジスタ204)から入力されるデータ
Xより値が大きいために選択されなかった場合、この比
較されるレコード列4,5のレコードに関していえば、
2ワード目以降のデータの比較処理を行うまでもなくこ
の時点で勝敗はついたことになる。また、レコード列5
に含まれているデータYは1回戦で負けが決定したこと
になる。そこで、本実施の形態によれば、このような場
合、この例に基づくと比較ノード102に対応する有効
フラグレジスタ802を“10”とし、2ワード目から
4ワード目までのデータ比較処理では“10”という信
号Vを比較ノード102に出力してデータYが選択され
ないようにしている。信号Vを“10”とすることで2
ワード目以降のデータX,Yの大小に関係なくデータX
しか選択されないということは、図3(b)からも明ら
かである。X>Yの場合は、各レジスタにセットされる
フラグ値が逆になるだけで同様に動作する。また、X=
Yの場合は、2ワード目以降に勝敗の決定が持ち越され
たことになるので、上記の通り比較結果レジスタには
“00”がセットされ、一方、有効フラグレジスタで
は、入力されるデータX,Yは共に有効であることを意
味する初期値“11”がそのまま維持されることにな
る。
のデータ比較処理において、例えばレコード列5(入力
レジスタ205)から入力されるデータYが他方のレコ
ード列4(入力レジスタ204)から入力されるデータ
Xより値が大きいために選択されなかった場合、この比
較されるレコード列4,5のレコードに関していえば、
2ワード目以降のデータの比較処理を行うまでもなくこ
の時点で勝敗はついたことになる。また、レコード列5
に含まれているデータYは1回戦で負けが決定したこと
になる。そこで、本実施の形態によれば、このような場
合、この例に基づくと比較ノード102に対応する有効
フラグレジスタ802を“10”とし、2ワード目から
4ワード目までのデータ比較処理では“10”という信
号Vを比較ノード102に出力してデータYが選択され
ないようにしている。信号Vを“10”とすることで2
ワード目以降のデータX,Yの大小に関係なくデータX
しか選択されないということは、図3(b)からも明ら
かである。X>Yの場合は、各レジスタにセットされる
フラグ値が逆になるだけで同様に動作する。また、X=
Yの場合は、2ワード目以降に勝敗の決定が持ち越され
たことになるので、上記の通り比較結果レジスタには
“00”がセットされ、一方、有効フラグレジスタで
は、入力されるデータX,Yは共に有効であることを意
味する初期値“11”がそのまま維持されることにな
る。
【0034】このように、各比較ノード100〜120
では、比較制御回路300から送られてくる設定済みの
有効フラグ情報(信号V)の内容に基づき入力データの
比較処理を行い、その結果いずれか一方のデータを選択
して出力し、更にこのときの比較結果である信号Rを比
較制御回路300に出力する。比較制御回路300で
は、各比較ノード100〜120から送られてきた比較
結果を比較結果レジスタ700〜720に保持するとと
もにその比較結果に基づき有効フラグレジスタ800〜
820を更新することになる。この更新した有効フラグ
レジスタ800〜820の内容すなわち有効フラグ情報
に基づき各比較ノード100〜120は、次のデータの
比較処理を行うことになる。
では、比較制御回路300から送られてくる設定済みの
有効フラグ情報(信号V)の内容に基づき入力データの
比較処理を行い、その結果いずれか一方のデータを選択
して出力し、更にこのときの比較結果である信号Rを比
較制御回路300に出力する。比較制御回路300で
は、各比較ノード100〜120から送られてきた比較
結果を比較結果レジスタ700〜720に保持するとと
もにその比較結果に基づき有効フラグレジスタ800〜
820を更新することになる。この更新した有効フラグ
レジスタ800〜820の内容すなわち有効フラグ情報
に基づき各比較ノード100〜120は、次のデータの
比較処理を行うことになる。
【0035】基本的には、上記の処理を4サイクル分繰
り返すことで1回のレコード比較処理が行われることに
なる。4サイクルかけずに勝ち抜けるレコードが決定す
る場合もあるが、この場合でも4サイクル分の処理を実
行して入力レジスタにセットされる勝ち抜けたレコード
の残りのデータを出力レジスタ210に出力しなければ
ならない。これに該当する2ワード目以降のデータ比較
処理は、入力レジスタ200〜207から出力レジスタ
210にデータを出力するだけの処理となる。1サイク
ル目で勝ち抜けるレコードが決定されなかった場合は、
2サイクル目以降に勝敗の決定が持ち越されるが、本実
施の形態においては、その勝敗がつかなかったレコード
列のみのデータ比較処理を行い、最終ワードのデータ比
較処理までに勝敗をつけることになる。つまり、2サイ
クル目、3サイクル目で勝敗がついたものに関しては、
上記のように敗者側の有効フラグ情報をクリアして次回
以降のデータ比較処理の処理対象から外すようにする。
なお、同値のレコードが存在した場合は、予め決めてお
いた所定の規則に従いいずれかのレコードを勝者扱いと
すればよい。
り返すことで1回のレコード比較処理が行われることに
なる。4サイクルかけずに勝ち抜けるレコードが決定す
る場合もあるが、この場合でも4サイクル分の処理を実
行して入力レジスタにセットされる勝ち抜けたレコード
の残りのデータを出力レジスタ210に出力しなければ
ならない。これに該当する2ワード目以降のデータ比較
処理は、入力レジスタ200〜207から出力レジスタ
210にデータを出力するだけの処理となる。1サイク
ル目で勝ち抜けるレコードが決定されなかった場合は、
2サイクル目以降に勝敗の決定が持ち越されるが、本実
施の形態においては、その勝敗がつかなかったレコード
列のみのデータ比較処理を行い、最終ワードのデータ比
較処理までに勝敗をつけることになる。つまり、2サイ
クル目、3サイクル目で勝敗がついたものに関しては、
上記のように敗者側の有効フラグ情報をクリアして次回
以降のデータ比較処理の処理対象から外すようにする。
なお、同値のレコードが存在した場合は、予め決めてお
いた所定の規則に従いいずれかのレコードを勝者扱いと
すればよい。
【0036】以上のようにして、4ワード目のデータま
での比較処理、つまり1回のレコード比較処理が終了す
るが、この時点において、例えばレコード列2が勝ち抜
いた場合の比較制御回路300のレジスタの内容は図6
のようになる。
での比較処理、つまり1回のレコード比較処理が終了す
るが、この時点において、例えばレコード列2が勝ち抜
いた場合の比較制御回路300のレジスタの内容は図6
のようになる。
【0037】各データ比較処理において勝ち抜けたデー
タは、バッファに退避されているので、データ比較処理
に要したのと同じ4サイクルをかけて最終的に勝者とな
ったレコードを外部に出力することになる。本実施の形
態では、このサイクルの間に次のレコード比較処理のた
めに比較制御回路300のレジスタ群の内容を次のよう
に更新する。この比較制御回路300のレジスタ群の更
新はレコードとレコードの境界で瞬時に行われる。な
お、更新後すなわち次回のレコード比較処理のための各
レジスタの設定内容は、図7に示されている。
タは、バッファに退避されているので、データ比較処理
に要したのと同じ4サイクルをかけて最終的に勝者とな
ったレコードを外部に出力することになる。本実施の形
態では、このサイクルの間に次のレコード比較処理のた
めに比較制御回路300のレジスタ群の内容を次のよう
に更新する。この比較制御回路300のレジスタ群の更
新はレコードとレコードの境界で瞬時に行われる。な
お、更新後すなわち次回のレコード比較処理のための各
レジスタの設定内容は、図7に示されている。
【0038】まず、比較結果レジスタ700〜720に
おいては、前述したように勝ち抜けたレコード列の経路
上の比較ノードに対応する位置の設定内容をクリアする
ことにしているので、図6に示したように、前回のレコ
ード比較処理においてレコード列2が勝ち抜けた場合に
は経路上の比較ノード101,110,120に対応す
る比較結果レジスタ701,710,720の対応する
側すなわち左側、右側、左側がそれぞれクリアされる。
その他は、そのまま維持される。また、マージメンバー
レジスタ600〜607は、前述したように直前のレコ
ード比較処理において勝ち抜けたレコード列及び経路上
に位置する比較ノードにおいて1回戦から3回戦までの
3つの比較ノードのうち2つの比較ノードで勝った場合
にセットされるので、1,3回戦に勝ったレコード列
0、勝ち抜けたレコード列2、2,3回戦に勝ったレコ
ード列3及び1,2回戦に勝ったレコード列5に対応す
るマージメンバーレジスタ600,602,603、6
05がセットされる。また、有効フラグレジスタ800
〜820のうち有効フラグレジスタ800〜803は、
実体としてはマージメンバーレジスタ600〜607と
同一のものなのでマージメンバーレジスタ600〜60
7と同値となる。有効フラグレジスタ810〜820
は、下位に位置する有効フラグレジスタを構成する2ビ
ットのうち少なくとも一方がセットされている時にセッ
トされるので、図7においては、有効フラグレジスタ8
11の右側以外は、セットされる。
おいては、前述したように勝ち抜けたレコード列の経路
上の比較ノードに対応する位置の設定内容をクリアする
ことにしているので、図6に示したように、前回のレコ
ード比較処理においてレコード列2が勝ち抜けた場合に
は経路上の比較ノード101,110,120に対応す
る比較結果レジスタ701,710,720の対応する
側すなわち左側、右側、左側がそれぞれクリアされる。
その他は、そのまま維持される。また、マージメンバー
レジスタ600〜607は、前述したように直前のレコ
ード比較処理において勝ち抜けたレコード列及び経路上
に位置する比較ノードにおいて1回戦から3回戦までの
3つの比較ノードのうち2つの比較ノードで勝った場合
にセットされるので、1,3回戦に勝ったレコード列
0、勝ち抜けたレコード列2、2,3回戦に勝ったレコ
ード列3及び1,2回戦に勝ったレコード列5に対応す
るマージメンバーレジスタ600,602,603、6
05がセットされる。また、有効フラグレジスタ800
〜820のうち有効フラグレジスタ800〜803は、
実体としてはマージメンバーレジスタ600〜607と
同一のものなのでマージメンバーレジスタ600〜60
7と同値となる。有効フラグレジスタ810〜820
は、下位に位置する有効フラグレジスタを構成する2ビ
ットのうち少なくとも一方がセットされている時にセッ
トされるので、図7においては、有効フラグレジスタ8
11の右側以外は、セットされる。
【0039】この状態において、次のレコード比較処理
が行われ、その結果、レコード列5が勝ち抜けた場合を
図8に示す。この後に更新された比較制御回路300の
各レジスタの内容を図9に示す。
が行われ、その結果、レコード列5が勝ち抜けた場合を
図8に示す。この後に更新された比較制御回路300の
各レジスタの内容を図9に示す。
【0040】上記説明したように、本実施の形態におい
ては、比較制御回路300に上記各レジスタを設け、こ
れらの各レジスタを所定のタイミングでセットし、クリ
アすることで次のような効果を奏することになる。
ては、比較制御回路300に上記各レジスタを設け、こ
れらの各レジスタを所定のタイミングでセットし、クリ
アすることで次のような効果を奏することになる。
【0041】本実施の形態で例示した8ウェイマージソ
ート装置の場合、最初だけは全てのウェイそれぞれに対
応するレコード列の比較を行うが、次回からは、4本の
レコード列のみの比較を行えばよい。図7ではレコード
列0,2,3,5、図9ではレコード列0,4,5,6
の4本のみであり、対応する入力レジスタにのみ後続の
データを供給すれば次の勝者を決定することができるこ
とを示している。逆に言えば、その他の4本のレコード
列に関しては入力レジスタにデータを供給する必要がな
い。一般に、レコード列は共通のメモリに格納され共通
のデータバスを介して読み出されるため、8ウェイマー
ジソートの場合は定常的に8本のレコード列の読出しが
競合し得るが、本実施の形態によれば定常的に4本のレ
コード列の読出しが競合し得るにとどまる。これは、次
の理由による。
ート装置の場合、最初だけは全てのウェイそれぞれに対
応するレコード列の比較を行うが、次回からは、4本の
レコード列のみの比較を行えばよい。図7ではレコード
列0,2,3,5、図9ではレコード列0,4,5,6
の4本のみであり、対応する入力レジスタにのみ後続の
データを供給すれば次の勝者を決定することができるこ
とを示している。逆に言えば、その他の4本のレコード
列に関しては入力レジスタにデータを供給する必要がな
い。一般に、レコード列は共通のメモリに格納され共通
のデータバスを介して読み出されるため、8ウェイマー
ジソートの場合は定常的に8本のレコード列の読出しが
競合し得るが、本実施の形態によれば定常的に4本のレ
コード列の読出しが競合し得るにとどまる。これは、次
の理由による。
【0042】例えば、図6に示したようにレコード列2
が勝ち抜けた場合、レコード列2のデータと直接比較さ
れ敗者となったレコードは、8つの入力レジスタから入
力されるレコードのうち2番目に小さい値を持つかもし
れない。従って、次のレコード比較処理において勝ち抜
ける可能性があるため比較対象としておく必要がある。
また、勝ち抜けたレコードから次に取り出されるレコー
ドも続けて勝ち抜ける可能性があるので、次のレコード
比較処理においても比較対象とする必要がある。一方、
レコード列2のデータと直接比較され敗者となったレコ
ードと直接比較され敗者となったレコードは、当該レコ
ード比較処理においてよくても3番目に小さい値である
ため、次のレコード比較処理において勝ち抜く可能性は
ない。よって比較対象に加える必要がない。本実施の形
態では、この次のレコード比較処理の処理対象とするか
否かをマージメンバーレジスタ600〜607で保持す
るようにしているので、共通メモリからの無駄な読出し
を防止することができる。
が勝ち抜けた場合、レコード列2のデータと直接比較さ
れ敗者となったレコードは、8つの入力レジスタから入
力されるレコードのうち2番目に小さい値を持つかもし
れない。従って、次のレコード比較処理において勝ち抜
ける可能性があるため比較対象としておく必要がある。
また、勝ち抜けたレコードから次に取り出されるレコー
ドも続けて勝ち抜ける可能性があるので、次のレコード
比較処理においても比較対象とする必要がある。一方、
レコード列2のデータと直接比較され敗者となったレコ
ードと直接比較され敗者となったレコードは、当該レコ
ード比較処理においてよくても3番目に小さい値である
ため、次のレコード比較処理において勝ち抜く可能性は
ない。よって比較対象に加える必要がない。本実施の形
態では、この次のレコード比較処理の処理対象とするか
否かをマージメンバーレジスタ600〜607で保持す
るようにしているので、共通メモリからの無駄な読出し
を防止することができる。
【0043】また、データ比較処理においていったん敗
者となったレコード列が、当該レコード比較処理におい
て同一レコードを構成する他のデータに基づくその後の
比較処理において勝者とされないようにしている。この
情報を有効フラグ情報として有効フラグレジスタ810
〜820に保持している。なお、本実施の形態では、1
レコードを1ワードのキーと3ワードの本体の4ワード
で構成した場合を例にしたが、それ以外のワード数でも
特に1ワードであっても上述した動作を行うことでマー
ジソートを確実かつ迅速に行うことができる。特に、本
実施の形態によれば、レコードの比較の度に比較制御回
路300における各レジスタの初期化が不要である。す
なわち特別な初期化サイクルを必要としない。
者となったレコード列が、当該レコード比較処理におい
て同一レコードを構成する他のデータに基づくその後の
比較処理において勝者とされないようにしている。この
情報を有効フラグ情報として有効フラグレジスタ810
〜820に保持している。なお、本実施の形態では、1
レコードを1ワードのキーと3ワードの本体の4ワード
で構成した場合を例にしたが、それ以外のワード数でも
特に1ワードであっても上述した動作を行うことでマー
ジソートを確実かつ迅速に行うことができる。特に、本
実施の形態によれば、レコードの比較の度に比較制御回
路300における各レジスタの初期化が不要である。す
なわち特別な初期化サイクルを必要としない。
【0044】一般的にKウェイマージソートにおいて、
従来はK本のレコード列のメモリ読出しが競合していた
ものを、本実施の形態によれば、(log2K+1)本
の競合に抑えることができ、その結果メモリ読出しのボ
トルネックを軽減することができる。特に、各レコード
の比較の度に特別な初期化サイクルを必要としない。な
お、本実施の形態に示した入力レジスタ200〜207
へのデータ供給源として各ウェイ個別にバッファを置く
ことによって入力レジスタへのデータ供給の競合を回避
することも可能であるが、バッファへのデータ供給はや
はり共通メモリからであり、図4に示すキーのサイズが
バッファのサイズを上回る場合にはレコード列の読出し
の競合を回避することは不可能であるため、本発明はこ
のような場合においても有効である。
従来はK本のレコード列のメモリ読出しが競合していた
ものを、本実施の形態によれば、(log2K+1)本
の競合に抑えることができ、その結果メモリ読出しのボ
トルネックを軽減することができる。特に、各レコード
の比較の度に特別な初期化サイクルを必要としない。な
お、本実施の形態に示した入力レジスタ200〜207
へのデータ供給源として各ウェイ個別にバッファを置く
ことによって入力レジスタへのデータ供給の競合を回避
することも可能であるが、バッファへのデータ供給はや
はり共通メモリからであり、図4に示すキーのサイズが
バッファのサイズを上回る場合にはレコード列の読出し
の競合を回避することは不可能であるため、本発明はこ
のような場合においても有効である。
【0045】なお、本実施の形態では、昇順に並べる場
合を例にしたが、大小結果を逆に扱うことで降順の場合
も同様にして構築することができることはいうまでもな
い。また、比較制御回路300において保持する各比較
ノード100〜120の比較結果や有効フラグ情報など
は、全て1ビットで表すことのできる情報であるため、
処理対象ウェイ保持手段、比較結果保持手段及び有効フ
ラグ情報保持手段の各手段をレジスタで構成したが、こ
れに限られたものではない。
合を例にしたが、大小結果を逆に扱うことで降順の場合
も同様にして構築することができることはいうまでもな
い。また、比較制御回路300において保持する各比較
ノード100〜120の比較結果や有効フラグ情報など
は、全て1ビットで表すことのできる情報であるため、
処理対象ウェイ保持手段、比較結果保持手段及び有効フ
ラグ情報保持手段の各手段をレジスタで構成したが、こ
れに限られたものではない。
【0046】
【発明の効果】本発明によれば、従来Kウェイマージソ
ートにおいて発生していたメモリからのレコード列の読
出しの競合やトーナメントツリーの初期化による性能低
下を防止することができるので、高速なマージソートを
実現することができる。
ートにおいて発生していたメモリからのレコード列の読
出しの競合やトーナメントツリーの初期化による性能低
下を防止することができるので、高速なマージソートを
実現することができる。
【0047】また、比較ノードをセレクタを用いて実現
したので、トーナメント比較回路において1サイクルで
勝者を決定することができる。
したので、トーナメント比較回路において1サイクルで
勝者を決定することができる。
【図1】 本発明に係るマージソート処理装置の一実施
の形態を示した構成図である。
の形態を示した構成図である。
【図2】 本実施の形態における比較ノードの内部構成
を示した図である。
を示した図である。
【図3】 本実施の形態における比較ノードの動作を表
す真理値表を示した図である。
す真理値表を示した図である。
【図4】 本実施の形態において比較されマージソート
されるレコード構成の例を示した図である。
されるレコード構成の例を示した図である。
【図5】 本実施の形態における比較制御回路が保持す
るレジスタ群の構成を示した図である。
るレジスタ群の構成を示した図である。
【図6】 本実施の形態における比較制御回路が保持す
るレジスタの第1の状態を示した図である。
るレジスタの第1の状態を示した図である。
【図7】 本実施の形態における比較制御回路が保持す
るレジスタの第2の状態を示した図である。
るレジスタの第2の状態を示した図である。
【図8】 本実施の形態における比較制御回路が保持す
るレジスタの第3の状態を示した図である。
るレジスタの第3の状態を示した図である。
【図9】 本実施の形態における比較制御回路が保持す
るレジスタの第4の状態を示した図である。
るレジスタの第4の状態を示した図である。
【図10】 パイプラインマージソータの構成図であ
る。
る。
【図11】 パイプラインマージソータの動作プロセス
を示す説明図である。
を示す説明図である。
【図12】 従来例のトーナメント比較回路の構成図で
ある。
ある。
【図13】 従来例の比較ノードの構成図である。
100〜120 比較ノード、200〜207 入力レ
ジスタ、210 出力レジスタ、300 比較制御回
路、500 比較器、510 セレクタ、600〜60
7 マージメンバーレジスタ(処理対象ウェイ保持手
段)、700〜720 比較結果レジスタ(比較結果保
持手段)、800〜820 有効フラグレジスタ(有効
フラグ情報保持手段)。
ジスタ、210 出力レジスタ、300 比較制御回
路、500 比較器、510 セレクタ、600〜60
7 マージメンバーレジスタ(処理対象ウェイ保持手
段)、700〜720 比較結果レジスタ(比較結果保
持手段)、800〜820 有効フラグレジスタ(有効
フラグ情報保持手段)。
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 平4−180124(JP,A) 特開 平1−161941(JP,A) 特開 平6−4267(JP,A) 特公 平7−111677(JP,B2) 特公 平7−99513(JP,B2)
Claims (6)
- 【請求項1】 複数台を一次元的に接続することによっ
てマージソート対象のレコードに対してマージソート処
理を実行するパイプラインマージソータを形成する装置
であって、各装置において所定の処理サイクル毎に複数
の入力レジスタに逐次セットされる各データを比較する
ことによって、1乃至複数のデータで構成されるレコー
ドを昇順あるいは降順に並び替えるマージソート処理装
置において、 2つの入力データの比較処理を行った結果いずれか一方
の入力データを出力するとともにその比較結果を出力す
る複数の比較ノードをトーナメントツリー状に接続する
ことで前記各入力レジスタから始まるウェイを複数形成
するトーナメント比較回路と、 前記比較ノードが出力した比較結果に基づき前記各比較
ノードに入力される各データの有効性を示す有効フラグ
情報の設定内容を決定するとともにその決定した有効フ
ラグ情報を対応する前記比較ノードへ供給する比較制御
回路と、 を有し、 次の処理サイクルにおいて、前記各比較ノードに、前記
比較制御回路から送られてくる有効フラグ情報が双方の
入力データとも有効とされている場合には入力データの
大小関係により決定した入力データを出力し、有効フラ
グ情報が一方の入力データのみ有効とされている場合に
は当該入力データを出力し、有効フラグ情報が双方の入
力データとも無効とされている場合には入力データを出
力しないように動作させ、 前記比較制御回路は、データ比較処理において出力され
なかった入力データに対応した有効フラグ情報を無効に
し、レコードの比較処理が終了した時点で前記各比較ノ
ードの各入力データに対応した有効フラグ情報の内容
を、当該比較ノードへの入力データを出力する下位に接
続された比較ノードに対応した有効フラグ情報に有効が
設定されていた場合に有効と設定することでマージソー
ト対象の全レコードの各比較処理の間に前記トーナメン
ト比較回路を初期化することなくマージソート処理を実
行することを特徴とするマージソート処理装置。 - 【請求項2】 前記比較ノードは、2つの入力データの
大小関係を比較する比較器と、 前記比較器による比較結果及び前記比較制御回路から送
られてくる有効フラグ情報に基づきいずれか一方の入力
データを出力するセレクタと、 を有することを特徴とする請求項1記載のマージソート
処理装置。 - 【請求項3】 前記比較制御回路は、前記各比較ノード
から送られてくる比較結果を保持する比較結果保持手段
を有し、 前記各比較ノードから比較結果が送られてくる度にその
比較結果を前記比較結果保持手段に保持し、前記トーナ
メント比較回路においてあるウェイが勝ち抜けた時にそ
のウェイの経路上に位置する前記比較ノードの前記比較
結果保持手段に保持しておいた比較結果を初期化するこ
とを特徴とする請求項1記載のマージソート処理装置。 - 【請求項4】 前記比較制御回路は、前記トーナメント
比較回路において最下位層に位置するもの以外の前記比
較ノードの有効フラグ情報を保持する有効フラグ情報保
持手段を有し、 対応する前記比較ノードの下位に接続されている前記比
較ノードに対応する前記有効フラグ情報保持手段のうち
少なくとも一方がセットされている時に有効と、対応す
る前記比較ノードの他方の入力データが勝った時あるい
は対応する前記比較ノードの上位の前記比較ノードにお
いて他方の入力データが勝った時に無効と、前記有効フ
ラグ情報保持手段に設定することを特徴とする請求項1
記載のマージソート処理装置。 - 【請求項5】 前記比較制御回路は、各ウェイに対応さ
せた入力レジスタに設定されたデータが次のデータ比較
処理において処理対象とするか否かを表す情報を保持す
る処理対象ウェイ保持手段を有し、 直前のデータ比較処理において勝ち抜けたデータが通っ
たウェイあるいは経路上に位置する前記比較ノードのう
ちただ一つの前記比較ノードのみで負けたウェイに対応
した入力レジスタに設定されたデータを次のデータ比較
処理において有効と、経路上に位置する前記比較ノード
において負けが決定した時点で当該ウェイに対応した入
力レジスタに設定されたデータを次のデータ比較処理に
おいて無効と、前記処理対象ウェイ保持手段に設定する
ことを特徴とする請求項1記載のマージソート処理装
置。 - 【請求項6】 前記比較制御回路は、 前記各比較ノードから送られてくる比較結果を保持する
比較結果保持手段と、 前記トーナメント比較回路において最下位層に位置する
もの以外の前記比較ノードの有効フラグ情報を保持する
有効フラグ情報保持手段と、 各ウェイに対応させた入力レジスタに設定されたデータ
が次のデータ比較処理において処理対象とするか否かを
表す情報を保持する処理対象ウェイ保持手段と、 を有し、 前記各比較ノードから比較結果が送られてくる度にその
比較結果を前記比較結果保持手段に保持し、前記トーナ
メント比較回路においてあるウェイが勝ち抜けた時にそ
のウェイの経路上に位置する前記比較ノードの前記比較
結果保持手段に保持しておいた比較結果を初期化し、 対応する前記比較ノードの下位に接続されている前記比
較ノードに対応する前記有効フラグ情報保持手段のうち
少なくとも一方がセットされている時に有効と、対応す
る前記比較ノードの他方の入力データが勝った時あるい
は対応する前記比較ノードの上位の前記比較ノードにお
いて他方の入力データが勝った時に無効と、前記有効フ
ラグ情報保持手段に設定し、 直前のデータ比較処理において勝ち抜けたデータが通っ
たウェイあるいは経路上に位置する前記比較ノードのう
ちただ一つの前記比較ノードのみで負けたウェイに対応
した入力レジスタに設定されたデータを次のデータ比較
処理において有効と、経路上に位置する前記比較ノード
において負けが決定した時点で当該ウェイに対応した入
力レジスタに設定されたデータを次のデータ比較処理に
おいて無効と、前記処理対象ウェイ保持手段に設定する
ことを特徴とする請求項1記載のマージソート処理装
置。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP17335598A JP3344559B2 (ja) | 1998-06-19 | 1998-06-19 | マージソート処理装置 |
TW088109265A TW445428B (en) | 1998-06-19 | 1999-06-04 | Merged sorting apparatus with comparison nodes connected in tournament tree shape |
CA002274282A CA2274282C (en) | 1998-06-19 | 1999-06-10 | Merge sorting apparatus with comparison nodes connected in tournament tree shape |
EP99111312A EP0965909A3 (en) | 1998-06-19 | 1999-06-10 | Merge sorting apparatus with comparison nodes connected in tournament tree shape |
US09/330,098 US6330559B1 (en) | 1998-06-19 | 1999-06-11 | Merge sorting apparatus with comparison nodes connected in tournament tree shape |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP17335598A JP3344559B2 (ja) | 1998-06-19 | 1998-06-19 | マージソート処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2000010761A JP2000010761A (ja) | 2000-01-14 |
JP3344559B2 true JP3344559B2 (ja) | 2002-11-11 |
Family
ID=15958883
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP17335598A Expired - Fee Related JP3344559B2 (ja) | 1998-06-19 | 1998-06-19 | マージソート処理装置 |
Country Status (5)
Country | Link |
---|---|
US (1) | US6330559B1 (ja) |
EP (1) | EP0965909A3 (ja) |
JP (1) | JP3344559B2 (ja) |
CA (1) | CA2274282C (ja) |
TW (1) | TW445428B (ja) |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6757284B1 (en) * | 2000-03-07 | 2004-06-29 | Cisco Technology, Inc. | Method and apparatus for pipeline sorting of ordered streams of data items |
JP3823697B2 (ja) | 2000-07-11 | 2006-09-20 | 富士通株式会社 | 同期パターン位置検出回路 |
US20090098937A1 (en) * | 2007-10-12 | 2009-04-16 | Microsoft Corporation | Adaptive tree visualization for tournament-style brackets |
JP4502223B2 (ja) | 2007-12-05 | 2010-07-14 | 株式会社エスグランツ | ビット列のマージソート装置、方法及びプログラム |
CN103019646B (zh) * | 2013-01-09 | 2015-09-30 | 西安电子科技大学 | 并行排序电路及并行排序方法 |
US9047325B2 (en) * | 2013-04-08 | 2015-06-02 | International Business Machines Corporation | Modularizing complex XML data for generation and extraction |
JP6318377B2 (ja) * | 2013-07-16 | 2018-05-09 | 東芝情報システム株式会社 | 優先データ選択装置及びその方法 |
US9619499B2 (en) * | 2013-08-07 | 2017-04-11 | International Business Machines Corporation | Hardware implementation of a tournament tree sort algorithm |
US9251218B2 (en) | 2013-08-07 | 2016-02-02 | International Business Machines Corporation | Tunable hardware sort engine for performing composite sorting algorithms |
US9495418B2 (en) | 2013-08-07 | 2016-11-15 | International Business Machines Corporation | Scalable acceleration of database query operations |
US9830354B2 (en) | 2013-08-07 | 2017-11-28 | International Business Machines Corporation | Accelerating multiple query processing operations |
JP6016215B2 (ja) | 2013-12-20 | 2016-10-26 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | トライ木構造を有するレコード群を高い効率でマージソートする方法、装置及びコンピュータプログラム |
US10037366B2 (en) | 2014-02-07 | 2018-07-31 | Microsoft Technology Licensing, Llc | End to end validation of data transformation accuracy |
US10310813B2 (en) | 2014-12-29 | 2019-06-04 | International Business Machines Corporation | Hardware implementation of a tournament tree sort algorithm using an external memory |
US10523596B1 (en) * | 2015-02-06 | 2019-12-31 | Xilinx, Inc. | Circuits for and methods of merging streams of data to generate sorted output data |
US11354094B2 (en) * | 2017-11-30 | 2022-06-07 | International Business Machines Corporation | Hierarchical sort/merge structure using a request pipe |
US11048475B2 (en) | 2017-11-30 | 2021-06-29 | International Business Machines Corporation | Multi-cycle key compares for keys and records of variable length |
US10896022B2 (en) | 2017-11-30 | 2021-01-19 | International Business Machines Corporation | Sorting using pipelined compare units |
US10936283B2 (en) * | 2017-11-30 | 2021-03-02 | International Business Machines Corporation | Buffer size optimization in a hierarchical structure |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4706082A (en) | 1986-02-24 | 1987-11-10 | Chrysler Motors Corporation | Serial data bus for intermodule data communications |
US4719458A (en) | 1986-02-24 | 1988-01-12 | Chrysler Motors Corporation | Method of data arbitration and collision detection in a data bus |
JPH0659055B2 (ja) | 1987-12-18 | 1994-08-03 | 沖電気工業株式会社 | 汎用モジュール内伝送方式 |
JP2752634B2 (ja) | 1988-05-26 | 1998-05-18 | 優 喜連川 | ソート処理装置 |
JPH0776906B2 (ja) * | 1989-06-30 | 1995-08-16 | ディジタル イクイプメント コーポレーション | 分類加速装置のための速度及びメモリー制御 |
US5210870A (en) * | 1990-03-27 | 1993-05-11 | International Business Machines | Database sort and merge apparatus with multiple memory arrays having alternating access |
US5287494A (en) * | 1990-10-18 | 1994-02-15 | International Business Machines Corporation | Sorting/merging tree for determining a next tournament champion in each cycle by simultaneously comparing records in a path of the previous tournament champion |
JPH04180124A (ja) | 1990-11-15 | 1992-06-26 | Toshiba Corp | ソート処理装置 |
JPH06242925A (ja) * | 1993-02-15 | 1994-09-02 | Mitsubishi Electric Corp | ソート処理装置 |
US5440585A (en) | 1993-06-14 | 1995-08-08 | At&T Corp. | Applications of simultaneous analog and digital communication |
JPH07111677A (ja) | 1993-10-14 | 1995-04-25 | Toshiba Corp | 移動通信システム |
US5619693A (en) * | 1994-05-02 | 1997-04-08 | Tandem Computers Incorporated | Method for sorting and storing data employing dynamic sort tree reconfiguration in volatile memory |
JP2606608B2 (ja) | 1994-10-31 | 1997-05-07 | 日本電気株式会社 | 同値キーが存在するデータのソート方式 |
-
1998
- 1998-06-19 JP JP17335598A patent/JP3344559B2/ja not_active Expired - Fee Related
-
1999
- 1999-06-04 TW TW088109265A patent/TW445428B/zh not_active IP Right Cessation
- 1999-06-10 EP EP99111312A patent/EP0965909A3/en not_active Withdrawn
- 1999-06-10 CA CA002274282A patent/CA2274282C/en not_active Expired - Fee Related
- 1999-06-11 US US09/330,098 patent/US6330559B1/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2000010761A (ja) | 2000-01-14 |
EP0965909A2 (en) | 1999-12-22 |
TW445428B (en) | 2001-07-11 |
CA2274282C (en) | 2002-07-30 |
US6330559B1 (en) | 2001-12-11 |
CA2274282A1 (en) | 1999-12-19 |
EP0965909A3 (en) | 2001-12-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3344559B2 (ja) | マージソート処理装置 | |
US5287494A (en) | Sorting/merging tree for determining a next tournament champion in each cycle by simultaneously comparing records in a path of the previous tournament champion | |
US5182799A (en) | Retrieving data using hash memory address generated by reversing /xor bits of selected bit strings of an input packet id | |
US6370613B1 (en) | Content addressable memory with longest match detect | |
US20070156685A1 (en) | Method for sorting data using SIMD instructions | |
US5855016A (en) | Sorting system for serially processing records | |
US5896529A (en) | Branch prediction based on correlation between sets of bunches of branch instructions | |
EP0031431A2 (en) | Programmable sequential logic array mechanism | |
US5653637A (en) | Expandable controllers capable of connecting in series to a control deck of a video game machine | |
CA1080366A (en) | First in - first out memory array containing special bits for replacement addressing | |
JPH0728624A (ja) | ソート装置及びソート方法 | |
US20040073550A1 (en) | String matching using data bit masks | |
US5319651A (en) | Data integrity features for a sort accelerator | |
US5142687A (en) | Sort accelerator with rebound sorter repeatedly merging sorted strings | |
US5185886A (en) | Multiple record group rebound sorter | |
JPH0322155A (ja) | キャッシュメモリ装置 | |
KR100542467B1 (ko) | 연상 메모리 시스템 및 네트워크 기기 및 네트워크 시스템 | |
US5206947A (en) | Stable sorting for a sort accelerator | |
US6988164B1 (en) | Compare circuit and method for content addressable memory (CAM) device | |
NL8102650A (nl) | Logische rekeneenheid bedoeld voor het behandelen van bits. | |
US20030172253A1 (en) | Fast instruction dependency multiplexer | |
US6341327B1 (en) | Content addressable memory addressable by redundant form input | |
US5919251A (en) | Search mechanism for a rotating pointer buffer | |
JP3183205B2 (ja) | プリソート処理方式 | |
JP3387470B2 (ja) | ソート処理方法及びソート処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20070830 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080830 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080830 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090830 Year of fee payment: 7 |
|
LAPS | Cancellation because of no payment of annual fees |