JPH0954676A - 整順列化方法および整順列化装置 - Google Patents

整順列化方法および整順列化装置

Info

Publication number
JPH0954676A
JPH0954676A JP7206049A JP20604995A JPH0954676A JP H0954676 A JPH0954676 A JP H0954676A JP 7206049 A JP7206049 A JP 7206049A JP 20604995 A JP20604995 A JP 20604995A JP H0954676 A JPH0954676 A JP H0954676A
Authority
JP
Japan
Prior art keywords
data
value
integer
buffer
elements
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
JP7206049A
Other languages
English (en)
Inventor
Akitoshi Saito
彰利 斉藤
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.)
Yamaha Corp
Original Assignee
Yamaha 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 Yamaha Corp filed Critical Yamaha Corp
Priority to JP7206049A priority Critical patent/JPH0954676A/ja
Priority to US08/694,337 priority patent/US5937403A/en
Publication of JPH0954676A publication Critical patent/JPH0954676A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/76Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/22Arrangements for sorting or merging computer data on continuous record carriers, e.g. tape, drum, disc
    • G06F7/24Sorting, i.e. extracting data from one or more carriers, rearranging the data in numerical or other ordered sequence, and rerecording the sorted data on the original carrier or on a different carrier or set of carriers sorting methods in general
    • YGENERAL 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
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99937Sorting

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Complex Calculations (AREA)

Abstract

(57)【要約】 【課題】 大容量の記憶手段を用いないで、多数のデー
タの整順列化を行う。 【解決手段】 バッファ1および2間でデータ列を交互
に移し替えつつ整順列化を行う。整順列化は、データを
4個の要素に分割し、各要素をキーとして下位のもの順
に進める。整順列化では、各データを上記バッファの各
記憶エリアに対し詰めた状態で格納するが、これを可能
にするため、予め分割分析部10により、各要素の各値
毎に、そのような値の要素を有するデータの個数の事前
調査を行い、各値の要素を有するデータの書き込み先を
指定するポインタを初期設定しておく。桁設定部21、
桁切り出し部22、スイッチ回路部30、スイッチSW
1およびSW2は、バッファから読み出したデータの当
該要素の値を判別し、データ書き込みに必要なポインタ
を分割分析部10からバッファのアドレス端子に導く。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】この発明は、データ列を各デ
ータの大きさの順に並べ替える整順列化方法および整順
列化装置に関する。
【0002】
【従来の技術】データを大きさ順に並べ替えるソート処
理(順列化処理)として、基数ソート(radix sort)法
と呼ばれる方法が知られている。ここで、図6を参照
し、3桁の整数データの整順列化を行う場合を例に基数
ソート法について説明する。まず、図6(a)に示すよ
うに、ソート対象たる各整数データを各々百の位の要
素、十の位の要素、一の位の要素に分解する。次いで一
の位に着目し、この一の位の要素の値が大きさ順の並び
となるようにデータの並び替えを行う(図6(b))。
この並び替えを行った後のデータ列について、今度は十
の位の要素の値が大きさ順の並びとなるようにデータの
並び替えを行う(図6(c))。そして、最後に百の位
の要素の値が大きさ順の並びとなるようにデータの並び
替えを行う(図6(d))。このように桁単位の整順列
化を下位桁から上位桁に向けて順次実行することにより
最終的に各整数データの大きさ順に整順列化された整数
データ列が得られる。
【0003】
【発明が解決しようとする課題】さて、上記基数ソート
法をハードウェアにより実行しようとする場合、以下説
明するように2個のバッファ(以下、第1バッファおよ
び第2バッファとする。)を使用して行うのが一般的で
あろう。
【0004】まず、ソート対象たる整数データ列を第1
バッファに一旦格納する。そして、第1バッファ内の整
数データを順次読み出し、第2バッファ内の記憶エリア
に書き込む。ここで、各整数データの書き込み先の記憶
エリアは、当該整数データの一の位の要素の値に基づい
て決定される。すなわち、一の位の要素が「0」である
整数データは第2バッファ内の先頭の記憶エリアへ、一
の位の要素が「1」である整数データはその次の記憶エ
リアへ、…、一の位の要素が「9」である整数データは
最後尾の記憶エリアへ、という具合に、各整数データを
第2バッファ内の各記憶エリアに順次振分ける。この処
理の結果、一の位について整順列化のなされた整数デー
タ列が第2バッファ内に得られる。
【0005】次に第2バッファ内の先頭の記憶エリアか
ら順に整数データを読み出し、第1バッファ内の記憶エ
リアへ書き込む。この場合、各整数データの書き込み先
の記憶エリアは、当該整数データの十の位の要素の値に
基づいて決定される。この処理により、十の位について
整順列化のなされた整数データ列が第1バッファ内に得
られる。そして、最後に第1バッファ内の先頭の記憶エ
リアから順に整数データを読み出し、当該整数データの
百の位の要素の値に対応した第2バッファ内の記憶エリ
アへ書き込む。以上の処理により、整順列化のなされた
整数データ列が第2バッファ内に得られる。
【0006】しかしながら、このような方法を採ったと
すると、最悪の場合、全ての整数データの要素の値が等
しい場合が有り得るので、各要素毎に全整数データを書
き込み得るだけの記憶エリアを用意しておく必要があ
る。従って、整数データの個数をN、各整数データを構
成する要素の個数をM、各要素が取り得る値の種類をP
種類とすると、第1バッファおよび第2バッファの必要
とする記憶エリアの数は、N×P個(=N×P×M・l
og2P bit)となる。このように、従来の整順列化
方法は、ハードウェアにより実施しようとした場合、整
順列化の処理内容によっては極めて大容量のバッファが
必要になるという問題があった。
【0007】この発明は、以上説明した事情に鑑みてな
されたものであり、大容量の記憶手段を必要とせず、多
数のデータの整順列化処理を高速に実行することができ
る整順列化方法および整順列化装置を提供することを目
的としている。
【0008】
【課題を解決するための手段】請求項1に係る発明は、
各々複数の要素によって構成された複数のデータの整順
列化を行う方法において、 a.前記複数のデータを記憶手段に格納する入力処理を
実行し、 b.前記各要素毎に、前記複数のデータにおける当該要
素の値を判別することにより、当該要素をキーとして前
記複数のデータの整順列化を行ったとした場合に得られ
るであろう整順列化データ列において各値の当該要素を
有するデータのうち先頭のデータのアドレスを各値毎に
求め、これらのアドレスを当該要素の各値に対応して設
けられた各ポインタの初期値とし、 c.前記複数の要素の各々を下位のものから順に選択す
ると共に、この順次選択した各要素毎に、 c1.前記記憶手段から前記複数のデータを順次読み出
す処理、 c2.前記複数のデータにおける当該要素の値を判別
し、各データを当該値に対応したポインタによってアド
レス指定される前記記憶手段内の記憶エリアに格納する
処理、および c3.前記データのアドレス指定に使用されたポインタ
を増加させる処理を実行することを特徴とする整順列化
方法を要旨とする。
【0009】請求項2に係る発明は、各々複数の要素に
よって構成された複数のデータの整順列化を行う方法に
おいて、 a.前記複数のデータを記憶手段に格納する入力処理を
実行し、 b.前記各要素毎に、前記複数のデータにおける当該要
素の値を判別すると共に、当該要素の各値毎に、当該値
の当該要素を有する前記データの個数を集計し、この集
計結果に基づき、当該要素をキーとして前記複数のデー
タの整順列化を行ったとした場合に得られるであろう整
順列化データ列において各値の当該要素を有するデータ
のうち先頭のデータのアドレスを各値毎に求め、これら
のアドレスを当該要素の各値に対応して設けられた各ポ
インタの初期値とし、 c.前記複数の要素の各々を下位のものから順に選択す
ると共に、この順次選択した各要素毎に、 c1.前記記憶手段から前記複数のデータを順次読み出
す処理、 c2.前記複数のデータにおける当該要素の値を判別
し、各データを当該値に対応したポインタによってアド
レス指定される前記記憶手段内の記憶エリアに格納する
処理、および c3.前記データのアドレス指定に使用されたポインタ
を増加させる処理を実行することを特徴とする整順列化
方法を要旨とする。
【0010】請求項3に係る発明は、各々複数の要素に
よって構成された複数のデータの整順列化を行う装置に
おいて、前記複数のデータを格納する記憶手段と、前記
各要素毎に、前記複数のデータにおける当該要素の値を
判別する分割手段と、前記各要素の各値毎にポインタを
記憶する手段と、前記各要素毎に、前記複数のデータに
おける当該要素の値を判別することにより、当該要素を
キーとして前記複数のデータの整順列化を行ったとした
場合に得られるであろう整順列化データ列において各値
の当該要素を有するデータのうち先頭のデータのアドレ
スを各値毎に求め、これらのアドレスを当該要素の各値
に対応した前記ポインタに初期設定する分割分析手段
と、前記複数の要素の各々を下位のものから順に選択す
ると共に、この順次選択した各要素毎に、前記記憶手段
から前記複数のデータを順次読み出す処理、前記複数の
データにおける当該要素の値を判別し、各データを当該
値に対応したポインタによって指定される前記記憶手段
内の記憶エリアに格納する処理、および前記データの格
納先の指定に使用されたポインタを増加させる処理を実
行する整順列化手段とを具備することを特徴とする整順
列化装置を要旨とする。
【0011】請求項4に係る発明は、前記記憶手段は、
第1バッファおよび第2バッファによって構成され、前
記整順列化手段は、第1バッファおよび第2バッファ間
で交互に前記複数のデータの転送を行いつつ前記各処理
を実行することを特徴とする請求項3記載の整順列化装
置を要旨とする。
【0012】請求項1に係る発明によれば、複数のデー
タに対し、下位のものから順に各要素をキーとした整順
列化が進められ、最終的に各データが大きさ順に整順列
化されたデータ列が得られる。各要素をキーとした整順
列化は、記憶手段から複数のデータ列を読み出し、記憶
手段内の複数の記憶エリアに再配置する操作により行わ
れるが、その際に各データは、当該要素の各値毎に予め
割り当てられた記憶エリアのうち当該データの当該要素
の値に対応した記憶エリアに書き込まれる。すなわち、
整順列化に先立ち、複数のデータを構成する各要素の値
が判別され、各要素毎に、当該要素をキーとして前記複
数のデータの整順列化を行ったとした場合に得られるで
あろう整順列化データ列において各値の当該要素を有す
るデータのうち先頭のデータのアドレスが各値毎に求め
られ、これらのアドレスが当該要素の各値に対応して設
けられた各ポインタの初期値とされる。そして、各要素
をキーとした整順列化を行う際には、記憶手段から読み
出されたデータの当該要素の値が判別され、上記各ポイ
ンタのうち判別結果たる当該要素の値に対応したポイン
タが参照され、そのポインタによってアドレス指定され
る記憶エリアにデータが書き込まれ、この書き込みの
後、当該ポインタが増加される。本発明によれば、この
ような手順により整順列化を行うため、各要素をキーと
した整順列化の際、記憶手段の各記憶エリアに処理対象
たる複数のデータを詰めて格納することができる。従っ
て、記憶容量の大きな記憶手段を使用することなく、多
数のデータの整順列化を行うことができる。
【0013】本発明において、ポインタの初期設定は、
各要素毎に、前記複数のデータにおける当該要素の値を
判別することにより行うが、請求項2に係る発明は、そ
の具体的な手順の一形態を提供するものである。すなわ
ち、請求項2に係る発明においては、各要素の各値毎
に、当該値の当該要素を有するデータの個数を集計し、
この集計結果に基づき、ポインタに初期設定すべきアド
レスが演算される。
【0014】請求項3に係る発明は、整順列化装置に関
するものであるが、本発明によれば、最小限の構成によ
り、上記請求項1に係る整順列化方法を実施することが
できる。
【0015】請求項4に係る発明においては、記憶手段
として2個のバッファを使用し、一方から他方へ、他方
から一方へ、という具合に処理対象たる複数のデータの
移し替えを交互に行いつつ整順列化が進められる。記憶
手段に対するアクセス制御のための回路構成を単純化す
ることを考えた場合、このように2個のバッファを使用
するのが有利である。
【0016】
【発明の実施の形態】以下、本発明を更に理解しやすく
するため、実施の形態について説明する。かかる実施形
態は、本発明の一態様を示すものであり、この発明を限
定するものではなく、本発明の範囲で任意に変更可能で
ある。
【0017】A.実施形態の構成 図1はこの発明の一実施形態による整順列化装置の構成
を示すブロック図である。この整順列化装置は、8ビッ
トのデータを100個受け取り、これらのデータを大き
さ順に整順列化するものである。以下、図1を参照し、
本装置の構成を説明する。
【0018】まず、図1において、1は第1バッファ、
2は第2バッファである。これらのバッファは、整順列
化の処理対象たる8ビットのデータ列を記憶するために
使用される。本実施形態は基本的には基数ソート法に従
って整順列化を進めるものであるが、より具体的には、
処理対象たる個々のデータを、LSB(第0ビット)お
よび第1ビットからなる第1要素、第2ビットおよび第
3ビットからなる第2要素、第4ビットおよび第5ビッ
トからなる第3要素、第6ビットおよびMSB(第7ビ
ット)からなる第4要素に分割し、第1要素、第2要
素、第3要素、第4要素の順に、各要素をキーとした整
順列化を処理対象たるデータ列に順次施してゆくもので
ある。各要素をキーとした整順列化は、第1バッファ1
および第2バッファ2の一方から他方へ、他方から一方
へ、という具合に、処理対象たるデータを交互に移し替
えることにより進められる。
【0019】本実施形態においては、各要素をキーとし
た整順列化を行う際、処理対象たる各データを上記第1
バッファ1または第2バッファ2の各記憶エリアに対し
詰めた状態で格納する。このような整順列化を可能にす
るため、本実施形態においては、予め当該要素の各値毎
に、そのような値の当該要素を有するデータの個数の事
前調査を行っておく。そして、整順列化の際に第2バッ
ファ2(第1バッファ1)にデータの書き込みを行う際
の書き込みアドレスの初期値を、上記事前調査の結果に
基づいて各要素の各値毎に求める。なお、本実施形態で
は、この書き込みアドレスの初期値を求める処理とソー
ト対象たるデータ列を取り込む処理とを総称し、初期設
定処理と呼ぶ。実際の整順列化においては、初期設定処
理において予め求められた書き込みアドレスの初期値に
従って、データ書き込みのアドレス制御が行われる。
【0020】図1における分割分析部10は、上記初期
設定処理および整順列化の際の書き込みアドレスの管理
を実行する手段であり、分割部11とポインタ部12A
〜12Dとにより構成されている。ここで、分割部11
は、8ビットの入力データを上記第1要素〜第4要素に
分割し、これらの各要素が“00”,“01”,“1
0”,“11”のいずれであるかの判別を行う回路であ
る。また、ポインタ部12A〜12Dは、第1要素〜第
4要素に対応して設けられた回路であり、各ポインタ部
は各々が受持った各要素について4個のポインタP00
〜P11を出力する。これらのポインタP00〜P11
が、第2バッファ2(第1バッファ1)に対してデータ
書き込みを行う際の書き込みアドレスの指定に使用され
る。
【0021】図2は、分割分析部10のうち1個の要素
に対応した部分の構成例を示したものである。図2にお
いて、デコーダ111およびANDゲート112〜11
4は、図1における分割部11に相当する部分である。
デコーダ111は、処理対象たるデータを4分割したう
ちの一要素(2ビットのデータ)の値が“00”、“0
1”、“10”、“11”のいずれであるかを判別す
る。そして、この判別の結果、当該要素が“00”であ
る場合にはANDゲート112に、“01”である場合
にはANDゲート113に、“10”である場合にはA
NDゲート114に各々信号“1”が与えられる。ま
た、各ANDゲート112〜114には、データ入力用
クロックCKおよび動作切り換え信号I/Pが入力され
る。ここで、データ入力用クロックCKは、この整順列
化装置に処理対象たるデータが1個入力される毎にこれ
と同期して与えられるクロックである。また、動作切り
換え信号I/Pは、図1における初期化器50によって
出力される信号であり、初期設定処理が行われる期間は
“1”とされ、その後、整順列化が行われる期間は
“0”とされる。
【0022】次にアップカウンタ121〜124および
ORゲート126〜130は、図1におけるポインタ部
12A〜12Dのうち一のポインタ部に相当する部分で
ある。各アップカウンタ121〜124のカウント値
は、各々出力端子OUTから出力されるが、これらが上
述のポインタP00〜P11である。初期設定処理の開
始の際、各アップカウンタのクリア端子CLRには図1
における初期化器50からイニシャルクリア信号ICが
供給される。これにより各アップカウンタのカウント値
は「0」に初期設定される。
【0023】各アップカウンタ121〜124の各クロ
ック端子UPには、直接にまたはORゲートを介し、デ
ータ計数クロックU0〜U3が各々入力される。これら
のデータ計数クロックU0〜U3は、整順列化処理が行
われる際にポインタP00〜P11を進めるために出力
されるものであるが、ポインタP00〜P11の初期設
定処理が行われる期間中は“0”とされる。従って、初
期設定処理においては、ANDゲート112〜114か
らの各出力信号がORゲート126〜130を介して各
アップカウンタ122〜124へ供給され、カウントが
行われる。ORゲート126〜130は図示のように接
続されているため、各アップカウンタ121〜124が
行うカウント処理の結果、以下に内容を示すポインタP
00〜P11の各初期値が各アップカウンタに設定され
ることとなる。
【0024】ポインタP00:初期設定処理の期間中は
カウントが行われない。従って、「0」が初期値とな
る。 ポインタP01:当該要素の値が“00”となっている
データの個数が初期値として設定される。 ポインタP10:当該要素の値が“00”または“0
1”となっているデータの個数が初期値として設定され
る。 ポインタP11:当該要素の値が“00”、“01”ま
たは“10”となっているデータの個数が初期値として
設定される。
【0025】以上が分割分析部10における第1要素〜
第4要素のうち一の要素に対応した部分の詳細である。
【0026】再び図1を参照し、本装置の構成について
説明する。上述したように本実施形態は、基本的には基
数ソート法を原理とするものであり、第1要素〜第4要
素を各々キーとした整順列化を順次実行する。このよう
な動作を実現するためには、各要素をキーとした整順列
化を行う際に、各要素に対応したポインタP00〜P1
1のうち当該要素に対応した4個のポインタを選択する
必要がある。図1におけるスイッチSW1および桁設定
部21はそのための選択手段を構成している。すなわ
ち、第1要素をキーとした整順列化を行う期間は、桁設
定部21により第1要素が選択され、これによりスイッ
チSW1によってポインタ部12Dが選択される。そし
て、第2要素、第3要素、第4要素をキーとした整順列
化を行う各期間は、桁設定部21により当該が選択さ
れ、スイッチSW1によってポインタ部12C、12
B、12Aが各々選択される。
【0027】また、整順列化の際には、スイッチSW1
により選択されたポインタP00〜P11(キーとなっ
ている要素に対応したポインタ)のうち、移し替えるべ
きデータの当該要素の値に対応したポインタに従って書
き込み先のアドレスを決定する必要がある。
【0028】図1における桁切り出し部22およびスイ
ッチSW2は、このような制御を行うために設けられた
手段である。すなわち、桁切り出し部22は、移し替え
るべきデータの当該要素(すなわち、桁設定部21によ
り選択された要素)の値が“00”、“01”、“1
0”、“11”のいずれであるかを判別する。なお、移
し替えるべきデータの桁切り出し部22への引き渡しは
スイッチ回路部30を介して行われる。そして、スイッ
チSW2は上記判別結果に従って切り換えられ、当該要
素の値が“00”のときにはポインタP00が、“0
1”のときはポインタP01が、“10”のときはポイ
ンタP01が、“11”のときはポインタP11が各々
スイッチSW2によって選択される。スイッチSW2に
よって選択されたポインタは、データの移し替えの際の
書き込み先アドレスの指定に使用される。
【0029】このようにしてアドレス指定に使用された
ポインタは、次回の書き込みに備えて「1」だけ進めら
れる。すなわち、移し替えたデータの当該要素の値が
“00”である場合にはデータ計数クロックU0が、
“01”である場合にはデータ計数クロックU1が、
“10”である場合にはデータ計数クロックU2が、
“11”である場合にはデータ計数クロックU3が桁切
り出し部22によって出力される。これらのデータ計数
クロックU0〜U3が、ポインタ部12A〜12Dのう
ち当該要素に対応したポインタ部に送られ、該当するポ
インタが進められる。
【0030】スイッチ回路30は、第1バッファ1およ
び第2バッファ2の入出力制御のために設けられた切り
換え手段である。初期設定処理が行われる期間、処理対
象たるデータが順次到来するが、スイッチ回路30はこ
のデータを第1バッファ1の書き込みデータ端子WDへ
導く。また、初期設定処理が行われている期間は、アド
レスカウンタ60の出力端子と第1バッファ1のアドレ
ス端子ADRとを接続する。アドレスカウンタ60は、
初期設定処理が行われる期間、データ入力用クロックC
Kをカウントし、アドレスデータ「0」〜「99」を順
次出力する。このような回路接続がなされる結果、処理
対象たる100個のデータが、第1バッファ1の第0番
地から第99番地に対応した各記憶エリアに格納される
こととなる。
【0031】また、各要素をキーとした整順列化処理
は、第1バッファ1および第2バッファ2のうち一方か
らデータの読み出しを行い、他方に対してデータの書き
込みを行うことにより実行される。スイッチ回路30
は、このようなバッファ間のデータの移し替えを可能に
すべく各バッファ廻りの回路接続状態を切り換える。す
なわち、第1バッファ1および第2バッファ2のうちデ
ータの読み出しを行うバッファに対しては、アドレスカ
ウンタ60の出力端子をアドレス端子ADRに接続す
る。一方、データの書き込みを行うバッファのアドレス
端子ADRに対しては、スイッチSW2を介して供給さ
れるアドレス(ポインタP00〜P11のうちいずれ
か)を供給する。そして、データの読み出しを行うバッ
ファの読み出しデータ端子RDと、データの書き込みを
行うバッファの書き込みデータ端子WDとを接続する。
このような接続がなされることにより、2個のバッファ
間のデータの移し替えが可能となる。
【0032】移し替えの対象となったデータ、すなわ
ち、第1バッファ1または第2バッファ2から読み出さ
れたデータは、スイッチ回路30経由で上述した桁切り
出し部22に供給される。
【0033】B.実施形態の動作 図3は初期設定処理のうち分割分析部10によってなさ
れる処理の内容を示す図、図4および図5は各要素をキ
ーとした整順列化処理の内容を示す図である。以下、こ
れらの図を参照し、本実施形態の動作を説明する。
【0034】(1)初期設定処理 データ列の整順列化は、初期設定処理および各要素をキ
ーとした整順列化処理の順に進められる。初期設定処理
においては、順次到来するデータがスイッチ回路部30
を介して第1バッファ1に格納されるが、これらの各デ
ータは分割分析部10にも引き渡され、各データに基づ
いて、各要素をキーとした整順列化処理を行うためのポ
インタP00〜P11の初期設定が行われる。
【0035】すなわち、図3に示すように、本装置に順
次到来するデータDk、Dk+1、…は、分割分析部10に
入力され、各データの第1〜第4要素は、分割部11内
の4個のデコーダ111によって各々値が判別される。
そして、各要素に対応した各ポインタ部12A〜12D
においては、当該要素の値が“00”の場合はアップカ
ウンタ122、“01”の場合はアップカウンタ122
および123、“10”の場合はさらにこれらに加えて
アップカウンタ124のアップカウントが行われる。こ
の処理が、各要素に対応した各ポインタ部において処理
対象たる全てのデータDk、Dk+1、…について行われ
る。この結果、第1要素〜第4要素の各々について上述
したポインタP00〜P11が得られる。
【0036】(2)各要素をキーとした整順列化処理 以上説明した初期設定処理が終了すると、各要素をキー
とした整順列化処理が順次実行される。図4は、最初に
実行される第1要素をキーとした整順列化処理の処理内
容を示している。
【0037】まず、桁設定部21によって第1要素が選
択され、スイッチSW1によってポインタ部12Dが選
択される。この結果、第1要素に対応したポインタP0
0〜P11がスイッチSW1を介して出力される。図4
(b)はこのポインタP00〜P11を例示したもので
ある。また、スイッチ回路部30により、第1バッファ
1のアドレス端子ADRにアドレスカウンタ60の出力
端子が接続され、第2バッファ2の書き込みデータ端子
WDに第1バッファ1の読み出しデータ端子RDが接続
され、さらに第2バッファ2のアドレス端子ADRにス
イッチSW2が接続される。そして、このような接続状
態において、第1要素をキーとした整順列化処理が実行
される。
【0038】この整順列化処理においては、アドレスカ
ウンタ60のアップカウントが行われ、アドレスデータ
「0」〜「99」が第1バッファ1のアドレス端子AD
Rに順次与えられ、同バッファの第0番地から第99番
地までの各記憶エリア内のデータが順次読み出される
(図4(a))。そして、この読み出しデータは、スイ
ッチ回路30を介し、桁切り出し部22および第2バッ
ファ2の書き込みデータ端子WDに順次与えられる。
【0039】桁切り出し部22は、第1バッファ1から
読み出されたデータの第1要素の値(図4(a))を判
別し、判別結果に従ってスイッチSW2を切り換える。
ここで、データの第1要素の値が例えば“00”である
ときはポインタP00がスイッチSW2により選択さ
れ、スイッチ回路部30を介して第2バッファ2のアド
レス端子ADRに与えられる。この結果、その時点にお
いて第2バッファ2の書き込みデータ端子WDに与えら
れている当該データは、ポインタP00によってアドレ
ス指定される記憶エリアに書き込まれる。
【0040】また、ポインタP00がアドレス指定に使
用されたことに伴い、桁切り出し部22によってデータ
計数信号U0が出力され、ポインタ部12Dに与えられ
る。この結果、ポインタP00が「1」だけ増加するこ
ととなる(図4(c))。
【0041】第1バッファ1から読み出されたデータの
第1要素が他の値である場合も同様であり、当該データ
はその値に対応したポインタによってアドレス指定され
る記憶エリアに書き込まれ、そのポインタの値が「1」
だけ増加される。
【0042】以上の処理が第1バッファ1内の100個
のデータについて実行され、第1要素をキーとした整順
列化のなされたデータ列が第2バッファ2内の第0番地
から第99番地までの各記憶エリアに得られる。
【0043】次に第2要素をキーとした整順列化処理が
実行される。図5はその処理内容を示すものである。
【0044】この処理においては、ポインタ部12Cが
選択され、第2要素に対応したポインタP00〜P11
がスイッチSW1を介して出力される。図5(b)はこ
のポインタP00〜P11を例示したものである。ま
た、スイッチ回路部30により、第2バッファ2のアド
レス端子ADRにアドレスカウンタ60の出力端子が接
続され、第1バッファ1の書き込みデータ端子WDに第
2バッファ2の読み出しデータ端子RDが接続され、さ
らに第1バッファ1のアドレス端子ADRにスイッチS
W2が接続される。すなわち、第1要素をキーとした場
合とは逆に、第1バッファ1を書き込み動作させ、第2
バッファ2を読み出し動作させる訳である。そして、こ
のような接続状態において、第2要素をキーとした整順
列化処理が実行される。
【0045】上述した第1要素をキーとした整順列化処
理と同様、アドレスカウンタ60のアップカウントが行
われる。そして、第2バッファ2の第0番地から第99
番地までの各記憶エリア内のデータが順次読み出される
(図5(b))。そして、この読み出しデータは、スイ
ッチ回路30を介し、桁切り出し部22および第1バッ
ファ1の書き込みデータ端子WDに順次与えられる。
【0046】桁切り出し部22は、第2バッファ2から
読み出されたデータの第2要素の値(図5(b))を判
別し、判別結果に従ってスイッチSW2を切り換える。
この結果、第2要素の値に対応したポインタがスイッチ
SW2およびスイッチ回路部30を介して第1バッファ
1のアドレス端子ADRに与えられる。そして、その時
点において第1バッファ1の書き込みデータ端子WDに
与えられている当該データは、このポインタによってア
ドレス指定される記憶エリアに書き込まれる。また、上
述と同様、アドレス指定に使用されたポインタのインク
リメントが行われる(図5(c))。
【0047】以上の処理が第2バッファ1内の100個
のデータについて実行され、第2要素をキーとした整順
列化のなされたデータ列が第1バッファ1内の第0番地
から第99番地までの各記憶エリアに得られる。
【0048】第3要素、第4要素をキーとした整順列化
処理も上述と全く同様な手順によって行われ、大きさ順
に整順列化されたデータ列が得られる。
【0049】このように本実施形態によれば、整順列化
処理を行うのに使用するバッファの記憶容量が処理対象
たるデータの個数の2倍相当の容量で済むため、小規模
な構成とすることができる。
【0050】C.他の実施形態 以上、本発明の一構成例を説明したが、本発明の範囲は
これに限定されるものではなく、例えば以下列挙するよ
うな様々な変形が考えられる。 (1)ポインタP00〜P11の設定を行う回路(図
2)の変形例 図2において、ORゲート127および129を削除
し、ANDゲート113および114の各出力信号をO
Rゲート128および130に各々直接供給する。すな
わち、アップカウンタ122、123、124では、要
素の値が“00”であるデータの個数、要素の値が“0
1”であるデータの個数、要素の値が“10”であるデ
ータの個数をカウントする。そして、アップカウンタ1
23、124の後段に加算器を各々設け、アップカウン
タ122および123の各カウント値を加算してポイン
タP01として出力し、ポインタP01の値にアップカ
ウンタ124のカウント値を加算してポインタP11と
して出力する。このような構成としても、上記実施形態
と全く同様な動作が得られる。 (2)上記実施形態では、第1バッファ1および第2バ
ッファ2という物理的に別個な2つのバッファを使用し
たが、1個のメモリの記憶エリアを二分し、一方を第1
バッファ、他方を第2バッファとして使用するようにし
てもよい。 (3)上記実施形態では、処理対象たるデータを4等分
し、2ビットからなる各要素をキーとして整順列化を行
ったが、ビット数の異なった要素に分割してもよい。 (4)上記実施形態の各構成要素をソフトウェアにより
実現してもよい。いずれの構成要素をソフトウェア化す
るかは、整順列化を行う目的、要求される処理速度等に
応じて選択すればよい。
【0051】D.本発明の適用例 本発明は、整順列化処理を必要とする幅広い用途に適用
可能であるが、特に大量のデータの整順列化を短時間で
行うことが要求される用途において真価を発揮すると考
えられる。例えば画像処理の分野においては、3次元画
像表示を行う際に、最初に最も遠くにある対象物、次い
でその手前の対象物、次いでさらにその手前の対象物と
いう具合に、各対象物の画像データを遠くのものから順
に重ねて描画してゆく方法がある。このような制御を行
うため、各対象物に対応した画像データを画面奥行方向
の軸(Z軸)上の座標値をキーとして予め整順列化する
処理が行われる。いわゆるZソートである。このZソー
トの対象となるデータの個数は一般的に多く、しかも、
比較的短時間で処理を完了しなければならない、という
厳しい要求がある。本発明による装置は、このZソート
にも十分に適用可能である。
【0052】
【発明の効果】以上説明したように、この発明によれ
ば、大容量の記憶手段を用いることなく、多数のデータ
の整順列化処理を実行することができるという効果があ
る。また、本発明はハードウェアにより実現することが
容易な構成であり、整順列化処理の手順も簡単であるた
め、高速処理に適しているという利点がある。
【図面の簡単な説明】
【図1】 この発明の一実施形態による整順列化装置の
構成を示すブロック図である。
【図2】 同実施形態における分割分析部のうち1個の
要素に対応した部分の構成例を示すブロック図である。
【図3】 同実施形態における初期設定処理の内容を示
す図である。
【図4】 同実施形態における第1要素をキーとした整
順列化処理の内容を示す図である。
【図5】 同実施形態における第2要素をキーとした整
順列化処理の内容を示す図である。
【図6】 一般的な基数ソート法の手順を示す図であ
る。
【符号の説明】
10……分割分析部、P00〜P11……ポインタ、S
W1,SW2……スイッチ、30……スイッチ回路部、
21……桁設定部、22……桁切り出し部、1……第1
バッファ、2……第2バッファ、60……アドレスカウ
ンタ、50……初期化器。

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】 各々複数の要素によって構成された複数
    のデータの整順列化を行う方法において、 a.前記複数のデータを記憶手段に格納する入力処理を
    実行し、 b.前記各要素毎に、前記複数のデータにおける当該要
    素の値を判別することにより、当該要素をキーとして前
    記複数のデータの整順列化を行ったとした場合に得られ
    るであろう整順列化データ列において各値の当該要素を
    有するデータのうち先頭のデータのアドレスを各値毎に
    求め、これらのアドレスを当該要素の各値に対応して設
    けられた各ポインタの初期値とし、 c.前記複数の要素の各々を下位のものから順に選択す
    ると共に、この順次選択した各要素毎に、 c1.前記記憶手段から前記複数のデータを順次読み出
    す処理、 c2.前記複数のデータにおける当該要素の値を判別
    し、各データを当該値に対応したポインタによってアド
    レス指定される前記記憶手段内の記憶エリアに格納する
    処理、および c3.前記データのアドレス指定に使用されたポインタ
    を増加させる処理を実行することを特徴とする整順列化
    方法。
  2. 【請求項2】 各々複数の要素によって構成された複数
    のデータの整順列化を行う方法において、 a.前記複数のデータを記憶手段に格納する入力処理を
    実行し、 b.前記各要素毎に、前記複数のデータにおける当該要
    素の値を判別すると共に、当該要素の各値毎に、当該値
    の当該要素を有する前記データの個数を集計し、この集
    計結果に基づき、当該要素をキーとして前記複数のデー
    タの整順列化を行ったとした場合に得られるであろう整
    順列化データ列において各値の当該要素を有するデータ
    のうち先頭のデータのアドレスを各値毎に求め、これら
    のアドレスを当該要素の各値に対応して設けられた各ポ
    インタの初期値とし、 c.前記複数の要素の各々を下位のものから順に選択す
    ると共に、この順次選択した各要素毎に、 c1.前記記憶手段から前記複数のデータを順次読み出
    す処理、 c2.前記複数のデータにおける当該要素の値を判別
    し、各データを当該値に対応したポインタによってアド
    レス指定される前記記憶手段内の記憶エリアに格納する
    処理、および c3.前記データのアドレス指定に使用されたポインタ
    を増加させる処理を実行することを特徴とする整順列化
    方法。
  3. 【請求項3】 各々複数の要素によって構成された複数
    のデータの整順列化を行う装置において、 前記複数のデータを格納する記憶手段と、 前記各要素毎に、前記複数のデータにおける当該要素の
    値を判別する分割手段と、 前記各要素の各値毎に設けられた複数のポインタと、 前記各要素毎に、前記複数のデータにおける当該要素の
    値を判別することにより、当該要素をキーとして前記複
    数のデータの整順列化を行ったとした場合に得られるで
    あろう整順列化データ列において各値の当該要素を有す
    るデータのうち先頭のデータのアドレスを各値毎に求
    め、これらのアドレスを当該要素の各値に対応した前記
    ポインタに初期設定する分割分析手段と、 前記複数の要素の各々を下位のものから順に選択すると
    共に、この順次選択した各要素毎に、 前記記憶手段から前記複数のデータを順次読み出す処
    理、 前記複数のデータにおける当該要素の値を判別し、各デ
    ータを当該値に対応したポインタによって指定される前
    記記憶手段内の記憶エリアに格納する処理、および前記
    データの格納先の指定に使用されたポインタを増加させ
    る処理を実行する整順列化手段とを具備することを特徴
    とする整順列化装置。
  4. 【請求項4】 前記記憶手段は、第1バッファおよび第
    2バッファによって構成され、 前記整順列化手段は、第1バッファおよび第2バッファ
    間で交互に前記複数のデータの転送を行いつつ前記各処
    理を実行することを特徴とする請求項3記載の整順列化
    装置。
JP7206049A 1995-08-11 1995-08-11 整順列化方法および整順列化装置 Pending JPH0954676A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP7206049A JPH0954676A (ja) 1995-08-11 1995-08-11 整順列化方法および整順列化装置
US08/694,337 US5937403A (en) 1995-08-11 1996-08-08 Integer permutation method and integer permutation system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP7206049A JPH0954676A (ja) 1995-08-11 1995-08-11 整順列化方法および整順列化装置

Publications (1)

Publication Number Publication Date
JPH0954676A true JPH0954676A (ja) 1997-02-25

Family

ID=16517037

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7206049A Pending JPH0954676A (ja) 1995-08-11 1995-08-11 整順列化方法および整順列化装置

Country Status (2)

Country Link
US (1) US5937403A (ja)
JP (1) JPH0954676A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7505165B2 (en) 2001-05-18 2009-03-17 Sanyo Electric Co., Ltd. Image recording apparatus

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3696796B1 (en) * 2017-10-12 2023-07-05 Nippon Telegraph And Telephone Corporation Permutation apparatus, permutation method, and program

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4809158A (en) * 1985-10-23 1989-02-28 Mccauley Peter B Sorting method and apparatus
EP0411788A3 (en) * 1989-08-02 1992-08-05 International Business Machines Corporation External sorting using virtual storage
EP0523269A1 (de) * 1991-07-18 1993-01-20 International Business Machines Corporation Computersystem zur Datenverwaltung
US5396622A (en) * 1991-12-23 1995-03-07 International Business Machines Corporation Efficient radix sorting system employing a dynamic branch table
EP0551691A1 (en) * 1992-01-15 1993-07-21 International Business Machines Corporation Sorting method
US5440734A (en) * 1993-09-14 1995-08-08 International Business Machines Corporation System for MSD radix sort bin storage management
US5487164A (en) * 1993-09-14 1996-01-23 International Business Machines Corporation Distribution-based replacement selection sorting system
US5678043A (en) * 1994-09-23 1997-10-14 The Regents Of The University Of Michigan Data compression and encryption system and method representing records as differences between sorted domain ordinals that represent field values

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7505165B2 (en) 2001-05-18 2009-03-17 Sanyo Electric Co., Ltd. Image recording apparatus

Also Published As

Publication number Publication date
US5937403A (en) 1999-08-10

Similar Documents

Publication Publication Date Title
US4064489A (en) Apparatus for searching compressed data file
US4611310A (en) Method and system for rearranging data records in accordance with keyfield values
JPS6240740B2 (ja)
CA1080366A (en) First in - first out memory array containing special bits for replacement addressing
US3806883A (en) Least recently used location indicator
US3771142A (en) Digital data storage system
GB1570264A (en) Sorter with overlap operation
GB2174277A (en) Method and system for displaying multiple images on a display screen
US5201058A (en) Control system for transferring vector data without waiting for transfer end of the previous vector data
EP0057096A2 (en) Information processing unit
JPH0954676A (ja) 整順列化方法および整順列化装置
JPH0256048A (ja) データ転送方法及びデータバッファ装置
EP0564290B1 (en) High speed sorting apparatus
US5822752A (en) Method and apparatus for fast parallel determination of queue entries
JPH0833869B2 (ja) データ処理装置
JPS6113340A (ja) ハツシユ制御方式
JPS5841584B2 (ja) マルチアクセスメモリ方法およびマルチアクセス用メモリチツプ
JPH10143661A (ja) データ処理装置
JPH05265941A (ja) ファーストイン・ファーストアウトメモリ
JPH0277936A (ja) Fifoバッファメモリの制御方式
EP1184869A2 (en) Data storage device and data storing method
JPS6238077A (ja) デ−タ配列置換装置
JPS61292290A (ja) 先入れ先出し記憶装置
JPH04139529A (ja) 図形表示装置
JPH04105148A (ja) データ転送制御方式