(57)【要約】【課題】  比較的簡単なハードウェアによって大小順のデータ列を、高速に生成できるようにする新規な手段を提供する。【解決手段】  ｎ個のレジスタユニット（１１〜１ｎ）が縦続に接続され、各レジスタユニットはデータバス１０２から入力されるデータと現在格納中のデータとの大小を比較し、比較結果ＣＭＰを出力する。シフト制御部１０１は、比較結果ＣＭＰに基づき、外部からデータバス１０２上に入力されたデータをどの位置のレジスタユニットに挿入すべきか判定し、そのレジスタユニットにはデータバス上のデータを書き込み、そのレジスタユニットより後のレジスタユニットでは１段前のレジスタユニットが保持していたデータを書き込むようにＳＥＬ信号やＣＬＫ信号を供給する。【選択図】  図１
2005267415.tif 000002
【特許請求の範囲】
【請求項１】
被ソートデータが入出力されるデータバスと、縦続接続されかつそれぞれが前記データバスと接続された複数のレジスタユニットと、該複数のレジスタユニットのシフト動作を制御するシフト制御部を有する順序制御回路において、
前記レジスタユニットは、前記データバスから入力される１つの被ソートデータを格納する格納手段と、前記データバスから入力されたデータと現在格納中のデータとの大小を比較し、比較結果を出力する大小判定手段と、選択信号により前記データバスから入力されたデータと前段のレジスタユニットに格納されているデータの何れか一方を選択して前記格納手段へ出力する格納データ選択手段を備え、
前記シフト制御部は、前記各レジスタユニットの大小判定手段からの判定結果を入力して該判定結果が変化する位置を検出する手段と、該判定結果が変化する位置に対応する順番のレジスタユニットに対して前記データバスから入力されたデータの選択を指示する前記選択信号を出力するとともに、前記判定結果が変化する位置に対応する順番より後段に接続されている全てのレジスタユニットに対して前記前段のレジスタユニットに格納されているデータの選択を指示する前記選択信号を出力する手段と、前記判定結果が変化する位置に対応する順番以後の全てのレジスタユニットに対して現在格納中のデータを更新するためのクロック信号を供給する手段を備えている
ことを特徴とする順序制御回路。
【請求項２】
前記複数のレジスタユニットに格納された被ソートデータを、前記データバスを介して順次出力するための制御信号を供給する手段を備えていることを特徴とする請求項１に記載の順序制御回路。
【請求項３】
前記格納手段は、Ｄ型フリップフロップ回路によって構成されていることを特徴とする請求項１または２に記載の順序制御回路。
【請求項４】
前記各レジスタユニットの大小判定手段からの判定結果を入力して該判定結果が変化する位置を検出する手段は、前記各レジスタユニットの互いに接続されている２つのレジスタユニットから出力される前記判定結果の排他的論理和（ＥＸＯＲ）を出力する手段によって構成されていることを特徴とする請求項１〜３のいずれかに記載の順序制御回路。
【請求項５】
前記複数のレジスタユニットの各格納手段に格納されているデータを最小値に初期設定する手段を備え、
前記大小判定手段は、前記データバスから被ソートデータとして入力されたデータが現在格納中のデータよりも大きいことを示す信号、もしくは前記データバスから入力されたデータが現在格納中のデータ以上であることを示す信号を、前記比較結果として出力することを特徴とする請求項１〜４のいずれかに記載の順序制御回路。
【請求項６】
前記複数のレジスタユニットの各格納手段に格納されているデータを最大値に初期設定する手段を備え、
前記大小判定手段は、前記データバスから被ソートデータとして入力されたデータが現在格納中のデータよりも小さいことを示す信号、もしくは前記データバスから入力されたデータが現在格納中のデータ以下であることを示す信号を、前記比較結果として出力することを特徴とする請求項１〜４のいずれかに記載の順序制御回路。
【請求項７】
全ての前記レジスタユニットに対する選択信号を、前記データバスから入力されたデータを選択するように設定する手段、および全ての前記レジスタユニットの格納手段に前記データバスを介して所定のデータを一括書き込みする手段からなり、前記各レジスタユニットの各格納手段に格納されているデータを全て前記所定のデータに初期設定する手段を備え、
前記大小判定手段は、前記初期設定後に前記データバスから被ソートデータとして入力されたデータが現在格納中のデータよりも大きいことを示す信号、もしくは前記データバスから入力されたデータが現在格納中のデータ以上であることを示す信号を、前記比較結果として出力することを特徴とする請求項１〜４のいずれかに記載の順序制御回路。
【請求項８】
全ての前記レジスタユニットに対する選択信号を、前記データバスから入力されたデータを選択するように設定する手段、および全ての前記レジスタユニットの格納手段に前記データバスを介して所定のデータを一括書き込みする手段からなり、前記各レジスタユニットの各格納手段に格納されているデータを全て前記所定のデータに初期設定する手段を備え、
前記大小判定手段は、前記初期設定後に前記データバスから被ソートデータとして入力されたデータが現在格納中のデータよりも小さいことを示す信号、もしくは前記データバスから入力されたデータが現在格納中のデータ以下であることを示す信号を、前記比較結果として出力することを特徴とする請求項１〜４のいずれかに記載の順序制御回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の入力データを所定の順序（大きい順、あるいは小さい順）に並べ替えて出力する順序制御回路に関する。
【背景技術】
【０００２】
各種の電子装置において、複数のデータを大きさの順に並べたいという要求は往々にして発生する。例えば、多数のデータをアドレス番号の大きい順に並べたい、計算結果を値の小さい順に並べたい、あるいは無線通信で受信レベルの高い順に信号を並べたい等々の場合である。
【０００３】
これらの目的には、例えばＣＰＵやＤＳＰを使用し、入力される複数のデータを順次比較することによりメモリーエリアの適当な領域にデータを大きい順番あるいは小さい順番に並べることにより実現可能である。しかしその操作には比較的長い時間が必要である。例えば、既にデータが順番に並んでいるところへ新たなデータを順序通りに挿入する場合にはまず、新しいデータと既に格納済みの多数のデータとの大小比較を行って、新しいデータを格納すべきメモリー位置を探索し、位置が判明した後も該当する位置のメモリーに書き込むため、それ以降のデータを全て１つずつ後にずらすという操作が必要となる。これらには一般に、数十〜数百の動作クロック数を要する。
【０００４】
このような並べ替えに要する時間を短縮するために、従来種々の方法が提案されている（特許文献１〜３参照）。
【０００５】
例えば特許文献１では、入力するｎ個のデータを大きい順、または小さい順にソートする際に、ｎ個の判断・記憶部分を縦続接続するとともに、各判断・記憶部分をＬ、またはＨで初期化した後、初段の判断・記憶部分で、入力データと記憶部分に格納されたデータとの大小を相互に比較判断し、入力データの方が大きい時、または小さい時には該入力データを該記憶部分に格納するとともに該記憶部分に以前に格納されていたデータを次段に送出し、一方、入力データの方が小さい時、または大きい時には入力データを次段に送出し、次段の判断・記憶部分で前段と同様な処理を繰り返すことにより、ｎ個の該記憶部分に大きい順、または小さい順にｎ個のデータをソーティングしながら格納している。
【０００６】
また、特許文献２では、縦続接続した複数の処理要素における一端側の処理要素へ複数のデータを順次与え、各処理要素に１つのデータを格納した後、格納したデータと、その後に与えられる新たなデータとを比較し、所定の順序関係に基づいて、比較されたデータのうちの一方を格納するとともに他方を後段の処理要素へ与える処理を繰り返し行うことにより、ソーティングを行っている。
【０００７】
また、特許文献３では、データを格納するデータ保持レジスタと、入力した被ソートデータを前記データ保持レジスタの値と比較し、比較結果を後段に出力するデータ比較器と、前段のデータ保持レジスタの出力である保持データ入力と被ソートデータ入力と前記データ保持レジスタに保持されているデータのいずれかを選択して前記データ保持レジスタに保持させるデータセレクタと、前記データ比較器の比較結果に基づいて前記データセレクタが前記３つのデータのいずれを選択するかを指示する制御回路部と、ソートの完了したデータであることを表すソート完了フラグを保持するソート完了フラグレジスタとを備えた演算ユニットを、少なくとも並べ替えたいデータの数だけカスケード接続し、各ユニットにおいて被ソートデータとデータ保持レジスタの値の比較を同時に行うようにしている。
【０００８】
【特許文献１】特開平３−１２６１２９号公報
【特許文献２】特開平６−６７８４４号公報
【特許文献３】特開平６−８３５８５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
上記特許文献１〜３に記載された方法によれば、ＣＰＵやＤＳＰを使用し、入力される複数のデータを順次比較することによりメモリーエリアの適当な領域にデータを大きい順番あるいは小さい順番に並べる方法と比較して、並べ替えに要する時間を短縮することができる。
【００１０】
しかし、特許文献１〜２に記載された方法の場合、被ソートデータは縦続接続された演算ユニットの初段にのみ入力され、初段の演算ユニットから比較・保持動作を行い、その結果を次段の演算ユニットに順次転送するので、新しいデータを格納すべき演算ユニットが後段側にある場合には、更新する必要のない前段側の演算ユニットで無駄な比較・保持動作が行われるため、その分余計な時間がかかるとともに、無駄な電力消費となる。
【００１１】
一方、特許文献３に記載された方法では、被ソートデータは縦続接続された演算ユニットの全てに対して同時に入力されるので、並べ替えに要する時間をより短縮することができるが、特許文献３に記載された発明では、データセレクタとして３入力のデータセレクタを必要とするため、回路規模が大きくなるという問題があり、また、毎回全ユニットに対してクロックを与えて動作させているために、消費電力が大きいという問題がある。
【００１２】
本発明の目的は、上記問題点に鑑み、比較的簡単なハードウェアによって上述のような大小順のデータ列を、高速に生成できるようにする新規な手段を提供することにある。
【課題を解決するための手段】
【００１３】
本発明は、被ソートデータが入出力されるデータバスと、縦続接続されかつそれぞれが前記データバスと接続された複数のレジスタユニットと、該複数のレジスタユニットのシフト動作を制御するシフト制御部を有する順序制御回路において、前記レジスタユニットは、前記データバスから入力される１つの被ソートデータを格納する格納手段と、前記データバスから入力されたデータと現在格納中のデータとの大小を比較し、比較結果を出力する大小判定手段と、選択信号により前記データバスから入力されたデータと前段のレジスタユニットに格納されているデータの何れか一方を選択して前記格納手段へ出力する格納データ選択手段を備え、前記シフト制御部は、前記各レジスタユニットの大小判定手段からの判定結果を入力して該判定結果が変化する位置を検出する手段と、該判定結果が変化する位置に対応する順番のレジスタユニットに対して前記データバスから入力されたデータの選択を指示する前記選択信号を出力するとともに、前記判定結果が変化する位置に対応する順番より後段に接続されている全てのレジスタユニットに対して前記前段のレジスタユニットに格納されているデータの選択を指示する前記選択信号を出力する手段と、前記判定結果が変化する位置に対応する順番以後の全てのレジスタユニットに対して現在格納中のデータを更新するためのクロック信号を供給する手段を備えていることを特徴とする。
【００１４】
本発明では、それぞれデータバスに接続された複数のレジスタユニットを縦続接続して構成し、このレジスタユニット列に大小順にデータが格納されるが、格納すべきデータはデータバス上に順次出力し、各レジスタユニットにおいて既に格納されているデータとの大小比較を同時に行ってどのレジスタユニットの次に位置すべきかを判定し、その位置に挿入する。その位置以降に元々格納されていたデータは順次後へシフトする。
【００１５】
そのため本発明では、各レジスタユニットにデータバス上のデータと自分の格納データとの大小比較を行う大小比較器を備え、その比較結果がどの位置で変化するかを簡単な位置検出回路（シフト制御部）で検出しているのが第一のポイントである。
【００１６】
そして、その位置検出結果に基づき、しかるべき順番のレジスタユニットに新しいデータを挿入し、なおかつ以前からその位置以降にあったデータは１つずつ後へシフトさせるという、通常ならばかなりの時間を要する操作を、シフトレジスタを用いることによって、１クロックの操作で実行できるようにするとともに、しかるべき順番のレジスタユニットよりも前段に位置するレジスタユニットに対してはデータ更新用のクロックを供給しないように制御することで低消費電力化を図っているのが第二のポイントである。
【発明の効果】
【００１７】
本発明によれば、比較的簡単なハードウェアによって大小順のデータ列の並び替え操作を、非常に高速に実行することができるとともに、並び替え動作にともなう電力消費も必要最小限に抑えることができる。
【発明を実施するための最良の形態】
【００１８】
図１は、本発明の実施形態の全体構成を示すブロック図である。
【００１９】
本実施形態では、ｎ個のレジスタユニット（１１〜１ｎ）が縦続に接続されており、各レジスタユニットはデータバス１０２と接続されてデータの入出力を可能としている。特にデータを出力する場合は、データを出力させるレジスタユニットの番号をセレクタ１０３に指定すると、当該レジスタユニットに対する出力イネーブル信号（ＯＥ）がアクティブになり、そのレジスタユニットが格納するデータがデータバス上に出力される。
【００２０】
そのデータは、データバス１０２上に接続されたＣＰＵやＤＳＰで読み取られたり、あるいは他の回路で利用されたりする。シフト制御部１０１は、外部からデータバス１０２上に入力されたデータをどの位置のレジスタユニットに挿入すべきか判定し、そのレジスタユニットにはデータバス上のデータを書き込み、さらにそのレジスタユニットより後のレジスタユニットでは１段前のレジスタユニットが保持していたデータを書き込むようにＳＥＬ信号やＣＬＫ信号を供給する機能を有する。
【００２１】
図２は、上記レジスタユニットの一実施例を示す回路図であり、Ｄ型フリップフロップ回路（以下、Ｄ型Ｆ／Ｆ）２０と、それへの入力データを選択するセレクタ回路２１と、Ｄ型Ｆ／Ｆ２０に保持されたデータとデータバス１０２上のデータとの大小比較を行い、結果を出力する大小比較器２２、及びＤ型Ｆ／Ｆ２０に保持されたデータの、データバス１０２への出力可否を制御するイネーブル付きバッファ２３からなる。なお、Ｄ型Ｆ／Ｆ２０はラッチ回路によって構成しても良い。また、各レジスタユニットにはデータのビット数に相当する数のＤ型Ｆ／Ｆ２０が設けられている。
【００２２】
セレクタ回路２１は、ＳＥＬ信号が“０”の場合、前段のレジスタユニットからのデータを選択し、ＳＥＬ信号が“１”の場合、データバス１０２からのデータを選択する。従ってＳＥＬ信号により取り込むべきデータを確定した後Ｄ型Ｆ／Ｆ２０にＣＬＫ信号を入力すれば、Ｄ型Ｆ／Ｆ２０はデータバス１０２上、あるいは前段のレジスタユニットのデータをセットする。ＲＥＳ信号はＤ型Ｆ／Ｆ２０の全データを０にリセットする信号である。
【００２３】
大小比較器２２は、データバス１０２上に被ソートデータが出力されたとき、データバス１０２上のデータとＤ型Ｆ／Ｆ２０の出力データとを比較し、比較結果をＣＭＰ信号として出力する。例えば、データバス１０２上のデータの方が大きい場合にＣＭＰは“１”となり、データバス１０２上のデータの方が小さい場合にはＣＭＰは“０”となる。イネーブル付きバッファ２３はＯＥ信号が“１”のとき導通して、データバス１０２上にＤ型Ｆ／Ｆ２０のデータを出力する。このＯＥ信号は、例えばソートされたデータを外部へ出力する際に“１”となる。
【００２４】
図３は、シフト制御部１０１の一実施例を示す回路図であり、各レジスタユニット１１〜１ｎから入力されたＣＭＰ信号に基づいて、各レジスタユニット１１〜１ｎに対するＳＥＬ信号とＣＬＫ信号の供給を制御している。
【００２５】
各レジスタユニット１１〜１ｎに供給されるＳＥＬ信号は、ＥＸＯＲ回路５２〜５ｎによって生成される。即ち、各ＥＸＯＲ回路５２〜５ｎから出力されるＳＥＬ信号は、当該ＳＥＬ信号が供給されるレジスタユニットからのＣＭＰ信号と、その１段前のレジスタユニットからのＣＭＰ信号のＥＸＯＲを取って生成される。従って、ＣＭＰ信号に変化の無い部分ではＳＥＬ信号はずっと“０”であり、変化点でのみ“１”が出力される。なお１段目のレジスタユニットに対するＳＥＬ信号は例外的にＣＭＰ信号をそのまま利用する。
【００２６】
また、ＳＥＬ信号が“１”となると、ＯＲ回路４２〜４ｎのうち、“１”となったＳＥＬ信号が入力されたＯＲ回路以降のＯＲ回路も次々と出力が“１”となる。従って、この各ＯＲ回路出力により制御されるイネーブル付きバッファ３１〜３ｎの内、ＯＲ回路から“１”が入力されたイネーブル付きバッファが導通し、ＣＬＫ信号が対応するレジスタユニットに動作用クロックとして伝達される。
【００２７】
図４〜図６は、本実施形態において、レジスタユニット（ＲＵ）が１０段で構成されている場合の各レジスタユニットに格納されたデータの内容と、そのときのＣＭＰ信号及びＳＥＬ信号の状態を示す第１の実施例の動作説明図である。以下、図４〜図６を参照して本実施例の動作について説明する。
【００２８】
まずステップ１としてＲＥＳ信号を一度“１”にすることで全てのレジスタユニットをリセットする。この結果、全レジスタユニットのデータは「０」即ち最小値に設定される。続いてステップ２でデータバス上にデータ＝３を入力すると、この値の方が全レジスタユニットのデータより大きいため、各レジスタユニットの大小比較器２２（図２）から出力されるＣＭＰ信号は全て“１”になる。
【００２９】
この場合、レジスタユニット（ＲＵ１）のＳＥＬ信号のみが“１”になるので、レジスタユニット（ＲＵ１）は取り込みデータとしてデータバス側を、レジスタユニット（ＲＵ２）以降は前段のレジスタユニット側を選択するようにセレクタ回路２１（図２）が制御される。ここでシフト制御部１０１（図１，図３）からＣＬＫ信号が与えられると、レジスタユニット（ＲＵ１）以降の全てのレジスタユニットにＣＬＫ信号が供給され、レジスタユニット（ＲＵ１）はデータバス上のデータ＝３を取り込み、レジスタユニット（ＲＵ２）以降は前段のレジスタユニットのデータを取り込んで、ステップ３の状態になる。
【００３０】
次にステップ４でデータバス上にデータ＝６を入力すると、今度もデータバス上のデータの方が全レジスタユニットのデータより大きいため、ＣＭＰ信号は全て“１”、またＳＥＬ信号はレジスタユニット（ＲＵ１）のＳＥＬ信号のみが“１”になる。従って、ＣＬＫ信号を与えると同様に、レジスタユニット（ＲＵ１）のみがデータバス上のデータ＝６を取り込み、レジスタユニット（ＲＵ２）以降は前段のレジスタユニットのデータを取り込んで、ステップ５の状態になる。
【００３１】
次にステップ６でデータバス上にデータ＝２を入力すると、このときのＣＭＰ信号は、レジスタユニット（ＲＵ１）とレジスタユニット（ＲＵ２）のみ“０”で、他のレジスタユニット（ＲＵ３〜ＲＵ１０）のＣＭＰ信号は全て“１”となる。この場合、シフト制御部１０１から出力されるＳＥＬ信号は変化点であるレジスタユニット（ＲＵ３）の位置のみ“１”となるので、シフト制御部１０１は、レジスタユニット（ＲＵ３〜ＲＵ１０）にのみＣＬＫ信号を供給し、レジスタユニット（ＲＵ１）とレジスタユニット（ＲＵ２）にはＣＬＫ信号を供給しない。
【００３２】
従って、レジスタユニット（ＲＵ１〜ＲＵ２）は、以前に取り込まれたデータをそのまま保持した状態で動作が停止される。一方、レジスタユニット（ＲＵ３〜ＲＵ１０）はシフト制御部１０１からＣＬＫ信号が与えられることにより、レジスタユニット（ＲＵ３）はデータバス上のデータ＝２を取り込み、レジスタユニット（ＲＵ４〜ＲＵ１０）はそれぞれ前段のレジスタユニットのデータを取り込んで、ステップ７の状態となる。
【００３３】
次にステップ８でデータバス上にデータ＝５を入力すると、このときのＣＭＰ信号は、レジスタユニット（ＲＵ１）のみ“０”で、他は全て“１”となる。従ってこの場合ＳＥＬ信号は変化点であるレジスタユニット（ＲＵ２）の位置のみ“１”となるので、シフト制御部１０１は、レジスタユニット（ＲＵ２〜ＲＵ１０）にのみＣＬＫ信号を供給し、レジスタユニット（ＲＵ１）にはＣＬＫ信号を供給しない。
【００３４】
従って、レジスタユニット（ＲＵ１）は、以前に取り込まれたデータをそのまま保持した状態で動作を停止し、一方、レジスタユニット（ＲＵ２〜ＲＵ１０）はシフト制御部１０１からＣＬＫ信号が与えられることにより、レジスタユニット（ＲＵ２）はデータバス上のデータ＝５を取り込み、レジスタユニット（ＲＵ３〜ＲＵ１０）はそれぞれ前段のレジスタユニットのデータを取り込んで、ステップ９の状態となる。
【００３５】
次にステップ１０でデータバス上にデータ＝３を入力すると、このときのＣＭＰ信号はレジスタユニット（ＲＵ１〜ＲＵ３）で“０”となり、レジスタユニット（ＲＵ４〜ＲＵ１０）で“１”となる。即ち、レジスタユニット（ＲＵ３）には同じデータ＝３が既に格納されているので、データバス上のデータ＝３はレジスタユニット（ＲＵ４）に取り込まれるように制御される。これによりデータ取り込み動作を行うレジスタユニットの数を減らすことができる。
【００３６】
従ってこの場合、ＳＥＬ信号は変化点であるレジスタユニット（ＲＵ４）の位置のみ“１”となり、シフト制御部はレジスタユニット（ＲＵ４〜ＲＵ１０）にのみＣＬＫ信号を供給し、レジスタユニット（ＲＵ１〜ＲＵ３）にはＣＬＫ信号が供給されないので、レジスタユニット（ＲＵ１〜ＲＵ３）は、以前に取り込まれたデータをそのまま保持した状態で動作を停止し、一方、レジスタユニット（ＲＵ４〜ＲＵ１０）はシフト制御部からＣＬＫ信号が与えられることにより、レジスタユニット（ＲＵ４）はデータバス上のデータ＝３を取り込み、レジスタユニット（ＲＵ４〜ＲＵ１０）はそれぞれ前段のレジスタユニットのデータを取り込んで、ステップ１１の状態となる。
【００３７】
以上の動作を行うことにより、データバス１０２上に次々と到来するデータを、レジスタユニット（ＲＵ１〜ＲＵ１０）内に、大きい順に並べて行くことが出来る。
【００３８】
次に本発明の第２の実施例について説明する。
【００３９】
第１の実施例では図２に示す大小比較器２２は、「そのときデータバス上に出力されているデータとＤ型Ｆ／Ｆ２０の出力データとを比較し、データバス上のデータの方が大きい場合には、ＣＭＰ信号として“１”を出力する」ように動作しているが、第２の実施例として、この大小比較器２２の機能を、「そのときデータバス上に出力されているデータとＤ型Ｆ／Ｆ２０の出力データとを比較し、データバス上のデータの方が大きいかあるいは同じ場合（即ち「以上」の場合）に、ＣＭＰ信号として“１”を出力する」ように変更することができる。
【００４０】
第１の実施例と第２の実施例では、既に格納されているデータと同じデータがデータバス上に転送された場合の動作が異なってくる。以下、この動作上の相違について、図６と図７を参照して説明する。
【００４１】
第１の実施例では、ステップ１０及び１１で説明した通り、既に格納されているデータと同じデータ＝３がデータバス上に来た場合、このデータは既に３が格納されているレジスタユニット３の次のレジスタユニット４に格納される（図６）。一方、第２の実施例においては、レジスタユニット３のＳＥＬ信号が１となるため、データバス１０２から来た新しいデータはレジスタユニット３に格納される（図７）。
【００４２】
大きさを比較する対照のデータだけで見ればどちらの並び方でも結果は同じであるが、例えば、１６ビットからなるデータの８ビットを比較用として使い、残り８ビットには他の情報を入れておく場合には、一連の順番の前側に並ぶか後側に並ぶかという点で、両者の差が意味を持つことがある。
【００４３】
次に本発明の第３の実施例について説明する。
【００４４】
第１の実施例では図２に示す大小比較器２２は、「そのときデータバス上に出力されているデータとＤ型Ｆ／Ｆ２０の出力データとを比較し、データバス上のデータの方が大きい場合には、ＣＭＰ信号として“１”を出力する」ように動作し、Ｄ型Ｆ／Ｆ２０はＲＥＳ信号で全データを０にセットしているが、第３の実施例として、この大小比較器２２の機能を、「そのときデータバス上に出力されているデータとＤ型Ｆ／Ｆ２０の出力データとを比較し、データバス上のデータの方が小さい場合に、１をＣＭＰ信号として“１”を出力する」ように変更し、Ｄ型Ｆ／Ｆ２０はＰＲＥ信号によって最初に全データを「１」即ち最大値にセットするように変更することで実現できる。
【００４５】
本実施例では、第１〜第２の実施例とは逆に、データバス１０２上に次々と到来するデータを、レジスタユニット内に、小さい順に並べて行くことが出来る。また、第２の実施例の場合と同様に、大小比較器２２の機能を、「そのときデータバス上に出力されているデータとＤ型Ｆ／Ｆ２０の出力データとを比較し、データバス上のデータの方が小さいか、あるいは同じ場合に、ＣＭＰ信号として“１”を出力する」ように変更することもできる。
【００４６】
次に本発明の第４の実施例について説明する。
【００４７】
図３に示すシフト制御回路では、ＳＥＬ信号は、各レジスタユニットから出力されるＣＭＰ信号に従って、特定のレジスタユニットに対してのみ“１”を出力するように制御されているが、これに、全てのＳＥＬ信号が“１”になるように、強制“１”信号を外部から加える回路を追加することができる。
【００４８】
このような回路は通常の論理ＩＣによって容易に実現可能である。例えば、図３に示すシフト制御回路から出力されるＳＥＬ信号を、それぞれＯＲ回路介して各レジスタユニット１１〜１ｎに供給するように変更し、各ＯＲ回路の一方の入力端子に対して、外部から強制“１”信号を加えられるように構成する等により実現できる。
【００４９】
本実施例において、外部から強制“１”信号を印加することにより、全てのレジスタユニットのＳＥＬ信号を“１”とした状態で、データバス１０２に何らかのデータを設定し、続いてＣＬＫ信号を入力すると、全レジスタユニットにデータバス１０２上のデータが書き込まれる。即ち全レジスタユニットに対する一括書き込みが可能となる。
【００５０】
こうすると、例えば実施例１の場合において、最初に、この一括書き込み動作により全てのレジスタユニットにデータ＝５を書いておくと、その後のデータ並び替え動作時に、データバス１０２に５より小さいデータが入力されてもＳＥＬ信号は全て０になり、入力データは廃棄されることになる。従って、ある大きさ以上のデータだけを順に並べるという動作になり、データを並べる際に下限を設定できることになる。本実施例は、例えばあるレベル以上の受信信号だけを選択的に並べるという用途等に適用可能である。
【００５１】
次に本発明の第５の実施例について説明する。
【００５２】
第４の実施例は、第１〜第２の実施例に対して一括書き込み機能を適用しているが、本実施例は、一括書き込み機能を第３の実施例に適用したことを特徴とする。例えば一括書き込みでデータ＝８を書いておくと、８より大きいデータが入力されてもＳＥＬ信号は全て０になり、入力データは廃棄される。従って本実施例では、ある大きさ以下のデータだけを順に並べるという動作になり、データを並べる際に上限を設定できることになる。これは例えば、規格外の大きさのデータを廃棄しながら小さい順にデータを並べて行くような用途に適用可能である。
【図面の簡単な説明】
【００５３】
【図１】本発明の実施形態の全体構成を示すブロック図である。
【図２】本実施形態におけるレジスタユニットの一実施例を示す回路図である。
【図３】本実施形態におけるシフト制御部の一実施例を示す回路図である。
【図４】本実施形態の動作を説明するための図である。
【図５】本実施形態の動作を説明するための図である。
【図６】本実施形態の動作を説明するための図である。
【図７】本実施形態の別の実施例動作を説明するための図である。
【符号の説明】
【００５４】
１１〜１ｎ  レジスタユニット
２０  Ｄ型フリップフロップ回路
２１  入力データを選択するセレクタ回路
２２  大小比較器
２３、３１〜３ｎ  イネーブル付きバッファ
４２〜４ｎ  ＯＲ回路
５２〜５ｎ  ＥＸＯＲ回路
１０１  シフト制御部
１０２  データバス
１０３  セレクタ回路
【図１】
2005267415.tif 000003
【図２】
2005267415.tif 000004
【図３】
2005267415.tif 000005
【図４】
2005267415.tif 000006
【図５】
2005267415.tif 000007
【図６】
2005267415.tif 000008
【図７】
2005267415.tif 000009