(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024146331
(43)【公開日】2024-10-15
(54)【発明の名称】2のべき乗数値計算回路
(51)【国際特許分類】
G06F 7/552 20060101AFI20241004BHJP
G06F 7/523 20060101ALI20241004BHJP
G06F 7/499 20060101ALI20241004BHJP
【FI】
G06F7/552 A
G06F7/523
G06F7/499 647
【審査請求】有
【請求項の数】3
【出願形態】OL
(21)【出願番号】P 2023059165
(22)【出願日】2023-03-31
(71)【出願人】
【識別番号】391016358
【氏名又は名称】東芝情報システム株式会社
(74)【代理人】
【識別番号】100156199
【弁理士】
【氏名又は名称】神崎 真
(74)【代理人】
【識別番号】100124497
【弁理士】
【氏名又は名称】小倉 洋樹
(74)【代理人】
【識別番号】100074147
【弁理士】
【氏名又は名称】本田 崇
(72)【発明者】
【氏名】窪田 能昌
(57)【要約】
【課題】面積と動作速度の両立を図る2のべき乗数値計算回路を提供することである。
【解決手段】mビットの2進数値(対象2進数)に対し、最大で2の何(X)乗のべき乗数値が含まれているかを求める処理を行う。0から(m-1)までのZ(整数)進数とこのZ進数に対応する2進数がド・ブラウン列のどのシフト量の位置に配置されているかが対応付けられたテーブルを用いる。前記対象2進数を、ワンホット表現の数に丸める丸め処理回路と、乗算論理演算回路とを用いて、先頭からNビットの2進数により表されるZ進数を生成し、このZ進数により前記テーブルを解生成回路により検索して、対応するシフト量を解とする。
【選択図】
図4
【特許請求の範囲】
【請求項1】
mビットの2進数値であって、最大で2の何(X)乗のべき乗数値が含まれているかを求める処理の対象である対象2進数についての前記処理を行う場合に、Nビットの各ビットに1または0をセットして2進数としたときに、0から(m-1)までのZ(整数)進数となるようにm個の2進数を用意し、このm個の2進数を1ビットづつ右シフトして並べたときに生成されるDビットの2進数の数値をド・ブラウン列と称し、前記右シフトのシフト量とそのときに並べたNビットの2進数が表すZ進数の数値とを対応付けてテーブル化したテーブルと、
前記対象2進数を、mビットの初段レジスタにセットして、各ビットを反転させる処理を含む論理演算処理によりワンホット表現の数に丸める丸め処理回路と、
前記丸め処理回路による処理結果の2進数をセットするもので、前記ド・ブラウン列の2進数と同じDビットであり、Dビットの当該レジスタ内において空きとなる先頭から(D-m)ビットのボックスを0により埋めて作成された乗算レジスタと、
前記乗算レジスタの数値を乗算とし、前記Dビットの2進数の数値であるド・ブラウン列を被乗数とした乗算に対応する乗算を論理演算により行う乗算論理演算回路と、
前記乗算論理演算回路による演算結果をセットする演算結果レジスタと、
前記演算結果レジスタの先頭からNビットの2進数により表されるZ進数に基づき前記テーブルを検索して、対応するシフト量を解とする解生成回路と
を具備することを特徴とする2のべき乗数値計算回路。
【請求項2】
前記乗算論理演算回路は、
前記乗算レジスタの数値を、前記被乗数であるド・ブラウン列におけるビットに1がセットされているビットごとに、それぞれのビットの位置に対応する序数値に応じて前記乗算レジスタの数値をシフトして、前記ド・ブラウン列におけるビットに1がセットされているビット数分の加算用レジスタにセットする加算用数値生成回路と、
前記加算用レジスタの値の論理和を作成して前記演算結果レジスタにセットする論理和回路と
により構成されることを特徴とする請求項1に記載の2のべき乗数値計算回路。
【請求項3】
前記丸め処理回路は、
前記初段レジスタの数値を上位と下位を逆にして第2段レジスタにセットする第1逆さ処理回路と、
前記第2段レジスタの数値について各ビットの数値の0,1を反転させ1を加えた2進数を生成して第3段レジスタにセットする反転・1加算回路と、
前記第2段レジスタの数値と前記第3段レジスタの数値との論理積演算を行い、第4段レジスタにセットする論理積演算回路と、
前記第4段レジスタの数値を上位と下位を逆にして第5段レジスタにセットする第2逆さ処理回路と、
により構成され、前記第5段レジスタにセットされた数値を処理結果とすることを特徴とする請求項1または2に記載の2のべき乗数値計算回路。
【発明の詳細な説明】
【技術分野】
【0001】
この発明は、2のべき乗数値計算回路に関するものである。
【背景技術】
【0002】
ASICの開発にあっては、RTL(Register Transfer Level)設計等の工程をバックエンドとして含んでおり、開発するシステムを回路に落とし込む場合に極めて重要とされる。このシステムに含まれる回路は、如何に高速であり、回路規模が小さいかが重要である。
【0003】
例えば、2のべき乗数値計算回路を作成する場合を考える。8ビットの2進数“01000110”の2のべき乗数値を求める場合には、上記2進数“01000110”の検査ビット位置をカウントするビットカウンタBCを用いる。また、検査ビット位置に“1”がセットされているときにビットカウンタBCの値をコピーするレジスタRを用いる。
【0004】
図1(a)に示すように、最下位の0ビット目を検査した場合には、ビットカウンタBCの値は“0”であり、レジスタRの値は“0”である。次に、
図1(b)に示すように、最下位の次の1ビット目を検査した場合には、ビットカウンタBCの値は“1”であり、1ビット目に“1”がセットされているからレジスタRの値はビットカウンタBCの値に等しく“1”となる。次に、
図1(c)に示すように、次の2ビット目を検査した場合には、ビットカウンタBCの値は“2”であり、2ビット目に“1”がセットされているからレジスタRの値はビットカウンタBCの値に等しく“2”となる。
【0005】
次に、
図1(d)に示すように、次の3ビット目を検査した場合には、ビットカウンタBCの値は“3”であり、3ビット目に“0”がセットされているから、レジスタRの値は2ビット目検査のときと変わらず“2”のままとなる。次の4ビット目と5ビット目の検査ではセットされているビットの値が“0”であるから、レジスタRの値は2ビット目検査のときと変わらず“2”のままとなるため、図示を省略している。
【0006】
次の6ビット目検査では、
図1(e)に示すように、ビットカウンタBCの値は“6”であり、6ビット目に“1”がセットされているからレジスタRの値はビットカウンタBCの値に等しく“6”となる。次の7ビット目検査では、
図1(f)に示すように、ビットカウンタBCの値は“7”であり、7ビット目に“0”がセットされているから、レジスタRの値は6ビット目検査のときと変わらず“6”のままとなる。以上により、2のべき乗値は“6”と計算される。
【0007】
図2の例では、8個のセレクタS0~S7を用いる。左側に示されている8ビットの数値の各検査ビットがセットされているレジスタの出力で、セレクタS0~S7の選択を制御する。セレクタS0~S7の“1”入力には、検査するビットの値が与えられており、セレクタS0の“0”入力には“0”が与えられており、セレクタS1~S7の“0”入力には前段のセレクタの出力が与えられている。
【0008】
以上の結果、セレクタS0~S7の出力は、“0”、“1”、“2”、“2”、“2”、“2”、“6”、“6”となり、2のべき乗値は“6”と計算される。上記の例では、8’b01000110(10進数で70)での結果は、“6”となる。これは、2の6乗=64で、70を超えない最大の数での2のべき乗数値を示している。言い換えれば、もっとも左にある“1”の位置を表している。
【0009】
入力値が8ビットであれば、上記のように8段の回路が必要であり、入力値のビット幅が大きくなればそれに応じて必要な回路の段数は増えていく。そのため、繰り返し制御を用いた実装では、探索すべきビット数が大きくなると、小さく高速動作が可能な回路によって構成することが難しくなる。
このため、RTL設計を工夫して実装面積と高速動作をトレードオフにかけ、求められる仕様に応じて設計者が構成を検討する必要があり、面積と動作速度の両立ができないうえ、設計者の経験に依存することになるという結果になった。
【0010】
特許文献1には、GF(2^m)のガロア体における原始既約多項式接続されたシフトレジスタと、マイクロプロセッサを備え、マイクロプロセッサに従属するRAMに多項式の係数表示された被乗数の元および乗数の元を格納するレジスタ領域を備え、更に演算結果を格納するレジスタ領域を備え、又マイクロプロセッサに従属するROMの領域には被乗数の元と乗数の元の乗算命令を書き込まれて成る、GF(2^m)のガロア体に属する元の乗算装置と、前記マイクロプロセッサに属するROMの領域には原始根αのべき乗数値が1、2^2、2^3・・・・・・2^m-1であるところのm個のmビット係数表示多項式を定数として備え、求める可き、べき乗数値を有する元を求める手段として、このべき乗数値を2進表示したとき“1”の値を取る桁に該当する前記mビット係数表示多項式定数を前記乗算装置により全て乗算する命令が書き込まれたGF(2^m)のガロア体の原始根αのべき乗演算装置が示されている。しかしながら、この特許文献1に記載の装置では、マイクロプロセッサ等を含むもので、RTL設計の段階のものではない。
【0011】
また、特許文献2にも、kをnビットのべき乗数値、Aを被べき乗数値とする、Akのべき乗演算を行う前にべき乗数値処理部で前記kを前処理し、処理後のべき乗数値をAと共に演算部に加えてAk演算を行うべき乗演算装置における前記べき乗数値処理部が示されている。しかし、この特許文献2のものは演算方法としても特徴を有するものである。つまり、その演算方法を実行するプログラムを記録媒体に格納し、それを汎用コンピュータにインストールすることにより、任意のコンピュータで上記べき乗剰余演算を実行することが出来るものであり、RTL設計の段階のものではない。
【0012】
また、特許文献3には、冪乗数生成部を備えた装置が示されているが、RTL設計の段階のものではない。
【先行技術文献】
【特許文献】
【0013】
【特許文献1】特開昭63-221425号公報
【特許文献2】特開2000-330470号公報
【特許文献3】国際公開WO2020/084692号公報
【発明の概要】
【発明が解決しようとする課題】
【0014】
上記のように、従来の2のべき乗数値計算回路は、面積と動作速度の両立を図ることを考慮したものではなかった。
【0015】
本発明は上記のような従来の2のべき乗数値計算回路における問題点に鑑みなされたもので、その目的は、RTL設計の段階に用いることができ、面積と動作速度の両立を図ることを可能にする2のべき乗数値計算回路を提供することである。
【課題を解決するための手段】
【0016】
本発明に係る2のべき乗数値計算回路は、mビットの2進数値であって、最大で2の何(X)乗のべき乗数値が含まれているかを求める処理の対象である対象2進数についての前記処理を行う場合に、Nビットの各ビットに1または0をセットして2進数としたときに、0から(m-1)までのZ(整数)進数となるようにm個の2進数を用意し、このm個の2進数を1ビットづつ右シフトして並べたときに生成されるDビットの2進数の数値をド・ブラウン列と称し、前記右シフトのシフト量とそのときに並べたNビットの2進数が表すZ進数の数値とを対応付けてテーブル化したテーブルと、前記対象2進数を、mビットの初段レジスタにセットして、各ビットを反転させる処理を含む論理演算処理によりワンホット表現の数に丸める丸め処理回路と、前記丸め処理回路による処理結果の2進数をセットするもので、前記ド・ブラウン列の2進数と同じDビットであり、Dビットの当該レジスタ内において空きとなる先頭から(D-m)ビットのボックスを0により埋めて作成された乗算レジスタと、乗算レジスタの数値を乗算とし、前記Dビットの2進数の数値であるド・ブラウン列を被乗数とした乗算に対応する乗算を論理演算により行う乗算論理演算回路と前記乗算論理演算回路による演算結果をセットする演算結果レジスタと、前記演算結果レジスタの先頭からNビットの2進数により表されるZ進数に基づき前記テーブルを検索して、対応するシフト量を解とする解生成回路とを具備することを特徴とする。
【0017】
本発明に係る2のべき乗数値計算回路では、前記乗算論理演算回路は、前記乗算レジスタの数値を、前記被乗数であるド・ブラウン列におけるビットに1がセットされているビットごとに、それぞれのビットの位置に対応する序数値に応じて前記乗算レジスタの数値をシフトして、前記ド・ブラウン列におけるビットに1がセットされているビット数分の加算用レジスタにセットする加算用数値生成回路と、前記加算用レジスタの値の論理和を作成して前記演算結果レジスタにセットする論理和回路とにより構成されることを特徴とする。
【0018】
本発明に係る2のべき乗数値計算回路では、前記丸め処理回路は、前記初段レジスタの数値を上位と下位を逆にして第2段レジスタにセットする第1逆さ処理回路と、前記第2段レジスタの数値について各ビットの数値の0,1を反転させ1を加えた2進数を生成して第3段レジスタにセットする反転・1加算回路と、前記第2段レジスタの数値と前記第3段レジスタの数値との論理積演算を行い、第4段レジスタにセットする論理積演算回路と、前記第4段レジスタの数値を上位と下位を逆にして第5段レジスタにセットする第2逆さ処理回路と、により構成され、前記第5段レジスタにセットされた数値を処理結果とすることを特徴とする。
【図面の簡単な説明】
【0019】
【
図1】2進数のビットが1であるビットの位置を基に2のべき乗数値を計算する従来の計算回路の例を示す図。
【
図2】セレクタを用いて、2のべき乗数値を計算する従来の計算回路の例を示す図。
【
図3】本発明の実施形態に係る2のべき乗数値計算回路の要部構成図。
【
図4】本発明の実施形態に係る2のべき乗数値計算回路の構成図であり、対象2進数が8ビットの場合の構成図。
【
図5】本発明の実施形態に係る2のべき乗数値計算回路の要部構成図。
【
図6】本発明の実施形態に係る2のべき乗数値計算回路の要部構成図。
【
図7】本発明の実施形態に係る2のべき乗数値計算回路の構成図であり、対象2進数が8ビットの場合の構成図。
【発明を実施するための形態】
【0020】
以下、添付図面を参照して本発明に係る2のべき乗数値計算回路の実施形態を説明する。各図において、同一の構成要素には、同一の符号を付して重複する説明を省略する。本実施形態では、
図3に示すテーブル100を有する。このテーブル100は、mビットの2進数値であって、最大で2の何(X)乗のべき乗数値が含まれているかを求める処理の対象である対象2進数についての上記処理を行う場合に、Nビットの各ビットに1または0をセットして2進数としたときに、0から(m-1)までのZ(整数)進数となるようにm個の2進数を用意し、このm個の2進数を1ビットづつ右シフトして並べたときに生成されるDビットの2進数の数値をド・ブラウン列と称し、前記右シフトのシフト量とそのときに並べたNビットの2進数が表すZ進数の数値とを対応付けてテーブル化したものである。本実施形態では、Z=10として説明を行うが、Zは整数であれば良いのは当然である。
【0021】
このテーブル100は、mビットの2進数値であって、最大で2の何(X)乗のべき乗数値が含まれているかを求める処理の対象である対象2進数についての前記処理を行う場合に用いるものである。この
図3の実施形態では、このテーブル100は、8ビットの2進数値であって、最大で2の何(X)乗のべき乗数値が含まれているかを求める処理に用いられる。
【0022】
テーブル100の作成には、Nビットの各ビットに1または0をセットして2進数としたときに、0から(m-1)までの10進数となるようにm個の2進数を用意する。本実施形態では、0から7までの10進数となるように(m=8)個の2進数を用意する。即ち、
図3の左に記載の通り、(0,0,0)=0、(0,0,1)=1、(0,1,1)=3、(1,1,1)=7、(1,1,0)=6、(1,0,1)=5、(0,1,0)=2、(1,0,0)=4を用意する。ここでは、N=3である。
【0023】
このm個の2進数を1ビットづつ右シフトして並べたときに生成されるDビットの2進数の数値をド・ブラウン列(De Bruijn Sequence)と称する。つまり、上記8個の2進数を1ビットづつ右シフトして並べると、「10’b0001110100」となる。つまり、ド・ブラウン列には、3ビットの8個の2進数を1ビットづつ右シフトして並べたものであり、8個の2進数の順は数の大小に関係なくランダムである。従って、本実施形態で用いたド・ブラウン列「10’b0001110100」は一例であり、8ビットの2進数に対する2のべき乗数値計算回路に用いることができるものは他にも存在する。
【0024】
一般的に、mビットの2進数値であって、最大で2の何(X)乗のべき乗数値が含まれているかを求める処理の対象である対象2進数についての上記処理を行う場合に用いるド・ブラウン列のビット数Dは、次のように求めることができる。つまり、ド・ブラウン列がDビットの2進数であり、mビットの対象2進数の各ビットを表現するために、0から(m-1)までの2進数としてNビットのものがm個必要であれば、D-N=(m-1)より、D=N+(m-1)となる。
【0025】
テーブル100は、上記ド・ブラウン列を作成するときに並べたNビットの2進数が表す10進数の数値とm個の2進数を1ビットづつ右シフトして並べたときのシフト量とを対応付けたものである。つまり、上記ド・ブラウン列を作成するときに並べたNビットの2進数が表す10進数の数値をインデックスとし、m個の2進数を1ビットづつ右シフトして並べたときのシフト量をバリュー(値)としてテーブル100が作成される。
【0026】
そして、上記対象2進数を、ワンホット表現の数に丸め、ド・ブラウン列「10’b0001110100」と乗じて、結果を求め、この結果の先頭N(=3)ビットの数値により上記テーブル100のテーブル引きにより2のべき乗数値を求めることができる。
【0027】
そのために、
図4に示すように、上記対象2進数を、mビットの初段レジスタにセットして、各ビットを反転させる処理を含む論理演算処理によりワンホット表現の数に丸める丸め処理回路200が設けられる。本実施形態の2のべき乗数値計算回路は、上記丸め処理回路200以外に、乗算レジスタ300と、乗算論理演算回路400と、演算結果レジスタ500と、解生成回路600とを具備している。
【0028】
乗算レジスタ300は、上記丸め処理回路200による処理結果の2進数をセットするもので、上記ド・ブラウン列の2進数と同じDビットであり、Dビットの当該レジスタ内において空きとなる先頭から(D-m)ビットのボックスを0により埋めて作成されたものである。
乗算論理演算回路400は、上記乗算レジスタの数値を乗算とし、上記Dビットの2進数の数値であるド・ブラウン列を被乗数とした乗算に対応する乗算を論理演算により行うものである。
演算結果レジスタ500は、上記乗算論理演算回路400による演算結果をセットするものである。
解生成回路600は、上記演算結果レジスタ500の先頭からNビットの2進数により表される10進数に基づき上記テーブル100を検索して、対応するシフト量を解とするものである。
【0029】
図5に示すように、上記乗算論理演算回路400は、加算用数値生成回路410と論理和回路420とを備えている。
加算用数値生成回路410、上記乗算レジスタ300の数値を、上記被乗数であるド・ブラウン列におけるビットに1がセットされているビットごとに、それぞれのビットの位置に対応する序数値(1がセットされているビットが何番目であるかという意味で、序数値)に応じて上記乗算レジスタ300の数値をシフトして、上記ド・ブラウン列におけるビットに1がセットされているビット数分の加算用レジスタ431、432、433、434にセットするものである。
図4の例では、ド・ブラウン列におけるビットに1がセットされているビットが4箇所存在するために、4個の加算用レジスタ431、432、433、434が設けられているものである。加算用レジスタ431、432、433、434をシフトレジスタとして、上記シフトを行うようにしても良い。
論理和回路420は、上記加算用レジスタ431、432、433、434の値の論理和を作成して上記演算結果レジスタ500にセットするものである。
【0030】
上記丸め処理回路200は、
図6に示されるように、第1逆さ処理回路230と、反転・1加算回路250と、論理積演算回路260と、第2逆さ処理回路290とを備えている。
第1逆さ処理回路230は、上記初段レジスタ210の数値を上位と下位を逆にして第2段レジスタ220にセットするものである。
【0031】
反転・1加算回路250は、上記第2段レジスタ220の数値について各ビットの数値の0,1を反転させ1を加えた2進数を生成して第3段レジスタ240にセットするものである。
論理積演算回路260は、上記第2段レジスタ220の数値と上記第3段レジスタ240の数値との論理積演算を行い、第4段レジスタ270にセットするものである。
第2逆さ処理回路290は、上記第4段レジスタ270の数値を上位と下位を逆にして第5段レジスタ280にセットするものである。
上記丸め処理回路200は、上記の通りに構成され、上記第5段レジスタ280にセットされた数値を処理結果とする。
【0032】
以上の通りの構成を有する2のべき乗数値計算回路において、対象2進数として、8’b01000110(10進数で70)が与えられ、ド・ブラウン列として10’b0001110100(10進数で116)を用いたとする。この場合には、
図3に示した通りのテーブル100が作られる。
【0033】
そして、
図4~
図6の2のべき乗数値計算回路により計算を行うことにより先頭から3ビットは、010となり、10進数では2が求まる。この2をインデックスとしてテーブル100を検索すると、6が答えとして求まることになる。
【0034】
次に、対象2進数が64ビットの場合を説明する。対象2進数が64ビットのときはド・ブラウン列として、「69’b0000001011000100101
00001100100011111101001110110101011110011011100000」等を用意し、入力値と乗じた値の先頭6bitを使用する。
【0035】
この2進数に対する2のべき乗数値計算回路は、
図7に示すようである。この69ビットの値も1ビットずつ左シフトしていくと、先頭の6bitには0から63までのすべての数値が1つずつ現れる。この値から64エントリーのテーブル100を用意する。
【0036】
そして、
図7の2のべき乗数値計算回路により計算を行うことにより先頭から6ビットは、10進数ではインデックスの値となる。このインデックスによりテーブル100を検索すると、値が答えとして求まることになる。
【0037】
以上の実施形態では、回路構成について記述したが、本実施形態の2のべき乗数値計算回路は、論理合成ツールの合成アルゴリズム合成へ応用或いは或いは適用することは言うまでもない。従って、繰り返し構文を用いてビット位置検索を行うRTL記述により本実施形態の回路を合成した場合においても、その構成が本発明から想到できる限りできるにおいて、本発明の範囲であり、その構成により小型で高速な回路を提供できるものである。
【0038】
本発明に係る複数の実施形態を説明したが、これらの実施形態は例として提示するものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0039】
100 テーブル
200 丸め処理回路
210 初段レジスタ
220 第2段レジスタ
230 第1逆さ処理回路
240 第3段レジスタ
250 反転・1加算回路
260 論理積演算回路
270 第4段レジスタ
280 第5段レジスタ
290 第2逆さ処理回路
300 乗算レジスタ
400 乗算論理演算回路
410 加算用数値生成回路
420 論理和回路
431 加算用レジスタ
500 演算結果レジスタ
600 解生成回路
【手続補正書】
【提出日】2024-09-20
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
mビットの2進数値であって、最大で2の何(X)乗のべき乗数値が含まれているかを求める処理の対象である対象2進数についての前記処理を行う場合に、Nビットの各ビットに1または0をセットして2進数としたときに、0から(m-1)までのZ(整数)進数となるようにm個の2進数を用意し、このm個の2進数を1ビットづつ右シフトして並べたときに生成されるDビットの2進数の数値をド・ブラウン列と称し、前記右シフトのシフト量とそのときに並べたNビットの2進数が表すZ進数の数値とを対応付けてテーブル化したテーブルと、
前記対象2進数を、mビットの初段レジスタにセットして、各ビットを反転させる処理を含む論理演算処理によりワンホット表現の数に丸める丸め処理回路と、
前記丸め処理回路による処理結果の2進数をセットするもので、前記ド・ブラウン列の2進数と同じDビットであり、Dビットのエリア内において空きとなる先頭から(D-m)ビットのボックスを0により埋めて作成された乗算レジスタと、
前記乗算レジスタの数値を乗算とし、前記Dビットの2進数の数値であるド・ブラウン列を被乗数とした乗算に対応する乗算を論理演算により行う乗算論理演算回路と、
前記乗算論理演算回路による演算結果をセットする演算結果レジスタと、
前記演算結果レジスタの先頭からNビットの2進数により表されるZ進数に基づき前記テーブルを検索して、対応するシフト量を解とする解生成回路と
を具備することを特徴とする2のべき乗数値計算回路。
【請求項2】
前記乗算論理演算回路は、
前記乗算レジスタの数値を、前記被乗数であるド・ブラウン列におけるビットに1がセットされているビットごとに、それぞれのビットの位置に対応する序数値に応じて前記乗算レジスタの数値をシフトして、前記ド・ブラウン列におけるビットに1がセットされているビット数分の加算用レジスタにセットする加算用数値生成回路と、
前記加算用レジスタの値の論理和を作成して前記演算結果レジスタにセットする論理和回路と
により構成されることを特徴とする請求項1に記載の2のべき乗数値計算回路。
【請求項3】
前記丸め処理回路は、
前記初段レジスタの数値を上位と下位を逆にして第2段レジスタにセットする第1逆さ処理回路と、
前記第2段レジスタの数値について各ビットの数値の0,1を反転させ1を加えた2進数を生成して第3段レジスタにセットする反転・1加算回路と、
前記第2段レジスタの数値と前記第3段レジスタの数値との論理積演算を行い、第4段レジスタにセットする論理積演算回路と、
前記第4段レジスタの数値を上位と下位を逆にして第5段レジスタにセットする第2逆さ処理回路と、
により構成され、前記第5段レジスタにセットされた数値を処理結果とすることを特徴とする請求項1または2に記載の2のべき乗数値計算回路。
【手続補正2】
【補正対象書類名】明細書
【補正対象項目名】0016
【補正方法】変更
【補正の内容】
【0016】
本発明に係る2のべき乗数値計算回路は、mビットの2進数値であって、最大で2の何(X)乗のべき乗数値が含まれているかを求める処理の対象である対象2進数についての前記処理を行う場合に、Nビットの各ビットに1または0をセットして2進数としたときに、0から(m-1)までのZ(整数)進数となるようにm個の2進数を用意し、このm個の2進数を1ビットづつ右シフトして並べたときに生成されるDビットの2進数の数値をド・ブラウン列と称し、前記右シフトのシフト量とそのときに並べたNビットの2進数が表すZ進数の数値とを対応付けてテーブル化したテーブルと、前記対象2進数を、mビットの初段レジスタにセットして、各ビットを反転させる処理を含む論理演算処理によりワンホット表現の数に丸める丸め処理回路と、前記丸め処理回路による処理結果の2進数をセットするもので、前記ド・ブラウン列の2進数と同じDビットであり、Dビットのエリア内において空きとなる先頭から(D-m)ビットのボックスを0により埋めて作成された乗算レジスタと、乗算レジスタの数値を乗算とし、前記Dビットの2進数の数値であるド・ブラウン列を被乗数とした乗算に対応する乗算を論理演算により行う乗算論理演算回路と前記乗算論理演算回路による演算結果をセットする演算結果レジスタと、前記演算結果レジスタの先頭からNビットの2進数により表されるZ進数に基づき前記テーブルを検索して、対応するシフト量を解とする解生成回路とを具備することを特徴とする。