JP2010522365A - ディジタル論理回路におけるマルチビットベクトルの効率的な比較演算のためのシステムおよび方法 - Google Patents
ディジタル論理回路におけるマルチビットベクトルの効率的な比較演算のためのシステムおよび方法 Download PDFInfo
- Publication number
- JP2010522365A JP2010522365A JP2009540263A JP2009540263A JP2010522365A JP 2010522365 A JP2010522365 A JP 2010522365A JP 2009540263 A JP2009540263 A JP 2009540263A JP 2009540263 A JP2009540263 A JP 2009540263A JP 2010522365 A JP2010522365 A JP 2010522365A
- Authority
- JP
- Japan
- Prior art keywords
- bit vector
- bit
- equal
- vector
- difference
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/02—Comparing digital values
- G06F7/026—Magnitude comparison, i.e. determining the relative order of operands based on their numerical value, e.g. window comparator
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/02—Comparing digital values
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/50—Adding; Subtracting
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Logic Circuits (AREA)
Abstract
Description
次いで、本発明の態様を、例としてのみ、添付の図面を参照して説明する。
態様によっては、n=1に対する、比較演算に対して、すなわち受け入れたA[N−1:0]とB[N−1:0]の差は、+1に等しく(すなわちA[N−1:0]==B[N−1:0]+1)、ステップ150において、上記の方法100は、A[N−1:0]と〜B[N−1:0]を加算したときに0となるかどうかを判定する。
1.第4のNビットベクトルが右から左にスキャンされるときに、0から1へのビット遷移が1回だけ見つかる。
2.第3のNビットベクトルのビットが、0から1へのビット遷移のビット位置、すなわち任意のビット位置gに、1つだけ1を有する。
A_EQ_B_PLUS_1=
(〜|(XOR[N−1:0]^(XOR[N−1:0]>>I))^AND[N−1:0])&|AND[N−l:0]
または、これと等価に
A_EQ_B_PLUS_1=
(&(XOR[N−1:0]〜^(XOR[N−1:0]>>1))^AND[N−1:0])&|AND[N−1:0]
ここで、AND[N−1:0]は、第3のNビットベクトルであり、XOR[N−1:0]は第4のNビットベクトルである。
態様によっては、n=2の場合、すなわち受け入れたA[N−1:0]とB[N−1:0]の差が+2に等しく、A[N−1:0]==B[N−1:0]+2、またはこれと等価にA[N−1:0]+〜B[N−1:0]==+1となる比較演算が、我々の8ビットベクトル実行例を用いて以下の表に図解されている。上記のA[N−1:0]+〜B[N−1:0]の加算工程では、結果として1に等しくなるLSBを除き、すべて0を生成されることが分かる。
A_EQ_B_PLUS_2 =
(〜|(XOR[N−1:1]^(XOR[N−1:l]>>1))^AND[N−1:1])&|AND[N−1:1])&XOR[0].
態様によっては、n=3(受け入れたA[N−1:0]とB[N−1:0]の差が+3に等しく、したがってA[N−1:0]==B[N−1:0]+3、またはそれと等価に、A[N−1:0]+〜B[N−1:0]==2)に関する比較演算に対して、加算工程、A[N−1:0]+〜B[N−1:0]は、2値ストリング10を生成する2つのLSBを除くすべての位置で、すべて0を生成する。
n=+3に対する上述の方法を、任意所与の数、すなわちn>3に一般的に拡張することができることが分かる。任意所与のnに対して、A[N−1:0]+〜B[N−1:0]は、n−1に等しい必要がある。さらに、A[N−1:0]および〜B[N−1:0]の適当な数の最下位ビットを検証して、その合計がn−1であるかどうかを知る必要がある。これらの最下位ビットの合計から発生する繰上りがある場合には、第4のNビットベクトル内のビットの残りは、すべて1に等しくなくてはならない。繰上りがない場合には、「等号性A==B+nの評価、n=1の場合」の項において概説した、事例n=1に対する方法が、A[N−1:0]および〜B[N−1:0]の残りのビットに適用されて、それらが加算した場合に0になるかどうかが検証される。
態様によっては、わずかの修正によって、2つの受け入れたマルチビットベクトルの差が+mと+n(m<n)の範囲内であるかどうかを判定するのに、上記の技法を使用することも考えられる。この比較はまた、A[N−1:0]と〜B[N−1:0]の合計の高次ビットにおける0の検出にも関係し、このためには、「等号性A==B+nの評価、n+1の場合」の項において概説したのと同一の方法を、適当なビットに適用することができる。例えば、A[N−1:0]と〜B[N−1:0]の差が、0と+1の間(すなわち、A[N−1:0]==B[N−1:0]またはA[N−1:0]==B[N−1:0]+1)であるか、または0と+2の間(すなわち、A[N−1:0]==B[N−1:0]またはA[N−1:0]==B[N−1:0]+1またはA[N−1:0]==B[N−1:0]+2)であるかを判定することができる。
A_EQ_B_PLUS_0_OR_1=
(〜|(X0R[N−1:0]^(XOR[N−1:0]>>1))^AND[N−1:0])
A_EQ_B_PLUS_1_OR_2=
(〜|(XOR[N−1:1]^(XOR[N−1:l]>>1))^AND[N−1:l])&|AND[N−1:1])&〜AND[0].
フローチャート100は、例示的な態様においては直列に配列されたステップ110〜150を含むが、本発明のその他の態様では、2つ以上のステップを並列に実行することもできる。また、さらに別の態様では、これらのステップを、モジュール間およびそれらを通して通信される、関係する制御信号およびデータ信号を備える、2つ以上の特定の相互接続されたハードウエアモジュールとして、または用途特定集積回路の部分として、実現することもできる。このように、例示的なプロセスフロー図は、ソフトウエア、ファームウエア、および/またはハードウエアの実装に適用することができる。
本明細書に示すように、本発明は、様々な方法、回路、I/O装置、システムおよび関連する命令を有するマシンアクセス可能な媒体を含む物品を含む、ある数の異なる態様として実現することができる。
図1〜5は、単に描写的なものであり、実スケールを表わしていない。そのある部分は、誇張されており、一方でその他は最小化されていることがある。図1〜5は、当業者が理解することができ、適切に実施することができる、本発明の様々な態様を示す。
Claims (10)
- ディジタル論理回路において、第1のNビットベクトルA[N−1:0]と第2のNビットベクトルB[N−1:0]に対する比較演算を実行する方法であって、
B[N−1:0]のビット単位反転を実行して〜B[N−1:0]を得ること;
A[N−1:0]および〜B[N−1:0]を用いてビット単位AND(A[N−1:0]&〜B[N−1:0])演算を実行することによって第3のNビットベクトルを得ること;
A[N−1:0]および〜B[N−1:0]を用いてビット単位XOR(A[N−1:0]^〜B[N−1:0])演算を実行することによって第4のNビットベクトルを得ること;および
第3のNビットベクトルおよび第4のNビットベクトルにおけるビットパターンに基づいて、A[N−1:0]とB[N−1:0]の差が、所与の数に等しいこと、または、m<nである2つの数、+mおよび+nの所与の範囲内であることを宣言すること、を含む前記方法 - 第1のNビットベクトルA[N−1:0]と第2のNビットベクトルB[N−1:0]を受け入れることをさらに含む、請求項1に記載の方法。
- 第1のNビットベクトルA[N−1:0]と第2のNビットベクトルB[N−1:0]を受け入れる際に、Nビットベクトルが、8ビットベクトル、16ビットベクトル、24ビットベクトル、32ビットベクトル、または64ビットベクトルである、請求項2に記載の方法。
- 第3のNビットベクトルおよび第4のNビットベクトルにおけるビットパターンに基づいて、A[N−1:0]とB[N−1:0]の差が、所与の数に等しいこと、または、m<nである2つの数、+mおよび+nの所与の範囲内であることを宣言することが、
第4のNビットベクトルを最下位ビット(LSB)から最上位ビット(MSB)へとスキャニングすることによって第4のNビットベクトル内に0から1への遷移が1回だけあるかどうかを判定すること、
そうであれば、次いで、第4のNビットベクトルにおいて0から1へのビット遷移が発生する、対応する位置におけるビットが、第3のNビットベクトルにおいて1に等しいかどうか、および残りのビットが0に等しいかどうかを判定すること、および
そうであれば、次いで、第1のNビットベクトルA[N−1:0]と第2のNビットベクトルB[N−1:0]が+1に等しいと宣言することを含む、請求項3に記載の方法。 - 第3のNビットベクトルおよび第4のNビットベクトルにおけるビットパターンに基づいて、A[N−1:0]とB[N−1:0]の差が、+2に等しいことを宣言することが、
A[N−1:0]のLSBが、B[N−1:0]のLSBと異なるかどうかを判定すること;
そうであれば、残りのビットのLSBから開始して残りのビットの最上位ビット(MSB)へと第4のNビットベクトル内のビットをスキャニングすることによって、第4のNビットベクトルの残りのビット内に、0から1へのビット遷移1が回だけ存在するかどうかを判定すること;
そうであれば、次いで、第4のNビットベクトルの残りのビットにおいて0から1へのビット遷移が発生する、対応する位置におけるビットが、第3のNビットベクトル内で1に等しいかどうか、および残りのビットが0に等しいかどうかを判定すること;および
そうであれば、次いで、A[N−1:0]とB[N−1:0]の差が、+2に等しいことを宣言することを含む、請求項3に記載の方法。 - 第3のNビットベクトルおよび第4のNビットベクトルにおけるビットパターンに基づいて、A[N−1:0]とB[N−1:0]の差が、+3に等しいことを宣言することが、
A[N−1:0]の2つのLSBと、〜B[N−1:0]の対応する2つのLSBが、それぞれ、00および10、10および00、または01および01のいずれかであるかどうかを判定すること;
そうであれば、残りのビットにおけるLSBから開始して最上位ビット(MSB)へと第4のNビットベクトル内のビットをスキャニングすることによって、第4のNビットベクトルの残りのビット(ここでの残りのビットはN−1:2を指す)内に、0から1へのビット遷移が1回だけあるかどうかを判定すること;
そうであれば、次いで、第4のNビットベクトルの残りのビットにおいて0から1へのビット遷移が発生する、対応する位置におけるビットが、第3のNビットベクトル内で1に等しいかどうか、および残りのビットが0に等しいかどうかを判定すること;および
そうであれば、次いで、A[N−1:0]とB[N−1:0]の差が+3に等しいことを宣言することを含む、請求項3に記載の方法。 - A[N−1:0]の2つのLSBと、〜B[N−1:0]の2つのLSBにおける対応するビットが、両方とも11に等しいかどうかを判定すること;
そうであれば、第4のNビットベクトルにおける残りのビットが1に等しいかどうかを判定すること;および
そうであれば、A[N−1:0]とB[N−1:0]の差が+3に等しいと宣言することをさらに含む、請求項6に記載の方法。 - 第1のNビットベクトルA[N−1:0]と第2のNビットベクトルB[N−1:0]に対する比較演算を実行するためのディジタイル論理回路であって、
第1のNビットベクトルA[N−1:0]と第2のNビットベクトルB[N−1:0]とを受け入れる第1の処理経路;
第1のNビットベクトルA[N−1:0]と第2のNビットベクトルB[N−1:0]とを受け入れる、前記第1の処理経路と並列の第2の処理経路であって、該第2の処理経路は、第2のNビットベクトルB[N−1:0]のビット単位反転を実行して〜B[N−1:0]を取得し、第1の処理経路は、A[N−1:0]と〜B[N−1:0]を用いてビット単位AND(A[N−1:0]&〜B[N−1:0])演算を実行して、第4のNビットベクトルを取得し、第2の処理毛色は、A[N−1:0]および〜B「N−1:0」を用いてビット単位XOR(A〜B)演算を実行して第4のNビットベクトルを取得する、前記第2の処理経路;および
第3のNビットベクトルおよび第4のNビットベクトルのビットパターンに基づいて、A[N−1:0]とB[N−1:0]の差が所与の数に等しいこと、またはm<nである2つの数、+mと+nの所与の範囲内にあることを宣言する、最終出力モジュールを含む、前記ディジタル論理回路。 - Nビットベクトルが、8ビットベクトル、16ビットベクトル、24ビットベクトル、32ビットベクトル、または64ビットベクトルである、請求項8に記載のディジタル論理回路。
- 第2の処理経路は、第4のNビットベクトル内のビットを最下位ビット(LSB)から最上位ビット(MSB)までスキャンしたときに、第4のNビットベクトル内に0から1へのビット遷移が1回だけあるかどうかを判定し、
第2の処理経路は、第4のNビットベクトル内で0から1へのビット遷移が発生する対応する位置におけるビットが、第3のNビットベクトル内で1に等しいかどうか、および残りのビットが0に等しいかどうかを判定し、
最終出力モジュールは、第4のNビットベクトル内で0から1へのビット遷移が発生する対応する位置におけるビットが、第3のNビットベクトル内で1に等しく、残りのビットが0に等しい場合に、第1のNビットベクトルA[N−1:0]と第2のNビットベクトルB[N−1:0]の差が+1に等しいと宣言する、請求項9に記載のディジタル論理回路。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/566,692 US8037120B2 (en) | 2006-12-05 | 2006-12-05 | System and method for an efficient comparison operation of multi-bit vectors in a digital logic circuit |
US11/566,692 | 2006-12-05 | ||
PCT/US2007/024852 WO2008070085A2 (en) | 2006-12-05 | 2007-12-05 | System and method for an efficient comparison operation of multi-bit vectors in a digital logic circuit |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2010522365A true JP2010522365A (ja) | 2010-07-01 |
JP5243446B2 JP5243446B2 (ja) | 2013-07-24 |
Family
ID=39493616
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009540263A Expired - Fee Related JP5243446B2 (ja) | 2006-12-05 | 2007-12-05 | ディジタル論理回路におけるマルチビットベクトルの効率的な比較演算のためのシステムおよび方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US8037120B2 (ja) |
EP (1) | EP2089793B1 (ja) |
JP (1) | JP5243446B2 (ja) |
CN (1) | CN101874236B (ja) |
WO (1) | WO2008070085A2 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8954484B2 (en) * | 2009-06-12 | 2015-02-10 | Cray Inc. | Inclusive or bit matrix to compare multiple corresponding subfields |
GB2514397B (en) * | 2013-05-23 | 2017-10-11 | Linear Algebra Tech Ltd | Corner detection |
JP6607061B2 (ja) * | 2016-02-05 | 2019-11-20 | 富士通株式会社 | 情報処理装置、データ比較方法、およびデータ比較プログラム |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6486235A (en) * | 1987-09-28 | 1989-03-30 | Nec Corp | Comparator |
US5487133A (en) * | 1993-07-01 | 1996-01-23 | Intel Corporation | Distance calculating neural network classifier chip and system |
US20010055311A1 (en) * | 2000-04-07 | 2001-12-27 | Trachewsky Jason Alexander | Method of determining a collision between a plurality of transmitting stations in a frame-based communications network |
US20020138539A1 (en) * | 2001-02-14 | 2002-09-26 | Giao Pham | Method and apparatus to calculate the difference of two numbers |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4498177A (en) * | 1982-08-30 | 1985-02-05 | Sperry Corporation | M Out of N code checker circuit |
US5375080A (en) * | 1992-12-18 | 1994-12-20 | Xerox Corporation | Performing arithmetic on composite operands to obtain a binary outcome for each multi-bit component |
US5835389A (en) * | 1996-04-22 | 1998-11-10 | Samsung Electronics Company, Ltd. | Calculating the absolute difference of two integer numbers in a single instruction cycle |
-
2006
- 2006-12-05 US US11/566,692 patent/US8037120B2/en not_active Expired - Fee Related
-
2007
- 2007-12-05 WO PCT/US2007/024852 patent/WO2008070085A2/en active Application Filing
- 2007-12-05 EP EP07853239A patent/EP2089793B1/en not_active Not-in-force
- 2007-12-05 JP JP2009540263A patent/JP5243446B2/ja not_active Expired - Fee Related
- 2007-12-05 CN CN200780049365.1A patent/CN101874236B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6486235A (en) * | 1987-09-28 | 1989-03-30 | Nec Corp | Comparator |
US5487133A (en) * | 1993-07-01 | 1996-01-23 | Intel Corporation | Distance calculating neural network classifier chip and system |
US20010055311A1 (en) * | 2000-04-07 | 2001-12-27 | Trachewsky Jason Alexander | Method of determining a collision between a plurality of transmitting stations in a frame-based communications network |
US20020138539A1 (en) * | 2001-02-14 | 2002-09-26 | Giao Pham | Method and apparatus to calculate the difference of two numbers |
Also Published As
Publication number | Publication date |
---|---|
EP2089793A2 (en) | 2009-08-19 |
CN101874236A (zh) | 2010-10-27 |
US8037120B2 (en) | 2011-10-11 |
EP2089793A4 (en) | 2011-07-27 |
CN101874236B (zh) | 2014-04-30 |
US20080133628A1 (en) | 2008-06-05 |
WO2008070085A2 (en) | 2008-06-12 |
WO2008070085A3 (en) | 2010-02-25 |
EP2089793B1 (en) | 2013-04-03 |
JP5243446B2 (ja) | 2013-07-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH01211119A (ja) | 条件コードの予測装置 | |
JP2013012203A (ja) | 浮動小数点加算器 | |
KR100254913B1 (ko) | 이진차에 대한 제로 검출 | |
JP5243446B2 (ja) | ディジタル論理回路におけるマルチビットベクトルの効率的な比較演算のためのシステムおよび方法 | |
WO1999040508A1 (en) | Fast adder/subtractor for signed floating point numbers | |
US7433911B2 (en) | Data processing apparatus and method for performing floating point addition | |
US6947962B2 (en) | Overflow prediction algorithm and logic for high speed arithmetic units | |
JPH08212058A (ja) | 加算オーバフロ検出回路 | |
US5574677A (en) | Adaptive non-restoring integer divide apparatus with integrated overflow detect | |
CN113874833A (zh) | 多输入浮点加法器 | |
US8933731B2 (en) | Binary adder and multiplier circuit | |
JPH04350724A (ja) | シフト量検出回路 | |
US5781465A (en) | Method and apparatus for fast carry generation detection and comparison | |
KR100254914B1 (ko) | 이진합에 대한 제로 검출 | |
JP4038634B2 (ja) | Fod回路 | |
GB2524642A (en) | A data processsing apparatus and method for performing a shift function on a binary number | |
JP4317738B2 (ja) | 平均値算出装置および平均値算出方法 | |
JP3512700B2 (ja) | 浮動小数点演算装置 | |
US20050210089A1 (en) | Saturating shift mechanisms within data processing systems | |
KR950015180B1 (ko) | 고속연산형 가산기 | |
US10534580B2 (en) | Comparing a runlength of bits with a variable number | |
US9645790B2 (en) | Adder decoder | |
KR100259095B1 (ko) | 정규화 기능을 갖는 가산기 | |
CN115809041A (zh) | 一种可配置的补码运算装置及计算设备 | |
KR0175357B1 (ko) | 고속화를 위한 연산기의 오버플로우 검출회로 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20101203 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120918 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20121218 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20121226 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130118 |
|
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: 20130305 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130404 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20160412 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 Ref document number: 5243446 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |