(57)【要約】【課題】変換対象の２進数の複数のビットを順次Ｘ進数に変換していく処理においてクリティカルパスの遅延が小さい演算回路を提供する。【解決手段】演算回路は、２進数の最上位ビット側又は最下位ビット側から１又は複数のビットを順次抽出する抽出回路と、Ｘ進加算値（Ｘは３以上の整数）を格納するレジスタと、抽出された１又は複数のビットの値に応じて、順次所定数倍されていくＸ進数をＸ進加算値に加算した値により、レジスタに格納されるＸ進加算値を更新する更新回路とを含む。【選択図】図４
2012209755.tif 000002
【特許請求の範囲】
【請求項１】
２進数の最上位ビット側又は最下位ビット側から１又は複数のビットを順次抽出する抽出回路と、
Ｘ進法によるＸ進加算値（Ｘは３以上の整数）を格納するレジスタと、
前記抽出された１又は複数のビットの値に応じて、順次所定数倍されていくＸ進数を前記Ｘ進加算値に加算した値により、前記レジスタに格納される前記Ｘ進加算値を更新する更新回路と
を含むことを特徴とする演算回路。
【請求項２】
前記抽出された１又は複数のビットの値に応じて、前記順次所定数倍されていくＸ進数と０とを含む複数のＸ進数から１つの数を選択する選択回路を更に含み、前記更新回路は、前記選択された１つの数と前記Ｘ進加算値とを加算することにより、前記レジスタに格納される前記Ｘ進加算値を更新することを特徴とする請求項１記載の演算回路。
【請求項３】
前記所定数倍されていくＸ進数を格納するレジスタと、
前記レジスタの出力を前記所定数倍して前記レジスタに入力する倍数生成回路と
を更に含むことを特徴とする請求項１又は２記載の演算回路。
【請求項４】
前記抽出回路は、
前記２進数を格納するレジスタと、
前記レジスタに格納される前記２進数を左又は右にシフトするシフト回路と、
前記レジスタの格納値の最上位ビット側又は最下位ビット側から１又は複数のビットを読み出す信号線と
を更に含むことを特徴とする請求項１乃至３何れか一項記載の演算回路。
【請求項５】
前記所定数倍されていくＸ進数の初期値は２のｉ乗（ｉは２以上の整数）であることを特徴とする請求項１乃至４何れか一項記載の演算回路。
【請求項６】
前記１又は複数のビットは複数のビットであり、前記選択回路は、前記抽出された複数のビットの値に応じてｂｏｏｔｈアルゴリズムに基づいて前記複数のＸ進数から１つの数を選択することを特徴とする請求項２乃至５何れか一項記載の演算回路。
【請求項７】
前記抽出された複数のビットは３ビットであり、前記複数のＸ進数は、０、前記所定数倍されていくＸ進数、前記所定数倍されていくＸ進数の２倍の数、前記所定数倍されていくＸ進数の−２倍の数、及び前記所定数倍されていくＸ進数の−１倍の数であることを特徴とする請求項６記載の演算回路。
【請求項８】
２進数の最上位ビット側又は最下位ビット側から１又は複数のビットを順次抽出し、
前記抽出された１又は複数のビットの値に応じて、順次所定数倍されていくＸ進数を前記Ｘ進加算値に加算した値により、前記Ｘ進加算値を更新する
各段階を含むことを特徴とする２進数の変換方法。
【請求項９】
前記抽出された１又は複数のビットの値に応じて、前記順次所定数倍されていくＸ進数と０とを含む複数のＸ進数から１つの数を選択する段階を更に含み、前記更新する段階は、前記選択された１つの数と前記Ｘ進加算値とを加算することにより、前記Ｘ進加算値を更新することを特徴とする請求項８記載の２進数の変換方法。
【請求項１０】
前記１又は複数のビットは複数のビットであり、前記選択する段階は、前記抽出された複数のビットの値に応じてｂｏｏｔｈアルゴリズムに基づいて前記複数のＸ進数から１つの数を選択することを特徴とする請求項９記載の２進数の変換方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本願開示は、一般に演算回路及び２進数の変換方法に関し、詳しくは２進数をＸ進数に変換する演算回路及び２進数の変換方法に関する。
【背景技術】
【０００２】
コンピュータ内部では、トランジスタ回路のＯＦＦとＯＮとによりデータを表現しており、デジタルデータを２進数で表現することが一般的である。一方、人間が扱うデータは１０進数で表現されるのが一般的である。コンピュータに対するデータの入出力は、ユーザにとっては１０進数で表現されることが便利であるが、コンピュータ内部で処理するデータとしては、２進数の方が扱いやすい。従って、入出力データとコンピュータ内部での処理データとの間において、１０進数と２進数との間の相互変換処理が必要となる。
【０００３】
２進数と１０進数とでは桁上がりの条件が異なることなどから、２進化１０進法によるデータ表現では、各桁毎に２進数から１０進数への変換を行なう。即ち、２進数の各ビットを１０進数に変換し、得られた変換後の１０進数を、桁合わせを考慮しながら互いに加算することにより変換結果を求める。基本的な構成では、変換対象の２進数の上位ビットから１ビットずつを変換対象として順番に取り出し、前回の１０進の加算結果を２倍した１０進値と今回の１ビットの値とを加算して今回の１０進の加算結果を求める処理を繰り返す。例えば特許文献１には、そのようにして変換対象２進数データの上位ビットから順番に１０進数に変換していく方式が開示されている。具体的には、加算器の２つの入力に前回の加算結果を同一の入力としてそれぞれ与え、キャリー入力に今回の対象ビットを与えることで、前回の１０進の加算結果を２倍した１０進値と今回の１ビットの値とを加算して今回の１０進の加算結果を求める処理が実行される。
【０００４】
この場合、繰り返し処理を実行していることから、入力データのビット幅が増えるにつれて処理時間が増大してしまう。この問題を解決するために、一度に複数ビットを処理して高速化する手法が提案されている。特許文献２に開示の技術においては、１つの加算器と倍数生成回路とを備え、これら加算器と倍数生成回路とへの入力データの組み合わせを工夫することにより、２ビット単位での並列処理（１サイクルで２ビットを纏めて処理する並列処理）を可能としている。この方式では、基本的には、前回の１０進の加算結果を２倍した１０進値と今回の２ビットの値とを加算して今回の１０進の加算結果を求めている。
【０００５】
一般に加算回路は論理ゲートの段数が多く、加算回路を含む経路が演算処理のクリティカルパス（動作周波数に影響を与える最も遅延が大きい経路）となる。上記の従来手法では、加算回路の経路において、加算結果を２倍した値を求める倍数生成回路が含まれるため、クリティカルパスの遅延が大きくなるという問題がある。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開昭５７−０６１３３３号公報
【特許文献２】特開平１０−２７１００８号公報
【特許文献３】特開昭５９−１６８５４３号公開
【特許文献４】特開２０００−２００１７４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
以上を鑑みると、変換対象の２進数の複数のビットを順次Ｘ進数に変換していく処理においてクリティカルパスの遅延が小さい演算回路が望まれる。
【課題を解決するための手段】
【０００８】
演算回路は、２進数の最上位ビット側又は最下位ビット側から１又は複数のビットを順次抽出する抽出回路と、Ｘ進加算値（Ｘは３以上の整数）を格納するレジスタと、前記抽出された１又は複数のビットの値に応じて、順次所定数倍されていくＸ進数を前記Ｘ進加算値に加算した値により、前記レジスタに格納される前記Ｘ進加算値を更新する更新回路とを含むことを特徴とする。
【０００９】
２進数の変換方法は、２進数の最上位ビット側又は最下位ビット側から１又は複数のビットを順次抽出し、前記抽出された１又は複数のビットの値に応じて、順次所定数倍されていくＸ進数を前記Ｘ進加算値に加算した値により、前記Ｘ進加算値を更新する各段階を含むことを特徴とする。
【発明の効果】
【００１０】
本願開示の少なくとも１つの実施例によれば、変換対象の２進数の複数のビットを順次Ｘ進数に変換していく処理においてクリティカルパスの遅延が小さい演算回路が提供される。
【図面の簡単な説明】
【００１１】
【図１】コンピュータシステムの構成の一例を示す図である。
【図２】加算回路の経路において加算結果を２倍した値を求める倍数生成回路が含まれる構成の一例を示す図である。
【図３】図２の変換回路の各変換器において２ビット単位での並列処理を行なうように変形した構成の一例を示す図である。
【図４】変換対象２進数を１０進数に変換する変換回路の構成の一例を示す図である。
【図５】図４の変換回路を２セット用いて２ビットの並列処理を可能にした変換回路の構成の一例を示す図である。
【図６】図４の変換回路において２ビット単位での並列処理を行なうように変形した構成の一例を示す図である。
【図７】Ｂｏｏｔｈアルゴリズムを説明するための図である。
【図８】図７の変換回路を２セット用いて２ビットの並列処理を可能にした変換回路の構成の一例を示す図である。
【図９】図４に示す変換回路の変形例の構成の一例を示す図である。
【図１０】図４に示す変換回路の変形例の構成の一例を示す図である。
【図１１】図４に示す変換回路の変形例の構成の一例を示す図である。
【図１２】図４に示す変換回路の変形例の構成の一例を示す図である。
【図１３】図６に示す変換回路の変形例の構成の一例を示す図である。
【図１４】図４の変換回路を４セット用いて４ビットの並列処理を可能にした変換回路の構成の一例を示す図である。
【図１５】図７の変換回路を４セット用いて４ビットの並列処理を可能にした変換回路の構成の一例を示す図である。
【発明を実施するための形態】
【００１２】
以下に、本発明の実施例を添付の図面を用いて詳細に説明する。
【００１３】
図１は、コンピュータシステムの構成の一例を示す図である。図１に示すコンピュータシステムは、演算処理装置としてのプロセッサ１０及び主記憶としてのメモリ１１を含む。プロセッサ１０は、２次キャッシュ部１２、１次キャッシュ部１３、制御部１４、及び演算部１５を含む。１次キャッシュ部１３は、命令キャッシュ１３Ａ及びデータキャッシュ１３Ｂを含む。演算部１５は、レジスタ１６、演算制御部１７、及び演算器１８を含む。演算器１８には変換回路１９が含まれる。なお図２及び以降の同様の図において、各ボックスで示される各機能ブロックと他の機能ブロックとの境界は、基本的には機能的な境界を示すものであり、物理的な位置の分離、電気的な信号の分離、制御論理的な分離等に対応するとは限らない。各機能ブロックは、他のブロックと物理的にある程度分離された１つのハードウェアモジュールであってもよいし、或いは他のブロックと物理的に一体となったハードウェアモジュール中の１つの機能を示したものであってもよい。各機能ブロックは、他のブロックと論理的にある程度分離された１つのモジュールであってもよいし、或いは他のブロックと論理的に一体となったモジュール中の１つの機能を示したものであってもよい。
【００１４】
プロセッサ１０では、１次キャッシュ部１３及び２次キャッシュ部１２を設けることにより、キャッシュメモリを多階層化した構成となっている。具体的には、１次キャッシュ部１３と主記憶（メモリ１１）との間に、主記憶よりは高速にアクセスできる２次キャッシュ部１２を設けている。これにより、１次キャッシュ部１３においてキャッシュミスが発生した場合に、主記憶にアクセスが必要になる頻度を低くして、キャッシュミス・ペナルティーを軽減することができる。
【００１５】
制御部１４は、命令フェッチアドレスと命令フェッチリクエストとを１次命令キャッシュ４０に発行し、この命令フェッチアドレスから命令をフェッチする。制御部１４は、フェッチした命令をデコードし、デコード結果に従い演算部１５を制御して、フェッチされた命令を実行する。演算制御部１７は、制御部１４の制御下で動作し、演算対象のレジスタ１６からのデータを演算器１８に供給したり、演算結果のデータを指定されたレジスタ１６に格納したりする。また演算制御部１７は、演算器１８が実行する加減乗除算等の演算のタイプを指定する。更に演算制御部１７は、アクセス先のアドレスを指定し、１次キャッシュ部１３の当該アドレスに対してロード命令やストア命令を実行する。ロード命令により、指定アドレスから読み出されたデータは、指定されたレジスタ１６に格納される。またストア命令により、指定されたレジスタ１６のデータが、指定されたアドレスに書き込まれる。
【００１６】
演算器１８に含まれる変換回路１９は、２進数をＸ進数（Ｘは３以上の整数）に変換する回路であってよい。前述のように、人間は１０進数を使用するので、通常は１０進数と２進数との変換の必要性が高い。そこで以下の説明では、２進数から１０進数への変換を例にとり変換回路１９の構成及び動作について説明をする。しかしながら以下の説明において、変換先の表記が１０進数であることを特定する条件は、変換後のデータが１０進数であるという前提のみである。従って、変換後のデータがＸ進数であると考えれば、以下に説明する変換回路１９の構成及び動作は、２進数からＸ進数への変換一般に対して適用することができる。なおＸ進数の表記方法は如何なる方法であってもよい。例えば１０進数の場合、ＢＣＤ（Binary Coded-Decimal：２進化１０進法）表記を用いてもよいし、或いは別の表記を用いてもよい。
【００１７】
図２は、本願開示の変換回路１９の構成及び動作を理解するための基礎として、加算回路の経路において加算結果を２倍した値を求める倍数生成回路が含まれる構成の一例を示す図である。図２に示す変換回路においては、２セットの同一の構成の変換器が設けられ、それぞれが変換対象２進数全体の半分にあたる上位ビット側（図２左側）と２進数全体の半分にあたる下位ビット側（図２右側）とが、並列に変換される。
【００１８】
図２に示す変換回路は、データレジスタ（ＤＲ０）２０−１、バイナリデータレジスタ（ＢＲ０）２１−１、ビットシフト回路２２−１、倍数生成回路２３−１、選択回路２４−１、及び加算回路（ＡＤＤ０）２５−１を含む。これらの回路及びレジスタは、変換対象２進数の第０ビット〜第ｉ−１ビットの下位ｉビットを１０進数に変換する。変換回路は更に、データレジスタ（ＤＲ１）２０−２、バイナリデータレジスタ（ＢＲ１）２１−２、ビットシフト回路２２−２、倍数生成回路２３−２、選択回路２４−２、及び加算回路（ＡＤＤ１）２５−２を含む。これらの回路及びレジスタは、変換対象２進数の第ｉビット〜第６３ビットの上位６３−（ｉ−１）ビットを１０進数に変換する。
【００１９】
下位ｉビットを１０進数に変換する図２右側の変換器を例にとると、バイナリデータレジスタ２１−１に格納される変換対象２進数の最上位ビット（第ｉ−１ビット）が、選択回路２４−１に選択信号として供給される。選択回路２４−１には選択対象の入力データとして１０進数の０と１（＝２０）とが入力される。選択回路２４−１は、選択信号が０のとき０を選択して出力し、選択信号が１のとき１を選択して出力する。加算回路２５−１は、データレジスタ２０−１に格納されている１０進数を倍数生成回路２３−１により２倍して得られる１０進数と、選択回路２４−１の出力である０又は１（＝２０）の１０進数とを加算する。なおデータレジスタ２０−１に格納される１０進数としては、初期状態では０が格納されている。加算回路２５−１の加算結果である１０進数は、データレジスタ２０−１に格納される。
【００２０】
上記の動作を実行後、バイナリデータレジスタ２１−１に格納される変換対象２進数が、ビットシフト回路２２−１により左に１ビットシフトされる。この際、左シフト前に最も左にあったビット（最上位ビットである第（ｉ−１）ビット）は捨てられる。このように変換対象２進数が左に１ビットシフトされた後、その最上位ビットが選択回路２４−１に選択信号として供給され、上記と同様の動作が繰り返される。この動作を変換対象２進数の全てのビットに対して実行することで、変換対象２進数が１０進数に変換され、その変換結果がデータレジスタ２０−１に格納データとして得られることになる。上位６３−（ｉ−１）ビットを１０進数に変換する図面左側の変換器についても同様である。但し、第ｉビットから最上位ビットまでの上側のビットに対して２進数から１０進数への変換を行なっているので、選択回路２４−２への２つの入力は０及び２ｉとなっている。
【００２１】
前述のように、一般に加算回路は段数が多く、加算回路を含む経路が演算処理のクリティカルパス（動作周波数に影響を与える最も遅延が大きいパス）となる。図２に示す変換回路では、加算回路の経路において、加算結果を２倍した値を求める倍数生成回路２３−１及び２３−２が含まれるため、クリティカルパスの遅延が大きくなるという問題がある。
【００２２】
図３は、図２の変換回路の各変換器において２ビット単位での並列処理（１サイクルで２ビットを纏めて処理する並列処理）を行なうように変形した構成の一例を示す図である。図３において、図２と同一又は対応する構成要素は同一又は対応する番号で参照し、その説明は適宜省略する。
【００２３】
図３の変換回路においては、図２の選択回路２４−１及び２４−２の代りに選択回路２４−１Ａ及び２４−２Ａが設けられる。また図２の倍数生成回路２３−１の代りに倍数生成回路２３−１Ａ及び２３−１Ｂが設けられ、更に倍数生成回路２３−２の代りに倍数生成回路２３−２Ａ及び２３−２Ｂが設けられる。
【００２４】
下位ｉビットを１０進数に変換する図面右側の変換器を例にとると、選択回路２４−１Ａは、１０進数である０、１（＝２０）、２（＝２×２０）、及び３（＝３×２０）を選択対象の入力として受け取る。またバイナリデータレジスタ２１−１に格納される変換対象２進数の最上位側の２ビット（第（ｉ−１）ビット、第（ｉ―２）ビット）が、選択回路２４−１Ａに２ビットの選択信号として供給される。選択回路２４−１Ａは、２ビットの選択信号の値に応じて、対応する１０進数の値０、１、２、及び３の何れか1つを選択して出力する。加算回路２５−１は、データレジスタ２０−１に格納されている１０進数を倍数生成回路２３−１Ａ及び２３−１Ｂにより４倍して得られる１０進数と、選択回路２４−１Ａの出力である０、１、２、及び３の何れか１つの１０進数とを加算する。加算回路２５−１の加算結果である１０進数は、データレジスタ２０−１に格納される。
【００２５】
上記の動作を実行後、バイナリデータレジスタ２１−１に格納される変換対象２進数が、ビットシフト回路２２−１により左に２ビットシフトされる。このように変換対象２進数が左に２ビットシフトされた後、その最上位側の２ビットが選択回路２４−１Ａに選択信号として供給され、上記と同様の動作が繰り返される。この動作を変換対象２進数の全てのビットに対して実行することで、変換対象２進数が１０進数に変換され、その変換結果がデータレジスタ２０−１に格納データとして得られることになる。上位６３−（ｉ−１）ビットを１０進数に変換する図面左側の変換器についても同様である。但し、第ｉビットから最上位ビットまでの上側のビットに対して２進数から１０進数への変換を行なっているので、選択回路２４−２Ａへの２つの入力は０、２ｉ、２×２ｉ、及び３×２ｉとなっている。
【００２６】
図３に示す変換回路では、加算回路の経路において、加算結果を２倍した値を求める倍数生成回路がそれぞれ２つ含まれる（倍数生成回路２３−１Ａ及び２３−１Ｂ，倍数生成回路２３−２Ａ及び２３−２Ｂ）。従って、図２に示す変換回路に比較して、更にクリティカルパスの遅延が大きくなるという問題がある。以下に、クリティカルパスの遅延が小さい変換回路について説明する。
【００２７】
図４は、変換対象２進数を１０進数に変換する変換回路の構成の一例を示す図である。図４に示す変換回路は、データレジスタ（ＤＲ）３０、バイナリデータレジスタ（ＢＲ）３１、倍数生成回路３２、ビットシフト回路３３、選択回路３４、加算回路（ＡＤＤ）３５、及びアキュムレータレジスタ（ＡＲ）３６を含む。図４において、バイナリデータレジスタ３１は６４ビット幅である例を示すが、ビット幅はこの例に限定されるものではない。
【００２８】
バイナリデータレジスタ３１と、ビットシフト回路３３と、バイナリデータレジスタ３１から選択回路３４へと延びる信号線とが、抽出回路に相当する。バイナリデータレジスタ３１は、変換対象の２進数を格納する。ビットシフト回路３３は、バイナリデータレジスタ３１に格納される２進数を左又は右（この例では右）にシフトする。バイナリデータレジスタ３１から選択回路３４へと延びる信号線は、バイナリデータレジスタ３１の格納値の最上位ビット側又は最下位ビット側（この例では最下位ビット側）から１又は複数のビット（この例では１ビット）を読み出す。この構成により、抽出回路は、バイナリデータレジスタ３１に格納される２進数の最上位ビット側又は最下位ビット側（この例では最下位ビット側）から１又は複数のビット（この例では１ビット）を毎回のシフト後に順次抽出する。
【００２９】
データレジスタ３０は、順次所定数倍されていく１０進数を格納する。倍数生成回路３２は、データレジスタ３０の出力を所定数倍（この例では２倍）してデータレジスタ３０に入力する。選択回路３４は、抽出回路により抽出された１又は複数のビット（この例では１ビット）の値に応じて、データレジスタ３０からの順次所定数倍されていく１０進数と０とを含む複数の１０進数から１つの数を選択する。この例では、選択回路３４には２つの入力として０と上記の所定数倍されていく１０進数とが入力される。選択回路３４は、抽出回路により抽出された１ビットの値に応じて、０と所定数倍されていく１０進数との何れか一方を選択し、選択された値を出力する。
【００３０】
加算回路３５とアキュムレータレジスタ３６とが、更新回路に相当する。アキュムレータレジスタ３６は、１０進加算値を格納する。アキュムレータレジスタ３６が格納する１０進加算値は初期状態で０である。加算回路３５は、選択回路３４により選択された１つの数とアキュムレータレジスタ３６からの１０進加算値とを加算することにより、アキュムレータレジスタ３６に格納される１０進加算値を更新する。即ち、加算回路３５は、加算結果である１０進加算値をアキュムレータレジスタ３６に書き込む。このようにして更新回路は、抽出された１又は複数のビット（この例では１ビット）の値に応じて、順次所定数倍されていく１０進数を１０進加算値に加算した値により、アキュムレータレジスタ３６に格納される１０進加算値を更新する。具体的には、抽出された１ビットが１である場合には順次２倍されていく１０進数を１０進加算値に加算し、抽出された１ビットが０である場合には０を１０進加算値に加算する。
【００３１】
あるサイクルにおいて加算回路３５による加算演算が実行されている間に、倍数生成回路３２によりデータレジスタ３０の１０進数を２倍する演算を実行することができる。そして、あるサイクルにおけるアキュムレータレジスタ３６の更新とともに、ビットシフト回路３３によるビットシフトにより、バイナリデータレジスタ３１の２進数が次のサイクルに備えて更新される。また同時に、倍数生成回路３２の出力により、データレジスタ３０の１０進数が次のサイクルに備えて更新される。
【００３２】
各サイクルにおいて選択回路３４が出力する１０進数は、バイナリデータレジスタ３１に格納される２進数の着目ビット（抽出ビット）を１０進数に変換した値に対応する。このようにして、バイナリデータレジスタ３１に格納される変換対象の２進数を、その最下位ビット側から１ビットずつ順次１０進数に変換して、アキュムレータレジスタ３６に格納される１０進加算値に足し込んでいく。その結果、バイナリデータレジスタ３１の２進数の全てのビットが抽出されて所定の演算が完了した後には、この２進数を１０進数に変換した値が、アキュムレータレジスタ３６に得られることになる。
【００３３】
図４に示す変換回路においては、データレジスタ３０の出力又はバイナリレジスタ３１の出力からアキュムレータレジスタ３６の入力に至る加算回路３５を含む経路において、加算結果を２倍した値を求める倍数生成回路が含まれない。データレジスタ３０の入力側に倍数生成回路３２が設けられているが、あるサイクルにおいて加算回路３５による加算演算が実行されている間に、この倍数生成回路３２による２倍演算を実行することができる。これにより、倍数生成回路３２の演算時間を、加算回路３５の演算時間の中に隠すことが可能となる。従って、図４に示す変換回路は、加算回路３５を含むクリティカルパスにおいて遅延の小さい変換回路となる。なおデータレジスタ３０の出力からアキュムレータレジスタ３６の入力までのクリティカルパスにおいて、加算回路３５に加え選択回路３４が設けられている。しかしながら選択回路３４の入出力間の論理ゲートの段数は、倍数生成回路の入出力間の論理ゲートの段数に比較して十分に少なく、選択回路３４の存在は大きな遅延の原因とはならない。
【００３４】
図５は、図４の変換回路を２セット用いて２ビットの並列処理を可能にした変換回路の構成の一例を示す図である。図５において、図４と同一又は対応する構成要素は同一又は対応する番号で参照し、その説明は適宜省略する。
【００３５】
変換回路は、データレジスタ（ＤＲ０）３０−１、バイナリデータレジスタ（ＢＲ０）３１−１、倍数生成回路３２−１、ビットシフト回路３３−１、選択回路３４−１、加算回路（ＡＤＤ０）３５−１、及びアキュムレータレジスタ（ＡＲ０）３６−１を含む。これらの回路及びレジスタは、変換対象２進数の第０ビット〜第ｉ−１ビットの下位ｉビットを１０進数に変換する。変換回路は更に、データレジスタ（ＤＲ１）３０−２、バイナリデータレジスタ（ＢＲ１）３１−２、倍数生成回路３２−２、ビットシフト回路３３−２、選択回路３４−２、加算回路（ＡＤＤ１）３５−２、及びアキュムレータレジスタ（ＡＲ１）３６−２を含む。これらの回路及びレジスタは、変換対象２進数の第ｉビット〜第６３ビットの上位６３−（ｉ−１）ビットを１０進数に変換する。
【００３６】
図５に示す各回路及びレジスタの機能及び動作は、図４に示す対応する名称の各回路及びレジスタの機能及び動作と同様である。但し、上位６３−（ｉ−１）ビットを変換する変換器においては、第ｉビットから最上位ビットまでの上側のビットに対して２進数から１０進数への変換を行なっているので、データレジスタ３０−２の初期値は２ｉとなる。即ち、所定数倍されていく１０進数の初期値は、２のｉ乗（ｉは２以上の整数）である。
【００３７】
図５に示す変換回路においては、変換対象の２進数を上位ビット側と下位ビット側との２つに分割し、それぞれについて図４の変換回路による変換処理を並列に実行する。これにより、変換回路を２セット用いた２ビットの並列処理が実現できる。
【００３８】
図６は、図４の変換回路において２ビット単位での並列処理（１サイクルで２ビットを纏めて処理する並列処理）を行なうように変形した構成の一例を示す図である。図６において、図４と同一又は対応する構成要素は同一又は対応する番号で参照し、その説明は適宜省略する。
【００３９】
図６の変換回路においては、図４の選択回路３４の代りに選択回路３４Ａが設けられる。また図４の倍数生成回路３２の代りに倍数生成回路３２Ａ及び３２Ｂが設けられ、更にＢｏｏｔｈデコード回路４０が新たに設けられる。
【００４０】
データレジスタ３０は、順次所定数倍されていく１０進数を格納する。倍数生成回路３２Ａ及び３２Ｂは、各々が２倍化の演算を実行する回路であり、データレジスタ３０の出力を所定数倍（この例では４倍（＝２倍×２倍））してデータレジスタ３０に入力する。バイナリデータレジスタ３１に格納される変換対象２進数の最下位側の３ビットが、Ｂｏｏｔｈデコード回路４０に供給される。Ｂｏｏｔｈデコード回路４０は、供給された３ビットの値に応じて、選択回路３４Ａに３ビットの選択信号を供給する。選択回路３４Ａは、抽出回路により抽出された１又は複数のビット（この例では３ビット）の値に応じて、順次所定数倍されていく１０進数と０とを含む複数の１０進数（この例では５個の１０進数）から１つの数を選択する。より具体的には、選択回路３４Ａは、Ｂｏｏｔｈデコード回路４０からの３ビットの値（抽出回路により抽出された３ビットの値に応じた値）に応じて、５つの１０進数の何れか１つを選択し、選択された値を出力する。
【００４１】
選択回路３４Ａは、１０進数である０、所定数倍されていく１０進数、所定数倍されていく１０進数の２倍の数、所定数倍されていく１０進数の−２倍の数、及び所定数倍されていく１０進数の−１倍の数を選択対象の入力として受け取る。演算器（ｘ２）４１が、データレジスタ３０から供給される所定数倍されていく１０進数の２倍の値を計算する。演算器（ｘ−２）４２が、データレジスタ３０から供給される所定数倍されていく１０進数の−２倍の値を計算する。演算器（ｘ−１）４３が、データレジスタ３０から供給される所定数倍されていく１０進数の−１倍の値を計算する。選択回路３４Ａは、抽出された複数のビットの値に応じて、ｂｏｏｔｈアルゴリズムに基づいて複数の１０進数から１つの数を選択する。
【００４２】
図７は、Ｂｏｏｔｈアルゴリズムを説明するための図である。Ｂｏｏｔｈアルゴリズムは、乗算の高速化手法として知られている。２進数の乗算において、１ビットずつ乗数を処理していく場合は、被乗数の１倍を中間結果に足し込んで、中間結果を１ビットシフトしていくことが行なわれる。高速化のために乗数を２ビットずつ処理する場合には、中間結果に足し込む被乗数を４通り用意する。具体的には、２ビットの乗数００、０１、１０、及び１１に対応して、被乗数の０倍、１倍、２倍、及び３倍を、それぞれ足し込むことになる。０倍数、１倍数、及び２倍数を計算するのは容易だが、３倍数を計算する回路は複雑になることが問題となる。Ｂｏｏｔｈアルゴリズムは、３倍数を直接計算することなく３倍数の中間結果への足し込みを可能にするアルゴリズムである。
【００４３】
Ｂｏｏｔｈアルゴリズムでは、３倍数の計算に際して、３倍数＝４倍数＋（−１倍数）であることを利用している。即ち、３倍数を足し込むためには、乗数のあるビットで−１倍数を足しこみ、乗数の次の２ビットで１倍数を足しこめばよい。なぜなら、乗数の次の２ビットの１倍数は、直前の２ビットから見ると４倍数だからである。このようにして、−１倍数と４倍数とを足し込むことにより、３倍数を足し込むのと同等の計算が可能となる。
【００４４】
ただし、次の２ビットに対しては、前の２ビットのための倍数のほかに、そのビット自身で足し込むべき倍数も存在する。そこで、前の２ビットのための倍数が必要かどうかの判断は自身のビットの１ビット下位のビットを見て、そのビットが１であれば前の２ビットのための倍数が必要であると判断する。このため、前のビットにおいて２倍数を足し込む場合も、２倍数＝４倍数＋（−２倍数）として計算する。このようにして、１ビット下位のビットと自身の２ビットとの合計３ビットを参照することで、前の２ビットのための倍数と自身のビットのための倍数の両方を考慮した倍数を選び、中間結果に足し込んでいくこととなる。参照する３ビットのビット列と選択する倍数の組み合わせとの関係は３倍数により固定的に決まるので、この関係をテーブルとして用意しておき、テーブル参照により３ビット入力に対する倍数の組み合わせを求めればよい。
【００４５】
上記のＢｏｏｔｈアルゴリズムを２進から１０進への変換に適用することができる。図７（ａ）において、２進数５０は、変換対象の２進数である。２進数５０の最下位２ビット“１１”に着目する場合には、ダミービットとして“０”を付け足した３ビット値５１を、図７（ｂ）に示す変換テーブル５７において探し、−１倍数（ｘ−１）を足し込む動作が実行される。２進数５０の次の２ビット“００”に着目する場合には、その下の１ビット“１”を付け足した３ビット値５２を、変換テーブル５７において探し、１倍数（ｘ１）を足し込む動作が実行される。以上の動作により、最下位２ビットに対して−１倍数を足しこみ、次の２ビットで１倍数を足し込む。ここで当該次の２ビットの１倍数は、直前の２ビットから見ると４倍数であるので、結果として−１倍数と４倍数とを足し込むことになり、３倍数を足し込むのと同等の結果が得られる。
【００４６】
２進数５０の次の２ビット“１０”に着目する場合には、その下の１ビット“０”を付け足した３ビット値５３を、変換テーブル５７において探し、−２倍数（ｘ−２）を足し込む動作が実行される。次の２ビット“００”に着目する場合には、その下の１ビット“１”を付け足した３ビット値５４を、変換テーブル５７において探し、１倍数（ｘ１）を足し込む動作が実行される。以上の動作により、まず−２倍数を足しこみ、次に１倍数を足し込む。ここで当該１倍数は、直前の２ビットから見ると４倍数であるので、結果として−２倍数と４倍数とを足し込むことになり、２倍数を足し込むのと同等の結果が得られる。
【００４７】
２進数５０の次の２ビット“０１”に着目する場合には、その下の１ビット“０”を付け足した３ビット値５５を、変換テーブル５７において探し、１倍数（ｘ１）を足し込む動作が実行される。次の２ビット“００”に着目する場合には、その下の１ビット“０”を付け足した３ビット値５６を、変換テーブル５７において探し、０倍数（ｘ０）を足し込む動作が実行される。以上の動作により、まず１倍数を足しこみ、次に０倍数を足し込み、結果として１倍数を足し込むことになる。
【００４８】
図６に示すＢｏｏｔｈデコード回路４０は、バイナリデータレジスタ３１から抽出された３ビットの値に応じて、図７（ｂ）に示す変換テーブル５７を参照して倍数を特定し、この特定した倍数を選択するための３ビットの選択信号を出力すればよい。選択回路３４Ａがこの選択信号に応じて選択動作を実行することで、バイナリデータレジスタ３１の２進数を２ビット毎に変換する各サイクルにおいて、１０進加算値に足し込むための適切な倍数を選択することができる。なお前述のようにＢｏｏｔｈアルゴリズムでは、２進数の最下位２ビットに着目する場合には、ダミービットとして“０”を付け足す。これに対応して、バイナリデータレジスタ３１の最下位ビットは第−１ビット目を示すビット位置となっている。
【００４９】
図８は、図６の変換回路を２セット用いて４ビットの並列処理を可能にした変換回路の構成の一例を示す図である。図８において、図６と同一又は対応する構成要素は同一又は対応する番号で参照し、その説明は適宜省略する。
【００５０】
下位ビット側の変換回路は、データレジスタ（ＤＲ０）３０−１、バイナリデータレジスタ（ＢＲ０）３１−１、倍数生成回路３２−１Ａ及び３２−１Ｂ、ビットシフト回路３３−１、及び選択回路３４−１Ａを含む。下位ビット側の変換回路は更に、加算回路（ＡＤＤ０）３５−１、アキュムレータレジスタ（ＡＲ０）３６−１、Ｂｏｏｔｈデコード回路４０−１、及び演算器４１−１乃至４３−１を含む。これらの回路及びレジスタは、変換対象２進数の第０ビット〜第ｉ−１ビットの下位ｉビットを１０進数に変換する。上位ビット側の変換回路は更に、データレジスタ（ＤＲ１）３０−２、バイナリデータレジスタ（ＢＲ１）３１−２、倍数生成回路３２−２Ａ及び３２−２Ｂ、ビットシフト回路３３−２、及び選択回路３４−２Ａを含む。上位ビット側の変換回路は更に、加算回路（ＡＤＤ１）３５−２、アキュムレータレジスタ（ＡＲ１）３６−２、Ｂｏｏｔｈデコード回路４０−２、及び演算器４１−２乃至４３−２を含む。これらの回路及びレジスタは、変換対象２進数の第ｉビット〜第６３ビットの上位６３−（ｉ−１）ビットを１０進数に変換する。
【００５１】
図８に示す各回路及びレジスタの機能及び動作は、図６に示す対応する名称の各回路及びレジスタの機能及び動作と同様である。但し、上位６３−（ｉ−１）ビットを変換する変換器においては、第ｉビットから最上位ビットまでの上側のビットに対して２進数から１０進数への変換を行なっているので、データレジスタ３０−２の初期値は２ｉとなる。即ち、所定数倍されていく10進数の初期値は、２のｉ乗（ｉは２以上の整数）である。
【００５２】
図８に示す変換回路においては、変換対象の２進数を上位ビット側と下位ビット側との２つに分割し、それぞれについて図６の変換回路による変換処理を並列に実行する。これにより、２ビット単位での並列処理（１サイクルで２ビットを纏めて処理する並列処理）を２セット用いて計４ビットの並列処理が実現できる。
【００５３】
図９は、図４に示す変換回路の変形例の構成の一例を示す図である。図９において、図４と同一又は対応する構成要素は同一又は対応する番号で参照し、その説明は適宜省略する。図９においては、図４の倍数生成回路３２の代りに１／２倍数生成回路６２が設けられ、更に図４のビットシフト回路３３の代りにビットシフト回路６３が設けられる。
【００５４】
ビットシフト回路６３は、バイナリデータレジスタ３１に格納される２進数を左又は右（この例では左）にシフトする。バイナリデータレジスタ３１から選択回路３４へと延びる信号線は、バイナリデータレジスタ３１の格納値の最上位ビット側又は最下位ビット側（この例では最上位ビット側）から１又は複数のビット（この例では１ビット）を読み出す。この構成により、抽出回路は、バイナリデータレジスタ３１に格納される２進数の最上位ビット側又は最下位ビット側（この例では最上位ビット側）から１又は複数のビット（この例では１ビット）を順次抽出する。
【００５５】
データレジスタ３０は、順次所定数倍されていく１０進数を格納する。変換対象の２進数を格納するバイナリデータレジスタ３１のビット幅が６４ビットであるとき、データレジスタ３０に格納される１０進数の初期値は２６３であってよい。１／２倍数生成回路６２は、データレジスタ３０の出力を所定数倍（この例では１／２倍）してデータレジスタ３０に入力する。選択回路３４は、抽出回路により抽出された１又は複数のビット（この例では１ビット）の値に応じて、０とデータレジスタ３０からの所定数倍されていく１０進数との何れか一方を選択し、選択された値を出力する。
【００５６】
各サイクルにおいて選択回路３４が出力する１０進数は、バイナリデータレジスタ３１に格納される２進数の着目ビット（抽出ビット）を１０進数に変換した値に対応する。このようにして、バイナリデータレジスタ３１に格納される変換対象の２進数を、その最上位ビット側から１ビットずつ順次１０進数に変換して、アキュムレータレジスタ３６に格納される１０進加算値に足し込んでいく。その結果、バイナリデータレジスタ３１の２進数の全てのビットが抽出されて所定の演算が完了した後には、この２進数を１０進数に変換した値が、アキュムレータレジスタ３６に得られることになる。
【００５７】
図１０は、図４に示す変換回路の変形例の構成の一例を示す図である。図１０において、図４と同一又は対応する構成要素は同一又は対応する番号で参照し、その説明は適宜省略する。図１０においては、選択回路３４と加算回路３５との間にパイプラインレジスタ６４が設けられる。
【００５８】
図４の構成では、クリティカルパスは、データレジスタ３０の出力から選択回路３４及び加算回路３５を介してアキュムレータレジスタ３６への入力に至る経路である。図４の構成では、選択回路３４と加算回路３５の間にパイプラインレジスタ６４を挿入し、選択回路３４のパスと選択回路３４のパスとをタイミング的に互いに分離する。
【００５９】
この場合、パイプラインレジスタ６４に選択回路３４からのデータを取り込ませるために１サイクルかかる。しかしながら、加算結果を格納するアキュムレータレジスタ３６と加算回路３５への入力データを格納するパイプラインレジスタ６４とは同時に更新することが可能である。従って、２サイクル目以降は、パイプラインレジスタ６４の更新のためのレイテンシは隠ぺいすることができる。この結果、１サイクルの演算レイテンシの増加と引き換えに、クリティカルパスの改善が可能となる。
【００６０】
図１１は、図４に示す変換回路の変形例の構成の一例を示す図である。図１１において、図４と同一又は対応する構成要素は同一又は対応する番号で参照し、その説明は適宜省略する。図１１においては、選択回路３４の代りに、ＡＮＤ回路６５が設けられる。このＡＮＤ回路６５は、データレジスタ３０からのデータの各ビット毎に設けられる。
【００６１】
ＡＮＤ回路６５は、バイナリデータレジスタ３１から抽出されたビットの値が１の場合に、データレジスタ３０から供給される順次所定数倍されていく１０進数を加算回路３５に供給する。ＡＮＤ回路６５は更に、バイナリデータレジスタ３１から抽出されたビットの値が０の場合に、データ値０を加算回路３５に供給する。
【００６２】
図４の変換回路と同様に、加算回路３５とアキュムレータレジスタ３６とが、更新回路に相当する。更新回路は、抽出された１又は複数のビット（この例では１ビット）の値が所定の値（この例では１）である場合に、順次所定数倍されていく１０進数を１０進加算値に加算した値により、アキュムレータレジスタ３６に格納される１０進加算値を更新する。具体的には、抽出された１ビットが１である場合には順次２倍されていく１０進数を１０進加算値に加算し、抽出された１ビットが０である場合には０を１０進加算値に加算する。
【００６３】
このように選択回路３４の代りにＡＮＤ回路６５を用いても、選択回路３４を用いた場合と同様の動作が可能である。
【００６４】
図１２は、図４に示す変換回路の変形例の構成の一例を示す図である。図１２において、図４と同一又は対応する構成要素は同一又は対応する番号で参照し、その説明は適宜省略する。図１２においては、選択回路３４を用いる代りに、バイナリデータレジスタ３１から抽出された１ビットをイネーブル信号としてアキュムレータレジスタ３６Ａに供給している。
【００６５】
図４の変換回路と同様に、加算回路３５とアキュムレータレジスタ３６Ａとが、更新回路に相当する。更新回路は、抽出された１又は複数のビット（この例では１ビット）の値が所定の値（この例では１）である場合に、順次所定数倍されていく１０進数を１０進加算値に加算した値により、アキュムレータレジスタ３６に格納される１０進加算値を更新する。具体的には、抽出された１ビットが１である場合には、この１をイネーブル信号として受け取るアキュムレータレジスタ３６Ａの書き込み動作が実行され、順次２倍されていく１０進数を１０進加算値に加算した値がアキュムレータレジスタ３６Ａに格納される。抽出された１ビットが０である場合には、この０をイネーブル信号として受け取るアキュムレータレジスタ３６Ａの書き込み動作が実行されずにディセーブルされるため、順次２倍されていく１０進数を１０進加算値に加算した値がアキュムレータレジスタ３６Ａに格納されない。
【００６６】
このように選択回路３４の代りにアキュムレータレジスタ３６Ａのイネーブル信号を用いても、選択回路３４を用いた場合と同様の動作が可能である。
【００６７】
図１３は、図６に示す変換回路の変形例の構成の一例を示す図である。図１３において、図６と同一又は対応する構成要素は同一又は対応する番号で参照し、その説明は適宜省略する。図１３においては、選択回路３４Ａを用いる代りに選択回路３４Ｂを用いるとともに、Ｂｏｏｔｈデコード回路４０からの出力信号をイネーブル信号としてアキュムレータレジスタ３６Ｂに供給している。
【００６８】
図６に示す構成において、Ｂｏｏｔｈデコード回路４０が０倍値（即ち０）を選択する信号を選択回路３４Ａに供給する場合、選択回路３４Ａは０を選択するので、アキュムレータレジスタ３６の値は同一の値で更新されることになる。このことを鑑みると、選択回路３４Ａが０を選択する場合にアキュムレータレジスタ３６の書き込み動作が実行されないように構成すれば、図６に示す変換回路と同じ動作が実現できる。図１３に示す変換回路では、Ｂｏｏｔｈデコード回路４０が０倍値（即ち０）を選択する信号を出力する場合、この信号に応答してアキュムレータレジスタ３６Ｂの書き込み動作が実行されないようにしている。また選択回路３４Ｂにおいて０選択は不要となるため、選択回路３４Ｂの入力は、図６に示す５つの１０進数値から０を除いた４つの１０進数値とされている。
【００６９】
図１４は、図４の変換回路を４セット用いて４ビットの並列処理を可能にした変換回路の構成の一例を示す図である。図１４において、図４と同一又は対応する構成要素は同一又は対応する番号で参照し、その説明は適宜省略する。
【００７０】
変換回路は、データレジスタ（ＤＲ０）３０−１、バイナリデータレジスタ（ＢＲ０）３１−１、倍数生成回路３２−１、ビットシフト回路３３−１、選択回路３４−１、加算回路（ＡＤＤ０）３５−１、及びアキュムレータレジスタ（ＡＲ０）３６−１を含む。これらの回路及びレジスタは、変換対象２進数の第０ビット〜第ｉ−１ビットの下位ｉビットを１０進数に変換する。変換回路は更に、データレジスタ（ＤＲ１）３０−２、バイナリデータレジスタ（ＢＲ１）３１−２、倍数生成回路３２−２、ビットシフト回路３３−２、選択回路３４−２、加算回路（ＡＤＤ１）３５−２、及びアキュムレータレジスタ（ＡＲ１）３６−２を含む。これらの回路及びレジスタは、変換対象２進数の第ｉビット〜第ｊ−１ビットを１０進数に変換する。
【００７１】
変換回路は更に、データレジスタ（ＤＲ２）３０−３、バイナリデータレジスタ（ＢＲ２）３１−３、倍数生成回路３２−３、ビットシフト回路３３−３、選択回路３４−３、加算回路（ＡＤＤ２）３５−３、及びアキュムレータレジスタ（ＡＲ２）３６−３を含む。これらの回路及びレジスタは、変換対象２進数の第ｊビット〜第ｋ−１ビットを１０進数に変換する。変換回路は更に、データレジスタ（ＤＲ３）３０−４、バイナリデータレジスタ（ＢＲ３）３１−４、倍数生成回路３２−４、ビットシフト回路３３−４、選択回路３４−４、加算回路（ＡＤＤ３）３５−４、及びアキュムレータレジスタ（ＡＲ３）３６−４を含む。これらの回路及びレジスタは、変換対象２進数の第ｋビット〜第６３ビットの上位６３−（ｋ−１）ビットを１０進数に変換する。
【００７２】
図１４に示す各回路及びレジスタの機能及び動作は、図４及び図５に示す対応する名称の各回路及びレジスタの機能及び動作と同様である。但し、データレジスタ３０−１乃至３０−４の初期値はそれぞれ適切な値に設定される。即ち、所定数倍されていく１０進数の初期値は、それぞれ対応するビット位置に応じた２の冪乗の数となる。
【００７３】
図１４に示す変換回路においては、変換対象の２進数を４つに分割し、それぞれについて図４の変換回路による変換処理を並列に実行する。これにより、変換回路を４セット用いた４ビットの並列処理が実現できる。
【００７４】
図１５は、図６の変換回路を４セット用いて８ビットの並列処理を可能にした変換回路の構成の一例を示す図である。図１５において、図６と同一又は対応する構成要素は同一又は対応する番号で参照し、その説明は適宜省略する。
【００７５】
変換回路は、データレジスタ（ＤＲ０）３０−１、バイナリデータレジスタ（ＢＲ０）３１−１、倍数生成回路３２−１Ａ及び３２−１Ｂ、ビットシフト回路３３−１、及び選択回路３４−１Ａを含む。変換回路は更に、加算回路（ＡＤＤ０）３５−１、アキュムレータレジスタ（ＡＲ０）３６−１、Ｂｏｏｔｈデコード回路４０−１、及び演算器４１−１乃至４３−１を含む。これらの回路及びレジスタは、変換対象２進数の第０ビット〜第ｉ−１ビットの下位ｉビットを１０進数に変換する。変換回路は更に、データレジスタ（ＤＲ１）３０−２、バイナリデータレジスタ（ＢＲ１）３１−２、倍数生成回路３２−２Ａ及び３２−２Ｂ、ビットシフト回路３３−２、及び選択回路３４−２Ａを含む。変換回路は更に、加算回路（ＡＤＤ１）３５−２、アキュムレータレジスタ（ＡＲ１）３６−２、Ｂｏｏｔｈデコード回路４０−２、及び演算器４１−２乃至４３−２を含む。これらの回路及びレジスタは、変換対象２進数の第ｉビット〜第ｊ−１ビットを１０進数に変換する。
【００７６】
変換回路は更に、データレジスタ（ＤＲ２）３０−３、バイナリデータレジスタ（ＢＲ２）３１−３、倍数生成回路３２−３Ａ及び３２−３Ｂ、ビットシフト回路３３−３、及び選択回路３４−３Ａを含む。変換回路は更に、加算回路（ＡＤＤ２）３５−３、アキュムレータレジスタ（ＡＲ２）３６−３、Ｂｏｏｔｈデコード回路４０−３、及び演算器４１−３乃至４３−３を含む。これらの回路及びレジスタは、変換対象２進数の第ｊビット〜第ｋ−１ビットを１０進数に変換する。変換回路は更に、データレジスタ（ＤＲ３）３０−４、バイナリデータレジスタ（ＢＲ３）３１−４、倍数生成回路３２−４Ａ及び３２−４Ｂ、ビットシフト回路３３−４、及び選択回路３４−４Ａを含む。変換回路は更に、加算回路（ＡＤＤ３）３５−４、アキュムレータレジスタ（ＡＲ３）３６−４、Ｂｏｏｔｈデコード回路４０−４、及び演算器４１−４乃至４３−４を含む。これらの回路及びレジスタは、変換対象２進数の第ｋビット〜第６３ビットの上位６３−（ｋ−１）ビットを１０進数に変換する。
【００７７】
図１５に示す各回路及びレジスタの機能及び動作は、図６及び図８に示す対応する名称の各回路及びレジスタの機能及び動作と同様である。但し、データレジスタ３０−１乃至３０−４の初期値はそれぞれ適切な値に設定される。即ち、所定数倍されていく１０進数の初期値は、それぞれ対応するビット位置に応じた２の冪乗の数となる。
【００７８】
図１５に示す変換回路においては、変換対象の２進数を４つに分割し、それぞれについて図６の変換回路による変換処理を並列に実行する。これにより、変換回路を４セット用いた８ビットの並列処理が実現できる。
【００７９】
以上、本発明を実施例に基づいて説明したが、本発明は上記実施例に限定されるものではなく、特許請求の範囲に記載の範囲内で様々な変形が可能である。
【符号の説明】
【００８０】
３０  データレジスタ
３１  バイナリデータレジスタ
３２  倍数生成回路
３３  ビットシフト回路
３４  選択回路
３５  加算回路
３６  アキュムレータレジスタ
【図１】
2012209755.tif 000003
【図２】
2012209755.tif 000004
【図３】
2012209755.tif 000005
【図４】
2012209755.tif 000006
【図５】
2012209755.tif 000007
【図６】
2012209755.tif 000008
【図７】
2012209755.tif 000009
【図８】
2012209755.tif 000010
【図９】
2012209755.tif 000011
【図１０】
2012209755.tif 000012
【図１１】
2012209755.tif 000013
【図１２】
2012209755.tif 000014
【図１３】
2012209755.tif 000015
【図１４】
2012209755.tif 000016
【図１５】
2012209755.tif 000017