| 【発明の名称】 |
大小比較回路 |
| 【発明者】 |
【氏名】本山 雅彦
|
| 【要約】 |
【課題】大小比較を高速で実行することができる大小比較回路を提供する。
【解決手段】各位のビット値の不一致を検出する不一致検出回路と、不一致検出回路の出力で最初に不一致になったビットを検索する検索回路と、検索の結果、最初に不一致になった位の値を選択する選択回路と、検索回路と選択回路の出力から大小の判定を行う判定回路とで構成される。 |
【特許請求の範囲】
【請求項1】 大小比較回路において、比較する2値の上位ビットから最初に異なるビットを検索し、その値によって大小を判定することを特徴とする大小比較回路。 【請求項2】 大小比較回路において、比較する2値のそれぞれのビットの不一致を検出する不一致検出回路と、不一致検出回路の出力の中から最も有意な不一致を検索する検索回路と、検索回路の検索の結果、最も有意なビットの値を選択する選択回路と、検索回路と選択回路の出力によって大小を判定することを特徴とする大小比較回路。 【請求項3】 大小比較回路において、比較する2値のそれぞれのビットの不一致を検出する不一致検出回路と、複数の比較するビットとそれぞれのビットに対する不一致であるかどうかを示す信号が入力され、不一致を示す信号が有意であるビットの中で最も有意なビットを選択する選択回路と、不一致であるかどうかを示す信号の中に有意な情報がある場合は、有意であることを出力する不一致検出回路とで構成される単位比較回路を階層的に接続して全ビットの大小判定を行うことを特徴とする大小比較回路。
|
【発明の詳細な説明】【0001】 【発明の属する技術分野】本発明は、大小比較回路に関する。 【0002】 【従来の技術】従来の大小比較回路は、2つの値の差を求め、その結果の符号によって大小を判定していた。例えば、図11に示すような減算処理の結果、符号が正であればAの方が大きく、符号が負であれば、Bの方が大きいと判定される。 【0003】図12を用いて従来の大小比較器の動作例を示す。図12は、2つの値、A(=75)、B(=90)を比較する場合の例を示している。図12では、A、Bを、それぞれ、2の補数で表現している。A、Bは、それぞれ、9ビットで、最上位ビットは、符号を表している。従来の大小比較器では、AからBの値を減じて、その符号によって大小を比較する。減算は、Aと−Bの加算によって実現される。−Bは、Bの反転に1を加えた値である。 【0004】加算は、下位のビットから上位のビットへ順番に行なわれていく。図12の例では最初に最下位ビットの加算が行なわれる。すなわち、Aの最下位ビット'1'と、−Bの最下位ビット'0'が加えられ、結果の1が求められる。次に下位から2番目のビットの処理が行なわれる。すなわち、'1'と'1'が加えられ、結果の0が求められる。同時にキャリーとして、'1'が上位のビットへ伝播する。このように、下位の結果のキャリーが上位のビットに伝播していく。 【0005】従来の減算を用いた大小比較器では、下位ビットの処理の結果は、上位ビットの処理に影響を与えるので、下位ビットの処理が終わるまで上位ビットの処理が行えない。したがって、処理時間が長くなる。 【0006】 【発明が解決しようとする課題】このように差を求めて大小比較を行う場合、下位ビットからのキャリーの伝播時間が大きいため、処理時間が大きくなってしまうという問題があった。 【0007】 【課題を解決するための手段】本発明では、2つの値の同じくらいのビットを上位ビットから比較し、最初に不一致だったくらいのビットの値を用いて大小を判定する。 【0008】 【発明の実施の形態】(実施例1)図1に本発明の一実施例を示す。図に示した大小比較回路は、各位のビットの値の不一致を検出する不一致検出回路と、不一致検出回路の出力で最初に不一致になったビットを検索する検索回路と、検索の結果、最初に不一致となった位の値を選択する選択回路と、検索回路と選択回路の出力から、大小の判定を行う判定回路とで構成される。 【0009】動作について説明する。例えば、図2に示すような2つの値を考える。nビットの数A,Bのiビット目の値をそれぞれ、a(i),b(i)とすると、A,Bは、それぞれ、A=a(n−1)*2n−1+a(n−2)*2n−2+a(1)*2+a(0)B=b(n−1)*2n−1+b(n−2)*2n−2+b(1)*2b(0) と表せ、各位のビットで、それぞれが同じ値を持つものは、大小比較に影響を与えない。不一致だった位の値が大小の判定に影響を与え、これらの不一致であるビットのなかで、最上位のビットによって大小が決定される。本発明は、この原理を用いて、不一致検出を行い、それらの中で最も上位であるビットを検索し、そのビットの値を用いて大小を比較する。 【0010】図2に動作例を示す。図2は、2つの値、A(=74)、B(=92)を比較する場合の例を示している。A、Bは、それぞれ、8ビットで、符号ビットは、省略してある。最初に各ビットが不一致であることを検出する。図2では、4、2、1で示したビットが異なっている。これらの中で、最も上位のビットが大小を決定する。したがって、4のビットの値が大小を決定する。この例では、Aは、'0'で、Bは、'1'であるので、Bの方が大きいと決定される。 【0011】図1に示した大小比較回路は、比較する2つの値のそれぞれのビットの不一致を検出する不一致検出回路100−(0),100−(1),…,100−(n−1)と、不一致検出回路の出力の中から、最も上位のビットを検索する検索回路200と、検索回路の出力にしたがって、最も上位のビットと検索されたビットの値を選択する選択回路300と、検索回路200と選択回路300の出力を処理して大小比較を判定する判定回路400とで構成される。 【0012】図3にさらに詳細な回路構成を示す。図3では、不一致検出回路として排他論理和ゲート100−1,100−2,…,100−(n−1)を用いている。ここで、nは、比較する値のビット数である。排他論理和ゲートは、各ビットが不一致の場合は、'H'を出力し、一致した場合は、'L'を出力する。 【0013】検索回路の構成例を図4、図5に示す。図4は、直列に接続された論理和ゲートと、その出力が0から1に変化したことを検出する論理積ゲートとで構成される。論理和ゲートには、不一致検出回路からの出力が入力される。不一致検出回路から'H'が入力されると、論理和ゲートの出力は、そのゲートから'H'となる。これによって、不一致検出回路の出力が'H'になった中で、最も上位のビットを特定できる。検索回路は、不一致検出回路の出力が'H'になった中で最も上位のビットのみ'H'を出力し、その他のビットは、'L'を出力する。 【0014】図5も図4と全く同様の機能を持つ。 【0015】検索時間の最大値が、図4の場合は、検索するビット数に比例するのに対し、図5は、検索するビット数の2を底とする対数に比例する。 【0016】また、選択回路は、3状態バッファ300−1,300−2,…,300−(n−1)を用いて構成している。選択回路のそれぞれの3状態バッファは,検索回路から出力された信号がHのときに入力信号を出力し、Lのときは、出力しない。したがって、選択回路からは、最も上位の不一致ビットのAの値が出力される。 【0017】判定回路は、検索回路からの出力と選択回路からの出力が入力される検索回路からは、比較する値のそれぞれのビットの中に異なるビットがあることを示すFIND信号が出力される。FIND信号は、2つの値が異なることを示す。すなわち、FIND信号の反転信号は、2つの値が一致することを示す。また、選択回路の出力は、2つの値が一致しなかった時、比較する値の異なるビットの中でもっとも上位ビットの値の一方、図1の例では、Aの値が出力される。この値がHの場合は、Aの方が大きいことを示し、この値がLの場合は、Aの方が小さいことを示す。このように検索回路の出力と選択回路の出力から判定を行なう回路を図6に示す。 【0018】これらの回路構成により、2つの値の大小を比較することが可能となる。 (実施例2)図7に本発明の別の実施例を示す。 【0019】図7に示した比較回路は、不一致を検出する不一致検出回路と、2ビットの比較を行う単位比較回路をツリー状に接続することによって構成されている。 【0020】図7に示した比較回路の動作例を示す。不一致検出回路は、比較する2つの値のそれぞれのビットが不一致かどうかを検出する。不一致の場合にHを出力する。不一致検出回路の出力は、単位比較回路に入力される。単位比較回路には、2つの値の各ビットのあらかじめ定められた方のビットと、隣接する2つの不一致検出回路の出力が入力される。単位比較回路は、隣接する不一致検出回路からの出力を比較し、より上位の値の結果を優先的に処理する。上位のビットが不一致だった場合に、データ出力として上位の方のデータ入力の値を選択して出力し、また、比較結果として、不一致だったことを示す信号を出力する。このような比較をトーナメント方式で行うことによって最終的に比較するビットの値が異なるもので最も上位のビットの値と不一致が存在したことを示す信号が選られる。 【0021】これらの値から判定回路によって2つの値の大小が決定される。 【0022】単位比較回路の構成を図8に示す。単位比較回路には、2つの不一致であるかどうかを示す信号(DIFF−U,DIFF−D)と、2つのデータ(DATA−U,DATA−D)が入力される。また、1つの不一致であるかどうかを示す不一致出力信号(DIFF−O)と、1つのデータ(DATA−O)が出力される。 【0023】図8では、DATA−U,DIFF−Uが優先される。DIFF−UがHのときは、データ出力としてDATA−Uが選択され、DIFF−UがLのときは、データ出力としてDATA−Dが選択される。 【0024】不一致出力DIFF−Oは、2つの不一致入力(DIFF−U,DIFF−D)のいずれかが不一致を示した時に不一致であることを出力する。 【0025】図9は、符号無しの8ビットの値の大小を比較する回路の構成例である。 【0026】次に、動作を図10を用いて説明する。 【0027】図10は、A=01001010,B=01011100 の2つの値を比較した場合の例を示している。 【0028】A0は、Aの最下位ビットである0が入力され、A1は、Aの下から第2のビットである1が入力され、同様に,A2=0,A3=1,A4=0,A5=0,A6=1,A7=0,B0=0,B1=0,B2=1,B3=1,B4=1,B5=0,B6=1,B7=0が入力される。 【0029】入力された各ビットは,不一致検出回路110−1,110−2,…,110−8に入力される。110−1では、それぞれの最上位ビットであるA7(=0)、B7(=0)の値が入力され、値が一致しているので、不一致では無いことを示すLが出力される。不一致検出回路の出力は、セレクタを構成する3状態バッファ521−1a,521−1bの制御入力に転送される。制御入力がLの場合は、521−1bの入力であるA6(=1)が選択され、出力される。これらの出力は、上位階層の単位比較回路に転送される。 【0030】他の回路も同様の動作を行い、最終的にデータ出力として、A4が判定回路に転送され、また、検索結果として不一致が存在するのでHが判定回路に転送される。 【0031】これは、A4が最も上位の不一致ビットの値であることを示し、その値が0であることから、B4の値が1であり、すなわち、Bの方が大きいことを意味する。このように、トーナメント方式で大小比較を行っていくことで、全体の処理を高速に処理することが可能となる。 【0032】以上の説明では、符号に関しては論じていないが、符号付きの数値でも本発明を用いて実現することができる。符号ビットが異なる場合は、それによって大小を判定することができる。符号ビットが同じ場合は、正の場合と負の場合とで、場合分けすることで実現できる。正の場合は、本発明をそのまま適用できる。負の場合は、絶対値の大きい方が小さいので大小の結果を反転することで実現できる。 【0033】 【発明の効果】以上のように、本発明を用いれば、大小比較を高速に実行することが可能となる。
|
| 【出願人】 |
【識別番号】000003078 【氏名又は名称】株式会社東芝
|
| 【出願日】 |
平成12年9月27日(2000.9.27) |
| 【代理人】 |
【識別番号】100081732 【弁理士】 【氏名又は名称】大胡 典夫 (外2名)
|
| 【公開番号】 |
特開2002−108605(P2002−108605A) |
| 【公開日】 |
平成14年4月12日(2002.4.12) |
| 【出願番号】 |
特願2000−295273(P2000−295273) |
|