JP3557366B2 - 大小比較方法および装置 - Google Patents

大小比較方法および装置 Download PDF

Info

Publication number
JP3557366B2
JP3557366B2 JP10394599A JP10394599A JP3557366B2 JP 3557366 B2 JP3557366 B2 JP 3557366B2 JP 10394599 A JP10394599 A JP 10394599A JP 10394599 A JP10394599 A JP 10394599A JP 3557366 B2 JP3557366 B2 JP 3557366B2
Authority
JP
Japan
Prior art keywords
bit
carry
value
magnitude
binary number
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
JP10394599A
Other languages
English (en)
Other versions
JP2000293359A (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 JP10394599A priority Critical patent/JP3557366B2/ja
Publication of JP2000293359A publication Critical patent/JP2000293359A/ja
Application granted granted Critical
Publication of JP3557366B2 publication Critical patent/JP3557366B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、2つの2進数の大小比較方法および装置に関するものである。
【0002】
【従来の技術】
従来の大小比較方法としては、比較する2つの2進数A,Bの減算(A−B)を行った場合のキャリー伝播を検出することにより、上記2つの2進数の大小関係を判定する方法がある。この方法は、例えば、特開平6−250821号公報に示されている。この特開平6−250821号公報に記載の従来例では、キャリー伝播により最上位ビットのキャリーを検出したらA大なりBと判定している。
【0003】
また、比較する2つの2進数の各ビット毎の大小関係を検出し、その検出結果を元に上記2つの2進数の大小関係を判定する方法がある。この方法は、例えば、特開平10−154066号公報に示されている。この特開平10−154066号公報に記載の従来例では、最上位ビットのビットの比較を行い、大小関係が検出できなければ1ビット下位のビットで比較を行う、というように順次各ビットの比較を最下位ビットまで行うことにより2つの2進数の大小関係を判定している。
【0004】
【発明が解決しようとする課題】
しかしながら、特開平6−250821号公報に記載の従来例では、検出するデータのビット幅が大きくなればなるほど最下位ビットから最上位ビットまでのキャリー伝播にかかる遅延が大きくなるし、その遅延を縮小するために回路の並列化を進めれば回路規模が大きくなるという問題点を有していた。
【0005】
一方、特開平10−154066号公報に記載の従来例でも同様のことが言え、検出するデータのビット幅が大きくなればなるほど最上位ビットから最下位ビットまでの情報伝播にかかる遅延が大きくなるし、その遅延を縮小するために回路の並列化を進めれば回路規模が大きくなるという問題点を有していた。
【0006】
本発明は、上記問題点を解決するもので、回路規模が小さく演算時間の短い大小比較方法と大小比較装置を提供することを目的とする。
【0007】
【課題を解決するための手段】
本発明の大小比較方法および装置は、2つの2進数A,Bの大小比較を行う際に、最上位ビットからは下位の方向へ順次ビットの大小比較を行い、最下位ビットから上位の方向へ上記2進数Aから上記2進数Bを減算した場合のキャリー伝播の検出を行い、上記大小比較結果と上記キャリー伝播結果から上記2進数AとBの大小関係を判定することにより、回路規模を小さく、かつ演算時間を短くする。
【0008】
具体的には、本発明の大小比較方法は、2つのnビット(nは正の整数)の2進数A,Bの大小比較を行う際に、ビット0(最下位ビット)からビット(k−1)(kは正の整数,0<k<n)までのビット範囲で、2進数Aから2進数Bを減算した場合のキャリー伝播を検出し、つまり2進数Aと2進数Bのビット反転と最下位ビットの桁位置における値“1”とを加えた場合に発生するビット(k−1)のキャリーを検出し、ビットkからビット(n−1)(最上位ビット)までのビット範囲で、2進数Aと2進数Bの大小関係を最上位ビットから下位ビットの方向に検出し、大小関係の検出結果とキャリーの検出結果から、2進数Aと2進数Bの大小関係を判定して出力することを特徴とする。
【0009】
これにより、最下位ビットからのキャリー伝播検出と、最上位ビットから順次大小関係検出とを同時に並列に実行することができ、演算時間を大幅に短縮することができ、しかも回路規模の増加は小さく抑えることができる。なお、上記2進数A,Bの上位ビットと下位ビットの区分けは、大小比較とキャリー伝搬の各々の処理時間を考慮して、両方の処理時間がほぼ等しくなるように決定するのが好ましく、ちょうど真ん中で行う必要はない。また、特に両方の処理時間がほぼ等しくなるように決定する必要はない。どのように上位ビットと下位ビットの区分けを設定しても、上記の大小比較とキャリー伝搬を同時に並列に実行することで、大小比較とキャリー伝搬の何れか片方のみを行う場合に比べて処理時間の短縮を図ることができる。
【0010】
大小検出は2進数AとBが2の補数表現される符号付き2進数であるとき、つぎのように行うことが好ましい。
【0011】
2進数Aの最上位ビットである(n−1)ビットが正の符号を示し、2進数Bの最上位ビットである(n−1)ビットが負の符号を示す場合はA大なりBと判定し、2進数Aの最上位ビットである(n−1)ビットが負の符号を示し、2進数Bの最上位ビットである(n−1)ビットが正の符号を示す場合はA小なりBと判定し、それ以外の組合せでは大小関係未検出として1ビット下位データでの大小関係検出に移行する。
【0012】
2進数Aの(n−2)ビットが値“1”を示し、2進数Bの(n−2)ビットが値“0”を示す場合はA大なりBと判定し、2進数Aの(n−2)ビットが値“0”を示し、2進数Bの(n−2)ビットが値“1”を示す場合はA小なりBと判定し、それ以外の組合せでは大小関係未検出として1ビット下位データでの大小関係検出に移行する。
【0013】
2進数Aの(n−3)ビットが値“1”を示し、2進数Bの(n−3)ビットが値“0”を示す場合はA大なりBと判定し、2進数Aの(n−3)ビットが値“0”を示し、2進数Bの(n−3)ビットが値“1”を示す場合はA小なりBと判定し、それ以外の組合せでは大小関係未検出として1ビット下位データでの大小関係検出に移行する。
【0014】
上記の大小関係検出をkビットまで順次行い、kビットでも大小関係を検出できない場合は大小関係未検出と判定する。
【0015】
大小検出は2進数AとBが符号無し2進数であるとき、つぎのように行うことが好ましい。
【0016】
2進数Aの最上位ビットである(n−1)ビットが値“1”を示し、2進数Bの最上位ビットである(n−1)ビットが値“0”を示す場合はA大なりBと判定し、2進数Aの最上位ビットである(n−1)ビットが値“0”を示し、2進数Bの最上位ビットである(n−1)ビットが値“1”を示す場合はA小なりBと判定し、それ以外の組合せでは大小関係未検出として1ビット下位データでの大小関係検出に移行する。
【0017】
2進数Aの(n−2)ビットが値“1”を示し、2進数Bの(n−2)ビットが値“0”を示す場合はA大なりBと判定し、2進数Aの(n−2)ビットが値“0”を示し、2進数Bの(n−2)ビットが値“1”を示す場合はA小なりBと判定し、それ以外の組合せでは大小関係未検出として1ビット下位データでの大小関係検出に移行する。
【0018】
2進数Aの(n−3)ビットが値“1”を示し、2進数Bの(n−3)ビットが値“0”を示す場合はA大なりBと判定し、2進数Aの(n−3)ビットが値“0”を示し、2進数Bの(n−3)ビットが値“1”を示す場合はA小なりBと判定し、それ以外の組合せでは大小関係未検出として1ビット下位データでの大小関係検出に移行する。
【0019】
上記の大小関係検出をkビットまで順次行い、kビットでも大小関係を検出できない場合は大小関係未検出と判定する。
【0020】
また、ビットkからビット(n−1)までのビット範囲で、2進数A,Bの大小関係を検出する際に、2進数A,Bが2の補数表現される符号付き2進数であればパッシブになり、符号無し2進数であればアクティブになる制御信号により、制御信号がパッシブであれば2進数A,Bを2の補数表現として大小関係を検出して出力し、制御信号がアクティブであれば2進数A,Bを符号無し2進数として大小関係を検出して出力することが好ましい。
【0021】
さらに、2進数A,Bの大小関係を判定する際に、ビットkからビット(n−1)までのビット範囲での大小関係が検出されたらその大小関係を出力し、大小関係が検出されなければキャリーの検出結果により、キャリーが検出されればA大なりBあるいはAとBは等しいと判定し、キャリーが検出されなければA小なりBと判定することが好ましい。
【0022】
また、ビット0からビット(k−1)までのビット範囲で、2進数Aと2進数Bのビット反転と最下位ビットの桁位置における値“1”とを加えた場合に発生するビット(k−1)のキャリーを検出する際に、2進数Aと2進数Bがビット0からビット(k−1)までのビット範囲で各ビット毎に全く等しいデータであるために、最下位ビットの桁位置に加えた値“1”がキャリー伝播の伝播元となり発生するビット(k−1)の第1のキャリーと、第1のキャリーが発生する場合も含めて総ての発生するキャリーを含むビット(k−1)の第2のキャリーを検出し、ビットkからビット(n−1)までのビット範囲での大小関係検出において大小関係が検出されたらその大小関係を出力し、大小関係が検出されなければキャリーの検出結果により、第1のキャリーが検出されればAとBは等しいと判定し、第1のキャリーが検出されずかつ第2のキャリーが検出されればA大なりBと判定し、第1のキャリーと第2のキャリーがともに検出されなければA小なりBと判定することが好ましい。
【0023】
このことにより、A大なりBとA小なりBとAとBは等しいという3つの状態を判定することができるようになる。
【0024】
同じ効果を得るため、ビット0からビット(k−1)までのビット範囲で、2進数Aと2進数Bのビット反転と最下位ビットの桁位置における値“1”とを加えた場合に発生するビット(k−1)のキャリーを検出する際に、2進数Aと2進数Bがビット0からビット(k−1)までのビット範囲で各ビット毎に全く等しいデータであるために、最下位ビットの桁位置に加えた値“1”がキャリー伝播の伝播元となり発生するビット(k−1)の第1のキャリーと、第1のキャリーが発生する場合以外で発生するキャリーを含むビット(k−1)の第2のキャリーを区別して検出し、ビットkからビット(n−1)までのビット範囲での大小関係検出において大小関係が検出されたらその大小関係を出力し、大小関係が検出されなければキャリーの検出結果により、第1のキャリーが検出されればAとBは等しいと判定して出力し、第2のキャリーが検出されればA大なりBと判定して出力し、第1のキャリーと第2のキャリーがともに検出されなければA小なりBと判定して出力するようにしてもよい。
【0025】
本発明の大小比較装置は、2つのnビットの2進数A,Bの大小比較を行う際に、ビット0(最下位ビット)からビット(k−1)までのビット範囲で、2進数Aから2進数Bを減算した場合のキャリー伝播の検出を行う、つまり2進数Aと2進数Bのビット反転と最下位ビットの桁位置における値“1”とを加えた場合に発生するビット(k−1)のキャリーを検出し出力するキャリー検出手段と、最上位ビットからKビットの範囲で、下位方向へ順次ビットの大小比較を行う大小検出手段と、大小検出手段の出力とキャリー検出手段の出力から2進数AとBの大小関係を判定する判定手段を備えていることを特徴とする。
【0026】
これにより、最下位ビットからのキャリー伝播検出と、最上位ビットから順次大小関係検出を同時に並列に実行することができ、演算時間を大幅に短縮することができ、しかも回路規模の増加は小さく抑えることができる。なお、上記2進数A,Bの上位ビットと下位ビットの区分けは、大小比較とキャリー伝搬の各々の処理時間を考慮して、両方の処理時間がほぼ等しくなるように決定するのが好ましく、ちょうど真ん中で行う必要はない。また、特に両方の処理時間がほぼ等しくなるように決定する必要はない。どのように上位ビットと下位ビットの区分けを設定しても、上記の大小比較とキャリー伝搬を同時に並列に実行することで、大小比較とキャリー伝搬の何れか片方のみを行う場合に比べて処理時間の短縮を図ることができる。
【0027】
上記の大小検出手段は、ビットkからビット(n−1)(最上位ビット)までのビット範囲で、2進数Aと2進数Bの大小関係を検出し、A大なりBの場合にアクティブになるA>B検出信号と、A小なりBの場合にアクティブになるA<B検出信号とを出力し、2進数Aと2進数Bの大小関係が検出できなければA>B検出信号とA<B検出信号が両方ともパッシブになるように構成されていることが好ましい。
【0028】
また、判定手段は、大小検出手段の出力とキャリー検出手段の出力から、2進数Aと2進数Bの大小関係を判定し、A大なりBあるいはAとBが等しい場合にパッシブになり、A小なりBの場合にアクティブになる大小比較判定信号を出力するように構成されていることが好ましい。
【0029】
大小検出手段の内部構成は2進数AとBが2の補数表現される符号付き2進数であるとき、つぎのように構成されていることが好ましい。
【0030】
2つのnビットの2進数A,Bが2の補数表現される符号付き2進数であるとき、2進数Aの最上位ビットである(n−1)ビットが正の符号を示し、2進数Bの最上位ビットである(n−1)ビットが負の符号を示す場合はA大なりBと判定してA>B検出信号をアクティブにして出力し、2進数Aの最上位ビットである(n−1)ビットが負の符号を示し、2進数Bの最上位ビットである(n−1)ビットが正の符号を示す場合はA小なりBと判定してA<B検出信号をアクティブにして出力し、それ以外の組合せでは大小関係未検出として1ビット下位データでの大小関係検出に移行する。
【0031】
2進数Aの(n−2)ビットが値“1”を示し、2進数Bの(n−2)ビットが値“0”を示す場合はA大なりBと判定してA>B検出信号をアクティブにして出力し、2進数Aの(n−2)ビットが値“0”を示し、2進数Bの(n−2)ビットが値“1”を示す場合はA小なりBと判定してA<B検出信号をアクティブにして出力し、それ以外の組合せでは大小関係未検出として1ビット下位データでの大小関係検出に移行する。
【0032】
2進数Aの(n−3)ビットが値“1”を示し、2進数Bの(n−3)ビットが値“0”を示す場合はA大なりBと判定してA>B検出信号をアクティブにして出力し、2進数Aの(n−3)ビットが値“0”を示し、2進数Bの(n−3)ビットが値“1”を示す場合はA小なりBと判定してA<B検出信号をアクティブにして出力し、それ以外の組合せでは大小関係未検出として1ビット下位データでの大小関係検出に移行する。
【0033】
上記の大小関係検出をkビットまで順次行い、kビットでも大小関係を検出できない場合は大小関係未検出と判定してA>B検出信号とA<B検出信号とをともにパッシブにして出力する。
【0034】
また、大小検出手段の内部構成は2進数AとBが符号無し2進数であるとき、つぎのように構成されていることが好ましい。
【0035】
2つのnビットの2進数A,Bが符号無し2進数であるとき、2進数Aの最上位ビットである(n−1)ビットが値“1”を示し、2進数Bの最上位ビットである(n−1)ビットが値“0”を示す場合はA大なりBと判定してA>B検出信号をアクティブにして出力し、2進数Aの最上位ビットである(n−1)ビットが値“0”を示し、2進数Bの最上位ビットである(n−1)ビットが値“1”を示す場合はA小なりBと判定してA<B検出信号をアクティブにして出力し、それ以外の組合せでは大小関係未検出として1ビット下位データでの大小関係検出に移行する。
【0036】
2進数Aの(n−2)ビットが値“1”を示し、2進数Bの(n−2)ビットが値“0”を示す場合はA大なりBと判定してA>B検出信号をアクティブにして出力し、2進数Aの(n−2)ビットが値“0”を示し、2進数Bの(n−2)ビットが値“1”を示す場合はA小なりBと判定してA<B検出信号をアクティブにして出力し、それ以外の組合せでは大小関係未検出として1ビット下位データでの大小関係検出に移行する。
【0037】
2進数Aの(n−3)ビットが値“1”を示し、2進数Bの(n−3)ビットが値“0”を示す場合はA大なりBと判定してA>B検出信号をアクティブにして出力し、2進数Aの(n−3)ビットが値“0”を示し、2進数Bの(n−3)ビットが値“1”を示す場合はA小なりBと判定してA<B検出信号をアクティブにして出力し、それ以外の組合せでは大小関係未検出として1ビット下位データでの大小関係検出に移行する。
【0038】
上記の大小関係検出をkビットまで順次行い、kビットでも大小関係を検出できない場合は大小関係未検出と判定してA>B検出信号とA<B検出信号とをともにパッシブにして出力する。
【0039】
さらに、2進数A,Bが2の補数表現される符号付き2進数であればパッシブになり、符号無し2進数であればアクティブになる制御信号により、2進数A,Bの最上位ビットであるビット(n−1)のデータを入れ替える手段を備えるように構成することが好ましい。
【0040】
このことにより、2の補数表現の2進数と符号無し2進数の両方に対応できる大小比較装置が得られる。
【0041】
またつぎのように構成しても同様の効果が得られる。2進数A,Bが2の補数表現される符号付き2進数であればパッシブになり、符号無し2進数であればアクティブになる制御信号により、2進数Aの(n−1)ビットが値“1”を示し、2進数Bの(n−1)ビットが値“0”を示す場合にアクティブとなる信号と、2進数Aの(n−1)ビットが値“0”を示し、2進数Bの(n−1)ビットが値“1”を示す場合にアクティブとなる信号とを入れ替えて出力する手段を備えるように構成する。
【0042】
また、判定手段は、大小検出手段の出力であるA<B検出信号がアクティブの時はアクティブになり、A>B検出信号がアクティブの時はパッシブになり、A<B検出信号とA>B検出信号がともにパッシブの時はキャリー検出手段の出力がパッシブであればアクティブになり、キャリー検出手段の出力がアクティブであればパッシブになる大小比較判定信号を出力するように構成されていることが好ましい。
【0043】
ここで、キャリー検出手段は、2進数Aと2進数Bがビット0からビット(k−1)までのビット範囲で各ビット毎に全く等しいデータであるために、最下位ビットの桁位置に加えた値“1”がキャリー伝播の伝播元となり発生するビット(k−1)の第1のキャリーと、第1のキャリーが発生する場合も含めて総ての発生するキャリーを含むビット(k−1)の第2のキャリーとを検出して出力するように構成されていることが好ましい。
【0044】
このとき、判定手段は、大小検出手段において大小関係が検出されたらその大小関係を出力し、大小関係が検出されない時は、キャリー検出手段の出力である第1のキャリーが検出されればAとBは等しいと判定してかつそのときアクティブになるA=B判定信号を出力し、第1のキャリーが検出されずかつ第2のキャリーが検出されればA大なりBと判定してかつそのときアクティブになるA>B判定信号を出力し、第1のキャリーと第2のキャリーがともに検出されなければA小なりBと判定してかつそのときアクティブとなるA<B判定信号を出力するように構成されていることが好ましい。
【0045】
このことにより、A大なりBとA小なりBとAとBは等しいという3つの状態を判定することができるようになる。
【0046】
同じ効果を得るため、キャリー検出手段は、2進数Aと2進数Bがビット0からビット(k−1)までのビット範囲で各ビット毎に全く等しいデータであるために、最下位ビットの桁位置に加えた値“1”がキャリー伝播の伝播元となり発生するビット(k−1)の第1のキャリーと、第1のキャリーが発生する場合以外で発生するキャリーを含むビット(k−1)の第2のキャリーとを検出して出力するように構成してもよい。
【0047】
このとき、判定手段は、大小関係検出において大小関係が検出されたらその大小関係を出力し、大小関係が検出されない時は、キャリー検出手段の出力である第1のキャリーが検出されればAとBは等しいと判定してかつそのときアクティブになるA=B判定信号を出力し、第2のキャリーが検出されればA大なりBと判定してかつそのときアクティブになるA>B判定信号を出力し、第1のキャリーと第2のキャリーがともに検出されなければA小なりBと判定してかつそのときアクティブとなるA<B判定信号を出力するように構成されていることが好ましい。
【0048】
【発明の実施の形態】
〔第1の実施の形態〕
以下、本発明の第1の実施の形態について、図面を参照しながら説明する。
【0049】
図1は本発明の第1の実施の形態における大小比較装置の構成を示すブロック図である。図1において、値A(0),A(1),…,A(7),B(0),B(1),…,B(7)は、比較する2つの8ビット幅の2進数A,Bのビット0〜7の値を示し、そのうちA(7),B(7)がそれぞれ最上位ビットの値を示す。
【0050】
キャリー検出手段10は、ビット0からビット3までの範囲で、2進数Aと2進数Bのビット反転とビット0における値“1”を加えた場合に生じるビット3のキャリーを検出する。大小検出手段20は、ビット4からビット7までの範囲で、2進数Aと2進数Bの大小関係を検出する。判定手段30は、キャリー検出手段10の出力と大小検出手段20の出力とから、2進数Aと2進数Bの大小関係を判定して出力する。
【0051】
なお、図中の制御信号CNTは、2進数A,Bが2の補数表現される数ならばパッシブであり、符号無し2進数ならばアクティブである制御信号である。
【0052】
以上のように構成された大小比較装置について、その動作を説明する。
【0053】
キャリー検出手段10は、ビット0からビット3までの範囲で、2進数Aと2進数Bのビット反転とビット0における値“1” を加えた場合に生じるビット3のキャリーを検出し、ビット3のキャリー信号C(3)として出力する。
【0054】
一方、大小検出手段20は、ビット4からビット7までの範囲で、2進数Aと2進数Bの大小比較を行い、A大なりBならばビット4のA>B検出信号BG(4)をアクティブにし、A小なりBならばビット4のA<B検出信号SL(4)をアクティブにし、A大なりBの状態とA小なりBの状態の両方とも検出できなければビット4のA>B検出信号BG(4)とビット4のA<B検出信号SL(4)の両方をパッシブにする。
【0055】
判定手段30は、ビット3のキャリー信号C(3)とビット4のA>B検出信号BG(4)とビット4のA<B検出信号SL(4)から、2進数Aと2進数Bの大小関係を判定して大小比較判定信号JGとして出力する。
【0056】
その際の判定手段30から出力される大小比較判定信号JGは、ビット4のA<B検出信号SL(4)がアクティブの時はアクティブになり、ビット4のA>B検出信号BG(4)がアクティブの時はパッシブになり、ビット4のA<B検出信号SL(4)とビット4のA>B検出信号BG(4)がともにパッシブの時はビット3のキャリー信号C(3)がパッシブであればアクティブになり、ビット3のキャリー信号C(3)がアクティブであればパッシブになる。
【0057】
以上のようにして出力される大小比較判定信号JGは、A大なりBあるいはAとBが等しければパッシブになり、A小なりBならばアクティブになり、2進数Aと2進数Bの大小関係を示す。
【0058】
このようにして、2進数Aと2進数Bの大小比較を行う際に、最下位ビットから上位の方向へはキャリー伝播を検出し、最上位ビットから下位の方向へは大小関係の情報を検出することにより、2種類の処理を並行して実行することができ、演算時間を大幅に削減することができ、しかも回路規模としては小さいものでよい。
【0059】
以下では、本実施の形態における構成要素の内部構成と動作の詳細について、さらに図2から図11までの各図を参照しながら説明する。
【0060】
図2は図1中のキャリー検出手段10の内部構成を示すブロック図である。このキャリー検出手段10は、8ビットのうちの下位4ビット分のキャリー検出を行うので、最下位ビット用の1個のキャリー検出要素100(0)とそれ以外の上位ビット用の3個のキャリー検出要素101(1),101(2),101(3)とで構成される。
【0061】
キャリー検出要素100(0)は、2進数A,Bのビット0の値A(0),B(0)が入力され、ビット0のキャリー信号C(0)を出力する。
【0062】
キャリー検出要素101(1)は、2進数A,Bのビット1の値A(1),B(1)とビット0のキャリー信号C(0)とが入力され、ビット1のキャリー信号C(1)を出力する。
【0063】
キャリー検出要素101(2)は、2進数A,Bのビット2の値A(2),B(2)とビット1のキャリー信号C(1)とが入力され、ビット2のキャリー信号C(2)を出力する。
【0064】
キャリー検出要素101(3)は、2進数A,Bのビット3の値A(3),B(3)とビット2のキャリー信号C(2)とが入力され、ビット3のキャリー信号C(3)を出力する。
【0065】
上記図2のキャリー検出手段10の構成で、遅延が最もクリティカルになるのは最下位ビットからキャリーが伝播してビット3のキャリー信号C(3)がアクティブになるときである。
【0066】
図3は図2中のキャリー検出要素100(0)の回路図である。このキャリー検出要素100(0)は、アンド回路1001とノット回路1002とで構成されている。
【0067】
このキャリー検出要素100(0)では、2進数Aのビット0の値A(0)が値“1”で、かつ2進数Bのビット0の値B(0)が値“0”ならば、ビット0のキャリー信号C(0)がアクティブになりキャリーが発生する。また、2進数Aのビット0の値A(0)が値“1”で、かつ2進数Bのビット0の値B(0)が値“1”がならば、ビット0のキャリー信号C(0)がアクティブになりキャリーが発生する。さらに、2進数Aのビット0の値A(0)が値“0”で、かつ2進数Bのビット0の値B(0)が値“0”がならば、ビット0のキャリー信号C(0)がアクティブになりキャリーが発生する。また、2進数Aのビット0の値A(0)が値“0”で、かつ2進数Bのビット0の値B(0)が値“1”がならば、ビット0のキャリー信号C(0)がパッシブになりキャリーが発生しない。
【0068】
この回路は、ビット0の桁位置に値“1”を加える場合を想定するので、後述の上位のビットのキャリー検出要素101(1),101(2),101(3)の回路に比べ簡略化されている。
【0069】
図4は図2中のキャリー検出要素101(i)(ただし、i=1,2,3)の回路図である。このキャリー検出要素101(i)は、アンド回路1011,1012,1013とオア回路1014とで構成されている。
【0070】
このキャリー検出要素101(i)では、2進数Aのビットiの値A(i)が値“1”で、かつ2進数Bのビットiの値B(i)が値“0”ならば、ビットiのキャリー信号C(i)がアクティブになりキャリーが発生する。また、2進数Aのビットiの値A(i)が値“0”で、かつ2進数Bのビットiの値B(i)が値“1”でない時に、下位ビットからのキャリー入力であるキャリー信号C(i−1)がアクティブであれば、キャリー信号C(i)がアクティブになりキャリーが発生する。それ以外では、キャリー信号C(i)はパッシブになりキャリーが発生しない。
【0071】
容易に想像が付くように、図2中のキャリー検出要素100(0)を図4に示したキャリー検出要素101(i)(ただし、i=0)に置き換えてキャリー入力に値“1”を入力するように構成しても構わない。
【0072】
図5は大小検出手段20の構成を示すブロック図である。この大小検出手段20は、8ビットのうちの上位4ビット分の大小検出を行うので、最上位ビット用の1個の大小検出要素200(7)とそれ以外の下位ビット用の3個の大小検出要素201(6),201(5),201(4)とで構成される。
【0073】
大小検出要素200(7)は、2進数A,Bのビット7の値A(7),B(7)が入力され、ビット7のA>B検出信号BG(7)およびA<B検出信号SL(7)を出力する。
【0074】
大小検出要素206(6)は、2進数A,Bのビット6の値A(6),B(6)とビット7のA>B検出信号BG(7)およびA<B検出信号SL(7)が入力され、ビット6のA>B検出信号BG(6)およびA<B検出信号SL(6)を出力する。
【0075】
大小検出要素206(5)は、2進数A,Bのビット5の値A(5),B(5)とビット6のA>B検出信号BG(6)およびA<B検出信号SL(6)が入力され、ビット5のA>B検出信号BG(5)およびA<B検出信号SL(5)を出力する。
【0076】
大小検出要素206(4)は、2進数A,Bのビット4の値A(4),B(4)とビット5のA>B検出信号BG(5)およびA<B検出信号SL(5)が入力され、ビット4のA>B検出信号BG(4)およびA<B検出信号SL(4)を出力する。
【0077】
上記図5の大小検出手段20の構成で、遅延が最もクリティカルになるのは最上位ビットから大小関係検出の情報が伝播し、ビット4から出力されるA>B検出信号BG(4)とA<B検出信号SL(4)が確定するまでであることが分かる。
【0078】
図6は2進数Aと2進数Bが2の補数表現される符号付き2進数である場合の図5中の大小検出要素200(7)の回路図である。この大小検出要素200(7)は、アンド回路2001,2002で構成されている。ここで、2進数Aと2進数Bは、符号付き2進数である場合、最上位ビットである符号ビットは正数の場合は値“0”をとり、負数の場合は値“1”をとる。
【0079】
この大小検出回路200(7)では、2進数Aのビット7の値A(7)が値“0”で、かつ2進数Bのビット7の値B(7)が値“1”ならば、A>B検出信号BG(7)がアクティブになり、さらに2進数Aのビット7の値A(7)が値“1”で、かつ2進数Bのビット7の値B(7)が値0ならば、A<B検出信号SL(7)がアクティブになり、それ以外ではA>B検出信号BG(7)とA<B検出信号SL(7)はともにパッシブになる。
【0080】
図7は図5中の大小検出要素201(i)(ただし、i=6,5,4)の回路図である。この大小検出要素201(i)は、アンド回路2011,2012,2013とオア回路2014,2015とで構成されている。
【0081】
この大小検出要素201(i)では、1ビット上位からのA<B検出信号SL(i+1)がアクティブならば、A<B検出信号SL(i)はアクティブになり、さらに1ビット上位からのA>B検出信号BG(i+1)がパッシブであり、かつ2進数Aのビットiの値A(i)が値“0”で、かつ2進数Bのビットiの値B(i)が値“1”ならば、A<B検出信号SL(i)はアクティブになる。また、1ビット上位からのA>B検出信号BG(i+1)がアクティブならば、A>B検出信号BG(i)はアクティブになり、さらに2進数Aのビットiの値A(i)が値“1”で、かつ2進数Bのビットiの値B(i)が値“0”ならば、A>B検出信号BG(i)はアクティブになる。
【0082】
以上のことから、A>B検出信号BG(i)はビットiより上位で既にA大なりBの状態が検出された場合にアクティブになり、A<B検出信号SL(i)はビットiより上位においてA小なりBの状態がA大なりBの状態検出よりも早く検出された場合(つまり、A大なりBが検出されたビットより上位のビットでA小なりBが検出された場合)にアクティブになる。
【0083】
図8は図2中の判定手段30の回路図である。この判定手段30は、アンド回路301とオア回路302とで構成されている。
【0084】
この判定手段30では、大小検出手段20の出力であるビット4のA<B検出信号SL(4)がアクティブならば、大小比較判定信号JGがアクティブになり、さらにビット4のA>B検出信号BG(4)がパッシブであり、かつキャリー検出手段10の出力であるビット3のキャリー信号C(3)がパッシブであれば、大小比較判定信号JGがアクティブになる。
【0085】
以上のことから、ビット4のA<B検出信号SL(4)がアクティブであれば、大小比較判定信号JGがアクティブになり、ビット4のA>B検出信号BG(4)がアクティブであれば、ビット4のA<B検出信号SL(4)は必ずパッシブになり、大小比較判定信号JGがパッシブになる。つまり、大小検出手段20において、2進数Aと2進数Bの大小関係が検出されれば、その結果が出力される。
【0086】
また、ビット4のA<B検出信号SL(4)とA>B検出信号BG(4)がともにパッシブの時は、ビット3のキャリー信号C(3)がアクティブであれば、大小比較判定信号JGがパッシブになり、ビット3のキャリー信号C(3)がパッシブであれば、大小比較判定信号JGがアクティブになる。つまり、大小検出手段20において2進数Aと2進数Bの大小関係が検出されなければ、キャリー検出手段10の出力であるビット3のキャリー信号C(3)で最終的に大小関係が決まる。
【0087】
図9は2進数Aと2進数Bが符号無し2進数である場合の図5中の大小検出要素200(7)の回路図である。この大小検出要素200(7)は、図6と同様に、アンド回路2001,2002で構成されている。図6との違いは、A>B検出信号BG(7)とA<B検出信号SL(7)を取り出す位置が入れ替わったことである。
【0088】
この大小検出回路200(7)では、2進数Aのビット7の値A(7)が値“1”で、かつ2進数Bのビット7の値B(7)が値“0”ならば、A>B検出信号BG(7)がアクティブになり、さらに2進数Aのビット7の値A(7)が値“0”で、かつ2進数Bのビット7の値B(7)が値“1”ならば、A<B検出信号SL(7)がアクティブになり、それ以外ではA>B検出信号BG(7)かつA<B検出信号SL(7)はパッシブになる。
【0089】
なお、2進数Aと2進数Bが符号無し2進数である場合の図5中の大小検出要素201(i)(ただし、i=6,5,4)については、図7と同じである。
【0090】
図6と図9から、2進数Aと2進数Bが2の補数表現される符号付き2進数である場合と2進数Aと2進数Bが符号無し2進数である場合とで、図5中の大小検出要素200(7)の回路は、ビット7のA>B検出信号BG(7)の生成回路と、ビット7のA<B検出信号SL(7)の生成回路が対称関係にあることが分かる。
【0091】
そこで、2進数Aの最上位ビットであるビット7の値A(7)と2進数Bの最上位ビットであるビット7の値B(7)とを入れ替える機能か、もしくはA>B検出信号BG(7)とA<B検出信号SL(7)とを入れ替える機能のいずれかを備えれば、2の補数表現される符号付き2進数と符号無し2進数との両方に同時に対応できる。
【0092】
図10は、2進数A,Bが2の補数表現される符号付き2進数であればパッシブになり、2進数A,Bが符号無し2進数であればアクティブになる制御信号CNTにより、2進数A,Bの最上位ビットであるビット7の値A(7),B(7)のデータを入れ替える手段を備えた大小検出手段21の構成を示すブロック図を示す。図10において、制御信号CNTによって切り替えが行われるマルチプレクサ202,203が2進数A,Bの最上位ビットであるビット7の値A(7),B(7)のデータを入れ替える手段を構成している。その他は図5と同じである。
【0093】
図11は、上記の制御信号CNTにより、A>B検出信号BG(7)とA<B検出信号SL(7)のを入れ替える手段を備えた大小関係検出手段22の構成を示すブロック図である。図11において、制御信号CNTによって切り替えが行われるマルチプレクサ204,205がA>B検出信号BG(7)とA<B検出信号SL(7)のを入れ替える手段を構成している。その他は図5と同じである。
【0094】
以上の図10または図11の構成を採用することにより、2の補数表現の2進数と符号無し2進数の両方に対応できる大小比較装置が得られる。
【0095】
以上のように、第1の実施の形態によれば、キャリー検出手段10と大小検出手段20,21または22と判定手段30とを備えることにより、2進数Aと2進数Bの大小比較を行う際に、最下位ビットから上位の方向へはキャリー伝播を検出し、最上位ビットから下位の方向へは大小関係の情報を検出することにより、並行して処理を実行することができ、演算時間を大幅に削減することができ、しかも回路規模は小さく抑えることができる。
【0096】
また、本実施の形態では、キャリー検出手段10と大小検出手段20,21または22は、1桁ずつ情報が伝播して行く構成で示したが、キャリールックアヘッド構成のように検出回路を並列化することにより、さらに高速化することも可能である。ただし、このときは並列化のために、多少回路規模が増加する。
【0097】
〔第2の実施の形態〕
以下本発明の第2の実施の形態について説明する。
【0098】
図12は本発明の第2の実施の形態における大小比較装置の構成を示すブロック図である。図12において、A(0),A(1),…,A(7),B(0),B(1),…,B(7)は、比較する2つの8ビット幅の2進数A,Bのビット0〜7の値を示し、そのうちA(7),B(7)がそれぞれ最上位ビットの値を示す。
【0099】
キャリー検出手段11は、ビット0からビット3までの範囲で、2進数Aと2進数Bのビット反転とビット0に値“1” を加えた場合に生じるビット3のキャリーを検出する。大小検出手段20は、ビット4からビット7までの範囲で、2進数Aと2進数Bの大小関係を検出する。判定手段31は、キャリー検出手段11の出力と大小検出手段20の出力とから、2進数Aと2進数Bの大小関係を判定して出力する。大小検出手段20は第1の実施の形態と同じ構成である。
【0100】
第2の実施の形態の構成は、第1の実施の形態において、キャリー検出手段11は2進数Aと2進数Bがビット0からビット3までの範囲で各ビット毎に全く等しいデータであるために、最下位ビットの桁位置に加える値“1”がキャリー伝播の伝播元となり発生するビット(k−1)の第1のキャリーC1(3)と、第1のキャリーC1(3)が発生する場合も含めて総ての発生するキャリーを含むビット(k−1)の第2のキャリーC2(3)とを検出して出力し、判定手段31はキャリー検出手段11の出力である第1のキャリーC1(3)と第2のキャリーC2(3)と大小検出手段20の出力であるA>B検出信号BG(4)とA<B検出信号SL(4)から2進数Aと2進数Bの大小関係を判定し、大小検出手段20において大小関係が検出されたらその大小関係を出力し、大小関係が検出されない時は、キャリー検出手段11の出力である第1のキャリーC1(3)が検出されればAとBは等しいと判定してかつそのときアクティブになるA=B判定信号JGABを出力し、第1のキャリーC1(3)が検出されずかつ第2のキャリーC2(3)が検出されればA大なりBと判定してかつそのときアクティブになるA>B判定信号JGAを出力し、第1のキャリーC1(3)と第2のキャリーC2(3)がともに検出されなければA小なりBと判定してかつそのときアクティブとなるA<B判定信号JGBを出力するように構成される。
【0101】
図13は図12中のキャリー検出手段11の内部構成を示すブロック図である。このキャリー検出手段11は、8ビットのうちの下位4ビット分のキャリー検出を行うので、最下位ビット用の1個のキャリー検出要素102(0)とそれ以外の上位ビット用の3個のキャリー検出要素103(1),103(2),103(3)とで構成される。
【0102】
キャリー検出要素102(0)は、2進数A,Bのビット0の値A(0),B(0)が入力され、ビット0の第1および第2のキャリー信号C1(0),C2(0)を出力する。
【0103】
キャリー検出要素103(1)は、2進数A,Bのビット1の値A(1),B(1)とビット0の第1および第2のキャリー信号C1(0),C2(0)とが入力され、ビット1の第1および第2のキャリー信号C1(1),C2(1)を出力する。
【0104】
キャリー検出要素103(2)は、2進数A,Bのビット2の値A(2),B(2)とビット1の第1および第2のキャリー信号C1(1),C2(1)とが入力され、ビット2の第1および第2のキャリー信号C1(2),C2(2)を出力する。
【0105】
キャリー検出要素103(3)は、2進数A,Bのビット3の値A(3),B(3)とビット2の第1および第2のキャリー信号C1(2),C2(2)とが入力され、ビット3の第1および第2のキャリー信号C1(3),C2(3)を出力する。
【0106】
図14は図13中のキャリー検出要素102(0)の回路図である。このキャリー検出要素102(0)は、第1の実施の形態におけるキャリー検出手段10のキャリー検出要素100(0)の回路に加え、2進数Aのビット0の値A(0)と2進数Bのビット0の値B(0)とが全く同じ値であることを検出する回路が付加された構成になっている。具体的には、AND回路1021,1022,1023とノット回路1024とで構成されている。
【0107】
このキャリー検出要素102(0)では、2進数Aのビット0の値A(0)と2進数Bのビット0の値B(0)とが全く同じ値であるときに第1のキャリー信号C1(0)がアクティブになる。また、第2のキャリー信号C2(0)については、図3のキャリー信号C(0)と同じである。
【0108】
図15は図13中のキャリー検出要素103(i)(ただし、i=1,2,3)の回路図である。このキャリー検出要素103(i)は、第1の実施の形態におけるキャリー検出手段10のキャリー検出要素101(i)の回路に加え、2進数Aのビットiの値A(i)と2進数Bのビットiの値B(i)とが全く同じ値であり、かつ1ビット下位までの2進数Aと2進数Bのデータが一致していることを検出する回路が付加された構成になっている。具体的には、アンド回路1031,1032,1033,1034とオア回路1035とで構成されている。
【0109】
このキャリー検出要素103(i)では、2進数Aのビットiの値A(i)と2進数Bのビットiの値B(i)とが全く同じ値であり、かつ1ビット下位までの2進数Aと2進数Bのデータが一致しているときに第1のキャリー信号C1(i)がアクティブになる。また、第2のキャリー信号C2(i)については、図4のキャリー信号C(i)と同じである。
【0110】
図16は図12中の判定手段31の回路図である。この判定手段31は、第1の実施の形態における判定手段30の回路に加え、以下の処理を行う回路を付加している。すなわち、A小なりBでない場合において、キャリー検出手段11の出力である第1のキャリーC1(3)と第2のキャリーC2(3)との組合せからA大なりBのときにアクティブになるA>B判定信号JGAと、AとBが等しいときにアクティブになるA=B判定信号JGABを生成し出力する回路を付加している。図中のA<B判定信号JGBは判定手段30の出力である大小比較判定信号JGと同じでA小なりBのときにアクティブになる信号である。具体的には、アンド回路311,312,313とオア回路314とで構成されている。
【0111】
以上のように構成された大小比較装置について、その動作を説明する。
【0112】
キャリー検出手段11でビット0からビット3までの範囲で2進数Aと2進数Bが各ビット毎に全く等しいデータであるために、最下位ビットの桁位置に加えた値“1”がキャリー伝播の伝播元となり発生するビット3の第1のキャリーを検出して出力することにより、判定手段31でA大なりBの状態とAとBは等しい状態は判別することが可能になる。
【0113】
第2の実施の形態を用いることにより、本発明の演算装置は2つの2進数A,Bの大小比較を行う際に、A大なりBの状態とA小なりBの状態とAとBは等しい状態の3つの状態を判定できる。
【0114】
また本実施の形態ではそれぞれ3つの状態でアクティブになる3つの信号を出力しているが、3つの状態を2つの信号の組合せで表現してもよく、容易に実現できる。
【0115】
〔第3の実施の形態〕
以下本発明の第3の実施の形態について説明する。
【0116】
図17は本発明の第3の実施の形態における大小比較装置の構成を示すブロック図である。図17において、A(0),A(1),…,A(7),B(0),B(1),…,B(7)は、比較する2つの8ビット幅の2進数A,Bのビット0〜7の値を示し、そのうちA(7),B(7)がそれぞれ最上位ビットの値を示す。
【0117】
キャリー検出手段12は、ビット0からビット3までの範囲で、2進数Aと2進数Bのビット反転とビット0に値“1” を加えた場合に生じるビット3のキャリーを検出する。大小検出手段20は、ビット4からビット7までの範囲で、2進数Aと2進数Bの大小関係を検出する。判定手段32は、キャリー検出手段12の出力と大小検出手段20の出力とから、2進数Aと2進数Bの大小関係を判定して出力する。大小検出手段20は第1の実施の形態と同じ構成である。
【0118】
第3の実施の形態の構成は、第1の実施の形態において、キャリー検出手段12は2進数Aと2進数Bがビット0からビット3までの範囲で各ビット毎に全く等しいデータであるために、最下位ビットの桁位置に加える値“1”がキャリー伝播の伝播元となり発生するビット(k−1)の第1のキャリーC1(3)と、第1のキャリーC1(3)が発生する場合以外で発生するキャリーを含むビット(k−1)の第2のキャリーC3(3)とを検出して出力し、判定手段32はキャリー検出手段12の出力である第1のキャリーC1(3)と第2のキャリーC3(3)と大小検出手段20の出力であるA>B検出信号BG(4)とA<B検出信号SL(4)から2進数Aと2進数Bの大小関係を判定し、大小検出手段20において大小関係が検出されたらその大小関係を出力し、大小関係が検出されない時は、キャリー検出手段12の出力である第1のキャリーC1(3)が検出されればAとBは等しいと判定してかつそのときアクティブになるA=B判定信号JGABを出力し、第2のキャリーC3(3)が検出されればA大なりBと判定してかつそのときアクティブになるA>B判定信号JGAを出力し、第1のキャリーC1(3)と第2のキャリーC3(3)がともに検出されなければA小なりBと判定してかつそのときアクティブとなるA<B判定信号JGBを出力するように構成される。
【0119】
図18は図17中のキャリー検出手段12の内部構成を示すブロック図である。このキャリー検出手段12は、8ビットのうちの下位4ビット分のキャリー検出を行うので、最下位ビット用の1個のキャリー検出要素104(0)とそれ以外の上位ビット用の3個のキャリー検出要素105(1),105(2),105(3)とで構成される。
【0120】
キャリー検出要素104(0)は、2進数A,Bのビット0の値A(0),B(0)が入力され、ビット0の第1および第2のキャリー信号C1(0),C3(0)を出力する。
【0121】
キャリー検出要素105(1)は、2進数A,Bのビット1の値A(1),B(1)とビット0の第1および第2のキャリー信号C1(0),C3(0)とが入力され、ビット1の第1および第2のキャリー信号C1(1),C3(1)を出力する。
【0122】
キャリー検出要素105(2)は、2進数A,Bのビット2の値A(2),B(2)とビット1の第1および第2のキャリー信号C1(1),C3(1)とが入力され、ビット2の第1および第2のキャリー信号C1(2),C3(2)を出力する。
【0123】
キャリー検出要素105(3)は、2進数A,Bのビット3の値A(3),B(3)とビット2の第1および第2のキャリー信号C1(2),C3(2)とが入力され、ビット3の第1および第2のキャリー信号C1(3),C3(3)を出力する。
【0124】
図19は図18中のキャリー検出要素104(0)の回路図である。このキャリー検出要素104(0)は、図14のキャリー検出要素102(0)とは異なり、第2のキャリー信号C3(0)は2進数Aのビット0の値A(0)と2進数Bのビット0の値B(0)とが同じ値である場合を含まない。つまり、図14の回路における第2のキャリー信号C2(0)は、2進数Aのビット0の値A(0)と2進数Bのビット0の値B(0)とが同じ値である場合にもアクティブとなったが、図19における第2のキャリー信号C3(0)は2進数Aのビット0の値A(0)と2進数Bのビット0の値B(0)とが同じ値である場合にはアクティブとはならない。したがって、第1のキャリー信号C1(0)と第2のキャリー信号C3(0)とは同時にアクティブになることはなくなっている。その他は図14と同様である。具体的には、AND回路1041,1042,1043で構成されている。
【0125】
図18中のキャリー検出要素105(i)(ただし、i=1,2,3)は、図図13中のキャリー検出要素103(i)と同様であり、その具体構成は図15に示したものと同様であるので、図示を省略する。
【0126】
図20は図17中の判定手段32の回路図である。この判定手段32は、第2の実施の形態における判定手段31の回路における第2のキャリー信号C2(3)が第3のキャリー信号C3(3)に変更されたこと、つまり第1のキャリー信号C1(0)と第2のキャリー信号C3(0)が同時にアクティブになることがなくなったことに起因して、回路構成が変更されている。具体的には、アンド回路321,322,323とオア回路324とで構成されている。
【0127】
以上のように構成された大小比較装置について、その動作を説明する。
【0128】
キャリー検出手段12でビット0からビット3までの範囲で2進数Aと2進数Bが各ビット毎に全く等しいデータであるために、最下位ビットの桁位置に加えた値“1”がキャリー伝播の伝播元となり発生するビット3の第1のキャリーを検出して出力することにより、判定手段32でA大なりBの状態とAとBは等しい状態は判別することが可能になる。
【0129】
第2の実施の形態を用いることにより、本発明の演算装置は2つの2進数A,Bの大小比較を行う際に、A大なりBの状態とA小なりBの状態とAとBは等しい状態の3つの状態を判定できる。
【0130】
また本実施の形態ではそれぞれ3つの状態でアクティブになる3つの信号を出力しているが、3つの状態を2つの信号の組合せで表現してもよく、容易に実現できる。
【0131】
なお、上記各実施の形態では、一例として8ビット2進数A,Bの比較を行うものを示したが、2進数A,Bのビット数は16ビット、32ビット,62ビット等任意のビット数の2進数に対して本発明を適用できるのはいうまでもない。
【0132】
また、上記2進数A,Bの上位ビットと下位ビットの区分けは、大小比較とキャリー伝搬の各々の処理時間を考慮して、両方の処理時間がほぼ等しくなるように決定するのが好ましく、ちょうど真ん中で行う必要はない。また、特に両方の処理時間が等しくなるように決定する必要はない。つまり、両方の処理時間が等しくなるように、上位ビットと下位ビットの区分けを設定しなくても、上記の大小比較とキャリー伝搬を同時に並列に実行することで、大小比較とキャリー伝搬の何れか片方のみを行う場合に比べて処理時間の短縮を図ることができる。
【0133】
また、上記の各実施の形態では、信号の状態を示すのに、アクティブとパッシブという表現を用いているが、ハイまたはロウの信号レベルの何れか一方をアクティブとし、他方をパッシブとしている。
【0134】
【発明の効果】
以上説明したように、本発明の大小比較方法および大小比較装置によれば、2進数Aと2進数Bの大小比較を行う際に、最下位ビットから上位方向へのキャリー伝播を検出する処理と、最上位ビットから下位方向への大小関係の検出処理を並列処理することにより、小さい回路規模で演算時間を大幅に削減した大小比較行うことができる。また、キャリー伝播を検出するビット範囲で2進数Aと2進数Bが各ビットで全く同じであることにより発生するキャリー伝播を個別に検出することにより、A大なりBの状態とA小なりBの状態とAとBは等しい状態の3つの状態を判定することが可能となる。
【図面の簡単な説明】
【図1】本発明の第1の実施の形態に係わる大小比較装置の構成を示すブロック図である。
【図2】キャリー検出手段10の構成を示すブロック図である。
【図3】キャリー検出手段10におけるキャリー検出要素100(0)の回路構成を示す回路図である。
【図4】キャリー検出手段10におけるキャリー検出要素101(i)の回路構成を示す回路図である。
【図5】大小検出手段20の構成を示すブロック図である。
【図6】比較データが2の補数表現される符号付き2進数データである場合に、大小検出手段20における大小検出要素200(7)の回路構成を示す回路図である。
【図7】大小検出手段20における大小検出要素201(i)の回路構成を示す回路図である。
【図8】判定手段30の構成を示す回路図である。
【図9】比較データが符号無し2進数データである場合に、大小検出手段20における大小検出要素200(7)の回路構成を示す回路図である。
【図10】制御信号により比較するデータの数体系を切り替え可能な、大小検出手段21の構成を示すブロック図である。
【図11】制御信号により比較するデータの数体系を切り替え可能な、大小検出手段22の構成を示すブロック図である。
【図12】本発明の第2の実施の形態に係わる大小比較装置の構成を示すブロック図である。
【図13】キャリー検出手段11の構成を示すブロック図である。
【図14】キャリー検出手段11におけるキャリー検出要素102(0)の回路構成を示す回路図である。
【図15】キャリー検出手段11におけるキャリー検出要素103(i)の回路構成を示す回路図である。
【図16】判定手段31の構成を示す回路図である。
【図17】本発明の第3の実施の形態に係わる大小比較装置の構成を示すブロック図である。
【図18】キャリー検出手段12の構成を示すブロック図である。
【図19】キャリー検出手段12におけるキャリー検出要素104(0)の回路構成を示す回路図である。
【図20】判定手段32の回路構成を示す回路図である。
【符号の説明】
10 キャリー検出手段
11 キャリー検出手段
12 キャリー検出手段
20 大小検出手段
21 大小検出手段
22 大小検出手段
30 判定手段
31 判定手段
32 判定手段
100(0) キャリー検出要素
101(1) キャリー検出要素
101(2) キャリー検出要素
101(3) キャリー検出要素
101(i) キャリー検出要素
102(0) キャリー検出要素
103(1) キャリー検出要素
103(2) キャリー検出要素
103(3) キャリー検出要素
103(i) キャリー検出要素
200(7) 大小検出要素
201(6) 大小検出要素
201(5) 大小検出要素
201(4) 大小検出要素
201(i) 大小検出要素
202 マルチプレクサ
203 マルチプレクサ
204 マルチプレクサ
205 マルチプレクサ
BG(7) A>B検出信号
BG(6) A>B検出信号
BG(5) A>B検出信号
BG(4) A>B検出信号
SL(3) A<B検出信号
SL(2) A<B検出信号
SL(1) A<B検出信号
SL(0) A<B検出信号
CNT 制御信号
JG 大小比較判定信号
JGA A>B判定信号
JGB A<B判定信号
JGAB A=B判定信号

Claims (15)

  1. 2つのnビット(nは正の整数)の2進数A,Bの大小比較を行う演算方法であって、
    ビット0からビット(k−1)(kは正の整数,0<k<n)までのビット範囲で、前記2進数Aと前記2進数Bのビット反転と最下位ビットの桁位置における値“1”とを加えた場合に発生するビット(k−1)のキャリーを検出し、
    ビットkからビット(n−1)までのビット範囲で、前記2進数Aと前記2進数Bの大小関係を検出し、
    前記大小関係の検出結果と前記キャリーの検出結果から、前記2進数Aと前記2進数Bの大小関係を判定して出力することを特徴とする大小比較方法。
  2. 前記2つのnビットの2進数A,Bが2の補数表現される符号付き2進数であり、ビットkからビット(n−1)までのビット範囲で、前記2進数A,Bの大小関係を検出する際に、
    前記2進数Aの最上位ビットである(n−1)ビットが正の符号を示し、前記2進数Bの最上位ビットである(n−1)ビットが負の符号を示す場合はA大なりBと判定し、前記2進数Aの最上位ビットである(n−1)ビットが負の符号を示し、前記2進数Bの最上位ビットである(n−1)ビットが正の符号を示す場合はA小なりBと判定し、それ以外の組合せでは大小関係未検出として1ビット下位データでの大小関係検出に移行し、
    前記2進数Aの(n−2)ビットが値“1”を示し、前記2進数Bの(n−2)ビットが値“0”を示す場合はA大なりBと判定し、前記2進数Aの(n−2)ビットが値“0”を示し、前記2進数Bの(n−2)ビットが値“1”を示す場合はA小なりBと判定し、それ以外の組合せでは大小関係未検出として1ビット下位データでの大小関係検出に移行し、
    前記2進数Aの(n−3)ビットが値“1”を示し、前記2進数Bの(n−3)ビットが値“0”を示す場合はA大なりBと判定し、前記2進数Aの(n−3)ビットが値“0”を示し、前記2進数Bの(n−3)ビットが値“1”を示す場合はA小なりBと判定し、それ以外の組合せでは大小関係未検出として1ビット下位データでの大小関係検出に移行し、
    前記の大小関係検出をkビットまで順次行い、kビットでも大小関係を検出できない場合は大小関係未検出と判定することを特徴とする請求項1に記載の大小比較方法。
  3. 前記2つのnビットの2進数A,Bが符号無し2進数であり、ビットkからビット(n−1)までのビット範囲で、前記2進数A,Bの大小関係を検出する際に、
    前記2進数Aの最上位ビットである(n−1)ビットが値“1”を示し、前記2進数Bの最上位ビットである(n−1)ビットが値“0”を示す場合はA大なりBと判定し、前記2進数Aの最上位ビットである(n−1)ビットが値“0”を示し、前記2進数Bの最上位ビットである(n−1)ビットが値“1”を示す場合はA小なりBと判定し、それ以外の組合せでは大小関係未検出として1ビット下位データでの大小関係検出に移行し、
    前記2進数Aの(n−2)ビットが値“1”を示し、前記2進数Bの(n−2)ビットが値“0”を示す場合はA大なりBと判定し、前記2進数Aの(n−2)ビットが値“0”を示し、前記2進数Bの(n−2)ビットが値“1”を示す場合はA小なりBと判定し、それ以外の組合せでは大小関係未検出として1ビット下位データでの大小関係検出に移行し、
    前記2進数Aの(n−3)ビットが値“1”を示し、前記2進数Bの(n−3)ビットが値“0”を示す場合はA大なりBと判定し、前記2進数Aの(n−3)ビットが値“0”を示し、前記2進数Bの(n−3)ビットが値“1”を示す場合はA小なりBと判定し、それ以外の組合せでは大小関係未検出として1ビット下位データでの大小関係検出に移行し、
    前記の大小関係検出をkビットまで順次行い、kビットでも大小関係を検出できない場合は大小関係未検出と判定することを特徴とする請求項1に記載の大小比較方法。
  4. ビットkからビット(n−1)までのビット範囲で、前記2進数A,Bの大小関係を検出する際に、
    前記2進数A,Bが2の補数表現される符号付き2進数であればパッシブになり、符号無し2進数であればアクティブになる制御信号により、前記制御信号が前記パッシブであれば前記2進数A,Bを2の補数表現として大小関係を検出して出力し、前記制御信号が前記アクティブであれば前記2進数A,Bを符号無し2進数として大小関係を検出して出力することを特徴とする請求項1に記載の大小比較方法。
  5. 前記2進数A,Bの大小関係を判定する際に、
    前記ビットkからビット(n−1)までのビット範囲での大小関係が検出されたらその大小関係を出力し、大小関係が検出されなければ前記キャリーの検出結果により、キャリーが検出されればA大なりBあるいはAとBは等しいと判定し、キャリーが検出されなければA小なりBと判定することを特徴とする請求項1に記載の大小比較方法。
  6. ビット0からビット(k−1)までのビット範囲で、前記2進数Aと前記2進数Bのビット反転と最下位ビットの桁位置における値“1”とを加えた場合に発生するビット(k−1)のキャリーを検出する際に、
    前記2進数Aと前記2進数Bがビット0からビット(k−1)までのビット範囲で各ビット毎に全く等しいデータであるために、前記最下位ビットの桁位置に加えた値“1”がキャリー伝播の伝播元となり発生するビット(k−1)の第1のキャリーと、前記第1のキャリーが発生する場合も含めて総ての発生するキャリーを含むビット(k−1)の第2のキャリーを検出し、
    前記ビットkからビット(n−1)までのビット範囲での大小関係検出において大小関係が検出されたらその大小関係を出力し、大小関係が検出されなければ前記キャリーの検出結果により、前記第1のキャリーが検出されればAとBは等しいと判定し、前記第1のキャリーが検出されずかつ前記第2のキャリーが検出されればA大なりBと判定し、前記第1のキャリーと前記第2のキャリーがともに検出されなければA小なりBと判定することを特徴とする請求項1に記載の大小比較方法。
  7. ビット0からビット(k−1)までのビット範囲で、前記2進数Aと前記2進数Bのビット反転と最下位ビットの桁位置における値“1”とを加えた場合に発生するビット(k−1)のキャリーを検出する際に、
    前記2進数Aと前記2進数Bがビット0からビット(k−1)までのビット範囲で各ビット毎に全く等しいデータであるために、前記最下位ビットの桁位置に加えた値“1”がキャリー伝播の伝播元となり発生するビット(k−1)の第1のキャリーと、前記第1のキャリーが発生する場合以外で発生するキャリーを含むビット(k−1)の第2のキャリーを区別して検出し、
    前記ビットkからビット(n−1)までのビット範囲での大小関係検出において大小関係が検出されたらその大小関係を出力し、大小関係が検出されなければ前記キャリーの検出結果により、前記第1のキャリーが検出されればAとBは等しいと判定して出力し、前記第2のキャリーが検出されればA大なりBと判定して出力し、前記第1のキャリーと前記第2のキャリーがともに検出されなければA小なりBと判定して出力することを特徴とする請求項1に記載の大小比較方法。
  8. 2つのnビットの2進数A,Bの大小比較を行う演算装置であって、
    ビット0からビット(k−1)までのビット範囲で、前記2進数Aと前記2進数Bのビット反転と最下位ビットの桁位置における値“1”とを加えた場合に発生するビット(k−1)のキャリーを検出し出力するキャリー検出手段と、
    ビットkからビット(n−1)までのビット範囲で、前記2進数Aと前記2進数Bの大小関係を検出し、A大なりBの場合にアクティブになるA>B検出信号と、A小なりBの場合にアクティブになるA<B検出信号とを出力し、前記2進数Aと前記2進数Bの大小関係が検出できなければ前記A>B検出信号と前記A<B検出信号が両方ともパッシブになる大小検出手段と、
    前記大小検出手段の出力と前記キャリー検出手段の出力から、前記2進数Aと前記2進数Bの大小関係を判定し、A大なりBあるいはAとBが等しい場合にパッシブになり、A小なりBの場合にアクティブになる大小比較判定信号を出力する判定手段とを備えたことを特徴とする大小比較装置。
  9. 前記大小検出手段は、
    前記2つのnビットの2進数A,Bが2の補数表現される符号付き2進数であるとき、前記2進数Aの最上位ビットである(n−1)ビットが正の符号を示し、前記2進数Bの最上位ビットである(n−1)ビットが負の符号を示す場合はA大なりBと判定して前記A>B検出信号をアクティブにして出力し、前記2進数Aの最上位ビットである(n−1)ビットが負の符号を示し、前記2進数Bの最上位ビットである(n−1)ビットが正の符号を示す場合はA小なりBと判定して前記A<B検出信号をアクティブにして出力し、それ以外の組合せでは大小関係未検出として1ビット下位データでの大小関係検出に移行し、
    前記2進数Aの(n−2)ビットが値“1”を示し、前記2進数Bの(n−2)ビットが値“0”を示す場合はA大なりBと判定して前記A>B検出信号をアクティブにして出力し、前記2進数Aの(n−2)ビットが値“0”を示し、前記2進数Bの(n−2)ビットが値“1”を示す場合はA小なりBと判定して前記A<B検出信号をアクティブにして出力し、それ以外の組合せでは大小関係未検出として1ビット下位データでの大小関係検出に移行し、
    前記2進数Aの(n−3)ビットが値“1”を示し、前記2進数Bの(n−3)ビットが値“0”を示す場合はA大なりBと判定して前記A>B検出信号をアクティブにして出力し、前記2進数Aの(n−3)ビットが値“0”を示し、前記2進数Bの(n−3)ビットが値“1”を示す場合はA小なりBと判定して前記A<B検出信号をアクティブにして出力し、それ以外の組合せでは大小関係未検出として1ビット下位データでの大小関係検出に移行し、
    前記の大小関係検出をkビットまで順次行い、kビットでも大小関係を検出できない場合は大小関係未検出と判定して前記A>B検出信号と前記A<B検出信号とをともにパッシブにして出力することを特徴とする請求項8に記載の大小比較装置。
  10. 前記大小検出手段は、
    前記2つのnビットの2進数A,Bが符号無し2進数であるとき、前記2進数Aの最上位ビットである(n−1)ビットが値“1”を示し、前記2進数Bの最上位ビットである(n−1)ビットが値“0”を示す場合はA大なりBと判定して前記A>B検出信号をアクティブにして出力し、前記2進数Aの最上位ビットである(n−1)ビットが値“0”を示し、前記2進数Bの最上位ビットである(n−1)ビットが値“1”を示す場合はA小なりBと判定して前記A<B検出信号をアクティブにして出力し、それ以外の組合せでは大小関係未検出として1ビット下位データでの大小関係検出に移行し、
    前記2進数Aの(n−2)ビットが値“1”を示し、前記2進数Bの(n−2)ビットが値“0”を示す場合はA大なりBと判定して前記A>B検出信号をアクティブにして出力し、前記2進数Aの(n−2)ビットが値“0”を示し、前記2進数Bの(n−2)ビットが値“1”を示す場合はA小なりBと判定して前記A<B検出信号をアクティブにして出力し、それ以外の組合せでは大小関係未検出として1ビット下位データでの大小関係検出に移行し、
    前記2進数Aの(n−3)ビットが値“1”を示し、前記2進数Bの(n−3)ビットが値“0”を示す場合はA大なりBと判定して前記A>B検出信号をアクティブにして出力し、前記2進数Aの(n−3)ビットが値“0”を示し、前記2進数Bの(n−3)ビットが値“1”を示す場合はA小なりBと判定して前記A<B検出信号をアクティブにして出力し、それ以外の組合せでは大小関係未検出として1ビット下位データでの大小関係検出に移行し、
    前記の大小関係検出をkビットまで順次行い、kビットでも大小関係を検出できない場合は大小関係未検出と判定して前記A>B検出信号と前記A<B検出信号とをともにパッシブにして出力することを特徴とする請求項8に記載の大小比較装置。
  11. 前記大小検出手段は、
    前記2進数A,Bが2の補数表現される符号付き2進数であればパッシブになり、符号無し2進数であればアクティブになる制御信号により、前記2進数A,Bの最上位ビットであるビット(n−1)のデータを入れ替える手段を備えることを特徴とする請求項8に記載の大小比較装置。
  12. 前記大小検出手段は、
    前記2進数A,Bが2の補数表現される符号付き2進数であればパッシブになり、符号無し2進数であればアクティブになる制御信号により、前記2進数Aの(n−1)ビットが値“1”を示し、前記2進数Bの(n−1)ビットが値“0”を示す場合にアクティブとなる信号と、前記2進数Aの(n−1)ビットが値“0”を示し、前記2進数Bの(n−1)ビットが値“1”を示す場合にアクティブとなる信号とを入れ替えて出力する手段を備えることを特徴とする請求項8に記載の大小比較装置。
  13. 前記判定手段は、
    前記大小検出手段の出力である前記A<B検出信号がアクティブの時はアクティブになり、前記A>B検出信号がアクティブの時はパッシブになり、前記A<B検出信号と前記A>B検出信号がともにパッシブの時は前記キャリー検出手段の出力がパッシブであればアクティブになり、前記キャリー検出手段の出力がアクティブであればパッシブになる大小比較判定信号を出力することにより前記2進数Aと前記2進数Bの大小関係を判定することを特徴とする請求項8に記載の大小比較装置。
  14. 前記キャリー検出手段は、
    前記2進数Aと前記2進数Bがビット0からビット(k−1)までのビット範囲で各ビット毎に全く等しいデータであるために、前記最下位ビットの桁位置に加えた値“1”がキャリー伝播の伝播元となり発生するビット(k−1)の第1のキャリーと、前記第1のキャリーが発生する場合も含めて総ての発生するキャリーを含むビット(k−1)の第2のキャリーとを検出して出力し、
    前記判定手段は、
    前記大小検出手段において大小関係が検出されたらその大小関係を出力し、大小関係が検出されない時は、前記キャリー検出手段の出力である前記第1のキャリーが検出されればAとBは等しいと判定してかつそのときアクティブになるA=B判定信号を出力し、前記第1のキャリーが検出されずかつ前記第2のキャリーが検出されればA大なりBと判定してかつそのときアクティブになるA>B判定信号を出力し、前記第1のキャリーと前記第2のキャリーがともに検出されなければA小なりBと判定してかつそのときアクティブとなるA<B判定信号を出力することを特徴とする請求項8に記載の大小比較装置。
  15. 前記キャリー検出手段は、
    前記2進数Aと前記2進数Bがビット0からビット(k−1)までのビット範囲で各ビット毎に全く等しいデータであるために、前記最下位ビットの桁位置に加えた値“1”がキャリー伝播の伝播元となり発生するビット(k−1)の第1のキャリーと、前記第1のキャリーが発生する場合以外で発生するキャリーを含むビット(k−1)の第2のキャリーとを検出して出力し、
    前記判定手段は、
    前記大小関係検出において大小関係が検出されたらその大小関係を出力し、大小関係が検出されない時は、前記キャリー検出手段の出力である前記第1のキャリーが検出されればAとBは等しいと判定してかつそのときアクティブになるA=B判定信号を出力し、前記第2のキャリーが検出されればA大なりBと判定してかつそのときアクティブになるA>B判定信号を出力し、前記第1のキャリーと前記第2のキャリーがともに検出されなければA小なりBと判定してかつそのときアクティブとなるA<B判定信号を出力することを特徴とする請求項8に記載の大小比較装置。
JP10394599A 1999-04-12 1999-04-12 大小比較方法および装置 Expired - Fee Related JP3557366B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP10394599A JP3557366B2 (ja) 1999-04-12 1999-04-12 大小比較方法および装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP10394599A JP3557366B2 (ja) 1999-04-12 1999-04-12 大小比較方法および装置

Publications (2)

Publication Number Publication Date
JP2000293359A JP2000293359A (ja) 2000-10-20
JP3557366B2 true JP3557366B2 (ja) 2004-08-25

Family

ID=14367591

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10394599A Expired - Fee Related JP3557366B2 (ja) 1999-04-12 1999-04-12 大小比較方法および装置

Country Status (1)

Country Link
JP (1) JP3557366B2 (ja)

Also Published As

Publication number Publication date
JP2000293359A (ja) 2000-10-20

Similar Documents

Publication Publication Date Title
JPH07210369A (ja) 並列加算および平均演算を行うための回路およびその方法
US9146707B2 (en) Generating a fast 3x multiplicand term for radix-8 booth multiplication
US5367477A (en) Method and apparatus for performing parallel zero detection in a data processing system
EP1652063A1 (en) Arithmetic unit for addition or subtraction with preliminary saturation detection
US6629118B1 (en) Zero result prediction
JP3557366B2 (ja) 大小比較方法および装置
JPH09222991A (ja) 加算方法および加算器
GB2401962A (en) A sum bit generation circuit
JP4567753B2 (ja) パリティ生成回路、計数回路および計数方法
JPH04350724A (ja) シフト量検出回路
JPH1091397A (ja) 演算回路
JPH0511980A (ja) 桁あふれ検出方式とその回路
US6631393B1 (en) Method and apparatus for speculative addition using a limited carry
JP4317738B2 (ja) 平均値算出装置および平均値算出方法
US20050210089A1 (en) Saturating shift mechanisms within data processing systems
KR0175357B1 (ko) 고속화를 위한 연산기의 오버플로우 검출회로
CN115833845B (zh) 位置输出装置和位置输出方法
JP2002189588A (ja) 改善された桁あふれフラッグの生成方式を採用する加算器
US20040167949A1 (en) Data saturation manager and corresponding method
KR950010571B1 (ko) 라운딩 회로
Srivastava Architecture Optimisation Using Deterministic Completion Detection
KR950015180B1 (ko) 고속연산형 가산기
KR20010045217A (ko) 데이터 검출기
JP3106525B2 (ja) 加算方式及びその回路
JPH04246722A (ja) 加減算器

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040120

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040305

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20040511

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20040517

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090521

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100521

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110521

Year of fee payment: 7

LAPS Cancellation because of no payment of annual fees