JP3640643B2 - べき数エンコーダ回路及びマスク回路 - Google Patents
べき数エンコーダ回路及びマスク回路 Download PDFInfo
- Publication number
- JP3640643B2 JP3640643B2 JP2002009768A JP2002009768A JP3640643B2 JP 3640643 B2 JP3640643 B2 JP 3640643B2 JP 2002009768 A JP2002009768 A JP 2002009768A JP 2002009768 A JP2002009768 A JP 2002009768A JP 3640643 B2 JP3640643 B2 JP 3640643B2
- Authority
- JP
- Japan
- Prior art keywords
- bit
- circuit
- data
- input data
- output
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/14—Conversion to or from non-weighted codes
- H03M7/24—Conversion to or from floating-point codes
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Description
【発明の属する技術分野】
本発明は、プロセッサ等におけるべき数エンコーダ回路や、べき数エンコーダ回路に適用可能なマスク回路に関するものである。
【0002】
【従来の技術】
べき数エンコーダ回路は、入力データを正規化するための左シフト量を求めるための回路であり、そのべき数エンコード結果(左シフト量)を用い、入力データを正規化することにより、非有効桁ビットを解消する。これにより、小さい値の乗算も左シフト量を考慮することによって、精度を保って演算を実行することができる。
【0003】
8ビット符号付の入力データのべき数エンコーダ回路であれば、図2に示すような真理値表に従い、入力データ(INPUT)に対するべき数エンコード結果(OUT)を出力する。例えば、入力データが02h(00000010)であれば、べき数エンコード結果は5(101)となり、左シフトを5回行うと、シフト後のデータは01000000(最上位の0は正数を表す)となる。
【0004】
従来、べき数エンコーダ回路としては、シフト演算を用いてべき数をカウントする図3に示すものや、符号ビットと異なるビット位置を検出してその検出位置からべき数をエンコードする図4に示すものがある。なお、図3は、符号付きでない入力データに対応するものである。
【0005】
図3に示す従来のべき数エンコーダ回路は、以下のように動作する。
【0006】
(1)選択回路sl、s2により、記憶素子I1に入力データInを格納し、記憶素子I2に0hを格納する初期化を行う。
【0007】
(2)記憶素子I1の出力をシフタSFTに入力し、シフタSFTによって1ビットだけ左シフトを実行させる。
【0008】
(3)シフタSFTの出力を選択回路s1を介して記憶素子I1に与えて保持させる。
【0009】
(4)シフタSFTの出力の最上位ビット(MSB)と入力データInのMSBのイクスクルーシブノアをイクスクルーシブノア回路(Ex−NOR)により得る。シフタSFTの出力の最上位ビット(MSB)と入力データInのMSBとが異なるデータとなった場合には、イクスクルーシブノア出力は“0”となり、完了信号FINISHが“1”となる。イクスクルーシブノア出力が“1”であれば、加算器ADDER及び選択回路s2により、記憶素子I2の記憶値を1インクリメントする。
【0010】
(5)上述した(2)〜(4)を1サイクルとし、完了信号FINISHが“1”となるまで繰り返す。完了信号FINISHが“1”となったときの加算器ADDERの出力がべき数EXPとなる。
【0011】
なお、図3は、入力データInが0の場合についての回路構成は記載していない。
【0012】
また、図4に示す従来のべき数エンコーダ回路は、以下のように動作する。図4のべき数エンコーダ回路は、8ビットの符号付データに対するものである。
【0013】
入力データInの符号ビットIn7(MSB)が、入力データが負数であることを表しているならば(In7が1)、イクスクルーシブオア回路(Ex−OR回路)I29〜I36によって入力データInを反転させ、入力データInの符号ビットIn7(MSB)が、入力データが正数であることを表しているならば(In7が0)、入力データInをイクスクルーシブオア回路(Ex−OR回路)I29〜I36をそのまま通過させて、出力N6〜N0、NZを得る(NZは符号を表すものとなっている)。
【0014】
この出力データN6〜N0、NZをMSBから順に見た場合、最初に“1”があるビット位置の直前のビット位置のデータまでが非有効桁ビットであるので(図2参照)、この検出ビット位置からべき数をエンコードする。
【0015】
図4の論理ゲートI1〜I25は、最初に“1”があるビット位置を検出するビット位置検出回路を構成している。
【0016】
次に、論理ゲートI1〜I12、I13〜I24をそれぞれ1ブロックとして見た場合の論理ゲートI1〜I12のブロックの動作を説明する。
【0017】
論理ゲートI1は、次段へのルックアヘッドとなっており、データN6〜N3が全て“0”の場合に“1”となる4入力ノア回路(NOR回路)であり、この出力は、“1”となった場合のみ、論理ゲートI14を介して、次段のブロック(I13〜I24)を有効とするイネーブル信号となっている。
【0018】
論理ゲートI2は、前段までのイネーブル信号をモニタするためにあり、4入力とも全て“1”となった場合に“0”となる4入力のナンド回路(NAND回路)であり、この出力が“0”になった場合に、このブロック(I1〜I12)の検出回路が有効となる。なお、この論理ゲートI2は、入力データのビット数が8ビットより多い場合の拡張用に設けられており、入力データが8ビットの場合には、論理ゲートI2への4入力は全て“1”になされている。
【0019】
論理ゲートI3、I4、I5〜I8は検出結果伝播回路であり、前ビット(上位側)までの検出結果を伝播させるものである。
【0020】
論理ゲートI9〜I12は検出フラグ生成回路であり、出力信号Findが4ビット中検出されたビット位置のみ“1”となり、その他は“0”となるように論理演算するものである。
【0021】
例えば、データN6が“1”の場合、論理ゲートI5〜I8の出力はそれぞれ、I5=0、I6=1、I7=0、I8=1となり、論理ゲートI9〜I12の出力はそれぞれ、I9=1、I10=0、I11=0、I12=0となる。
【0022】
下位ブロックI13〜I24も同様な動作をし、その結果、Find信号の8ビット中の検出位置のビットのみ“1”、その他は“0”となる。
【0023】
なお、論理ゲートI25はビット長拡張用のゲートであり、8ビット入力固定の場合には必要としないものである。
【0024】
論理ゲートI26〜I28は、ビット検出位置からべき数を形成するビット検出位置エンコード回路を構成している。論理ゲートI26〜I28は、検出ビット位置信号Findにより、入力データの正規化に必要な左シフト量を求めるためにエンコードして、べき数Expを得ている。
【0025】
【発明が解決しようとする課題】
しかしながら、図3に示した従来のべき数エンコーダ回路においては、べき数エンコード結果を得るまでに、最大で入力データのビット数分のサイクルが必要となり、平均的に見ても、べき数エンコード結果を得るための処理時間が長いという課題を有する。そのため、べき数を求める処理を使用する頻度が高いアプリケーションを設計する場合には、処理時間が増大するため、アプリケーションの低速化の課題や、ある決められた処理時間(例えばサンプリング時間)内で処理が終了しないことも生じるという課題を有する。
【0026】
また、図4に示した従来のべき数エンコーダ回路においては、通過ゲート段数が多く、プロセッサの高速化に伴い、1サイクル内で終了できなくなるという課題や、各論理ゲートへの入力の遅延時間が異なることにより、スイッチング回数が増加し、その分電力消費が増大するという課題を有する。
【0027】
【課題を解決するための手段】
第1の本発明は、2のべき乗のビット数でなる符号ビット付き入力データを、その上位側の非有効桁ビットを除外して正規化するための左シフト量であるべき数を求めるべき数エンコーダ回路において、入力データが負数(又は正数)の場合には、符号ビット以外のデータ部分を反転させると共に符号ビットを最下位ビットの位置に移動させ、入力データが正数(又は負数)の場合には、符号ビット以外のデータ部分をそのまま通過させると共に符号ビットを最下位ビットの位置に移動させる第1の論理演算回路と、この第1の論理演算回路からの出力データを、上位ビット側から順に複数の組に分割し、各組の分割データのそれぞれに対し、分割データを構成する各ビットの組み合わせが、上位側からの非有効桁ビットと有効桁ビットとの組み合わせになっているか否かを表す第1のビットと、分割データを構成する全てのビットが非有効桁ビットであるか否かを表す第2のビットとを形成する第2の論理演算回路と、この第2の論理演算回路からの出力データから、べき数の各ビットを求める第3の論理演算回路とを備えていることを特徴とする。
【0028】
第2の本発明は、Nビットでなる入力データにおける、有意な論理レベルをとる最も上位のビット位置を含め、それより下位のビット位置のビットを全て一方の論理レベルにすると共に、有意な論理レベルをとる最も上位のビット位置より上位のビット位置のビットを全て他方の論理レベルにするマスク回路において、上記入力データ数と同じ数の出力線と、出力線前処理信号に基づき、上記各出力線をチャージ(又はディスチャージ)して一方の論理レベルにする上記各出力線に対応する出力線初期化用トランジスタと、第n(nは1〜N)番目の上記出力線に対してn個設けられ、ゲートへの有意な論理レベルの入力により、それぞれがその出力線をディスチャージ(又はチャージ)し得る出力確定用トランジスタと、第n(nは1〜N)番目の上記出力線に対するn個の出力確定用トランジスタのそれぞれのゲートに対し、上記入力データのMSB側からのn個のビット値を入力させる入力線とを備え、出力線前処理信号に基づき、全ての上記出力線を一方の論理レベルにした後、上記各入力線に上記入力データを入力させて、上記各出力線に出力データを形成させることを特徴とする。
【0029】
第3の本発明は、2のべき乗のビット数でなる符号ビット付き入力データを正規化するための左シフト量であるべき数を求めるべき数エンコーダ回路において、入力データが負数(又は正数)の場合には、べき数が同じになる正数のデータに変換すると共に、入力データが正数(又は負数)の場合には、そのまま通過させる符号合せ回路と、この符号合せ回路の出力における、有意な論理レベルをとる最も上位のビット位置を含め、それより下位のビット位置のビットを全て一方の論理レベルにすると共に、有意な論理レベルをとる最も上位のビット位置より上位のビット位置のビットを全て他方の論理レベルにするマスク回路と、このマスク回路の出力からべき数を生成するエンコーダ回路とを有することを特徴とする。
【0030】
【発明の実施の形態】
(A)第1の実施形態
以下、本発明によるべき数エンコーダ回路の第1の実施形態を図面を参照しながら詳述する。
【0031】
図1は、第1の実施形態のべき数エンコーダ回路の構成を示すブロック図である。なお、第1の実施形態のべき数エンコーダ回路は、8ビット符号付入力データ(図2参照)を取扱うものであり、入力データIn[7:0]からべき数エンコード結果Exp[2:0]と零検出信号Zを得るものである。
【0032】
第1の実施形態のべき数エンコーダ回路は、図1に示すように、複数の論理ゲートG1〜G37から構成されている。
【0033】
イクスクルーシブオア回路(Ex−OR回路)である8個の2入力論理ゲートG1〜G8の一方の入力端子には、入力データInにおける符号ビット(MSB)In7が入力され、他方の入力端子には、入力データInにおける各ビット位置のビット値In6、…、In0及び固定値“0”が入力されている。
【0034】
論理ゲートG1〜G8は、図2に示すような負数の入力データにおける符号以外のビット部分を反転すると共に、図2に示すような正数の入力データにおける符号以外のビット部分をそのまま通過させ、かつ、符号ビットを最下位ビット(LSB)の位置に移動させるものである。
【0035】
論理ゲートG1〜G8からの出力データa0〜a7と、結果としてのべき数Exp2〜Exp0と、零検出信号Zとの関係は、図2から、図5のようになる。なお、図5は、関係の一部を示している。
【0036】
この図5からは、べき数Exp2、Exp1、Exp0、零検出信号Zは、データa0〜a7に対する次の論理演算式(1)〜(4)によって求められることが分かる。
【0037】
【数1】
各論理演算式(1)、…、(4)における共通項を整理し、その共通項を整理した後の論理演算式を実現するように、図1に示す論理ゲートG9〜G37を設けている。なお、論理ゲートG21及びG25は機能的には図1に示すように2個の論理ゲートからなっているが、回路的には、1個の論理ゲートG1’で実現できるものである。論理ゲートG23及びG28、論理ゲートG31及びG34、並びに、論理ゲートG32及びG35も同様に、回路的にはそれぞれ、1個の論理ゲートG2’、G3’、G4’で実現できるものである。
【0038】
上述したような共通項の整理により、8ビットデータa7〜a0に対し、初めの論理演算は、2ビットずつ(a7及びa6、a5及びa4、a3及びa2、a1及びa0)の処理構成になっている。論理ゲートG9〜G12及び論理ゲートG13〜G20がこのような2ビットずつの処理構成になっている。
【0039】
論理ゲートG9〜G12はインバータ回路になっており、論理ゲートG13〜G20は2入力ナンド回路(NAND回路)になっている。
【0040】
論理ゲートG1からの出力a7は、論理ゲートG13及びG14に入力され、論理ゲートG2からの出力a6は、論理ゲートG9を介して反転されて論理ゲートG13に入力されると共に、論理ゲートG14に入力される。データa7、a6が“00”のときには、論理ゲートG13及びG14から“01”が出力され、データa7、a6が“01”のときには、論理ゲートG13及びG14から“10”が出力され、データa7、a6が“10”及び“11”のときには、論理ゲートG13及びG14から“00”が出力される。
【0041】
べき数エンコーダ回路の場合には、データa7〜a1中の最も上位で“1”をとるビット位置が問題となっており、2ビットが“10”及び“11”の場合には、同一に取り扱って良い。また、2ビットが“00”の場合には、データa7〜a1中の最も上位で“1”をとるビット位置がそこに存在しないことを意味し、2ビットが“01”の場合には、データa7〜a1中の最も上位で“1”をとるビット位置が、2ビット中“01”の“1”である可能性があることを表している。すなわち、2ビットの4個の組み合わせを3分類すれば十分である。
【0042】
データa5、a4に対する論理ゲートG10、G15、G16や、データa3、a2に対する論理ゲートG11、G17、G18も、上述したデータa7、a6に対する論理ゲートG9、G113、G14と同様な意味を実現するものである。
【0043】
データa1、a0に対する論理ゲートG12、G19、G20は、上述の意味合いとは異なるが、2ビットの4個の組み合わせを3分類で区別するためのものである。
【0044】
図5の1行目及び2行目に示すように、データa7〜a0がオール“0”のとき(入力データIn7〜In0がオール“0”)と、データa7〜a0が“00000001”のとき(入力データIn7〜In0がオール“1”)とは、べき数Exp2、Exp1、Exp0、零検出信号Zを特異な値にしなければならない。これらの2種類のデータの場合、データa1、a0の組み合わせだけが、“00”と“01”と異なっており、そのため、データa1、a0の組み合わせとして、“00”と“01”とをマークしなければならない。データa1、a0の組み合わせが、べき数Exp2、Exp1、Exp0(及び零検出信号Z)に影響を与えるときは、あとは、図5の3行目及び4行目のときである。しかし、3行目及び4行目のときは、べき数Exp2、Exp1、Exp0(及び零検出信号Z)は同じ値であるので、そのときのデータa1、a0の組み合わせ“10”及び“11”を区別する必要はない。
【0045】
論理ゲートG9〜G20による2ビット毎の論理演算以降は、所望のべき数Exp2、Exp1、Exp0及び零検出信号Zを得られるように、2ビット単位での演算結果に対し、論理ゲートG21〜G37による論理演算を行っている。
【0046】
負数の入力データIn7〜In0が入力されると、論理ゲートG1〜G8により、符号ビット以外を反転させると共に、符号ビットをLSBに移動させ、また、正数の入力データIn7〜In0が入力されると、論理ゲートG1〜G8により、符号ビット以外をそのまま通過させると共に、符号ビットをLSBに移動させる。以上の処理により、べき数Exp2、Exp1、Exp0が同じとなる正の入力データと負の入力データのいずれが入力されても、符号ビット以外のビットが同じ表記となっているデータa7〜a0に変換される。
【0047】
その後、データa7〜a0と、べき数Exp2、Exp1、Exp0及び零検出信号Zとの真理値表から求められたデータa7〜a0からべき数Exp2、Exp1、Exp0及び零検出信号Zを求める論理演算式を具現化した論理ゲートG9〜G37により、べき数Exp2、Exp1、Exp0及び零検出信号Zを並列演算させて出力する。
【0048】
第1の実施形態のべき数エンコーダ回路によれば、以下の効果を奏することができる。
【0049】
(1)通過する論理ゲートの段数(通過論理段数)を削減できるため、処理の高速化が期待できる。例えば、図4に示す従来回路におけるクリティカルパスの通過論理段数は最大9段であるが、第1の実施形態における通過論理段数は最大5段となり、4段の削減が実現できる。
【0050】
(2)各論理ゲートの入力への遅延を等しくすることが容易であるため、無駄なスイッチングが減少し、消費電力を抑えることができる。
【0051】
(3)入力ビット長を容易に拡張できる。仮に2倍の16ビット長に拡張する場合、第1の実施形態の回路を2段に並べ、一方の回路を上位ブロックとし、他方の回路を下位ブロックとする。そして、上位ブロックの零検出信号により、上位ブロック又は下位ブロックの出力Expを選択することにより最終結果を得ることができる(但し、上位ブロックの零検出信号は出力するべき数のMSBとなり、選択されたExpの3ビットはその下位に位置する)。ここで、上位ブロックの零検出信号が有意であることは、16ビット入力の上位側(8ビット)には有効桁ビットがなく、下位側に有効桁ビットがあることを意味し、上位ブロックの零検出信号が非有意であることは、16ビット入力の上位側に有効桁ビットがあることを意味する。すなわち、最も上位の有効桁ビットが、入力データを上位、下位に2分した場合のどちらにあるかを、上位ブロックの零検出信号が表しており、その上位又は下位の8ビットでのシフト量の選択指令として用いることができる。
【0052】
なお、この場合、選択回路に代え、図6に示すようなANDOR回路による組み合わせ回路を適用できる。
【0053】
(B)第2の実施形態
次に、本発明によるべき数エンコーダ回路の第2の実施形態を図面を参照しながら詳述する。なお、第2の実施形態のべき数エンコーダ回路におけるマスク回路として、本発明のマスク回路を適用することができる。後述する図9に示すマスク回路は、本発明のマスク回路の実施形態になっている。
【0054】
図7は、第2の実施形態のべき数エンコーダ回路の構成を示すブロック図である。なお、第2の実施形態のべき数エンコーダ回路は、8ビット符号付入力データ(図2参照)を取扱うものであり、入力データIn[7:0]からべき数エンコード結果(べき数)Exp[2:0]を得るものである。
【0055】
図7において、第2の実施形態のべき数エンコーダ回路は、符号合せ回路10、マスク回路11及びエンコーダ回路12が縦続接続されて構成されている。
【0056】
符号合せ回路10は、入力データIn[7:0]が正数の場合にはそのまま通過させ、入力データIn[7:0]が負数の場合にはべき数Exp[2:0]が同じとなる正数に変換するものであり、処理後のデータX[7:0]をマスク回路11に与えるものである。
【0057】
なお、第2の実施形態の場合、入力データIn[7:0]がオール“1”の場合には、図2とは異なって、べき数として0(“000”)を出力するようになされている。
【0058】
符号合せ回路10は、例えば、図8に示すように、8個の2入力イクスクルーシブオア回路EOR7〜EOR0で実現できる。入力データInにおける符号ビットIn7は、全てのイクスクルーシブオア回路EOR7〜EOR0に入力され、また、入力データInにおける各ビットIn7、…、In0は対応するイクスクルーシブオア回路EOR7、…、EOR0に入力される。
【0059】
イクスクルーシブオア回路EOR7は、符号ビットIn7が“0”でも“1”でも正を表す“0”のデータX7を出力する。
【0060】
イクスクルーシブオア回路EOR6、…、EOR0は、符号ビットIn7が“1”のときに、入力データIn6、…、In0を反転させたデータX6、…、X0を出力し、符号ビットIn7が“0”のときに、入力データIn6、…、In0と同じデータX6、…、X0を出力する。
【0061】
マスク回路11は、入力されたデータX7、…、X0の中で、“1”をとる最も上位に位置するビット位置を含め、それより下位のビット位置の論理レベルを全て一方の論理レベル(例えば“0”)にすると共に、それより上位のビット位置の論理レベルを全て他方の論理レベル(例えば“1”)にしたデータY7、…、Y0を形成するものである。
【0062】
図9は、マスク回路11の具体的な構成例を示す回路図である。図9に示すマスク回路11は、入力データX[7:0]に対し、ワイヤードオアにより出力データY[7:0]を生成するものである。
【0063】
べき数エンコード実行時に出力線プリチャージ信号PCによりオン動作して、出力線Y7〜Y0をプリチャージするPMOSトランジスタp7〜p0が設けられている。また、各出力線Y7〜Y0には、ディスチャージ用のNMOSトランジスタn1〜n36が設けられている。
【0064】
最上位の出力線Y7には、入力データX7が“1”のときにオン動作して、その出力線Y7をディスチャージするNMOSトランジスタn1が接続されている。
【0065】
次のビット位置の出力線Y6には、入力データX7又はX6が“1”のときにオン動作してその出力線Y6をディスチャージする2個のNMOSトランジスタn2及びn3が接続されている。
【0066】
次のビット位置の出力線Y5には、入力データX7、X6又はX5が“1”のときにオン動作してその出力線Y5をディスチャージする3個のNMOSトランジスタn4〜n6が接続されている。
【0067】
以下、同様に、出力線Y4、…、Y0に対するディスチャージ用NMOSトランジスタn7〜n10、n11〜n15、n16〜n21、n22〜n28、n29〜n36を利用したワイヤードオア構成が設けられている。
【0068】
以上のような構成において、べき数エンコード実行時にはまず、出力線プリチャージ信号PCによりPMOSトランジスタp7〜p0をオンして、出力線Y7〜Y0をプリチャージし、その後、出力線ディスチャージ用NMOSトランジスタn1〜n36に入力Xを与える。このとき、出力線Yは、入力データXをMSBからみて最初に“1”が出てきたビット位置より下位ビットを“0”にディスチャージする。すなわち、出力線Y[7:0]は、入力データXをMSBから順に見た場合、最初に出てくる“1”以降の値を全て“0”にマスクする信号線である。
【0069】
例えば、入力データXが“00110000”であると、MSBから見て最初に“1”が出現するビット位置はX5であるので、出力データYは、そのビット位置Y5を含めたそれより下位ビットを“0”とし、出力データYは“11000000”となる。
【0070】
なお、図9では、入力データX7をもマスク対象としたものを示したが、入力データX7は符号ビットであるので、入力データX6〜X0の範囲をマスク対象とするようにしても良い。
【0071】
また、図9とは逆に、出力線を予め“0”にディスチャージし、その後、入力データX6〜X0に応じてチャージするようなものであっても良い。すなわち、図9のPMOSトランジスタをNMOSトランジスタに変更し、図9のNMOSトランジスタをPMOSトランジスタに変更してマスク回路11を構成するようにしても良い。
【0072】
なお、マスク回路11としては、既存のバレルシフタ回路などを用いることもできる。バレルシフタ回路を適用した場合には、より回路規模の削減が可能となる。
【0073】
エンコーダ回路12は、マスク回路11の出力(マスク結果)Y[7:0]から、べき数ExP[2:0]を生成するものである。
【0074】
図10は、エンコーダ回路12の構成例を示すブロック図である。なお、図10は、入力データY7は、べき数ExP[2:0]の生成には無関係であるので、入力データY6〜Y0からべき数ExP[2:0]を生成するものとなっている。
【0075】
図10において、エンコーダ回路12は、6個の2入力イクスクルーシブオア回路EOR11〜EOR16と、3個の3入力オア回路OR1〜OR3とから構成されている。
【0076】
入力データY6〜Y0は、マスク回路11の機能により、境界は一定ではないが、上位側に“1”があり、下位側に“0”があるものである(オール“1”やオール“0”のことはある)。イクスクルーシブオア回路EOR11〜EOR16は、その境界検出用のものである。各イクスクルーシブオア回路EOR11、…、EOR16には、入力データY6〜Y0における隣り合う2ビットずつの一致不一致を示す出力を形成するものであり、境界を挟んだ2ビットが入力されるいずれか1個(境界がない場合は0個)のイクスクルーシブオア回路だけが“1”を出力する。
【0077】
オア回路OR1〜OR3は、イクスクルーシブオア回路EOR11〜EOR16による境界検出結果をデコードし、出力(べき数)Exp[2:0]を生成するものである。
【0078】
例えば、データYが“11000000”とした場合、“1”と“0”の境界は6ビット目と5ビット目に存在し(最下位ビットを0ビットとしている)、イクスクルーシブオア回路EOR11〜EOR16の出力は“100000”となり、これをエンコードすることによって、べき数Expとして1(“001”)が得られる。
【0079】
第2の実施形態のべき数エンコーダ回路によれば、以下の効果を奏することができる。
【0080】
(1)マスク回路11の出力Y[7:0]を一度に求めることができるため、処理の高速化を図ることができる。
【0081】
(2)入力ビット長を拡張した場合でも、最終結果を得るまでの時間はほぼ変わらない。従って、ビット長を容易に拡張できる。
【0082】
(C)(利用形態)の説明
上記各実施形態は、符号付の入力データのべき数を得るものを示したが、符号ビットがない入力データに対しても、本発明の技術思想を適用することができる。例えば、第1の実施形態であれば、負数の入力データの各ビットを反転する論理ゲートG1〜G8を省略したような構成とすれば良い。また例えば、第2の実施形態であれば、符号合せ回路10を省略し、マスク回路11及びエンコード回路12によってべき数エンコーダ回路を構成すれば良い。
【0083】
また、上記各実施形態では、負数の入力データを、正数の入力データと同様に取り扱うために、符号ビット以外の部分を反転するものを示したが、逆に、正数の入力データを、負数の入力データと同様に取り扱うように、符号ビット以外の部分を反転し、その後、べき数を求めるようにしても良い。
【0084】
さらに、第2の実施形態で説明したマスク回路11は、べき数エンコーダ回路以外の回路に適用することができる。
【0085】
【発明の効果】
以上のように、本発明のべき数エンコーダ回路によれば、処理の高速化が期待できたり、入力ビット長を容易に拡張できたりするなどの効果を奏することができる。
【0086】
また、本発明によるマスク回路によれば、マスク出力の各ビットを一度に求めることができる。
【図面の簡単な説明】
【図1】第1の実施形態のべき数エンコーダ回路を示すブロック図である。
【図2】8ビット符号付きデータとべき数エンコード結果との関係を示す図表である。
【図3】従来回路(その1)を示すブロック図である。
【図4】従来回路(その2)を示すブロック図である。
【図5】第1の実施形態の入力データの符号合わせ後のデータと、べき数エンコード結果(べき数)との関係を示す図表である。
【図6】第1の実施形態の回路でビット長を拡張した際に必要となる回路部分を示すブロック図である。
【図7】第2の実施形態のべき数エンコーダ回路を示すブロック図である。
【図8】第2の実施形態の符号合せ回路の詳細構成例を示すブロック図である。
【図9】第2の実施形態のマスク回路の詳細構成例を示す回路図である。
【図10】第2の実施形態のエンコーダ回路の詳細構成例を示すブロック図である。
【符号の説明】
G1〜G37…論理ゲート、10…符号合せ回路、11…マスク回路、12…エンコーダ回路。
Claims (6)
- 2のべき乗のビット数でなる符号ビット付き入力データを、その上位側の非有効桁ビットを除外して正規化するための左シフト量であるべき数を求めるべき数エンコーダ回路において、
入力データが負数(又は正数)の場合には、符号ビット以外のデータ部分を反転させると共に符号ビットを最下位ビットの位置に移動させ、入力データが正数(又は負数)の場合には、符号ビット以外のデータ部分をそのまま通過させると共に符号ビットを最下位ビットの位置に移動させる第1の論理演算回路と、
上記第1の論理演算回路からの出力データを、上位ビット側から順に複数の組に分割し、各組の分割データのそれぞれに対し、分割データを構成する各ビットの組み合わせが、上位側からの非有効桁ビットと有効桁ビットとの組み合わせになっているか否かを表す第1のビットと、分割データを構成する全てのビットが非有効桁ビットであるか否かを表す第2のビットとを形成する第2の論理演算回路と、
上記第2の論理演算回路からの出力データから、べき数の各ビットを求める第3の論理演算回路と
を備えていることを特徴とするべき数エンコーダ回路。 - 上記第3の論理演算回路は、上記入力データがオール“0”の場合にのみ有意な論理レベルをとる零検出信号の形成構成を含むことを特徴とする請求項1に記載のべき数エンコーダ回路。
- Nビットでなる入力データにおける、有意な論理レベルをとる最も上位のビット位置を含め、それより下位のビット位置のビットを全て一方の論理レベルにすると共に、有意な論理レベルをとる最も上位のビット位置より上位のビット位置のビットを全て他方の論理レベルにするマスク回路において、
上記入力データ数と同じ数の出力線と、
出力線前処理信号に基づき、上記各出力線をチャージ(又はディスチャージ)して一方の論理レベルにする上記各出力線に対応する出力線初期化用トランジスタと、
第n(nは1〜N)番目の上記出力線に対してn個設けられ、ゲートへの有意な論理レベルの入力により、それぞれがその出力線をディスチャージ(又はチャージ)し得る出力確定用トランジスタと、
第n(nは1〜N)番目の上記出力線に対するn個の出力確定用トランジスタのそれぞれのゲートに対し、上記入力データのMSB側からのn個のビット値を入力させる入力線とを備え、
出力線前処理信号に基づき、全ての上記出力線を一方の論理レベルにした後、上記各入力線に上記入力データを入力させて、上記各出力線に出力データを形成させる
ことを特徴としたマスク回路。 - 2のべき乗のビット数でなる符号ビット付き入力データを正規化するための左シフト量であるべき数を求めるべき数エンコーダ回路において、
入力データが負数(又は正数)の場合には、べき数が同じになる正数のデータに変換すると共に、入力データが正数(又は負数)の場合には、そのまま通過させる符号合せ回路と、
この符号合せ回路の出力における、有意な論理レベルをとる最も上位のビット位置を含め、それより下位のビット位置のビットを全て一方の論理レベルにすると共に、有意な論理レベルをとる最も上位のビット位置より上位のビット位置のビットを全て他方の論理レベルにするマスク回路と、
このマスク回路の出力からべき数を生成するエンコーダ回路と
を有することを特徴とするべき数エンコーダ回路。 - 上記マスク回路として、請求項3に記載のものを適用したことを特徴とする請求項4に記載のべき数エンコーダ回路。
- 上記マスク回路として、バレルシフタ構成のものを適用したことを特徴とする請求項4に記載のべき数エンコーダ回路。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002009768A JP3640643B2 (ja) | 2002-01-18 | 2002-01-18 | べき数エンコーダ回路及びマスク回路 |
US10/152,779 US7096241B2 (en) | 2002-01-18 | 2002-05-23 | Exponent encoder circuit and mask circuit |
US11/434,281 US20060212500A1 (en) | 2002-01-18 | 2006-05-16 | Exponent encoder circuit and mask circuit |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002009768A JP3640643B2 (ja) | 2002-01-18 | 2002-01-18 | べき数エンコーダ回路及びマスク回路 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003216410A JP2003216410A (ja) | 2003-07-31 |
JP3640643B2 true JP3640643B2 (ja) | 2005-04-20 |
Family
ID=27647687
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002009768A Expired - Fee Related JP3640643B2 (ja) | 2002-01-18 | 2002-01-18 | べき数エンコーダ回路及びマスク回路 |
Country Status (2)
Country | Link |
---|---|
US (2) | US7096241B2 (ja) |
JP (1) | JP3640643B2 (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9135657B2 (en) * | 2007-07-27 | 2015-09-15 | The Invention Science Fund I, Llc | Rewarding independent influencers |
GB2454201A (en) * | 2007-10-30 | 2009-05-06 | Advanced Risc Mach Ltd | Combined Magnitude Detection and Arithmetic Operation |
US8631056B2 (en) * | 2008-01-09 | 2014-01-14 | Qualcomm Incorporated | Processor and method of determining a normalization count |
CN110231745B (zh) * | 2019-04-18 | 2023-09-26 | 浙江工业大学 | 一种基于时间透镜成像的光逻辑“非”门运算系统 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2173617B (en) * | 1985-03-18 | 1988-08-24 | Texas Instruments Ltd | Apparatus for locating and indicating the position of an end }1} bit of a number in a multi-bit number format |
JPS62229436A (ja) | 1986-03-31 | 1987-10-08 | Toshiba Corp | 二進数デ−タ判別回路 |
JPH04167124A (ja) | 1990-10-31 | 1992-06-15 | Matsushita Electric Ind Co Ltd | プライオリティ・エンコーダ |
GB9124539D0 (en) * | 1991-11-19 | 1992-01-08 | Texas Instruments Ltd | A circuit for detecting the position of an extreme 1"bit in a binary number |
US5383142A (en) * | 1993-10-01 | 1995-01-17 | Hewlett-Packard Company | Fast circuit and method for detecting predetermined bit patterns |
JPH08147142A (ja) * | 1994-11-17 | 1996-06-07 | Mitsubishi Electric Corp | プライオリティ検出用カウンタ装置 |
JPH08212055A (ja) | 1995-02-02 | 1996-08-20 | Ricoh Co Ltd | ビット検索器並びに中央演算処理装置 |
US5553012A (en) | 1995-03-10 | 1996-09-03 | Motorola, Inc. | Exponentiation circuit utilizing shift means and method of using same |
US6329838B1 (en) * | 1999-03-09 | 2001-12-11 | Kabushiki Kaisha Toshiba | Logic circuits and carry-lookahead circuits |
JP3781573B2 (ja) | 1999-03-09 | 2006-05-31 | 株式会社東芝 | 論理回路 |
-
2002
- 2002-01-18 JP JP2002009768A patent/JP3640643B2/ja not_active Expired - Fee Related
- 2002-05-23 US US10/152,779 patent/US7096241B2/en not_active Expired - Fee Related
-
2006
- 2006-05-16 US US11/434,281 patent/US20060212500A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
US7096241B2 (en) | 2006-08-22 |
JP2003216410A (ja) | 2003-07-31 |
US20030146860A1 (en) | 2003-08-07 |
US20060212500A1 (en) | 2006-09-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5442577A (en) | Sign-extension of immediate constants in an alu | |
US6820107B1 (en) | Square root extraction circuit and floating-point square root extraction device | |
US5732007A (en) | Computer methods and apparatus for eliminating leading non-significant digits in floating point computations | |
JPH0644225B2 (ja) | 浮動小数点丸め正規化回路 | |
JPH02144624A (ja) | 先行ゼロ予測による正規化装置及び方法 | |
JP4388980B2 (ja) | 浮動小数点数の除算または平方根演算を行う演算装置及び演算方法 | |
JPH07225671A (ja) | 結果正規化機構と動作の方法 | |
JP2618374B2 (ja) | 最上位の数字の位置の検出 | |
US5343413A (en) | Leading one anticipator and floating point addition/subtraction apparatus | |
US5247471A (en) | Radix aligner for floating point addition and subtraction | |
JP3544846B2 (ja) | 論理回路及び浮動小数点演算装置 | |
JP4806453B2 (ja) | 演算処理装置、情報処理装置、および演算方法 | |
JP3640643B2 (ja) | べき数エンコーダ回路及びマスク回路 | |
US6499044B1 (en) | Leading zero/one anticipator for floating point | |
JPH0520028A (ja) | 加減算のための浮動小数点演算装置の仮数部処理回路 | |
JPH0542697B2 (ja) | ||
JPH08161152A (ja) | 浮動小数点演算装置 | |
US4866655A (en) | Arithmetic processor and divider using redundant signed digit | |
JP2511527B2 (ja) | 浮動小数点演算器 | |
US7024439B2 (en) | Leading Zero Anticipatory (LZA) algorithm and logic for high speed arithmetic units | |
JPH09114641A (ja) | 最上位デジットを決定するための装置と方法 | |
JPH09244874A (ja) | 最上位有効ビット位置予測方法 | |
US5657260A (en) | Priority detecting counter device | |
GB2130774A (en) | Circuits for operating on N-digit operands | |
JP2856792B2 (ja) | 浮動小数点数演算装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20040528 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040601 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040722 |
|
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: 20050118 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050118 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090128 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090128 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100128 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100128 Year of fee payment: 5 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313115 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100128 Year of fee payment: 5 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100128 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110128 Year of fee payment: 6 |
|
LAPS | Cancellation because of no payment of annual fees |