JP3264114B2 - ソート装置 - Google Patents

ソート装置

Info

Publication number
JP3264114B2
JP3264114B2 JP31315194A JP31315194A JP3264114B2 JP 3264114 B2 JP3264114 B2 JP 3264114B2 JP 31315194 A JP31315194 A JP 31315194A JP 31315194 A JP31315194 A JP 31315194A JP 3264114 B2 JP3264114 B2 JP 3264114B2
Authority
JP
Japan
Prior art keywords
data
mode
address
sorting
signal
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
Application number
JP31315194A
Other languages
English (en)
Other versions
JPH08171479A (ja
Inventor
賢一郎 山内
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.)
Panasonic Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
Matsushita Electric Industrial Co Ltd
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 Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Priority to JP31315194A priority Critical patent/JP3264114B2/ja
Publication of JPH08171479A publication Critical patent/JPH08171479A/ja
Application granted granted Critical
Publication of JP3264114B2 publication Critical patent/JP3264114B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Complex Calculations (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、集積回路上に構成する
ソート回路として用いるものであり、特に並列演算に好
適なソート装置に関する。
【0002】
【従来の技術】従来、ソートを高速化する方式について
関しては、多くの手法が考えられた。それらの多くはソ
ートの中で用いられる比較の回数を少なくする事により
高速化を実現しているものである。高速ソートを使って
n個の数配列a(n)をソートする上で、行われる比較
の回数の平均値の最小は、理論上nlogn回(nは2
のべき乗)である。理論上の平均比較回数が最小です
み、計算機上で実現しやすいソートの中で最も多く使用
されているのが併合ソートである。
【0003】併合ソートは、まずn個の配列a(n)を
n/2組のグループに分ける。各グループの構成要素の
数は2個である。次に各グループ毎に比較を行いソート
を行う。こうしてソートされたn/2個のグループの中
から任意の2組を選び出し、その2組についてソートを
行う。この場合ソートに必要な比較の回数はたかだか3
回である。残りのグループについても同様の事を行な
う。その結果、4個のソートされた配列をもつn/4組
のグループができる。同様の操作をグループの数が1個
になるまで繰り返す。こうすると最終的にn個のソート
された要素を持つ配列ができあがる事になる。このソー
トは、配列をグループに分割し少数の数によるソートを
行った後に、そのグループ同士でソートを行うことによ
り、比較の回数を減らすことに利点がある。
【0004】併合ソートを含め、2分木法やクイックソ
ート等の他の高速ソートに共通している事は、以下の事
である。それは予め部分ソートを行うことにより、次の
ステップにおける比較の回数を減らすことである。ここ
でソートを計算機上で行う上で、時間がかかる部分が比
較であることから、比較の回数の減少は、ソートの高速
化に直接つながることになる。また従来のソート方式に
関する特許公報のほとんどは部分ソートの方法に関する
ものである。
【0005】
【発明が解決しようとする課題】併合ソートや2分木法
を用いると、全体の比較の回数を減らすことができ、高
速なソートを行うことが可能になる。しかしこれらのソ
ートでは、1回の比較を行い、その結果を見ながら次の
比較を行わなければならない。つまり比較の回数は減少
するものの、それぞれの部分ソートはシーケンシャルに
行わなければならない事になる。この事は併合ソートや
クイックソートの場合、特に顕著に言えることである。
さらに部分ソートの大きさや個数が、ソートの各段階の
条件によって変化する。つまり並列計算機を使って部分
ソートを行う場合、各段階ごとにグループの数が異なる
ため、動作が休止する部分がででくる。例えば、8個の
数配列を4組のグループに分けて、4個の計算機を持つ
並列計算機を用いて併合ソートを行う場合を考える。最
初の段のソートにおいて、4個の計算機は各グループの
ソートに振り分けられ全て動作する。その後2つのグル
ープを併合して2個のグループで比較を行う。しかし各
グループ内では1回の比較を行い、その結果を見ながら
次の比較を行うため、1回ずつしか比較を行えない。故
に併合後の2つのグループの比較を行うときは、2個の
計算機しか用いることが出ない。よって残りの2個の計
算機は休止状態になる。そして次の段の比較において、
使用する計算機は、同じ理由により1個になる。よって
残りの3個の計算機は休止状態となる。つまり並列計算
機を用いても、機能を生かし切れないという問題があ
る。
【0006】以上述べたように、計算機上でソート回路
を実現する上において、従来のソートを用いると、各グ
ループ内のソートがシーケンシャルであるため、部分ソ
ートに時間がかかり、全体のソート時間が低下するとい
う欠点がある。ゆえに並列計算機でソート回路を実現し
ようとした場合、使用しない回路が出てくるため演算効
率が低下するという欠点がある。さらに条件判断を行い
ながらソートをするため、演算時間が一定でない。よっ
て演算器として機器に組み込む場合、パイプラインが組
みにくいという欠点がある。
【0007】本発明の目的は、各段において、部分ソー
トの大きさを終始一定にし、グループ内のソートがシー
ケンシャルにならないソートの方法を与えることによ
り、並列計算に適した高速ソートを実現するソート装置
を提供することにある。
【0008】
【課題を解決するための手段】本発明のソート装置は、
データ格納手段とモード切換え手段とN個のデータ分配
手段(N:自然数)とN個の2入力ソート手段と出力デ
ータ切換え手段とを備えた2N個のデータをソートする
ソート装置であって、前記データ格納手段は2N個の入
力データを格納し、2N個のデータを出力し、その入力
データは前記出力データ切換え手段に接続され、出力デ
ータは前記データ分配手段に接続され、前記モード切換
え手段はモード信号を作り、そのモード信号は前記デー
タ分配手段と前記出力データ切換え手段に接続され、m
番目の前記データ分配手段(m:1からNまでの自然
数)は、前記モード信号を受取り、第1モードならば前
記データ格納手段の2N個のデータの中から2m−1番
目と2m番目のデータを選択し、第2モードならば前記
データ格納手段の2N個のデータの中から2m番目と2
m+1番目のデータを選択し、そのデータはm番目の前
記2入力ソート手段に接続され、N番目の前記データ分
配手段は、前記モード信号を受取り、第1モードならば
前記データ格納手段の2N個のデータの中から2N−1
番目と2N番目のデータを選択し、第2モードならば前
記データ格納手段の2N個のデータの中から1番目と2
N番目のデータを選択し、そのデータはN番目の前記2
入力ソート手段に接続され、前記2入力ソート手段は前
記データ分配手段で選択された2つのデータをソートし
て出力し、その出力は前記出力データ切換え手段に接続
され、前記出力データ切換え手段は前記ソートされたデ
ータを、前記モード信号を受けて前記データ分配手段に
よって決められた位置に切り換え、前記データ格納手段
に格納し、前記出力データ切換え手段は全てのデータの
格納が終わると、前記モード切換え手段はモード切換え
信号を受けてモードを切換え、以上の動作を前記モード
切換え手段の切換え回数が2N−1になるまで繰り返す
ことを特徴とするものである。
【0009】また本発明の他のソート装置は、データ格
納手段とモード切換え手段とN個のデータ分配手段
(N:自然数)とN個の2入力ソート手段とアドレス保
持手段とN個のアドレス交換手段とを備えた2N個のデ
ータをソートするソート装置であって、前記データ格納
手段は2N個の入力データを格納し、2N個のデータを
前記データ分配手段に出力し、前記モード切換え手段は
モード信号を作り、そのモード信号は前記データ分配手
段と前記アドレス交換手段に接続され、前記アドレス保
持手段は前記データ格納手段のデータのアドレスを保持
し、その出力は前記データ分配手段に接続され、m番目
の前記データ分配手段(m:1からN−1までの自然
数)は、前記モード信号を受取り、第1モードならば前
記アドレス保持手段の2m−1番目と2m番目に書かれ
ているアドレスのデータを前記データ格納手段の2N個
のデータの中から選択し、第2モードならば前記アドレ
ス保持手段の2m番目と2m+1番目に書かれているア
ドレスのデータを前記データ格納手段の2N個のデータ
の中から選択し、そのデータはm番目の前記2入力ソー
ト手段に接続され、N番目の前記データ分配手段は、前
記モード信号を受取り、第1モードならば前記アドレス
保持手段の2N−1番目と2N番目に書かれているアド
レスのデータを前記データ格納手段の2N個のデータの
中から選択し、第2モードならば前記アドレス保持手段
の1番目と2N番目に書かれているアドレスのデータを
前記データ格納手段の2N個のデータの中から選択し、
そのデータはN番目の前記2入力ソート手段に接続さ
れ、前記2入力ソート手段は前記データ分配手段で選択
されたデータを比較しデータを入れ替える必要がある時
にソート信号を出力し、その出力は前記アドレス交換手
段に接続され、m番目の前記アドレス交換手段は、アド
レスの入出力が前記アドレス保持手段に接続され、前記
モード信号が第1モードで且つソート信号が発生されて
いればアドレス保持手段の2m−1番目の位置のアドレ
スと2m番目の位置のアドレスを交換し、前記モード信
号が第2モードで且つソート信号が発生されていればア
ドレス保持手段の2m番目の位置のアドレスと2m+1
番目の位置のアドレスを交換し、N番目の前記2入力ソ
ート手段の出力は、アドレスの入出力が前記アドレス保
持手段に接続され、前記モード信号が第1モードで且つ
ソート信号が発生されていればアドレス保持手段の2N
−1番目の位置のアドレスと2N番目の位置のアドレス
を交換し、前記モード信号が第2モードで且つソート信
号が発生されていればアドレス保持手段の1番目の位置
のアドレスと2N番目の位置のアドレスを交換し、前記
アドレス保持手段はアドレスの全てのアドレスの交換が
終わると、前記モード切換え手段はモード切換え信号を
値を受けてモードを切換え、以上の動作を前記モード切
換え手段の切換え回数が2N−1になるまで繰り返すこ
とを特徴とするものである。
【0010】
【作用】本発明を用いたソートを、2N個のデータ列 a
(1), a(2), a(3)....a(2N−1), a(2N)(N:自
然数)を昇べき順にソートする場合を例にして説明す
る。このソートは以下に示す、ある一定のステップ(第
1モードと第2モード)を交互に2N−1回繰り返すこ
とにより実現される。
【0011】データ格納手段は初めのステップは第1モ
ードとして例えば、2種類のデータ分配手段の1つによ
り2N個のデータ列をa(1)とa(2)、a(3)とa(4)、a
(2m−1)とa(2m)(m:1からNまでの自然数)と
いう具合にグループを作る。するとN個のグループがで
き上がる。
【0012】次にそれぞれのグループ内でソートを行
う。ここでソートとはa(2m−1)とa(2m)の大きさを
比較して、a(2m−1)が大きければa(2m−1)とa(2
m)の値をいれかえ、a(2m)が大きければそのままにす
る。これらの2NグループのソートをN個の2入力ソー
ト手段を使って処理をする。ここまでが初めのステップ
であり、ここでモード切換え手段のモードを切換える。
【0013】次のステップは残りのデータ分配手段によ
りa(2)とa(3)、a(4)とa(5)、a(2m)とa(2m+1)
(m:1からN−1までの自然数)という具合にグルー
プを作る。ここでm=Nの時はa(1)とa(2N)をグルー
プにする。でき上がるグループの数はN個である。これ
についても同様にN個の2入力ソート手段を使ってソー
トを行い、モード切換え手段のモードを切換える。以上
までの2ステップをステップ数が2N−1になるまで、
すなわちモード切換え回数が2N−1になるまで順々に
繰り返して行く。これでソートが完了する。ここで第1
モードと第2モードはどちらから初めても良いが、必ず
交互に行なう。
【0014】この方法では比較に必要な回数はN*(2N
−1)回である。このような構成を用いてソートを行う
と、各ステップでの部分ソートを行うグループの数は常
にN個であり、部分ソートの要素の数は常に2個であ
る。つまりN個の部分ソートは互いに独立であり、シー
ケンシャルな動作を行う必要がない。つまり、各ステッ
プでN個の2入力ソート手段は全て稼働することにな
る。
【0015】そのため比較の回数は2分木法などの2N
*log(2N)回に比べてN*(2N−1)回と増えるもの
の、ソートに必要なステップ数は2分木法の平均ステッ
プ2N*log(2N)回に比べて2N−1ステップと短かな
ステップになり、2分木法等より高速なソートを実現で
きる。また上記の構成であると、部分ソートの分割方法
はソート全体を通じて常に一定であり、前のステップの
演算結果に依存しない。よって条件分岐の回路を必要と
しないので、高速にソート分割を実現できる。またソー
トが常に一定の回数で行われるため、専用演算器としハ
ードに組み込みやすくなる。
【0016】
【実施例】
(実施例1)本発明の請求項1に基づく実施例の構成を
図1を用いて説明する。2N個のデータを降ベキにソー
トする場合を考える。
【0017】10はデータ格納手段である。20はN個
のデータ分配手段である。30は2入力ソート手段であ
る。90はモード切換え手段であり、カウンタ50と偶
奇判定手段40から成る。60は出力データ切換え手段
である。本実施例のソート方法には2つのモードを有
し、第1モードをカウンタ50値が偶数、第2モードを
カウンタ50値が奇数と定義する。100はタイマであ
り、第1モード,第2モードの何れかのモードが終了し
た時に、ステップ終了信号(モード切換え信号)D6を
発生するようにセットしている。データ格納手段10は
2N個のデータを格納しており、N個のデータ分配手段
20に、それぞれ2N個のデータの値D1を同時に転送
する。N個のデータ分配手段20各々は、偶数段データ
分配手段21と奇数段データ分配手段22から構成され
る。
【0018】m番目の偶数段データ分配手段21−m
(mは1からNまでの整数)はデータ格納手段10から
送られる2N個のデータの中から2m−1番目の数と2
m番目のデータを選択し、m番目の2入力ソート手段3
0−mへ送る。同様にm番目の奇数段データ分配手段2
2−mは2N個のデータから2m番目の数と2m+1番
目のデータを選択し、m番目の2入力ソート手段30−
mへ送る。但しm=Nの時は奇数段データ分配手段22
−NはデータD1の中の1番目のデータとN番目のデー
タを選択し、N番目の2入力ソート手段に送る。
【0019】N個の2入力ソート手段30は与えられた
2つのデータを比較して降ベキにソートする。すなわち
m番目の2入力ソート手段30−mはm番目のデータ分
配手段20−mから送られる2つのデータD3を降ベキ
にソートし、出力データ切換え手段60へ、ソート後の
データD4−mを送る。
【0020】偶寄判定手段40はカウンタ50のデータ
から偶寄判定信号(モード信号)D2を送る。すなわち
カウンタ50のデータが奇数ならば、偶寄判定信号D2
により、データ分配手段20の中の奇数段データ分配手
段22が選択される。カウンタ50のデータが偶数なら
ば偶数段データ分配手段21が選択される。ただしカウ
ンタ50のデータが偶数ならばデータ分配手段20の中
の奇数段データ分配手段22を選択し、奇数ならば偶数
段データ分配手段21を選択するという動作をしてもよ
い。カウンタ50は初期値に1が設定されており、タイ
マ100からのステップ終了信号(モード切換え信号)
D6を受けると、カウンタの値を1ずつ増加させる。出
力データ切換え手段60はN個の2入力ソート手段30
からデータD4を受けとり、2N個のデータD5にし
て、データ格納手段10へ送る。
【0021】図5に出力データ切換え手段60の詳細を
示し、(表1)に2N=4の時の降べきにソートする場
合を示し、第1モードと第2モード時のセレクタS1〜
S3の出力を示す。2入力ソート30−1,30−2各
々は降べきにソートし、大きい方の値をE1,E3、小
さい方の値をE2,E4として出力する。出力データ切
換え手段60は内部にセレクタS1〜S3を有し、偶寄
判定信号D2により、データD5の内容が変えて出力す
る。(表1)に示すように偶寄判定信号D2が偶数(第
1モード)の時、m番目の2入力ソート手段30−mの
データD4−mは、大きい方がデータ格納手段10の2
m−1番目に、小さい方が2m番目の位置に格納される
ように出力データD5が出力される。偶寄判定信号D2
が奇数(第2モード)の時、m番目の2入力ソート手段
30−mのデータD4−mは、大きい方がデータ格納手
段10の2m番目に、小さい方が2m+1番目の位置に
格納され、かつD4−Nのデータは大きい方が1番目の
位置に、小さい方が2N番目の位置に格納されるように
出力データD5が出力される。以上の動作をカウンタ5
0の値がN−1まで繰り返す。この動作が終了すると、
データ格納手段10にはソートが完了した値が入ってい
る。
【0022】なお、本実施例では降べきにソートする場
合について説明したが、昇べきにソートする場合は、2
入力ソート30が昇べきにソートし、小さい方の値をE
1,E3、大きい方の値をE2,E4として出力すれば、
(表1)に示した動作を偶寄判定信号D2に応じて行な
えばよい。
【0023】
【表1】
【0024】図2はa3 > a2 > a1の大きさを持つ4
数がa1,a2,a3,a1の順に並べられている場合を例
に、図1の構成を持つソート方式で降べきにソートする
方法を示している。
【0025】始めにカウンタ50に1をセットする。a
1,a2,a3,a1はこの順番でデータ格納手段10に格納
されている。データ格納手段10はデータ分配手段20
に送るデータD1をこの順で送っている。偶寄判定手段
40はカウンタ50の値が1なので偶寄判定信号D2を
奇数として出力する。N個のデータ分配手段20は偶寄
判定信号D2が奇数なので、奇数段データ分配手段22
が選択される。1番目の奇数段データ分配手段22−1
はデータ格納手段10の2番目のアドレスと3番目のア
ドレスに格納されているデータのa2とa3のデータを選
択し、2入力ソート手段30−1に選択データD3−1
として送る。2番目の奇数段データ分配手段22−2は
データ格納手段10の1番目のアドレスと4番目のアド
レスに格納されているデータであるa1とa1のデータを
選択し、選択データD3−2として2入力ソート手段3
0−2に送る。
【0026】2入力ソート手段30−1は入力されたa
2,a3のデータを比較してa3の方が大きければa2とa
3のデータを入れ替えた後、出力データD4−1として
出力データ切換え手段60へ送る。同様の動作を2入力
ソート手段30−2でも行い、a1,a1の内容を持つ出
力データD4−2として出力データ切換え手段60へ送
られる。出力データ切換え手段60は2つの部分ソート
の出力をまとめて、出力データD5としてデータ格納手
段10へ出力した後、タイマ100がステップ終了信号
D6をカウンタ50へ送る。
【0027】出力データ切換え手段60は(表1)に示
すように偶寄判定信号D2が奇数(第2モード)である
ことから、D4−1データの大きい方の数をデータ格納
手段10の2番目に格納し、小さい方のデータをデータ
格納手段10の3番目に格納する。つまりa3とa2のデ
ータはそれぞれデータ格納手段10の2番目の位置と3
番目の位置に格納される。同様にD4−2のデータの大
きい方はデータ格納手段10の1番目の位置に、小さい
方のデータはデータ格納手段10の4番目の位置に格納
される。ここまでが1つのステップである。ステップの
終了後、データ格納手段10にはa1,a3,a2,a1の順
番にデータが格納されている。
【0028】2番目のステップはカウンタ50に1を加
えて2になることから始まる。偶寄判定手段40からの
偶寄判定信号D2が偶数なので、偶数段データ分配手段
21が選択される。偶数段データ分配手段21−1はデ
ータ格納手段10の1番目のデータと2番目のデータを
選択する。偶数段データ分配手段21−2はデータ格納
手段10の3番目のデータと4番目のデータを選択す
る。すると選択データD3−1の値はa1,a3であり、
選択データD3−2の値はa2,a1である。これを2つ
の2入力ソート手段30でソートすると、D4−1のデ
ータはa3,a1となり、D4−2のデータはa2,a1とな
る。出力データ切換え手段60により、D5のデータは
a3,a1,a2,a1となり、この順でデータ格納手段10
に格納される。その後タイマ100はステップ終了信号
をカウンタ50に送る。以上が第2のステップである。
【0029】同様にステップを進めていき、3つ目のス
テップが終了した時点でソートが完了する。ここで2入
力ソート手段30−1と30−2は互いに独立に動作さ
せることが可能である。故にN個の2入力ソート手段を
構成する並列計算機を使用すると、入力ソート手段30
−1と30−2は同時に計算することができる。つまり
2入力ソート手段で行うN個の部分ソートが同時に行わ
れることになる。しかも部分ソートの分配方法が偶数段
データ分配手段21と奇数段データ分配手段22の2つ
しかなく、ソート演算結果に依存する条件分岐が存在し
ない。よって従来のソート方式よりも単純な構造のデー
タ分配手段になり、回路で実現する場合、小さな回路で
高速な分配手段を実現できる。ゆえに並列計算機では2
分岐法等のソートよりも高速なソート演算が実現でき
る。しかも部分ソートにかかる時間と全体のソートにか
かる時間が同じであるため、専用演算器として機器へ組
み込みやすくなる。
【0030】(実施例2)図3は本発明の請求項2に基
づく実施例の構成である。図1の出力データ切換え手段
60がなくなり、代わりにN個のアドレス交換手段70
と1個のアドレス保持手段80が接続されている。2入
力ソート手段30の出力はデータではなく大小の判定信
号になり、それがそれぞれN個のアドレス交換手段70
に接続されている。またアドレス保持手段80から出力
されているアドレス信号D8はデータ分配手段20に接
続されている。
【0031】アドレス保持手段80には、2N個のデー
タがデータ格納手段10の中で格納されている位置を示
すアドレスが、2N個分保持してある。データ選択手段
20はアドレス保持手段80の中の指し示すアドレスD
8のデータをデータ格納手段10から選択し2入力ソー
ト手段30へ出力する。すなわち、カウンタ10の値が
奇数で1番目のデータ分配手段20−1は、図1の場
合、データ格納手段10の1番目と2番目のデータを選
択するが、図3の場合、データ格納手段10からアドレ
ス保持手段の1番目に書かれているアドレスと2番目に
書かれているアドレスを選択する。2入力ソート手段3
0はデータ分配手段20からデータD3を与えられ比較
を行う。比較の結果、ソートをするために2数を入れ替
えなければならない時、2入力ソート手段30は、ソー
ト信号D7を発行する。
【0032】アドレス交換手段70はm番目の2入力ソ
ート手段30−mからソート信号70−mを受けると、
偶寄判定信号D2が偶数(第1モード)の時は、アドレ
ス保持手段80の2m−1番目に書かれているアドレス
と2m番目に書かれているアドレスを交換し、奇数(第
2モード)の時は、アドレス保持手段80の2m番目に
書かれているアドレスと2m+1番目のに書かれている
アドレスを交換する。図6にアドレス交換手段70の詳
細を示し、(表2)に2N=4の時の降べきにソートす
る場合を示し、第1モードと第2モード時のセレクタS
1〜S4の出力を示す。アドレス交換手段70は内部に
セレクタS1〜S8を有し、偶寄判定信号D2により、
S1〜S4を制御し、D7−1,D7−2によりS5〜
S8を制御する。即ち(表2)より、偶寄判定信号D2
により、第1モードであればS1〜S4はE2を出力
し、第2モードであればS1〜S4はE1を出力する。
またソート信号D7が発せられた場合はS5〜S8は各
々S1〜S4の出力を選択し、そうでない場合は、S5
〜S8は各々アドレス保持手段からの出力D9を選択す
る。ただし、偶寄判定信号D2が奇数でm=Nの時は1
番目に書かれているアドレスとN番目に書かれているア
ドレスを交換する。アドレス保持手段はすべてのアドレ
スの交換が終了すると、タイマ100はステップ終了信
号D6をカウンタ50に出力する。その他の部分の動作
は図1の構成の動作と同じである。以上の動作が終了す
ると、アドレス保持手段80のm番目の位置にはm番目
に大きなデータのデータ格納手段10におけるアドレス
が書かれている。
【0033】
【表2】
【0034】図4はa3 > a2 > a1の大きさを持つ4
数がa1,a2,a3,a1の順に並べられている場合を例
に、図3の構成を持つソート方式で降べきにソートする
方法を示している。
【0035】始めにカウンタ50に1をセットする。a
1,a2,a3,a1はこの順番でデータ格納手段10に格納
されている。データ格納手段10はデータ分配手段20
に送るデータD1をこの順で送っている。アドレス保持
手段80は初めはアドレスの位置とアドレスの番号が一
致している。偶寄判定手段40はカウンタ50の値が1
なので偶寄判定信号D2を奇数として出力する。N個の
データ分配手段20は偶寄判定信号D2が奇数なので、
奇数段データ分配手段22が選択し、選択データD3−
1として2入力ソート手段30−1に送る。1番目の奇
数段データ分配手段22−1はアドレス保持手段80の
2番目のアドレスの差し示すデータである2の差し示す
データであるa2とアドレス保持手段80の3番目のア
ドレスの差し示すデータである3の差し示すデータであ
るa3をデータ格納手段10から選択し、選択データD
3−1として2入力ソート手段30−1に送る。
【0036】2番目の奇数段データ分配手段22−2は
アドレス保持手段80の1番目のアドレスの差し示すデ
ータである1の差し示すデータであるa1とアドレス保
持手段80の4番目のアドレスの差し示すデータである
4の差し示すデータであるa1をデータ格納手段10から
選択し、選択データD3−2として2入力ソート手段3
0−2に送る。2入力ソート手段30−1は入力された
a2,a3のデータを比較してa3の方が大きければ、ソー
ト信号D7−1をアドレス交換手段70−1へ発行す
る。この場合a3の方が大きいのでソート信号D7−1
が発行されることになる。同様の動作を2入力ソート手
段30−2でも行う。この場合2入力ソート手段30−
2で比較される2数a1,a1は同じ大きさを持つので、
ソート信号D7−2は発行されない。
【0037】アドレス交換手段70は(表2)に示すよ
うに、ソート信号D7を受けるとアドレス保持手段80
のアドレスを交換する。この場合、アドレス交換手段7
0−1はソート信号D7−1を受けているので、a2とa
3のアドレスである2と3を入れ替える。アドレス交換
手段70−2はソート信号D7−2を受けていないの
で、a1とa1のアドレスである1と4は入れ替えない。
アドレスの交換の終わった後に、アドレス保持手段はス
テップ終了信号D6をカウンタ50へ送る。ここまでが
1つのステップである。ステップの終了後、アドレス保
持手段80には1,3,2,4の順番にアドレスが格納され
ている。
【0038】2番目のステップはカウンタ50に1を加
えて2になることから始まる。偶寄判定手段40からの
偶寄判定信号D2が偶数なので、偶数段データ分配手段
21が選択される。偶数段データ分配手段21−1はア
ドレス保持手段80の1番目のアドレスの差し示すデー
タである1の差し示すデータとアドレス保持手段80の
2番目のアドレスの差し示すデータである3の差し示す
データをデータ格納手段10から選択する。2番目の偶
数段データ分配手段22−2はアドレス保持手段80の
3番目のアドレスの差し示すデータである2の差し示す
データとアドレス保持手段80の4番目のアドレスの差
し示すデータである4の差し示すデータでをデータ格納
手段10から選択する。この場合D3−1のデータはa
1,a3であり、D3−2のデータはa2,a1である。こ
こで2入力ソート手段30でソートすると、ソート信号
D7−1が発行され、ソート信号D7−2は発行されな
い。よってアドレス交換手段70−1でアドレスの交換
が行われ、アドレス保持手段80に格納されているアド
レスは3,1,2,1となる。その後アドレス保持手段8
0はステップ終了信号をカウンタ50に送る。以上が第
2のステップである。
【0039】同様にステップを進めていき、3つ目のス
テップが終了した時点でソートが完了する。このような
構成をとることにより、データ格納手段10のデータを
書き換えることなくソートを行うことができる。データ
格納手段10のデータは全く書き変わらないので、回路
でこの装置を実現する場合、データ格納手段10は低速
で小型の機器が使用できる。アドレスを記述する時の情
報のデータ量はデータ格納手段のデータ量よりもはるか
に小さいため、装置全体を小型化することができる事
と、毎回すべてのデータを書き換えることがない事か
ら、ソート回路を駆動させる消費電力を減少させること
ができる。
【0040】
【発明の効果】このような本発明の構成を用いてソート
を行うと、各ステップでの部分ソートを行うグループの
数は常にN個であり、N個が2入力ソート手段は効率よ
く稼働することになる。そのため比較の回数は2分木法
などの2N*log(2N)回に比べてN*(2N−1)回と増
えるものの、ソートに必要なステップ数は2分木法の平
均ステップ2N*log(2N)回に比べて2N−1ステップ
と短かなステップになり、2分木法等より高速なソート
を実現できる。
【0041】また上記の構成であると、部分ソートの分
割方法はソート全体を通じて常に一定であり、ソートが
常に一定のサイクルで行われるため、専用演算器としハ
ードに組み込みやすくなる。
【図面の簡単な説明】
【図1】本発明の実施例1に於けるソート装置の構成図
【図2】同実施例のソート装置のデータの流れを示す図
【図3】本発明の実施例2におけるソート装置の構成図
【図4】同実施例のソート装置のデータの流れを示す図
【図5】図1の出力データ切換え手段の詳細図
【図6】図3のアドレス交換手段の詳細図
【符号の説明】
10 データ格納手段 20 データ分配手段 21 偶数段データ分配手段 22 奇数段データ分配手段 30 2入力ソート手段 40 偶奇判定手段 50 カウンタ 60 出力データ切換え手段 70 アドレス交換手段 80 アドレス保持手段 90 モード切換え手段 100 タイマ

Claims (7)

    (57)【特許請求の範囲】
  1. 【請求項1】データ格納手段とモード切換え手段とN個
    のデータ分配手段(N:自然数)とN個の2入力ソート
    手段と出力データ切換え手段とを備えた2N個のデータ
    をソートするソート装置であって、 前記データ格納手段は2N個の入力データを格納し、2
    N個のデータを出力し、その入力データは前記出力デー
    タ切換え手段に接続され、出力データは前記データ分配
    手段に接続され、 前記モード切換え手段はモード信号を作り、そのモード
    信号は前記データ分配手段と前記出力データ切換え手段
    に接続され、 m番目の前記データ分配手段(m:1からNまでの自然
    数)は、前記モード信号を受取り、第1モードならば前
    記データ格納手段の2N個のデータの中から2m−1番
    目と2m番目のデータを選択し、第2モードならば前記
    データ格納手段の2N個のデータの中から2m番目と2
    m+1番目のデータを選択し、そのデータはm番目の前
    記2入力ソート手段に接続され、 N番目の前記データ分配手段は、前記モード信号を受取
    り、第1モードならば前記データ格納手段の2N個のデ
    ータの中から2N−1番目と2N番目のデータを選択
    し、第2モードならば前記データ格納手段の2N個のデ
    ータの中から1番目と2N番目のデータを選択し、その
    データはN番目の前記2入力ソート手段に接続され、 前記2入力ソート手段は前記データ分配手段で選択され
    た2つのデータをソートして出力し、その出力は前記出
    力データ切換え手段に接続され、 前記出力データ切換え手段は前記ソートされたデータ
    を、前記モード信号を受けて前記データ分配手段によっ
    て決められた位置に切り換え、前記データ格納手段に格
    納し、 前記出力データ切換え手段は全てのデータの格納が終わ
    ると、前記モード切換え手段はモード切換え信号を受け
    てモードを切換え、 以上の動作を前記モード切換え手段の切換え回数が2N
    −1になるまで繰り返すことを特徴とするソート装置。
  2. 【請求項2】前記モード切換え手段はカウンタとそのカ
    ウンタに接続された偶奇判定手段を有し、前記カウンタ
    はモード切換え信号を値を受けて1増加し、前記偶奇判
    定手段は前記カウンタの値の偶奇の判断信号を作成する
    ことを特徴とする請求項1記載のソート装置。
  3. 【請求項3】前記2入力ソート手段と前記データ分配手
    段はN個同時に動作することを特徴とする請求項1記載
    のソート装置。
  4. 【請求項4】前記出力データ切換え手段は、N個の出力
    データ切換え部を有し、m番目の前記出力データ切換え
    部は、前記モード信号を受取り、 第1モードならば、 m番目の前記2入力ソート手段の出力の内、大きい方の
    データを前記データ格納手段の2m−1番目の位置に格
    納し、小さい方のデータを前記データ格納手段の2m番
    目の位置に格納し、 N番目の前記2入力ソート手段の出力の大きい方のデー
    タを前記データ格納手段の2N−1番目の位置に格納
    し、小さい方のデータを前記データ格納手段の2N番目
    の位置に格納し、 第2モードならば、 m番目の前記2入力ソート手段の出力の内、大きい方の
    データを前記データ格納手段の2m番目の位置に格納
    し、小さい方のデータを前記データ格納手段の2m+1
    番目の位置に格納し、 N番目の前記2入力ソート手段の出力の大きい方のデー
    タを前記データ格納手段の1番目の位置に格納し、小さ
    い方のデータを前記データ格納手段の2N番目の位置に
    格納することを特徴とする請求項1記載のソート装置。
  5. 【請求項5】データ格納手段とモード切換え手段とN個
    のデータ分配手段(N:自然数)とN個の2入力ソート
    手段とアドレス保持手段とN個のアドレス交換手段とを
    備えた2N個のデータをソートするソート装置であっ
    て、 前記データ格納手段は2N個の入力データを格納し、2
    N個のデータを前記データ分配手段に出力し、 前記モード切換え手段はモード信号を作り、そのモード
    信号は前記データ分配手段と前記アドレス交換手段に接
    続され、 前記アドレス保持手段は前記データ格納手段のデータの
    アドレスを保持し、その出力は前記データ分配手段に接
    続され、 m番目の前記データ分配手段(m:1からN−1までの
    自然数)は、前記モード信号を受取り、第1モードなら
    ば前記アドレス保持手段の2m−1番目と2m番目に書
    かれているアドレスのデータを前記データ格納手段の2
    N個のデータの中から選択し、第2モードならば前記ア
    ドレス保持手段の2m番目と2m+1番目に書かれてい
    るアドレスのデータを前記データ格納手段の2N個のデ
    ータの中から選択し、そのデータはm番目の前記2入力
    ソート手段に接続され、 N番目の前記データ分配手段は、前記モード信号を受取
    り、第1モードならば前記アドレス保持手段の2N−1
    番目と2N番目に書かれているアドレスのデータを前記
    データ格納手段の2N個のデータの中から選択し、第2
    モードならば前記アドレス保持手段の1番目と2N番目
    に書かれているアドレスのデータを前記データ格納手段
    の2N個のデータの中から選択し、そのデータはN番目
    の前記2入力ソート手段に接続され、 前記2入力ソート手段は前記データ分配手段で選択され
    たデータを比較しデータを入れ替える必要がある時にソ
    ート信号を出力し、その出力は前記アドレス交換手段に
    接続され、 m番目の前記アドレス交換手段は、アドレスの入出力が
    前記アドレス保持手段に接続され、前記モード信号が第
    1モードで且つソート信号が発生されていればアドレス
    保持手段の2m−1番目の位置のアドレスと2m番目の
    位置のアドレスを交換し、前記モード信号が第2モード
    で且つソート信号が発生されていればアドレス保持手段
    の2m番目の位置のアドレスと2m+1番目の位置のア
    ドレスを交換し、N番目の前記2入力ソート手段の出力
    は、アドレスの入出力が前記アドレス保持手段に接続さ
    れ、前記モード信号が第1モードで且つソート信号が発
    生されていればアドレス保持手段の2N−1番目の位置
    のアドレスと2N番目の位置のアドレスを交換し、前記
    モード信号が第2モードで且つソート信号が発生されて
    いればアドレス保持手段の1番目の位置のアドレスと2
    N番目の位置のアドレスを交換し、 前記アドレス保持手段はアドレスの全てのアドレスの交
    換が終わると、前記モード切換え手段はモード切換え信
    号を値を受けてモードを切換え、 以上の動作を前記モード切換え手段の切換え回数が2N
    −1になるまで繰り返すことを特徴とするソート装置。
  6. 【請求項6】前記モード切換え手段はカウンタとそのカ
    ウンタに接続された偶奇判定手段を有し、前記カウンタ
    はモード切換え信号を値を受けて1増加し、前記偶奇判
    定手段は前記カウンタの値の偶奇の判断信号を作成する
    ことを特徴とする請求項5記載のソート装置。
  7. 【請求項7】前記2入力ソート手段と前記データ分配手
    段と前記アドレス交換手段はN個同時に動作することを
    特徴とする請求項5記載のソート装置。
JP31315194A 1994-12-16 1994-12-16 ソート装置 Expired - Fee Related JP3264114B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP31315194A JP3264114B2 (ja) 1994-12-16 1994-12-16 ソート装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP31315194A JP3264114B2 (ja) 1994-12-16 1994-12-16 ソート装置

Publications (2)

Publication Number Publication Date
JPH08171479A JPH08171479A (ja) 1996-07-02
JP3264114B2 true JP3264114B2 (ja) 2002-03-11

Family

ID=18037729

Family Applications (1)

Application Number Title Priority Date Filing Date
JP31315194A Expired - Fee Related JP3264114B2 (ja) 1994-12-16 1994-12-16 ソート装置

Country Status (1)

Country Link
JP (1) JP3264114B2 (ja)

Also Published As

Publication number Publication date
JPH08171479A (ja) 1996-07-02

Similar Documents

Publication Publication Date Title
EP0424618A2 (en) Input/output system
US5410719A (en) Field compositor for merging data and including cells each receiving three control and two data inputs and generating one control and one data output therefrom
US4085447A (en) Right justified mask transfer apparatus
US20210406030A1 (en) Computer system using a plurality of single instruction multiple data (simd) engines for efficient matrix operations
KR100346515B1 (ko) 수퍼파이프라인된수퍼스칼라프로세서를위한임시파이프라인레지스터파일
WO2003091872A1 (fr) Dispositif de tri par fusion en parallele, procede et programme y relatifs
CN1662904A (zh) 具有级联simd结构的数字信号处理器
JP2753260B2 (ja) マージ方法
JP2752634B2 (ja) ソート処理装置
US6598061B1 (en) System and method for performing modular multiplication
JP5549442B2 (ja) Fft演算装置
US5727200A (en) Parallel merge sorting apparatus with an accelerated section
US8060549B2 (en) Method and apparatus for accumulating floating point values
JP3264114B2 (ja) ソート装置
CN114416180B (zh) 向量数据的压缩方法、向量数据的解压方法、装置及设备
JP4158264B2 (ja) ソート・マージ処理装置およびソート・マージ回路
JP3320767B2 (ja) データ処理装置及びその制御方法
JP3975975B2 (ja) 並列クイックソート装置,並列クイックソート方法および並列クイックソートプログラム
JP3347592B2 (ja) マージソート処理装置
JPH0437455B2 (ja)
JP2508004B2 (ja) ソ−ト処理装置
JP2959497B2 (ja) データ処理装置及びデータ処理方法
JP3447180B2 (ja) データ演算回路
JPH0512011A (ja) パイプライン回路
JPH0667844A (ja) ソーティング方法およびソーティング回路

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees