JPS6152740A - マージ・ソート方法および装置 - Google Patents
マージ・ソート方法および装置Info
- Publication number
- JPS6152740A JPS6152740A JP17330984A JP17330984A JPS6152740A JP S6152740 A JPS6152740 A JP S6152740A JP 17330984 A JP17330984 A JP 17330984A JP 17330984 A JP17330984 A JP 17330984A JP S6152740 A JPS6152740 A JP S6152740A
- Authority
- JP
- Japan
- Prior art keywords
- data
- engine
- pointers
- bit
- bits
- 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
Links
Landscapes
- Complex Calculations (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〔発明の利用分野〕
本発明はデータのマージおよびソーテ、rングを実行す
る専用ハードウェアまたはその方式に係り、特にデータ
長の変化に対して柔軟性のあるマージおよび/またはソ
ート方式および[1に関する。
る専用ハードウェアまたはその方式に係り、特にデータ
長の変化に対して柔軟性のあるマージおよび/またはソ
ート方式および[1に関する。
データベース向きのソート用ハードウェアとしては、本
発明発明者らによるヒープソート型のエンジンなどがあ
る。(Tanaka、 Y、 et al :Pipe
line 5carchinHand 5ortin6
Modules asComponents of
a Data Flow Database Comp
uterl)。
発明発明者らによるヒープソート型のエンジンなどがあ
る。(Tanaka、 Y、 et al :Pipe
line 5carchinHand 5ortin6
Modules asComponents of
a Data Flow Database Comp
uterl)。
IF2P ContXress’ 80. PP、 4
27−432. Oct、 1980)このエンジンは
、データの転送とソーティング演算を完全にオーバラッ
プさせることが可能であるため非常に効率のよい演算が
可能である。しかしこのエンジンは以下のような点で問
題があった。
27−432. Oct、 1980)このエンジンは
、データの転送とソーティング演算を完全にオーバラッ
プさせることが可能であるため非常に効率のよい演算が
可能である。しかしこのエンジンは以下のような点で問
題があった。
(1)回路が複雑で、LSI化する際、素子数が多すぎ
て問題が生ずる6 (2)データ長の変更に対する拡張性がない。
て問題が生ずる6 (2)データ長の変更に対する拡張性がない。
他のソート・エンジンとしては、マージ・ソート型のエ
ンジンなどがある。 (Todd、 S、 :Al
gorithm and llardware for
a MerF、e 5ortυsingMultip
le Procsssors、 IBM 、L R&D
、 vol。
ンジンなどがある。 (Todd、 S、 :Al
gorithm and llardware for
a MerF、e 5ortυsingMultip
le Procsssors、 IBM 、L R&D
、 vol。
22、 no、 5. May 1978)マージ・ソ
ートはヒープソートなどに比して、演算方式が単純であ
るため。
ートはヒープソートなどに比して、演算方式が単純であ
るため。
ハードウェアとしては簡単化できるが、(2)の問題は
解決されていなかった。
解決されていなかった。
上記の事情に鑑み、本発明はデータ長の変化に対して、
柔軟性のあるソーチイング用のエンジンを構築するもの
であり、LSI化を可能とするため、回路をできるだけ
単純化する要求にも応えるマージ・ソート方式および装
置を提供することを目的とする。
柔軟性のあるソーチイング用のエンジンを構築するもの
であり、LSI化を可能とするため、回路をできるだけ
単純化する要求にも応えるマージ・ソート方式および装
置を提供することを目的とする。
データ長の変化に対する拡張性の実現手段としては、デ
ータをある定められたピッ1へ数、(これをmビットと
する)mビットごとに分割して演算を行う方法が考えら
れる。これは、具体的には、mビットのデータを処理す
る演算器を複数個接続した構成となる。データ長の変更
に対しては、演算器の接続個数を変更することによって
対処することが可能となる。この際、各演算機の間で情
報を交換する必要が生ずるが、この交換情報量を少量化
する必要がある。本発明は、あるmビットを処理してい
る演算器は、それより1つ上位のmビットを処理してい
る演算器だけから入力情報を受は取り、それより1つ下
位のmビットを処理している演算器だけに情報を出力す
るようにしたマージ・ソートを伴なうためのマーシャに
関するものである。本発明によれば一般にマーシャを直
列に接続していくことにより、マージ・ソータが構築で
きる。
ータをある定められたピッ1へ数、(これをmビットと
する)mビットごとに分割して演算を行う方法が考えら
れる。これは、具体的には、mビットのデータを処理す
る演算器を複数個接続した構成となる。データ長の変更
に対しては、演算器の接続個数を変更することによって
対処することが可能となる。この際、各演算機の間で情
報を交換する必要が生ずるが、この交換情報量を少量化
する必要がある。本発明は、あるmビットを処理してい
る演算器は、それより1つ上位のmビットを処理してい
る演算器だけから入力情報を受は取り、それより1つ下
位のmビットを処理している演算器だけに情報を出力す
るようにしたマージ・ソートを伴なうためのマーシャに
関するものである。本発明によれば一般にマーシャを直
列に接続していくことにより、マージ・ソータが構築で
きる。
以下、本発明を一実施例により説明する。
一般に、マージ・ソーティングとは、それぞれすでにソ
ーティングされたN個1M個のデータから、(N+M)
個のソーティング・データを得るものである。具体的に
は、まず、それぞれの組の先頭の2つのデータの比較を
行い、データを昇順にソートする場合は、小さい方のデ
ータを、データと降順にソートする場合は大きい方のデ
ータを、進んで出力するというものである0次に、選ば
れなかった組に関しては、そのままのデータ、選ばれた
組の方に関しては、次のデータに関して同様の演算を行
っていくと、(M+N)個のデータのソーティングが終
了することになる。
ーティングされたN個1M個のデータから、(N+M)
個のソーティング・データを得るものである。具体的に
は、まず、それぞれの組の先頭の2つのデータの比較を
行い、データを昇順にソートする場合は、小さい方のデ
ータを、データと降順にソートする場合は大きい方のデ
ータを、進んで出力するというものである0次に、選ば
れなかった組に関しては、そのままのデータ、選ばれた
組の方に関しては、次のデータに関して同様の演算を行
っていくと、(M+N)個のデータのソーティングが終
了することになる。
第1図は、本発明の構成図である。マージ・ソータは、
mビットずつの比較演算を行うビット・スライ訃°7−
ジャー及び入力用のバッフ7よ 1り植成さ
れる。ここで、最上位(=0)のmビットの演算を行う
ビット・スライスド・マーシャーをモディファイド・ビ
ットスライスド・マーシャ10(以下MIISMIOと
略)、それ以下、各mピッ1−の演算を行うビット・ス
ライスド・マジャをビット・スライスド・マーシャ11
(以下BSM11と略す)とする。なお、上位からに
番めのB’SMIIをBSMII−にと呼ぶ。(MBS
M 10はに=oに対応するとする。)ここでは、それ
ぞれの組のデータの個数を等しいとしてN個ずつとする
。また、ここでは昇順のソーティングを行うものとする
。R,を一方の組の9番めのデータ(n:L−+Nまで
変化する)とし、R7をもう一方の組の9番めのデータ
とする。R,、、、L□、をそれぞれ、R,、L、の上
からに番めのmビットのデータであるとする。(ただし
、k=oを最上位のmビットのデータとする。)従って
、Ro、。。
mビットずつの比較演算を行うビット・スライ訃°7−
ジャー及び入力用のバッフ7よ 1り植成さ
れる。ここで、最上位(=0)のmビットの演算を行う
ビット・スライスド・マーシャーをモディファイド・ビ
ットスライスド・マーシャ10(以下MIISMIOと
略)、それ以下、各mピッ1−の演算を行うビット・ス
ライスド・マジャをビット・スライスド・マーシャ11
(以下BSM11と略す)とする。なお、上位からに
番めのB’SMIIをBSMII−にと呼ぶ。(MBS
M 10はに=oに対応するとする。)ここでは、それ
ぞれの組のデータの個数を等しいとしてN個ずつとする
。また、ここでは昇順のソーティングを行うものとする
。R,を一方の組の9番めのデータ(n:L−+Nまで
変化する)とし、R7をもう一方の組の9番めのデータ
とする。R,、、、L□、をそれぞれ、R,、L、の上
からに番めのmビットのデータであるとする。(ただし
、k=oを最上位のmビットのデータとする。)従って
、Ro、。。
LyellかMBSM 10に、Rn+に+ L++l
h がBSMII−kに入力されるデータということに
なる。入力用バッファ12はこれらの入力用データを格
納するバッファとする。ただし、入力用バッファ12−
〇を、L、、。、R3,。(n : O−+N)を格納
するバッファとし、入力用バッファ12−kをRn l
k 1L、1.を格納するバッファとする。具体的な
格納図は第1図中に示しである。
h がBSMII−kに入力されるデータということに
なる。入力用バッファ12はこれらの入力用データを格
納するバッファとする。ただし、入力用バッファ12−
〇を、L、、。、R3,。(n : O−+N)を格納
するバッファとし、入力用バッファ12−kをRn l
k 1L、1.を格納するバッファとする。具体的な
格納図は第1図中に示しである。
MBSMIOは、BSMII−LLに対し、2つの制御
情報を出力し、BSMII−には、BSMll−に−1
より、2つの入力情報を得、BSMII−に+1に、2
つの出力情報を出力する。 NBSMloとBSMII
では、入力情報の有無が異なる。
情報を出力し、BSMII−には、BSMll−に−1
より、2つの入力情報を得、BSMII−に+1に、2
つの出力情報を出力する。 NBSMloとBSMII
では、入力情報の有無が異なる。
第2図は、BSMII−kに対するソート対象データの
入力方法を詳細に示したものである。
入力方法を詳細に示したものである。
NBSMIOに対するソート対象データの入力方法と演
算結果の出力方法も同様である。BSMII−には、r
p20. Qp21という2つのポインタを持つ、rp
20はR12,用の入力ポインタで、Qp21はり、、
用の入力ポインタである。従って、BSMII−には、
入力用バッファ12−にの中で、r p 20 jQ
p 21が指しているデータ、すなわち、Ro、に関し
てはrp番め、Lmlkに関しては22番めのデータを
それぞれ入力データとする。具体的には、RrP+1+
+ Ltpyhが入力データとなる。
算結果の出力方法も同様である。BSMII−には、r
p20. Qp21という2つのポインタを持つ、rp
20はR12,用の入力ポインタで、Qp21はり、、
用の入力ポインタである。従って、BSMII−には、
入力用バッファ12−にの中で、r p 20 jQ
p 21が指しているデータ、すなわち、Ro、に関し
てはrp番め、Lmlkに関しては22番めのデータを
それぞれ入力データとする。具体的には、RrP+1+
+ Ltpyhが入力データとなる。
この時、ト10SMIOにバッファ12−Oからal+
n +b□、。が入力されるのを、タイムOとすると、
B S M l 1− kにバッファ12−kからao
+に+bnTkが入力されるのは、タイムにとなる。す
なわち、BSMII−にはBSMI 1−に−1より、
1タイムずつ演算が遅れて進んでいくことになる。
n +b□、。が入力されるのを、タイムOとすると、
B S M l 1− kにバッファ12−kからao
+に+bnTkが入力されるのは、タイムにとなる。す
なわち、BSMII−にはBSMI 1−に−1より、
1タイムずつ演算が遅れて進んでいくことになる。
同様にデータの出力も1タイムずつ遅れていくことにな
る。これは、BSMII−にで、am+に+b、2.を
演算する際、a *+に−11b mv&−1の演算結
果を知る必要があるためである。これに関する情報を、
BSMII−には、BSMII−に−1より得る。
る。これは、BSMII−にで、am+に+b、2.を
演算する際、a *+に−11b mv&−1の演算結
果を知る必要があるためである。これに関する情報を、
BSMII−には、BSMII−に−1より得る。
次に、第4図にMBSMIOの詳a箭成を、第5図にB
SMII−にの詳細構成を示す。MBSM 10は、最
上位のmビットを処理するため、単に、blFT。
SMII−にの詳細構成を示す。MBSM 10は、最
上位のmビットを処理するため、単に、blFT。
とa、2.。の小さい方のデータをデータ出力線0UT
PUT44に出力すればよいことになる。一方、BSM
II−にの場合には、上位の演算結果によって、選択す
べき数がかわってくる6例えば。
PUT44に出力すればよいことになる。一方、BSM
II−にの場合には、上位の演算結果によって、選択す
べき数がかわってくる6例えば。
BSMII−1で* b jLFjl * a r、1
の比較を行う場合、b lFl+l>arFWl+であ
れば、b trolとarp+1の大小によらず、ar
p++を出力しなければならない。というのは、この場
合、bL□1を出力するとまだ上位で、b□、。が出力
されていないのに、b□、を出力してしまうことになる
からである。
の比較を行う場合、b lFl+l>arFWl+であ
れば、b trolとarp+1の大小によらず、ar
p++を出力しなければならない。というのは、この場
合、bL□1を出力するとまだ上位で、b□、。が出力
されていないのに、b□、を出力してしまうことになる
からである。
b AFT。j bLPTLはす。という数をスライス
化したものであるため、これをバラバラに出力すると正
しい結果が得られなくなる。この場合、b AFT。=
a、□。が成立した時始めて、b LFIIとa2.1
の大小により出力すべき値を決めることができる。本発
明では、これらの判断を、上位の演算器とのポインタの
差によって行なう。すなわち、上位とのポインタがOに
なったということでそのポインタを進めてはいけないこ
とがわかるためである。
化したものであるため、これをバラバラに出力すると正
しい結果が得られなくなる。この場合、b AFT。=
a、□。が成立した時始めて、b LFIIとa2.1
の大小により出力すべき値を決めることができる。本発
明では、これらの判断を、上位の演算器とのポインタの
差によって行なう。すなわち、上位とのポインタがOに
なったということでそのポインタを進めてはいけないこ
とがわかるためである。
(上位のポインタより下位のポインタが先に進むという
ことは、上位で出力していない数を下位で出力したとい
うことになる。)上位の演算器は。
ことは、上位で出力していない数を下位で出力したとい
うことになる。)上位の演算器は。
b talkとarl’lkの演算の効果rp20.1
2p21を進めた場合には、それぞれの制御情報出力線
CTLR42、CTLL43を1にし、て、そうでない
場合は、Oにして下位の演算器に知らせる。(これは、
MBSMIO,BSMIIにいずれも共通している。)
下位の演算器はこれを、RI50.LI51に受ける。
2p21を進めた場合には、それぞれの制御情報出力線
CTLR42、CTLL43を1にし、て、そうでない
場合は、Oにして下位の演算器に知らせる。(これは、
MBSMIO,BSMIIにいずれも共通している。)
下位の演算器はこれを、RI50.LI51に受ける。
(MBSM 10は上位の演算器がないため、この部分
はなくともよい。)上位の演算器とのポインタの差は、
RI50.LI51の内容を加えて行き、自分自身のポ
インタを進めた時、この値を減ずればよいことになる。
はなくともよい。)上位の演算器とのポインタの差は、
RI50.LI51の内容を加えて行き、自分自身のポ
インタを進めた時、この値を減ずればよいことになる。
D、52.D、53は」二位の演算器とのポインタの差
(D、152はrp20、D、53はQP21に関する
。)を表わす。
(D、152はrp20、D、53はQP21に関する
。)を表わす。
ただし、 arr+h+ t)1?にとの演算を行う際
には、すでにRI50.LI51に上位からの制御情報
が入力されているため、DR52,DL 53にそれぞ
れRI50.LI51を加えた値に従って、演算を行う
必要がある。D’R54,D’L 55をこの加算結果
とし、この加算を行うためにカウンタI56.カウンタ
■57を設ける。それぞれのカウンタは、RI50.L
I51が1の時。
には、すでにRI50.LI51に上位からの制御情報
が入力されているため、DR52,DL 53にそれぞ
れRI50.LI51を加えた値に従って、演算を行う
必要がある。D’R54,D’L 55をこの加算結果
とし、この加算を行うためにカウンタI56.カウンタ
■57を設ける。それぞれのカウンタは、RI50.L
I51が1の時。
DR52,DL53の内容を1増して、D’ 1154
゜D’L55にそれぞれ出力し、RI50.LI51が
0の時には、D、52.D、、53の内容そのままをD
’ 、54.D’ 、、55に出力する。D、52゜D
、53.o′、54.o″L 55.加算回路I56.
加算回加算57は、上位とのポインタとの差を把握する
ために必要な部分であるため、MBSM 10には存在
しない。
゜D’L55にそれぞれ出力し、RI50.LI51が
0の時には、D、52.D、、53の内容そのままをD
’ 、54.D’ 、、55に出力する。D、52゜D
、53.o′、54.o″L 55.加算回路I56.
加算回加算57は、上位とのポインタとの差を把握する
ために必要な部分であるため、MBSM 10には存在
しない。
一方、この考え方に基づくとarp+hとb□のうちの
小さい方を選んで出力しようとした時、a yolk
=b talkが成立すると、rp20.Qp21の両
方のポインタを進める必要がある。例えば、a工、。=
b1.。が成立したとする。BSMII−1はこの場合
、al、□とbt+□の小さい方のデータを必らず選択
する必要があるため、 MBSM 10に両方のポイン
タを進めてもらい、BSMII−1が、a12.とbl
、1の演算を行う際、BSMII−1のD’ 、54.
D’ L55の値を1にしておかなければならない、
(MBSMIOが、rP+ ipの一方しか進めない
と、BSMII−1とのポインタの差(D’ 、154
.D’ L55)のどちらか一方が0になるため、a工
2、とb12、の小さい方がポインタの差がOになって
いる方だと支障が生ずる。)rp20.Rp21の両方
を動かしても出力するデータは1つであるため、1つポ
インタを進めすぎたということを記憶する必要がある。
小さい方を選んで出力しようとした時、a yolk
=b talkが成立すると、rp20.Qp21の両
方のポインタを進める必要がある。例えば、a工、。=
b1.。が成立したとする。BSMII−1はこの場合
、al、□とbt+□の小さい方のデータを必らず選択
する必要があるため、 MBSM 10に両方のポイン
タを進めてもらい、BSMII−1が、a12.とbl
、1の演算を行う際、BSMII−1のD’ 、54.
D’ L55の値を1にしておかなければならない、
(MBSMIOが、rP+ ipの一方しか進めない
と、BSMII−1とのポインタの差(D’ 、154
.D’ L55)のどちらか一方が0になるため、a工
2、とb12、の小さい方がポインタの差がOになって
いる方だと支障が生ずる。)rp20.Rp21の両方
を動かしても出力するデータは1つであるため、1つポ
インタを進めすぎたということを記憶する必要がある。
C40はポインタを余分に動かした回数を記憶する。ま
た、どんな値を蓄積したかを記憶するため、出力結果を
V41に記憶しておく。この蓄積結果がはき出されるの
は、以下の3つのケースが成立した場合である(1)両
方のポインタが進められなくなった場合。(2)どちら
か一方のポインタしか進められなくなった時には進めら
れる側のポインタが指している値がV41と異った場合
、(3)両方のポインタが進められる時にはそれぞれの
ポインタが指している小さい方の値がV41と異った場
合。
た、どんな値を蓄積したかを記憶するため、出力結果を
V41に記憶しておく。この蓄積結果がはき出されるの
は、以下の3つのケースが成立した場合である(1)両
方のポインタが進められなくなった場合。(2)どちら
か一方のポインタしか進められなくなった時には進めら
れる側のポインタが指している値がV41と異った場合
、(3)両方のポインタが進められる時にはそれぞれの
ポインタが指している小さい方の値がV41と異った場
合。
以上で、 MBSNI Oの演算回路145とBSMl
17 kの演算回路T158以外の部分の説明を終え
る。以下、2つの演算回路の動きについて述べる。M[
15Ml0とBSMII−にの違いは、すでに述べたよ
うに、上位の演算器の演算結果の制限を受けるか、受け
ないかの違いである。BSMII−には、D’ R54
,D’ L55がOでない場合は、上位の演算器のポイ
ンタと自分のポインタとの差がある時であるため、rp
20. Qp21の両ボインクを進めてもよいため、上
位演算器の結果の制限を受けていないことになる。従っ
て、演算回路145の処理内容は、D’ 、54!<O
lかつ、D’、55〜0の時の演算回路[58の処理内
容と等しくなる。従って、ここでは演算回路n58の動
きを各ケースについて説明する。
17 kの演算回路T158以外の部分の説明を終え
る。以下、2つの演算回路の動きについて述べる。M[
15Ml0とBSMII−にの違いは、すでに述べたよ
うに、上位の演算器の演算結果の制限を受けるか、受け
ないかの違いである。BSMII−には、D’ R54
,D’ L55がOでない場合は、上位の演算器のポイ
ンタと自分のポインタとの差がある時であるため、rp
20. Qp21の両ボインクを進めてもよいため、上
位演算器の結果の制限を受けていないことになる。従っ
て、演算回路145の処理内容は、D’ 、54!<O
lかつ、D’、55〜0の時の演算回路[58の処理内
容と等しくなる。従って、ここでは演算回路n58の動
きを各ケースについて説明する。
ケース1 : D’ 、54.=D’ 、55=C40
=0゜ケース1は存在しない。これは、Qp20もrp
21も進められず、かつ、今までに蓄積したデータもな
いことになる。従って、出力すべきデータが何もない状
況である。しかし、BSMII−には、BSMII−に
−1に比較してタイム1だけ遅れているため、少くとも
1つは出力すべきデー、、より在すうおい、あ6.1 ケース2 : D’ 、54=D’ 、、55=O,C
40〉0 この場合、rp20. Qp21は進めることはできな
いため、今まで蓄積してきたデータを出力することにな
る。従って、以下の演算が行なわれる。
=0゜ケース1は存在しない。これは、Qp20もrp
21も進められず、かつ、今までに蓄積したデータもな
いことになる。従って、出力すべきデータが何もない状
況である。しかし、BSMII−には、BSMII−に
−1に比較してタイム1だけ遅れているため、少くとも
1つは出力すべきデー、、より在すうおい、あ6.1 ケース2 : D’ 、54=D’ 、、55=O,C
40〉0 この場合、rp20. Qp21は進めることはできな
いため、今まで蓄積してきたデータを出力することにな
る。従って、以下の演算が行なわれる。
CTLR42←O、CTLL43←O、0UTPUT4
4←V41.C404−C40−1,D、、534−D
’ &55、DI152←D’、54 ケース3 : D’ 、55=O,D’ 、54>0こ
の場合は、Qp21ii動かせない状況になっている。
4←V41.C404−C40−1,D、、534−D
’ &55、DI152←D’、54 ケース3 : D’ 、55=O,D’ 、54>0こ
の場合は、Qp21ii動かせない状況になっている。
この場合はさらに、2つのケースにわけられる。
ケース3.1 : C40=Oo r atxh =
V41この場合は、a、□、を出力し、rp20を進め
ればよい。C40は変更する必要はない。従って、以下
に示す演算が行なわれる。
V41この場合は、a、□、を出力し、rp20を進め
ればよい。C40は変更する必要はない。従って、以下
に示す演算が行なわれる。
CTLR42←1 、 CTLL43←O、0UTPU
T44←a PP1kl V 41←arFlkt r
p20=rp20+1、DL53=D’ L55.D、
52=D’ 、154ケース3.2:C40:40+
and+ arp+b 失この場合は、過去に蓄積され
たデータがある上。
T44←a PP1kl V 41←arFlkt r
p20=rp20+1、DL53=D’ L55.D、
52=D’ 、154ケース3.2:C40:40+
and+ arp+b 失この場合は、過去に蓄積され
たデータがある上。
a talbが、V41と異なるため、蓄積されたデー
タをまず出力する必要がある。
タをまず出力する必要がある。
CTLR42←O、CTLL43←O、0UTPUT4
4←V41.C40←C40−1,D、524−D’
。
4←V41.C40←C40−1,D、524−D’
。
54、D、53←D’、55
ケース4 : D’ 、55>O,D’ 1154=0
この場合は、ケース3とD’、、55とD’、54の関
係が逆になった場合であるため、ケース3の場合の対称
形となる。
この場合は、ケース3とD’、、55とD’、54の関
係が逆になった場合であるため、ケース3の場合の対称
形となる。
ケース4.1 : C40”Oo r btp+h
=V41演算結果は以下の様である。CTLR42←O
、CTLL43 ←1 + 0UTPUT444− b
ir+ht V 41 ←bip+h+Qp21←Qp
2’l+1.D、53←D’、55−1.0.52←D
’、54 ケース4.2 :C40待Oa n d b、、、、
qV41演算結果を以下に示す。
=V41演算結果は以下の様である。CTLR42←O
、CTLL43 ←1 + 0UTPUT444− b
ir+ht V 41 ←bip+h+Qp21←Qp
2’l+1.D、53←D’、55−1.0.52←D
’、54 ケース4.2 :C40待Oa n d b、、、、
qV41演算結果を以下に示す。
CTLR42←O、CTLL43←O、0UTPUT4
4←V41.C404−C:40−1.D、534−D
’ L55゜DII52←D’、53 ケース5 : D’ 、55>O,D’ 、154>0
この場合、 Qp21.rp20とも進められる余地
があるため、aFolkとす、□1の比較を行うことが
可能となる。ただし、M i N(a rFlkl b
、、、、)をarP+にとb 1Flkの値の小さい
方の値とする。
4←V41.C404−C:40−1.D、534−D
’ L55゜DII52←D’、53 ケース5 : D’ 、55>O,D’ 、154>0
この場合、 Qp21.rp20とも進められる余地
があるため、aFolkとす、□1の比較を行うことが
可能となる。ただし、M i N(a rFlkl b
、、、、)をarP+にとb 1Flkの値の小さい
方の値とする。
ケース5.i : MI N Catvrht bty
+J 4V41andc40’H0 この場合、蓄積されたデータがあり、かつ、V4Lが、
a rp+hとb AFtkのいずれよりも小さいとい
うことであるため、蓄積データをまず出力する必要があ
る。以下の様な演算結果となる。
+J 4V41andc40’H0 この場合、蓄積されたデータがあり、かつ、V4Lが、
a rp+hとb AFtkのいずれよりも小さいとい
うことであるため、蓄積データをまず出力する必要があ
る。以下の様な演算結果となる。
CTLR42←O、CTLL43←O、0UTPIJT
44←V41.C404−C40−1,DL53←D’
L55゜D、52←D’、54 ケース5.2 : C40=O,o r、MiN(a−
r−h、bL、h) =V41 この場合は、apr+h+ bipl&の値によって演
算結果が決まる。
44←V41.C404−C40−1,DL53←D’
L55゜D、52←D’、54 ケース5.2 : C40=O,o r、MiN(a−
r−h、bL、h) =V41 この場合は、apr+h+ bipl&の値によって演
算結果が決まる。
ケース582 a 1 : a rFlk T b 1
Flkこの場合、b Larkを出力することになる。
Flkこの場合、b Larkを出力することになる。
演算結果は以下の様になる。
CTLR42←O、CTLL43←1 、0UTPUT
44←btr+h+ V41”btp+b+ ’Q p
21←Q p 21 +1、D、53←D’ 、55
−1.D、52←D’、54ケース5 、2−2 :
a −p、k< b−2−この場合、a rFlkを出
力することになる。演算結果は以下の様になる6 CTLR42←1 、 CTLL43←O、0UTPU
T44←arP+に+ V41←atprhr r p
20←rp20+1、D、53←D’ 、55.D、
52←D’、54−ケース5 * 2 + 3 : a
rFlk ” b tv*hこの場合、どちらの値を
出力してもよいことになる。 Q p 21 + r
p 20とも進め、C40を1つ増やす。
44←btr+h+ V41”btp+b+ ’Q p
21←Q p 21 +1、D、53←D’ 、55
−1.D、52←D’、54ケース5 、2−2 :
a −p、k< b−2−この場合、a rFlkを出
力することになる。演算結果は以下の様になる6 CTLR42←1 、 CTLL43←O、0UTPU
T44←arP+に+ V41←atprhr r p
20←rp20+1、D、53←D’ 、55.D、
52←D’、54−ケース5 * 2 + 3 : a
rFlk ” b tv*hこの場合、どちらの値を
出力してもよいことになる。 Q p 21 + r
p 20とも進め、C40を1つ増やす。
CTLR424−1、CTLL434−1 、0UTP
UT44.4−a?Flkl V41←arr++++
C404−C40+1゜ff1p21←Qp21+l
、rp20←rp20+1 、DL s 3←D’ 、
55−1.D’ 、52←D /8M[15Ml0の演
算回路Iの動きはケース5に等しいことになる。このた
め、BSMIIのRI50゜LI51を常に1セツトし
ておくと、BSMIIはMSBMIOと等価な動きをす
ることになる。
UT44.4−a?Flkl V41←arr++++
C404−C40+1゜ff1p21←Qp21+l
、rp20←rp20+1 、DL s 3←D’ 、
55−1.D’ 、52←D /8M[15Ml0の演
算回路Iの動きはケース5に等しいことになる。このた
め、BSMIIのRI50゜LI51を常に1セツトし
ておくと、BSMIIはMSBMIOと等価な動きをす
ることになる。
従って、第6図のように、各BSMIIに制御回路61
を設け、制御信号62をON、OFFにすることにより
、RI50.LI51に、上位からのRO42,LI4
3をそのまま入力させるか(制御信号62=OFFの場
合)、常に1を入力させる(制御信号62=ONの場合
)ようにすることができる、制御信号62−kをONに
したBSMII−には、最上位のmビットの演算を処理
するMIISMIOと等価な動きをする。従って、すべ
ての制御信号62−kをOFFにすることにより、1つ
の長いデータをソートする演算器を、適当な箇所の制御
信号62−kをONにすることにより、短いデータをソ
ートする複数の演算器を構築することができる。
を設け、制御信号62をON、OFFにすることにより
、RI50.LI51に、上位からのRO42,LI4
3をそのまま入力させるか(制御信号62=OFFの場
合)、常に1を入力させる(制御信号62=ONの場合
)ようにすることができる、制御信号62−kをONに
したBSMII−には、最上位のmビットの演算を処理
するMIISMIOと等価な動きをする。従って、すべ
ての制御信号62−kをOFFにすることにより、1つ
の長いデータをソートする演算器を、適当な箇所の制御
信号62−kをONにすることにより、短いデータをソ
ートする複数の演算器を構築することができる。
本発明によれば、データ長の変化に対応したソータが柔
軟に構築可能である。ただし、ソータは第1図に示した
装置を直列に°複数段接続したものである。ビット・ス
ライス化した各マーシャから出力される情報は2ビツト
であり、N個のソーティングを行うために必要なマーシ
ャの段数は、Q og2Nであるため、ビット・スライ
ス化したマーシャをN段接続した回路をチップ化した場
合に必要なビン数は入出力制御情報を併わせて4Qoz
2r4となる。 N=4096とすると、この値は48
となる。
軟に構築可能である。ただし、ソータは第1図に示した
装置を直列に°複数段接続したものである。ビット・ス
ライス化した各マーシャから出力される情報は2ビツト
であり、N個のソーティングを行うために必要なマーシ
ャの段数は、Q og2Nであるため、ビット・スライ
ス化したマーシャをN段接続した回路をチップ化した場
合に必要なビン数は入出力制御情報を併わせて4Qoz
2r4となる。 N=4096とすると、この値は48
となる。
1ビット単位でスライス化を行った場合は、入力データ
、出力データ用それぞれ1本ずつ、この他。
、出力データ用それぞれ1本ずつ、この他。
Vcc(電源L grand (アース)など、必要な
ピン数の合計は50本強で済む、また、必要なトランジ
スタ数も、スタティックRAMで10万個程度ダイナミ
ックRAMで5万個程度と予測され。
ピン数の合計は50本強で済む、また、必要なトランジ
スタ数も、スタティックRAMで10万個程度ダイナミ
ックRAMで5万個程度と予測され。
現在のLSI化技術で充分LSI化可能であると考えら
れる。
れる。
第1図は本発明の全体構成図、第2図は本9!明におけ
る入力データの格納形態と出力形態を示す図、第3図は
本発明におけるデータの入力タイミングを示す説明図、
第4図は本発明のMI33Mのも!成を示すブロック図
、第5図はBSMの枯成を示すブロック図、第6図は長
いデータをマージする1つの装置と短いデータをマージ
する複数の装置のtIW築法を示す図である。 10・・・MIISM、 11・・・BSM。
る入力データの格納形態と出力形態を示す図、第3図は
本発明におけるデータの入力タイミングを示す説明図、
第4図は本発明のMI33Mのも!成を示すブロック図
、第5図はBSMの枯成を示すブロック図、第6図は長
いデータをマージする1つの装置と短いデータをマージ
する複数の装置のtIW築法を示す図である。 10・・・MIISM、 11・・・BSM。
Claims (1)
- 【特許請求の範囲】 1、入力用データを格納するバッファと処理結果を格納
するバッファと2組のすでにソートされた複数個の入力
データをマージするエンジンよりなる系において、該エ
ンジン及び、上記入力データのそれぞれをビットスライ
ス化し、スライス化されたエンジンの間で制御情報を交
換しながら処理を進めることを特徴とするマージ・ソー
ト方式。 2、第1項記載の系において、或るエンジンがそれより
1つ上位のmビットの処理を行うエンジンより制御情報
を入力し、1つ下位のmビットの処理を行うエンジンに
制御情報を出力することを特徴とするマージ・ソート方
式。 3、第2項記載の系において上記入出力する制御情報を
ビット・スライス化されたエンジンに入力し、上記ビッ
トスライス化された上記2組のデータの中で、現在それ
ぞれの組で入力対象となるデータが格納されている上記
バッファのアドレスを示すそれぞれの組に対応して設け
られた計2つのポインタをそれぞれ進める、進めないと
いうことを2つの制御情報とするマージ・ソート方式。 4、第1項記載のビット・スライス化されたエンジンの
系において、入力データのタイミングを自己より1つ上
位のエンジンより1単位だけ遅らせることを特徴とする
マージ・ソート方式。 5、第3項記載のビット・スライス化されたエンジンの
系において、最上位のmビットの処理をするエンジン以
外は、上記の2つのポインタと、自己より1つ上位のm
bitを処理するエンジンのそれぞれに対応した該ポイ
ンタの差によつて演算の制御を行うことを特徴とする、
マージ・ソート方式。 6、第5項記載の最上位のmビットを処理するエンジン
以外のエンジンの演算の制御において、上記2つのポイ
ンタの差が、両方とも0でない場合、最上位のmビット
を処理するエンジンとまつたく等しい演算制御を行うこ
とを特徴とするマージ・ソート方式。 7、第5項記載の系において上記最上位のmビットを処
理するエンジン以外のエンジンの演算の制御を上記2つ
のポインタの差がいずれか一方、あるいは、両方が0に
なつている場合、ポインタの差が0になつているポイン
タを進めないようにしたマージ・ソート方式。 8、第3項記載のビット・スライス化されたエンジンの
系において、上記2つのポインタ、上記バッファのアド
レスに格納された2つのデータのいずれか一方を選択し
ようとした時、2つのデータが等しい場合、両方の該ポ
インタを進ませ、ポインタを進めすぎたときその回数を
示すカウンタを1つ進め、そのデータの内容をエンジン
内の記憶データとして記憶することを特徴とするマージ
・ソート方式。 9、第8項記載のエンジンにおいて、上記記憶データを
、上記カウンタに蓄えられた数だけ、以下に示す3つの
条件のいずれかが成立した時、上記2つのポインタのい
ずれも進めることなく出力していくことを特徴とするマ
ージ・ソート方式。 条件1:上記2組のポインタの差の両方が0になつたと
き。 条件2:上記2組のポインタの差のいずれか一方が0で
、差が0になつていない方の ポインタが示す上記バッファのアドレ スに格納されたデータが当該記憶デー タと異るとき。 条件3:上記2組のポインタの差がいずれも0でなく、
それぞれの当該ポインタが示 す上記バッファのアドレスに格納され た2つのデータのうち小さい方のデー タが当該記憶データと異るとき。 10、入力用データを格納するバッファと処理結果を格
納するバッファと2組のすでにソートされた複数個の入
力データをマージするエンジンよりなる系において、該
エンジン及び、上記入力データのそれぞれをビットスラ
イス化し、スライス化されたエンジンの間で制御情報を
交換しながら処理を進める手段と、該ビット・スライス
化されたエンジンに接続された制御信号と制御回路と、
長いデータのマージを行う1つの装置と短いデータのマ
ージを行う複数の装置と該装置を柔軟に結合したマージ
・ソート装置。
Priority Applications (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP59173309A JPH0782426B2 (ja) | 1984-08-22 | 1984-08-22 | マージ・ソート方法および装置 |
DE8585109999T DE3587176T2 (de) | 1984-08-22 | 1985-08-08 | Verfahren und einrichtung zum mischen/sortieren von daten. |
EP91120314A EP0478006B1 (en) | 1984-08-22 | 1985-08-08 | Method and apparatus for searching data |
DE3588212T DE3588212T2 (de) | 1984-08-22 | 1985-08-08 | Verfahren und Gerät zum Suchen von Daten |
EP85109999A EP0214313B1 (en) | 1984-08-22 | 1985-08-08 | Method and apparatus for data merging/sorting |
US06/767,852 US5185888A (en) | 1984-08-22 | 1985-08-21 | Method and apparatus for data merging/sorting and searching using a plurality of bit-sliced processing units |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP59173309A JPH0782426B2 (ja) | 1984-08-22 | 1984-08-22 | マージ・ソート方法および装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPS6152740A true JPS6152740A (ja) | 1986-03-15 |
JPH0782426B2 JPH0782426B2 (ja) | 1995-09-06 |
Family
ID=15958056
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP59173309A Expired - Lifetime JPH0782426B2 (ja) | 1984-08-22 | 1984-08-22 | マージ・ソート方法および装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH0782426B2 (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS63130139A (ja) * | 1986-11-20 | 1988-06-02 | Sanmatsu Kogyo Kk | 分枝デキストリンから成る吸着剤 |
JPH01297723A (ja) * | 1988-05-26 | 1989-11-30 | Masaru Kiregawa | ソート処理装置 |
JP2002136050A (ja) * | 2000-10-20 | 2002-05-10 | Oriental Motor Co Ltd | 簡易負荷装置 |
US6784561B2 (en) | 1999-01-21 | 2004-08-31 | Sony Computer Entertainment Inc. | Resistance force generator for use in a game machine |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS52155027A (en) * | 1976-06-18 | 1977-12-23 | Fujitsu Ltd | Multi-input adder for single-width data and double-width data |
JPS5790757A (en) * | 1980-11-28 | 1982-06-05 | Fujitsu Ltd | Sort-merge process system |
JPS5852744A (ja) * | 1981-09-25 | 1983-03-29 | Nippon Telegr & Teleph Corp <Ntt> | ソ−テイングメモリ装置 |
-
1984
- 1984-08-22 JP JP59173309A patent/JPH0782426B2/ja not_active Expired - Lifetime
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS52155027A (en) * | 1976-06-18 | 1977-12-23 | Fujitsu Ltd | Multi-input adder for single-width data and double-width data |
JPS5790757A (en) * | 1980-11-28 | 1982-06-05 | Fujitsu Ltd | Sort-merge process system |
JPS5852744A (ja) * | 1981-09-25 | 1983-03-29 | Nippon Telegr & Teleph Corp <Ntt> | ソ−テイングメモリ装置 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS63130139A (ja) * | 1986-11-20 | 1988-06-02 | Sanmatsu Kogyo Kk | 分枝デキストリンから成る吸着剤 |
JPH042306B2 (ja) * | 1986-11-20 | 1992-01-17 | ||
JPH01297723A (ja) * | 1988-05-26 | 1989-11-30 | Masaru Kiregawa | ソート処理装置 |
US6784561B2 (en) | 1999-01-21 | 2004-08-31 | Sony Computer Entertainment Inc. | Resistance force generator for use in a game machine |
JP2002136050A (ja) * | 2000-10-20 | 2002-05-10 | Oriental Motor Co Ltd | 簡易負荷装置 |
Also Published As
Publication number | Publication date |
---|---|
JPH0782426B2 (ja) | 1995-09-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5408626A (en) | One clock address pipelining in segmentation unit | |
EP0214313B1 (en) | Method and apparatus for data merging/sorting | |
US4876646A (en) | Data processor having multilevel address translation tables | |
US3775753A (en) | Vector order computing system | |
JPH04245324A (ja) | 演算装置 | |
JPS6152740A (ja) | マージ・ソート方法および装置 | |
US4651301A (en) | Circuit arrangement for performing rapid sortation or selection according to rank | |
US5107462A (en) | Self timed register file having bit storage cells with emitter-coupled output selectors for common bits sharing a common pull-up resistor and a common current sink | |
Bhadra et al. | The ZEUS third-level trigger system | |
EP0313817B1 (en) | Method and apparatus for explicitly evaluating conditions in a data processor | |
US3351918A (en) | Computer system employing specialized instruction execution units | |
JPH07191955A (ja) | データ駆動型情報処理装置 | |
KR880000422B1 (ko) | 매트릭스 키와 데이터선별기의 조합방법 | |
JPH0233175B2 (ja) | ||
JPH1021053A (ja) | データ処理装置 | |
JPH01297722A (ja) | ソート処理装置 | |
JPS61123929A (ja) | デ−タ検索方式 | |
JPS6152739A (ja) | サーチ方法および装置 | |
JPH0668055A (ja) | ディジタル信号処理装置 | |
JPS62190532A (ja) | プログラム分岐制御装置 | |
JPS62211738A (ja) | 誤り検出回路 | |
JPS60138610A (ja) | デシジヨンテ−ブルによるシ−ケンス制御方法 | |
JPH0378826A (ja) | 大小順位判定器およびソート処理装置 | |
Ellis | Distributed computation of graphics primitives on a transputer network | |
JPS60179964A (ja) | アドレス発生回路 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
EXPY | Cancellation because of completion of term |