JP2000322236A - ソート処理装置 - Google Patents

ソート処理装置

Info

Publication number
JP2000322236A
JP2000322236A JP2000125681A JP2000125681A JP2000322236A JP 2000322236 A JP2000322236 A JP 2000322236A JP 2000125681 A JP2000125681 A JP 2000125681A JP 2000125681 A JP2000125681 A JP 2000125681A JP 2000322236 A JP2000322236 A JP 2000322236A
Authority
JP
Japan
Prior art keywords
data
sort
key value
comparator
processor
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.)
Pending
Application number
JP2000125681A
Other languages
English (en)
Inventor
Shinya Fushimi
信也 伏見
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 JP2000125681A priority Critical patent/JP2000322236A/ja
Publication of JP2000322236A publication Critical patent/JP2000322236A/ja
Pending legal-status Critical Current

Links

Landscapes

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

Abstract

(57)【要約】 【課題】 ソート処理におけるソートキー毎の昇降順指
定を可能としつつ、ソートプロセッサの内部処理は昇順
または降順ソートのみで可能なようにして、ソートプロ
セッサの内部構成を簡素化することを目的とする。 【解決手段】 入力データストリングを格納するデータ
記憶装置と、前記データストリングの連続する比較対象
データの大小関係を比較する比較器と、前記データ記憶
装置および前記比較器を制御する制御部を有するソート
プロセッサを複数台直列に接続して、各ソートプロセッ
サが並列に動作して、各々の比較器を用いて繰返し比較
処理を行うことで、複数のデータのソート処理を行うソ
ート処理装置において、前記比較器の比較機能と異なる
指定のキー値について、このキー値のビットを反転させ
て、初段のソートプロセッサに伝送するキー値変換部を
備えた。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】この発明は、データベース処
理、ビジネスデータ処理等における、大量データの並べ
替え、所謂ソート処理を行なうソートプロセッサ及びソ
ート処理装置に関するものである。なお、この明細書に
おいては、部分的なソート処理を行なうプロセッサをソ
ートプロセッサと称し、ソートプロセッサ複数個を、直
列に接続して、完全なソート処理を行なう装置をソート
処理装置と称して、区別するものとする。
【0002】
【従来の技術】図6は、例えば「情報処理」Vol.3
3、No.12、P1416ー1423、1992に開
示されている従来のソート処理装置を備えた計算機シス
テムの構成を示す図である。図において、1はソート処
理装置、2はホスト計算機のシステムバス、3はホスト
計算機の主記憶装置、4はホスト計算機のCPU、5は
ホスト計算機上でデータを格納するディスク装置、6は
ホスト計算機である。
【0003】以下、図を参照しながら動作について説明
する。先ず、概略の動作について説明する。ホスト計算
機6においてデータ処理の要求が発生すると、ホスト計
算機6のCPU4は対象データが格納されているディス
ク装置5からデータを連続的に取り出して、これをシス
テムバス2を経由して連続的にソート処理装置1に送
る。なお、このとき、必要に応じてホスト計算機1の主
記憶装置3が入出力バッファ領域として用いられる。ソ
ート処理装置1においては、データが入力されると、ソ
ート処理を行い、結果を再びシステムバス2を経由して
ホスト計算機6に送り返す。ホスト計算機6は送り返さ
れた結果データを入力時と同様にしてディスク装置5に
格納する。なお、ソート処理装置1に対するデータの入
力と、ソート処理装置1からの結果データの出力は並列
に実行される。
【0004】次にソート処理装置1の動作の詳細につい
て説明する。ソート処理装置1はホスト計算機6から送
られてくるデータの列を連続的に入力して、これを指定
された順序に並べ替えて、結果を再びホスト計算機6に
返す。この様子を、同じく上記「情報処理」に開示され
ている図5を用いて説明する。図7は、図6におけるソ
ート処理装置1の構成を示す図で、ソート処理装置1
は、ソートプロセッサ11、12、13、及び14を線
形に接続して構成される。各ソートプロセッサ11〜1
4には、各々データ記憶装置15、16、17、及び1
8が接続されている。また、21はホスト計算機6との
データのやりとり、処理の指示のやりとりを行うための
ホスト計算機インタフェースであり、19はソート処理
装置1全体を制御する制御部である。ソートプロセッサ
11〜14は、各々先頭から第1段目のソートプロセッ
サ、第2段目のソートプロセッサ、第3段目のソートプ
ロセッサ等と呼ばれる。第i段目のソートプロセッサ
は、2i-1データ分の容量の記憶装置を各々有してい
る。
【0005】ここでは、”8、2、1、3、5、7、
6、4、・・・”の順にデータがソート処理装置1に入
力される場合を例にして、動作を説明する。先ず、先頭
の第1段目のソートプロセッサ11は、入力されたデー
タを2つずつ取り出し、これを指定の順序に並び替えて
次段のソートプロセッサに送り出す。次段のソートプロ
セッサに、2つずつにソートされて入力されるデータは
(8、2)、(3、1)、(7、5)、(6、4)、・
・・・となる。このように、第1段目のソートプロセッ
サ11では、”1、3”の順序で入力されたデータは順
序が入れ代わり、(3、1)の順でソートされた2つの
データの組みとなって出力されている。このように、ソ
ートされたデータの組みをデータストリングまたはスト
リングと以降呼ぶことにする。第2段目のソートプロセ
ッサ12は、この2つずつにソートされたデータストリ
ングを入力して、これを2組ずつ取り出し、併合して、
4つずつにソートされたデータストリングを次段のソー
トプロセッサ13に送り出す。その結果は、(8、3、
2、1)、(7、6、5、4)、・・・・となる。この
ように、第2段目のソートプロセッサ12では、入力デ
ータストリング(8、2)と(3、1)がソート処理さ
れた結果、併合されて出力データストリング(8、3、
2、1)となる。第3段目のソートプロセッサ13は、
この4つずつにソートされたデータストリングを入力し
て、これを2組みずつ取り出し、併合して、8つずつに
ソートされたデータストリングを次段のソートプロセッ
サ14に送り出す。この結果は、(8、7、6、5、
4、3、2、1)、・・・・となる。第4段目のソート
プロセッサ14以降も同様な処理を行う。
【0006】ところで、各段のソートプロセッサは、図
8に示すように、前段のソートプロセッサがすべての処
理を終えない内に処理を開始することが可能であり、こ
れにより、データを連続的に入力すると若干の遅れ時間
を経てデータ入力と並列にソート結果が出力されること
がわかる。このようにして、n個のソートプロセッサに
より2n個のデータの並び替え、即ちソート処理が行わ
れる。なお、各ソートプロセッサは、これら比較併合処
理において、各々に接続されたデータ記憶装置15、1
6、17、18を記憶領域として使用する。
【0007】次に、図9に示す「情報処理」Vol.3
1、No.4、P457ー465、1990に開示され
ている従来のソートプロセッサの構成図を参照しなが
ら、ソートプロセッサ内部における動作について説明す
る。なお、この図9においては、説明を簡単にするため
図7におけるソートプロセッサ12のみの内部について
を示しているが、他のソートプロセッサの内部も同様な
構成である。図9において、120はデータストリング
を比較する比較器、121、122は各々比較されるデ
ータの一部を一次的に格納するラッチレジスタ、12
3、124は比較器120のデータ入力ポート、125
はソートプロセッサの動作を制御する制御部である。ラ
ッチレジスタ121、122は、比較器120の比較デ
ータサイズ及び比較器の入力ポート123、124のデ
ータ幅と等しいデータサイズを有している。以下の説明
では、この大きさは4バイトとする。126は前段のソ
ートプロセッサ11からのデータを入力する入力バス、
127は次段のソートプロセッサ13にデータを出力す
る出力バス、128は接続されているデータ記憶装置1
6とのデータをやりとりするアドレス及びデータバスで
ある。
【0008】以下、ソートプロセッサ12のソート処理
の詳細について説明する。ソートプロセッサ12に対し
て、前段のソートプロセッサ11からデータストリング
(8、2)、(3、1)、・・・が順次入力されると、
ソートプロセッサ12はこれを併合してデータストリン
グ(8、3、2、1)、・・・として次段のソートプロ
セッサ13に出力する場合を例にとって説明する。
【0009】先ず、最初に入力されるデータストリング
(8、2)はそのままの順序を保ちながら、ソートプロ
セッサ12に接続されたデータ記憶装置16に格納され
る。次に、データストリング(3、1)のデータ「3」
がソートプロセッサ12に入力され、同様にデータ記憶
装置16に記憶される。続いて、最初のデータストリン
グ(8、2)の先頭データ「8」と、データストリング
(3、1)の先頭データ「3」が4バイトずつデータ記
憶装置16からラッチレジスタ121、122にロード
されて、比較器120において比較が行われる。この比
較はデータを4バイト毎に順に比較することにより行わ
れる。
【0010】なお、このソート処理において、ソートキ
ーに対する順序指定として昇順が指定されている場合に
は、比較結果はいずれか小さい方が先に出力される。ま
た、同様に順序指定として降順が指定されている場合に
は、比較結果はいずれか大きい方が先に出力される。こ
れらの昇順降順に対する制御は、データの先頭バイトか
ら始まるソートキーに対して、制御部125が制御を行
う。比較結果が確定すると、データは次のソートプロセ
ッサ13に出力される。この比較処理と並行して、2番
めのデータストリング(3、1)中の次のデータ「1」
がデータ記憶装置16に格納される。この例の場合に
は、比較の結果、データ「8」が次段のソートプロセッ
サ13に出力される。このため、続く比較では、データ
「3」と、データストリング(8、2)の「8」に続く
データ「2」が比較される。比較は、同様にデータ記憶
装置16から、データ「3」とデータ「2」を4バイト
ずつ各々ラッチレジスタ121、122に入力して、4
バイトずつ比較を行うことにより処理される。
【0011】
【発明が解決しようとする課題】従来のソート処理装置
は、以上のように構成されていたので、ソート処理にお
いては、一般にレコード内部の複数のフィールドを組合
せて、これらのフィールド各々に昇順降順を独立に指定
して、その指定によってデータを並びかえることが必要
となる。このため、ソートプロセッサの制御装置では、
これら複数のキーフィールド各々に対して各々昇順、降
順の別を解釈し、それに応じた処理を行う必要があり、
ハードウェア論理が複雑になるという問題があった。
【0012】この発明は、以上のような問題点を解消す
るためになされたもので、ソート処理におけるソートキ
ー毎の昇降順指定を可能としつつ、ソートプロセッサの
内部処理は昇順または降順ソートのみで可能なようにし
て、ソートプロセッサの内部構成を簡素化することを目
的とする。
【0013】
【課題を解決するための手段】この発明に係わるソート
プロセッサは、入力データストリングを格納するデータ
記憶装置と、前記データストリングの連続する比較対象
データの大小関係を比較する比較器と、前記データ記憶
装置および前記比較器を制御する制御部を有するソート
プロセッサを複数台直列に接続して、各ソートプロセッ
サが並列に動作して、各々の比較器を用いて繰返し比較
処理を行うことで、複数のデータのソート処理を行うソ
ート処理装置において、前記比較器の比較機能と異なる
指定のキー値について、このキー値のビットを反転させ
て、初段のソートプロセッサに伝送するキー値変換部を
備えるようにしたものである。
【0014】また、前記比較器が比較するデータの大き
いほうを取り出すように構成されているときには、前記
キー値変換部は、降順指定のキー値のビットを反転させ
るようにしたものである。
【0015】また、前記比較器が比較するデータの小さ
いほうを取り出すように構成されているときには、前記
キー値変換部は、昇順指定のキー値のビットを反転させ
るようにしたものである。
【0016】
【発明の実施の形態】この実施の形態においては、一度
に比較するデータ数をK=4、比較するデータ幅を4バ
イトとした場合について説明する。図1は、この発明に
よるソートプロセッサとソートプロセッサ間の接続関係
を示す図である。図において、11、12、13はソー
トプロセッサ、15、16、17は、ソート処理するデ
ータストリングを格納する各ソートプロセッサが有する
データ記憶装置である。各ソートプロセッサ11〜13
は、データのソートキー(以降、キー値と称す)を格納
する4個のキー格納領域130〜139、ラッチレジス
タ140、比較器130およびソートプロセッサ全体を
制御する制御部125から構成されている。なお、比較
器130は、特別の回路構成を採らずに2入力の比較器
を複数組み合わせることにより実現できる。また、ラッ
チレジスタ140は、一般的なレジスタで構成するよう
にしてもよい。
【0017】また、126は前段のソートプロセッサ1
1からのデータを入力する入力バス、127は次段のソ
ートプロセッサ13にデータを出力する出力バス、12
8は接続されているデータ記憶装置16とのデータをや
りとりするアドレス及びデータバスである。136〜1
40は比較器130の入力ポートである。なお、ラッチ
レジスタ140は、比較器130で一度に比較するビッ
ト幅のレジスタであり、キー値格納部131〜134
は、データのキー値部分全てを格納できる容量を有する
レジスタファイルやメモリ素子等で構成されている。ま
た、キー値格納部131、132、133、134を便
宜上、各々1番目、2番目、3番目、4番目のキー値格
納部と称することにする。
【0018】最初に、上記のように構成されたソートプ
ロセッサのソート処理における概略の動作について説明
する。 (1)ソートプロセッサの制御部125は、比較される
個々のデータのキー値を対応するキー値格納部(131
〜134)に格納する。 (2)比較の結果、一つのデータが出力された場合、次
にデータ記憶装置16から入力するデータのキー値を、
例えば4バイト単位にラッチレジスタ135に入力し
て、比較を行い、同時に、空いているキー値格納部にも
同じデータを順次入力する。 (3)各ソートプロセッサで繰返し実行される比較処理
の最初の比較処理の開始において、比較対象となる4個
のデータの内の3個のデータのキー値各々を4個のキー
値格納部(131〜134)の内の3個のキー値格納部
(131〜133)に格納して、ソートプロセッサ内の
制御部は比較対象としてこれら3個のキー値格納部(1
31〜133)に対応する入力ポート(136〜13
8)と、ラッチレジスタ135に接続されている入力ポ
ート140を選択して、4個目のデータのキー値の先頭
部分がラッチレジスタ135に格納されると同時に比較
処理を開始する。並行して4個目のデータのキー値は、
4番目のキー値格納部134に格納する。 (4)各ソートプロセッサで繰返し実行される比較処理
の最初ではない比較処理においては、比較器130によ
る4個のデータのキー値の比較の結果、最も小さいデー
タ(昇順ソートの場合)を判定して、これを出力し、次
の比較において、出力されたデータにかわる次のデータ
のキー値をラッチレジスタ135に入力して、比較を開
始すると共に、並行して、出力されたデータのキー値が
格納されていたキー値格納部にこのデータのキー値を格
納することにより昇順のソートを行う。 (5)降順ソートの場合においては、比較の結果、最も
大きいデータを判定し、これを出力することにより、降
順のソートを実現する。 (6)ラッチレジスタ135に入力されて比較が行わ
れ、かつキー値格納部に同時に格納されているデータ
が、昇順または降順比較の結果選択され、出力された場
合、このデータにかわる次のデータに対しては、同様に
そのキー値の先頭をラッチレジスタ135に入力し、比
較を開始すると共に、並行して、出力されたデータのキ
ー値が格納されていたキー値格納部にこのデータのキー
値を入力し、このデータが比較の結果、選択されず、出
力されなかった場合には、このデータに代わって出力さ
れたデータにかわる次のデータのキー値をラッチレジス
タ135に格納して、比較を開始すると共に、並行し
て、出力されたデータのキー値が格納されていたキー値
格納部にこのデータのキー値を格納する。 (7)出力されていったデータにかわるデータがなくな
った場合、制御部125は、このデータのキー値が格納
されていたキー値格納部に対応する比較器130の入力
ポートをその後選択せず、その後の比較において比較対
象としないように制御する。
【0019】図2は、この発明によるソートプロセッサ
を用いて構成されたソート処理装置を示す図で、ソート
処理装置1は、ソートプロセッサ11〜14、各ソート
プロセッサ用のデータ記憶装置15から18、ホスト計
算機とのデータのやりとり、処理の指示のやりとりを行
うためのホスト計算機とのインタフェース部21、デー
タのキー部の値を変換するキー変換部20およびソート
処理装置1全体の制御を行なうソート処理装置制御部1
9から構成されている。キー変換部20は、先頭のソー
トプロセッサ11に接続して構成されている。以下、図
を参照しながら、この実施の形態における動作について
説明するが、ホスト計算機からデータをソート処理装置
1に入力し、ソート処理装置1がこれをソートしてホス
ト計算機に返す部分は同一であり、説明を省略する。
【0020】先ず、図2を参照しながら、この発明によ
るキー変換部20について説明する。図2は、従来例で
説明した図6と類似した構成であるが、各ソートプロセ
ッサに付加されたデータ記憶装置15、16、17、1
8の容量及び各ソートプロセッサの内部構成が異なって
いる。ソート処理装置1はホスト計算機から送られてく
るデータの列を連続的に入力して、これを指定された順
序に並べ替えて、結果を再びホスト計算機に返す。ソー
ト処理装置は、ソートプロセッサ群11、12、13、
14及びこれらソートプロセッサ群に各々付加されるデ
ータ記憶装置群15、16、17、18を線形に接続
し、更に先頭のソートプロセッサ11の前にキー変換装
置20を接続して構成される。
【0021】ソート処理においては、データ中のキー値
を基にして、データの並べ変えを行なう。例えば、ソー
ト対象のデータの形式が以下のようになっていたとし
て、ソートプロセッサは降順ソートのみが可能である場
合について説明する。 ・データ形式:キー1+キー2+キー3+非キーデータ ここで、キー1とキー3とは昇順指定で、キー2は降順
とする。制御部19は、キー1からキー3までに関し
て、昇順か、降順かの指定をホスト計算機から受取り、
これを解釈して、キー変換部20に対して、入力される
各データに対して、そのキー1とキー3に関しては、そ
のビットを反転して最初のソートプロセッサ11にデー
タを送り出すように制御する。これによって、ソートプ
ロセッサは降順ソートのみの機能しか持っていなくて
も、例に示すような昇順と降順とが混じった複数のキー
に対するソートを実現することができる。
【0022】以下に、具体例を示して説明する。例え
ば、2つのデータのキー1が”2”と”4”であった場
合、これらの2進数表記は”0010”と”0100”
であり、これらを昇順ソートすると、”2”、”4”の
順で出力することが必要である。一方、これらをビット
反転すると,1101”、”1011”であり、これら
は各々10進数”13”、”11”である。従ってこれ
らを降順ソートしても同様な順序が得られる。同様に、
ソートプロセッサが昇順ソートのみの機能しか持ってい
ない場合には、この例では、キー2に対してビット反転
を行うように、制御部19がキー変換部20に対して指
示を行なうようにすればよい。
【0023】次にソートプロセッサの動作について具体
的な例を用いて説明する。ソートプロセッサは、各々先
頭から第1段目のソートプロセッサ(P1)、第2段目
のソートプロセッサ(P2)、第3段目のソートプロセ
ッサ(P3)等と呼ばれる。第i段目のソートプロセッ
サは、(Kー1)Ki-1データ分の容量のデータ記憶装置
を各々有している。以下K=4として動作の説明を行
う。動作の例として、ソート処理装置1に8、2、1、
3、5、7、6、4、9、0、8、5、1、10、3、
4、・・・の順にデータが入力されると、まず先頭の第
1段目のソートプロセッサ11は入力されたデータを4
つずつ取り出し、これを並び替えて次段のソートプロセ
ッサ12に送り出す。
【0024】なお、ここで、データ「8」、「2」、
「1」・・・は、10進数の数字を意味するものではな
く、各々キー値とデータ本体部で構成されたデータ(但
し、キー値のみで構成される場合もある)であり、単に
データとしての大きさを表すものである。次段のソート
プロセッサ12に4つずつにソートされて入力されるデ
ータは(8、3、2、1)、(7、6、5、4)、
(9、8、5、0)、(10、4、3、1)、・・・・
となる。
【0025】2段目のソートプロセッサ12は、この4
つずつソートされたデータを入力して、これを4組ずつ
取り出し、併合して、16ずつソートされたデータ列を
次段のソートプロセッサ13に送り出す。その結果は
(10、9、8、8、7、6、5、5、4、4、3、
3、2、1、1、0)、・・・となる。第3段目のソー
トプロセッサ13以降も同様な処理を行う。この様子を
図3に示す。従来技術と同様に、図3に示すように、各
段のソートプロセッサは、前段のソートプロセッサがす
べての処理を終えない内に処理を開始することが可能で
あり、これにより、データを連続的に入力すると若干の
遅れ時間を経てデータの入力と並列にソート結果が出力
されることがわかる。
【0026】このようにして、n個のソートプロセッサ
によりKn個のデータの並び替え、即ちソート処理が行
われる。別の言い方をすると、N個のデータのソート
は、logKN個のソートプロセッサにより実現され
る。例えば220=410=100万個のデータのソートに
は、従来の2個のデータ比較による方式では、ソートプ
ロセッサは20個必要であったが、K=4とした本方式
ではソートプロセッサは10個で済むことがわかる。な
お、各ソートプロセッサは、これら比較併合処理におい
て、各々に接続されたデータ記憶装置15、16、1
7、18を記憶領域として使用する。
【0027】次に、ソートプロセッサの内部動作につい
て、図1を参照しながら説明する。ソートプロセッサ1
2に対して、前段のソートプロセッサ11からデータス
トリング(8、3、2、1)、(7、6、5、4)、
(9、8、5、0)、(10、4、3、1)・・・が入
力され、ソートプロセッサ12において、これが併合さ
れてデータストリング(10、9、8、8、7、6、
5、5、4、4、3、3、2、1、1、0)、・・・と
して次段のソートプロセッサ13に出力される場合を例
にとって説明する。
【0028】まず、入力バス126からソートプロセッ
サ12に入力されるてくるデータストリング(8、3、
2、1)、(7、6、5、4)、(9、8、5、0)
は、そのままの順序を保ちながら、ソートプロセッサ1
2に接続されたデータ記憶装置16に格納される。この
とき、データ記憶装置16へのデータの格納と平行し
て、データストリング(8、3、2、1)の先頭のデー
タ「8」、データストリング(7、6、5、4)の先頭
データ「7」、データストリング、(9、8、5、0)
の先頭データ「9」のキー値の部分が各々1番目、2番
目3番目のキー値格納部131、132、133に格納
される。この時点では、4個あるキー値格納部の内、4
番目のキー値格納部134は、まだ空きの状態である。
ここには、後に、4番目のデータストリング(10、
4、3、1)のデータのキー値が格納される。即ち、 ・1番目のキー値格納部:1番目のデータストリングの
キー値 ・2番目のキー値格納部:2番目のデータストリングの
キー値 ・3番目のキー値格納部:3番目のデータストリングの
キー値 ・4番目のキー値格納部:4番目のデータストリングの
キー値 のように対応が決められ、固定される。以上の動作は制
御部125により制御される。
【0029】次に、制御部125は、比較器130及び
そのデータ入力ポート136、137、138、13
9、140の内、キー値が格納されているキー値格納部
の最初のKー1個に相当する1番目、2番目および3番
目のキー値格納部136、137、138と、ラッチレ
ジスタ135に接続されたデータ入力ポート140から
入力されるデータ(キー値)を比較器130により比較
するように設定を行う。続いて、残っていた4番目のデ
ータストリング(10、4、3、1)が前段のソートプ
ロセッサ11から順に入力バス126に入力される。ソ
ートプロセッサ12は、まずその先頭のデータ「10」
のキー値4バイトづつ順にラッチレジスタ135に格納
し、比較を4バイトずつ行う。同時に、入力されるデー
タのキー値の部分は空いているキー値格納部134へ格
納する。
【0030】少し補足を加えると、ラッチレジスタ13
5にデータ「10」のキー値の最初の4バイトが格納さ
れると同時比較器130での比較が開始され、この例の
場合には、データ「10」が最も大きいので、データ
「10」のキー値が4バイトずつ順番にラッチレジスタ
135に格納されていくことになる。また、データ「1
0」を他のデータストリングと同様にデータ記憶装置1
6に格納するようにしてもよい。
【0031】比較器130においては、「8」、
「7」、「9」、「10」が比較される。その結果、最
も大きいデータ「10」が出力される。この例のよう
に、ラッチレジスタ135に入力されているデータがそ
のまま比較の結果次段に出力される場合には、まず、こ
のデータのキー部が比較器130から出力され、そのま
まデータ出力バス127を通じて次段のソートプロセッ
サ13に出力される。続いて、このデータにキーでない
データ部分がある場合には、データ入力バス126から
入力されてくるこのデータの非キー値データの部分をそ
のままデータ出力バス127を通じて出力する。これら
の制御は制御部125によって行われる。
【0032】続いて、4番目のデータストリングのデー
タ「10」に続くデータ「4」が入力バス126から入
力されてくる。このデータは、データ「10」の場合と
同様に、ラッチレジスタ135に4バイトづつ入力さ
れ、キー値格納部131、132、133中のデータ
「8」、「7」、「9」と4バイトずつ比較される。ま
た、ラッチレジスタ135への入力と同時に、このデー
タ「4」のキー値は空きとなっているキー値格納部13
4に格納される。この比較においては、ラッチレジスタ
135に入力されてくるデータ「4」ではなく、キー値
格納部133に格納されているデータ「9」が比較の結
果出力される。従って、この場合には、まずこのデータ
「9」のキー値の部分が比較器130からデータ出力バ
ス127を経由して次段のソートプロセッサ13に出力
される。続いて、このデータ「9」のキーでないデータ
部分がある場合には、データ記憶装置16からこのデー
タ「9」の非キー値部分を読みだし、データ出力バス1
27を経由してこれらを次段のソートプロセッサ13に
出力する。また、キー値の比較が完了したときに、デー
タ「4」においてキー値に続くキーでないデータ部分が
ある場合には、データ入力バス126により前段のソー
トプロセッサ11から送られてくるこれらデータ部分
は、データ記憶装置16に送られて記憶される。
【0033】この段階において、先程は空き(次段のソ
ートプロセッサに出力済みで不要のデータの残ってい
る)となっていたキー値格納部134には、データ
「4」のキー値が格納されており、一方、先程「9」の
キー値が格納されていたキー値格納部133が空きとな
っている。従って、制御部125は、比較器130に対
して、そのデータ入力ポート136、137、139、
140からのデータの比較するように設定を行う。設定
が終了すると、比較器130に接続されているラッチレ
ジスタ135には、データ記憶装置16から、データス
トリング(9、8、5、0)のデータ「9」に続くデー
タ「8」のキー値が4バイトずつ読み出されて格納され
て、他のキー値格納部131、132、134にそれぞ
れ格納されているデータ「8」、「7」、「4」と比較
器130において4バイトずつ比較される。この比較動
作は、データ「8」のキー値の最初の4バイトがラッチ
レジスタ135に格納されると同時に始まる。データ
「8」のキー値のラッチレジスタ135への格納と同時
に空いているキー値格納部133に同じものが格納され
て行く。さらに、同時にデータ入力バス126により前
段のソートプロセッサ11から送られてくる(10、
4、3、1)中の「4」に続くデータ「3」をデータ記
憶装置16に格納する。
【0034】図4は、以上説明したソート処理におけ
る、データの流れを図示化したものである。図におい
て、10Kはデータ「10」のキー値を示し、10K
1、10Kー2は各々データ「10」のキー値の最初の
4バイト、次の4バイトを示している。 また、この図
の例では、キー値が8バイト(4バイト*2)の場合を
示している。
【0035】なお、上記の説明において、データ「9」
が出力された後に、データ「8」のキー値部分をデータ
記憶装置16から読み出して、キー値格納部133に、
また、キー値を4バイトずつ順番にラッチレジスタに格
納するように説明したが、この動作は、図1に示したソ
ートプロセッサの構成においては、制御部125がキー
値格納部に接続されているバスを時分割に使用して行な
う。また、データ記憶装置16と、キー値格納部131
〜134およびラッチレジスタ135と、を別のバスで
接続するようにしてもよい。
【0036】以上の動作を繰り返して行くことによりソ
ート処理が完了する。ここで、ソート処理が完了に近づ
くと、4本あるデータストリングのデータがなくなって
行く。例えば、この例の場合には、データストリング
(8、3、2、1)、(7、6、5、4)、(9、8、
5、0)、(10、4、3、1)・・・・が入力され、
ソートプロセッサ12はこれを併合してデータストリン
グ(10、9、8、8、7、6、5、5、4、4、3、
3、2、1、1、0)、・・・を出力するが、出力にお
いて、2つのデータ「4」が出力されてしまうと、2本
目のデータストリング(7、6、5、4)のデータは、
このソートプロセッサ12からはなくなる。このような
データストリングに対しては、対応するキー値格納部か
らのデータを比較対象としないように制御部125が比
較器130を制御する。
【0037】次に、データ記憶装置15〜18の構成に
ついて説明する。データ記憶装置15〜18は、通常D
RAMにより構成される。例えば、100万件、64M
Bのデータのソート処理を行なうことを考えると、従来
技術と本発明では図4に示すような差異が生じる。図5
は、一度に比較するデータを変化させたときのデータ記
憶装置と必要なDRAMの数量の比較を示す図である。
このように、従来技術に比較して、本発明は、ハードウ
ェア量の減少が可能であるが、更に、比較器で一度に比
較する個数KをDRAMの容量、例えば、容量16Mb
it、8ビット幅のDRAM4つでの最小単位が8MB
であることに注目し、これの約数(この場合には4)を
選んで実現することで、DRAMの個数が少なくなるハ
ードウェア実装が可能であることがわかる。
【0038】以上のように、この実施の形態によれば、
LSIのピン数制限のために生じるソートプロセッサの
LSI化の実装問題を解決することができる。また、L
SI化の実装問題を解決することにより、ソート処理装
置で必要とするソートプロセッサの数を減少させ、以っ
てソート処理装置のハードウェア規模を小さくし、一定
データ量をソートするソート処理装置を小型化すること
が可能となる。また、このようなソート処理装置内部で
用いられるデータ記憶装置のDRAMの個数を減少さ
せ、ソート処理装置を小型化することを可能とする。ま
た、ソートプロセッサを本発明による構成にしても、ソ
ートプロセッサのデータ記憶装置へのアクセス回数増加
による性能低下が発生しない。また、ソート処理装置に
対し入力されるデータが複数のソートキーを有し、それ
らソートキー各々に対して昇順降順のソート指定が独立
に指定されている場合にも、ソートプロセッサは単一の
キーに対して降順または昇順のソートのみ行えばよく、
ソートプロセッサのハードウェアを簡素化することがで
きる。
【0039】
【発明の効果】以上のように、この発明によれば、キー
値データを反転させるキー値変換部を設けるようにした
ので、ソートプロセッサの有する比較器には比較するデ
ータのうち、最も大きいデータまたは最も小さいデータ
を選択する機能だけせれば良い。
【図面の簡単な説明】
【図1】 この発明による、ソートプロセッサの一実施
の形態を示す図である。
【図2】 この発明による、ソートプロセッサを用いて
構成したソート処理装置の構成を示す図である。
【図3】 ソート処理装置によるソートの様子を示す図
である。
【図4】 ソートプロセッサのソート処理におけるデー
タの流れを示す図である。
【図5】 一度に比較するデータを変化させたときのデ
ータ記憶装置と必要なDRAMの数量の比較を示す図で
ある。
【図6】 従来のソート処理装置のがホスト計算機との
接続形態を示す図である。
【図7】 従来のソート処理装置の構成を示す図であ
る。
【図8】 従来のソート処理装置によるデータのソート
の様子を示す図である。
【図9】 従来のソート処理装置内部で用いられている
ソートプロセッサを示す図である。
【図10】 従来のソートプロセッサにおいて、一度に
比較するデータの数を2から2より大きい数に増加させ
た場合に発生する性能低下を説明するための図である。
【符号の説明】
11、12、13、14 ソートプロセッサ、15、1
6、17、18 データ記憶装置、19 ソート処理装
置の制御部、20 キー変換装置、125 ソートプロ
セッサ内部の制御部、130 比較器、131、13
2、133、134 キー値格納部、135 ラッチレ
ジスタ、136、137、138、139140 入力
ポート。

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】 入力データストリングを格納するデータ
    記憶装置と、前記データストリングの連続する比較対象
    データの大小関係を比較する比較器と、前記データ記憶
    装置および前記比較器を制御する制御部を有するソート
    プロセッサを複数台直列に接続して、各ソートプロセッ
    サが並列に動作して、各々の比較器を用いて繰返し比較
    処理を行うことで、複数のデータのソート処理を行うソ
    ート処理装置において、前記比較器の比較機能と異なる
    指定のキー値について、このキー値のビットを反転させ
    て、初段のソートプロセッサに伝送するキー値変換部を
    備えたことを特徴とするソート処理装置。
  2. 【請求項2】 前記比較器が比較するデータの大きいほ
    うを取り出すように構成されているときには、前記キー
    値変換部は、降順指定のキー値のビットを反転させるこ
    とを特徴とする請求項1に記載のソート処理装置。
  3. 【請求項3】 前記比較器が比較するデータの小さいほ
    うを取り出すように構成されているときには、前記キー
    値変換部は、昇順指定のキー値のビットを反転させるこ
    とを特徴とする請求項1に記載のソート処理装置。
JP2000125681A 2000-01-01 2000-04-26 ソート処理装置 Pending JP2000322236A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2000125681A JP2000322236A (ja) 2000-01-01 2000-04-26 ソート処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000125681A JP2000322236A (ja) 2000-01-01 2000-04-26 ソート処理装置

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP10700196A Division JP3196637B2 (ja) 1996-04-26 1996-04-26 ソートプロセッサおよびソート処理装置

Publications (1)

Publication Number Publication Date
JP2000322236A true JP2000322236A (ja) 2000-11-24

Family

ID=18635590

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000125681A Pending JP2000322236A (ja) 2000-01-01 2000-04-26 ソート処理装置

Country Status (1)

Country Link
JP (1) JP2000322236A (ja)

Similar Documents

Publication Publication Date Title
US8713080B2 (en) Circuit for compressing data and a processor employing same
JP3026962B2 (ja) 語列圧縮回路
US5081608A (en) Apparatus for processing record-structured data by inserting replacement data of arbitrary length into selected data fields
EP0961966B1 (en) N-way processing of bit strings in a dataflow architecture
JP3196637B2 (ja) ソートプロセッサおよびソート処理装置
CN114780151A (zh) 一种基于归并排序算法实现可变规模数量的数据排序系统
EP0405759A2 (en) Sort accelerator using rebound sorter as merger
US5511189A (en) Data sorting apparatus capable of detecting completion of data sorting early and sorting method therefor
JPH0666050B2 (ja) ソート処理方法
JP2000322236A (ja) ソート処理装置
US6240540B1 (en) Cyclic redundancy check in a computer system
JPS62245467A (ja) シンボリツク処理システムおよび方法
JPH03131969A (ja) 記号列検索方法および検索装置
JPH0317780A (ja) 記号列検索方法および装置
JP3113765B2 (ja) 可変長符号デコード回路
JP2959497B2 (ja) データ処理装置及びデータ処理方法
JP2590866B2 (ja) データ検索装置
JPH05143287A (ja) ハードウエアソート処理装置
JPH0797310B2 (ja) ソ−ト処理装置
CN117806812A (zh) 一种基于信息序列的随机性白化增强puf提取系统
JPS6237739A (ja) ソ−ト処理装置
CN119148973A (zh) 基于或非门的4-2压缩器近似加法器树电路
JP3447180B2 (ja) データ演算回路
JPH0628151A (ja) シリアルデータのパラレルラッチ回路
JPH0271327A (ja) ソート処理装置

Legal Events

Date Code Title Description
A02 Decision of refusal

Effective date: 20040427

Free format text: JAPANESE INTERMEDIATE CODE: A02