JPH10510383A - シフト手段を使用した累乗回路および使用方法 - Google Patents

シフト手段を使用した累乗回路および使用方法

Info

Publication number
JPH10510383A
JPH10510383A JP8527570A JP52757096A JPH10510383A JP H10510383 A JPH10510383 A JP H10510383A JP 8527570 A JP8527570 A JP 8527570A JP 52757096 A JP52757096 A JP 52757096A JP H10510383 A JPH10510383 A JP H10510383A
Authority
JP
Japan
Prior art keywords
value
output
signal
circuit
input
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.)
Pending
Application number
JP8527570A
Other languages
English (en)
Inventor
マイケル バス・ジョン
ドウォルキン・ジェームズ
エドワード ロイド・スコット
ウェイ パン・シャオ
エル スミス・ステファン
トーマス ワン・シェイ−ピン
Original Assignee
モトローラ・インコーポレーテッド
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 モトローラ・インコーポレーテッド filed Critical モトローラ・インコーポレーテッド
Publication of JPH10510383A publication Critical patent/JPH10510383A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/02Digital function generators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods 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/544Methods 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 for evaluating functions by calculation
    • G06F7/556Logarithmic or exponential functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods 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/544Methods 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 for evaluating functions by calculation
    • G06F7/552Powers or roots, e.g. Pythagorean sums

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Mathematical Optimization (AREA)
  • Complex Calculations (AREA)
  • Error Detection And Correction (AREA)

Abstract

(57)【要約】 指数関数信号xgを計算するための回路および方法が提供される。該回路は入力信号を入力信号xの対数を表す2進ワードに変換する対数変換器(4)を含む。第1のシフトレジスタ(8)が2進ワードをビットごとの様式でシフトして第1の中間値を生成し、一方第2のシフトレジスタ(28)が前記2進ワードをビットごとの様式でシフトして第2の中間値を生成する。前記シフトレジスタはマルチプレクサを使用して構成できる。シフト動作は中間値を2の累乗である係数によって乗算することと等価である。前記第1の中間値は第2の中間値に対して加算されあるいは減算されて組み合わされた値を生成する。逆対数変換器(34)が該組み合わされた値を指数関数信号に変換する。

Description

【発明の詳細な説明】 シフト手段を使用した累乗回路および使用方法 関連発明の説明 本発明は本発明と同じ譲受人に譲渡された以下の発明に関連している。 (1)1994年1月3日に出願された、米国特許出願シリアル番号第08/ 176,601号、「対数関数を使用したニューラルネットワークおよび使用方 法(Neural Network Utilizing Logarithm ic Function and Method of Using Same )」。 (2)1995年1月31日に出願された、米国特許出願シリアル番号第08 /382,467号、「2次項を使用した対数/逆対数変換器および使用方法( Logarithm/Inverse−Logarithm Converte r Utilizing Second−Order Term and Me thod of Using Same)」。 (3)1995年3月13日に出願された、米国特許出願シリアル番号第08 /403,158号、「対数変換を使用したコンピュータプロセッサおよびその 使用方法(Computer Processor Utilizin g Logari thmic Conversion and Method of Use Thereof)」。 上に示した関連発明の主題は参照のためこの発明の開示に導入される。 技術分野 本発明は一般的には電子回路に関し、かつより特定的には、入力信号に応じて 指数または指数関数信号(exponential signal)を発生する ための回路に関する。 発明の背景 デジタルコンピュータにおいて指数関数値、xg、を計算することは急速にあ りふれたタスクになりつつある。指数関数値は、非線形制御、デジタル信号処理 、シミュレーション、および暗号化のような、広範囲のコンピュータのアプリケ ーションにおいて使用される。しかしながら、伝統的な指数関数値を計算するた めの技術はいくつかの欠点を有している。 指数関数値(exponential values)を計算するために一般 に使用される1つの手法はコンピュータの一部として2進乗算回路を提供するこ とである。実際に、今日のマイクロプロセッサの多くはそれらのコア論理に1つ またはそれ以上の乗算器を含んでいる。典型的に は、乗算器は一度に2つのオペランドを乗算することができる。指数関数値xg を計算するためには、入力値、x、が前記乗算器の両方の入力に与えられる。次 に、乗算器はx2の出力を生成する。もしより高い次数の指数関数値が望まれれ ば、例えば、x9が望まれれば、乗算器の出力は乗算器入力の一方または双方に フィードバックされかつ所望の指数関数値が計算されるまで乗算−フィードバッ クサイクルが反復される。 この手法はいくつかの欠点を有する。第1に、伝統的な2進乗算回路は集積回 路において比較的多量の空間を必要とする。さらに、それらは典型的には低速で あり、いくつかの場合には単一の乗算を完了するのに多数のクロックサイクルを 必要とし、かつそれらは通常、加算器のような、他の算術演算回路と比較したと き多量の電力を消費する。この手法の他の制約はそれが2より大きいべき指数( power)を有する指数関数値を計算するためには余分の乗算サイクルを必要 とすることである。例えば、x16の指数関数値を計算するためには単一の乗算回 路を使用して少なくとも4つの乗算サイクルを必要とする。その結果、そのよう な計算はコンピュータのスループットを劇的に低減することになる。 指数関数値を計算するための他の知られた技術はアナログ入力値から指数関数 値を決定するアナログ回路を提供することである。典型的には、前記指数関数値 もまたアナロ グ信号でありコンピュータによって使用される前にアナログ−デジタル変換器に よって2進ワードに変換されなければならない。アナログ累乗回路は通常2進ワ ードを再帰的にまたは繰り返し乗算する上に述べた技術よりも指数関数値を計算 するのに必要な時間が少ないが、それらは一般に高価でありかつデジタルコンピ ュータと共に集積するのが困難である。 要するに、指数関数値を計算するための装置が必要であり、この場合該装置は 実質的により少ない時間で指数関数値を計算し、集積回路上のより少ないスペー スおよび電力を要求し、かつ上に述べた伝統的な技術よりもより経済的にデジタ ルコンピュータと集積できることが必要である。 図面の簡単な説明 本発明は特に添付の請求の範囲に示されている。しかしながら、本発明の他の 特徴は添付の図面と共に以下の詳細な説明を参照することによりさらに明瞭にな りかつ本発明を最もよく理解することができ、図面においては、 図1は、本発明の1実施形態に係わる累乗回路のブロック図を示す。 図2は、本発明の他の実施形態に係わる累乗回路のブロック図を示す。 図3は、図2の累乗回路と共に使用できる指数コードの例を示す図表である。 図4は、図2の累乗回路と共に使用できる指数コードの別の例を示す第2の図 表である。 図5は、本発明のさらに別の実施形態に係わる累乗回路のブロック図を示す。 図6は、本発明の好ましい実施形態に係わる累乗回路のブロック図を示す。 図7は、図6の累乗回路と共に使用できる指数コードの例を示す図表である。 図8は、複数の計算要素を含む累乗回路のブロック図を示す。 図9は、本発明の1実施形態に従った累乗回路を含むコンピュータシステムの ブロック図を示す。 図10は、入力信号から指数関数信号を発生する方法の流れ図を示す。 図11は、一連の入力から発生される複数の指数関数信号を含む項を発生する 方法の流れ図を示す。 好ましい実施形態の詳細な説明 本発明の1つの利点は高いデータスループットレートを有するべき乗または累 乗回路(exponentiation circuit)を提供することであ る。本発明の他の利点は実質的により少ない電力および集積回路上のより少ない スペースを要求する累乗回路を提供することである。本発明のさらに他の利点は 実施するのが経済的であり かつ単一のチップ上にマイクロプロセッサコアまたは他のデジタル論理と共に集 積するのが容易な累乗回路を提供することである。 一般に、本発明は入力信号から指数関数信号を計算するための回路を提供する 。これは入力信号から2進対数値を発生するために対数変換器を使用することに よって達成される。シフトレジスタが次に前記2進対数値のビットをシフトして 中間値を発生する。シフト動作は2の累乗である係数によって前記2進対数値を 乗算することと等価である。前記中間値は次にある記憶された値と組み合わされ 、かつ組み合わされた値に対して逆対数変換を行うことにより指数関数信号が発 生される。 図1は、本発明の1実施形態に係わる累乗回路40のブロック図を示す。累乗 回路40は対数回路4、計算要素9、および逆対数回路34を備えている。計算 要素9はシフトレジスタ8、P/Iユニット12、加算回路24、レジスタ28 、および制御ユニット16を含む。対数回路4はその入力2において入力信号を 受けかつ各々の入力信号を複数のビットを有する2進対数値(binary l ogvalue)6に変換する。2進対数値6を受けると、シフトレジスタ8は 入力に対して算術シフト(arithmetic shift)を行って中間値 10を発生する。シフトの距離は制御ユニット16によって生成されるシフト信 号18によって決定される。中間値10を受信した後、 P/Iユニット12は中間値10をバス14に渡すかあるいは中間値10を反転 しかつ次に反転した値をバス14に渡す。P/Iユニット12の機能は制御ユニ ット16によって提供される制御信号20によって決定される。加算回路24は フィードバック経路30に渡って受信された記憶された値、バス14上に提供さ れる値、およびキャリービット22を加算して出力26上に結合値または組み合 わされた値(combined value)を生成する。該組み合わされた値 はレジスタ28に記憶される。レジスタ28は前記組み合わされた値をバス32 によって逆対数回路34に提供しかつフィードバック経路30により前記記憶さ れた値として提供する。逆対数回路34は前記組み合わされた値の逆対数をとる ことによって出力36上に指数関数信号を生成する。 対数回路4は入力信号を該入力信号の対数を表す2進値に変換する任意の手段 とすることができる。例えば、対数回路は対数伝達関数を有する増幅器を含むア ナログ回路および該増幅器の出力を2進ワードに変換するアナログ−デジタル変 換器とすることができる。そのような例では、入力信号は増幅器のダイナミック レンジに渡り連続的に変化する電流または電圧とすることができる。しかしなが ら、好ましい実施形態では、対数回路4は前に示した関連発明(2)に開示され た対数変換器を含む。この対数変換器はIEEE標準32ビット浮動小数点値で 表される入力信号 を受けかつ2次多項式を実施して8ビットの整数部分および23ビットの小数部 分を有する2進対数値を発生する。各々の入力信号の符号ビットは直接逆対数回 路34に渡され(図示せず)、そこで、これもまたIEEE標準32ビット浮動 小数点値によって表される、対応する指数関数信号と再結合される。 逆対数回路34は2進ワードを入力として受けかつ出力として該2進ワードの 逆対数を生成する任意の手段とすることができる。しかしながら、好ましい実施 形態では、逆対数回路34は前記関連発明(2)に開示された逆対数変換器を含 む。この逆対数変換器は前記組み合わされた値の小数および整数部分の双方を受 けかつ、次に、IEEE32ビット浮動小数点値によって表される指数関数信号 を発生する。そのような逆対数変換器は浮動小数点指数関数信号をそのそれぞれ の符号ビットと再結合するための手段(図示せず)を含む。 好ましい実施形態では、前記対数回路4、計算要素9、および逆対数回路34 は単一の集積回路上に構成される。しかしながら、当業者は対数回路4または逆 対数回路34は数多くの他の方法で実施することができかつそれでも本発明の教 示に適合することを理解するであろう。例えば、いずれの回路も、マイクロプロ セッサのような、汎用プロセッサ上で動作するソフトウエアとして実施すること ができ、あるいは独立型の(stand−alone)アナロ グ回路として実施することもできる。さらに、当業者は前記対数および逆対数変 換は任意の記数法(number system)に基づくものとすることがで きることを理解するであろう。 シフトレジスタ8はそれがビットごとの(bit−wise)様式で受ける値 をシフトするために使用される。シフト動作は2進対数値6を2の累乗(pow er of two)である係数によって乗算しあるいは除算するのと等価であ る。シフトされた結果は中間値10である。本発明の実施形態は値がシフトされ るビット距離に関して何らの制限も与えないが、好ましい実施形態はシフトレジ スタ8は2進対数値を0〜3ビットの範囲のビット距離シフトできるようにする 。各々の2進対数値6がシフトされる距離は制御ユニット16によって提供され るシフト信号18によって決定される。2進対数値6のビットを該値の最上位ビ ット(MSB)の方向に(典型的には左に)シフトすることにより、シフトレジ スタ8は2の累乗である係数によって乗算された中間値10を生成する。これに 対し、2進対数値6のビットを該値の最下位ビット(LSB)の方向に(典型的 には右に)シフトすることにより、シフトレジスタ8は2の累乗である係数によ って除算された中間値10を生成する。従って、シフトレジスタ8がある値を左 にシフトする場合、累乗回路40はx2,x4その他のような、整数指数を有する 指数関数信号を生成し、この場合 xは入力信号を表し、一方右にシフトすることは、x1/2,x1/4その他のような 、分数指数を有する指数関数信号を生成し、この場合xは入力信号を表している 。 P/Iユニット12は制御ユニット16からの制御信号20に応じて中間値1 0を反転する。P/Iユニット12に中間値10を反転させることによりかつ反 転された値に対応するキャリービット22を提供することにより、制御ユニット 16は中間値10をその2の補数形式(two′s complement f orm)に変換し、従って加算回路24がバス14上に得ることができるその変 換された中間値を前記記憶された値から減算できるようにする。 加算回路24およびレジスタ28は一連の中間値が累算されるようにいっしょ に機能する。さらに、レジスタ28は、係数値のような、ある値をあらかじめロ ードすることができる。加算回路24はそれがバス14およびフィードバック経 路30において受ける値を加算して組み合わされたまたは結合された値を発生し 該値は次にレジスタ28に記憶される。組み合わされた値は単に加算回路24の 2つの入力に提供される値の合計である。フィードバック経路30に提供される 記憶された値はレジスタ28の内容である。 制御ユニット16は典型的には複数の指数コード(exponent cod es)(図示せず)を記憶し、この場合各々の指数コードは1つの入力信号に対 応する。各々 の入力信号が累乗回路40によって受信されたとき、制御ユニット16は対応す る指数コードをデコードしてシフト信号18、制御信号20、およびキャリービ ット22を発生し、これらすべては入力信号に対応する。しかしながら、本発明 の別の態様では、指数コードは制御ユニット16に接続されているが累乗回路4 0とは別個のコード発生手段、例えば指数コードを記憶するための別個のメモリ または回路に接続されたマイクロプロセッサのようなホストプロセッサ、により 提供される。 動作においては、累乗回路40は単一の入力信号に対する指数信号または一連 の入力信号から計算された複数の指数信号を含む1つのタームまたは項(ter m)を計算することができる。いずれの場合にも、単一の入力信号から指数信号 を計算することは1つまたはそれ以上の加算サイクルを必要とする。これは加算 サイクルが実行している間に2進対数値6を記憶するための付加的な記憶手段( 図示せず)を提供しかつ各々のサイクルの間に記憶された2進対数値をP/Iユ ニット12に提供することによって達成される。そのような記憶手段は対数回路 4またはシフトレジスタ8のいずれに導入することもできる。 累乗回路40の動作はx7の指数関数信号の計算の例を考察することにより説 明でき、この場合xは入力信号を表す。x7の計算は2つ加算サイクルを必要と する。各サイクルの間に、シフトレジスタ8は異なる中間値10を提供 する。 最初の加算サイクルの間に、入力信号、x、は対数回路4によって2進対数値 6に変換されかつ前記付加的な記憶手段およびシフトレジスタ8に与えられる。 制御ユニットはシフトレジスタ8が前記2進対数値6を3ビットの距離だけシフ トするようにシフト信号18を発生し、従って2進対数値6の8の倍数である中 間値10を生成する。制御ユニット16はまた制御信号20を発生し、それによ って前記中間値10が影響を受けることなくP/Iユニット12を通ってバス1 4を介し加算回路24に渡されるようにする。加算回路24は次に前記中間値を レジスタ28に記憶された値と加算し、該値はフィードバック経路30によって 提供される。始めに、前記記憶された値はゼロまたはある係数値にセットされる 。レジスタ28の内容は次に結合された値へと更新され、これは加算回路24の 出力26上に提供される。 第2の加算サイクルの間に、制御ユニット16はキャリービット22およびシ フト信号18を発生し、それによってシフトレジスタ8が前記記憶された2進対 数値をシフトすることなく通過されるようにする。制御ユニット16はまたP/ Iユニット12が中間値10を反転するように制御信号20を発生する。この反 転の結果、加算回路24は実質的に中間値10をフィードバック経路30によっ て提供された前記記憶された値から減算し2進対数値6の7の 倍数である最終的な組み合わされた値を生成する。最終的な組み合わされた値は 次にレジスタ28に記憶されかつバス32によって逆対数回路34に提供される 。逆対数回路34は記憶された値に対して逆対数変換を行うことにより指数信号 、x7、を生成する。 図2は、本発明の他の実施形態に係わる累乗回路100のブロック図を示す。 累乗回路100はそれが1つまたはそれ以上の指数関数信号を含む項を計算する 点において図1に示された累乗回路40と同じ機能を行う。しかしながら、累乗 回路100は付加的なシフトレジスタを含み、従って図1の累乗回路40よりも 必要な加算サイクルが少なくなる。累乗回路100は対数回路4、計算要素99 、および逆対数回路34を具備する。計算要素99はP/Iユニット72、P/ Zユニット60、第1のシフトレジスタ56、第2のシフトレジスタ68、第1 のマルチプレクサ64、第2のマルチプレクサ76、加算回路80、デマルチプ レクサ84、第1のレジスタ94、第2のレジスタ90、および制御ユニット1 04を含む。 対数回路4はその入力2において1つまたはそれ以上の入力信号を受けかつ各 々の入力信号を複数のビットを有する2進対数値に変換する。該2進対数値は次 にバス54によって第1のシフトレジスタ56および第2のシフトレジスタ68 に分配される。2進対数値を受信すると、第1のシフトレジスタ56はその値に 対して算術シフトを行い第 1の中間値をバス58上に発生する。シフトの距離は制御ユニット104によっ て生成される第1のシフト信号106によって決定される。第2のシフトレジス タ68は前記2進対数値に対して算術シフトを行いバス70上に第2の中間値を 発生する。シフトの距離は制御ユニット104によって生成される第2のシフト 信号108によって決定される。第1のシフトレジスタ56および第2のシフト レジスタ68の双方は2進対数値を右または左にシフトすることができる。 入力をバス70上に受信した後、P/Iユニット72は前記第2の中間値をバ ス74に通過させるかあるいは前記中間値を反転しかつ次に反転された値をバス 74に渡す。P/Iユニット72の機能は制御ユニット104によって提供され る第2の制御信号120によって決定される。P/Zユニット60は制御ユニッ ト104によって提供される第1の制御信号110の値に応じて、前記第1の中 間値をあるいはゼロをバス62に渡す。 第1のマルチプレクサ64はその出力66にバス62、フィードバックバス9 6、または第2のレジスタ90の出力92を接続する。第1のマルチプレクサ6 4の出力66は制御ユニット104によって提供される第1のmux信号112 によって決定される。第2のマルチプレクサ76はその出力78にバス74、ま たは第2のレジスタ90の出力92を結合する。第2のマルチプレクサ76の出 力7 8は制御ユニット104によって提供される第2のmux信号116によって決 定される。 加算回路80は第1および第2のマルチプレクサ64,76の出力66および 78を加算する。デマルチプレクサ84は、de−mux信号118の値に応じ て、加算回路80の出力82を第2のレジスタ90または第1のレジスタ94に 提供する。第1のレジスタ94は、合計である、その内容をフィードバックバス 96および出力98に提供し、一方第2のレジスタはその内容をその出力92に 組み合わされたまたは結合された値として提供する。逆対数回路34は、1つま たはそれ以上の指数関数信号を表す、1つの項を前記合計の逆対数をとることに よって出力36上に発生する。 制御ユニット104は典型的には複数の指数コード(図示せず)を記憶し、こ の場合各々の指数コードは1つの入力信号に対応する。入力信号が累乗回路10 0によって受信されると、制御ユニット104は対応するコードをデコードして 第1および第2の制御信号110,120、第1および第2のシフト信号106 ,108、第1および第2のmux信号112および116、de−mux信号 118、およびキャリービット114を発生する。しかしながら、本発明の他の 態様では、前記指数コードは、指数コードを記憶するための別個のメモリまたは ホストプロセッサ、例えば回路に接続されたマイクロプロセッサ、のような制 御ユニット104に接続されているが累乗回路100とは別個のコード発生手段 によって提供される。 動作においては、累乗回路100は単一の入力信号に対する指数値または一連 の入力信号から計算された複数の指数信号を含む1つの項を計算することができ る。いずれの場合も、単一の入力信号から指数信号を計算することは好ましい実 施形態では1つの加算サイクルを必要とするのみである。しかしながら、複数の 指数値を含む項を計算するためにはそれぞれの入力信号に対して2つの加算サイ クルを必要とする。これは次のように説明される。入力信号が受信されたとき、 第1の加算サイクルの結果が前記結合された値として第2のレジスタ90に格納 される。これは制御ユニット104により第1および第2のmux信号112, 116を肯定することによって達成され、それによってP/Iユニット72およ びP/Zユニット60の出力が加算回路80に提供される。さらに、制御ユニッ ト104は第2のレジスタ90を選択するためにde−mux信号118を肯定 する。 前記第2のサイクルの間に、記憶された値および前記組み合わされた値がそれ ぞれフィードバックバス96および出力92を介して加算回路80の入力に与え られる。第2の加算サイクルによって生成される合計は次に第1のレジスタ94 における記憶された値を更新する。第2のサイクルは制御ユニット104が第1 および第2のmux信号1 12,116を肯定することによって達成され、それによって出力92およびフ ィードバックバス96が加算回路80への入力として提供される。制御ユニット 104は次にde−mux信号118を肯定して第1のレジスタ94を選択し、 それによってこのサイクルの結果が第1のレジスタ94に置かれる。 動作においては、第1のレジスタ94における記憶された値は典型的には先行 する入力信号から順次発生された中間値の和である。しかしながら、始めに前記 記憶された値はある定数の対数である係数値とすることができる。前記第1およ び第2のレジスタ94,95もまたゼロにプリセットすることができる。 図3は、図2の累乗回路100と共に使用できる指数コードの例を示す図表で ある。この図表は指数コードおよび本発明の好ましい実施形態において使用され るそれらの対応する制御およびシフト信号を示している。この図表はまた加算回 路80の動作および各々の指数コードに応じたキャリービット114の値を示し ている。この図表の各行は指数コードの1つに対応する信号の値およびキャリー ビットを示している。 例えば、第1の行では、指数コード“000”は累乗回路100によってx-1 が発生されるべきことを示している。もしある入力信号に対する指数コードが’ “000”であれば、第2の中間値は2進対数値に等しくされ、第1の 中間値はゼロにセットされ、そして前記組み合わされた値は前記第1の中間値か ら第2の中間値を減算することによって生成される。 第2の行では、指数コード“001”x1が発生されるべきことを示している 。もしある入力信号に対して指数コードが“001”であれば、第2の中間値は 2進対数値に等しくされ、第1の中間値はゼロにセットされ、かつ前記組み合わ された値は第2の中間値を第1の中間値に加算することによって生成される。 第3の行においては、指数コード“010”はx2が発生されるべきことを示 している。もしある入力信号に対して指数コードが“010”であれば、該指数 コードはx2が発生されるべきことを示しており、従って第2の中間値が前記2 進対数値を1ビットの距離だけ左にシフトすることにより発生され、第1の中間 値はゼロにセットされ、かつ前記組み合わされた値は第2の中間値を第1の中間 値に加算することにより生成される。 第4の行では、指数コード“011”はx3が発生されるべきことを示してい る。もしある入力信号に対する指数コードが“011”であれば、第2の中間値 は2進対数値を1ビットの距離だけ左にシフトすることにより発生され、第1の 中間値は2進対数値に等しくされ、かつ前記組み合わされた値は前記第2の中間 値を前記第1の中間値に加算することにより生成される。 第5の行においては、指数コード“100”はx4が発生されるべきことを示 している。もしある入力信号に対して指数コードが“100”であれば、第2の 中間値は2進対数値を2ビットの距離だけ左にシフトすることにより発生され、 第1の中間値はゼロにセットされ、かつ前記組み合わされた値は第2の中間値を 第1の中間値に加算することにより生成される。 第6の行においては、指数コード“101”はx5が発生されるべきことを示 している。もしある入力信号に対する指数コードが“101”であれば、第2の 中間値は2進対数値を2ビットの距離だけ左にシフトすることにより発生され、 第1の中間値は2進対数値に等しくされ、かつ前記組み合わされた値は第2の中 間値を第1の中間値に加算することにより生成される。 第7の行においては、指数コード“110”はx6が発生されるべきことを示 している。もしある入力信号に対して指数コードが“110”であれば、第2の 中間値は2進対数値を2ビットの距離だけ左にシフトすることにより発生され、 第1の中間値は2進対数値を1ビットの距離だけ左にシフトすることにより発生 され、かつ前記組み合わされた値は第2の中間値を第1の中間値に加算すること により発生される。 第8の行においては、指数コード“111”はx7が発生されるべきことを示 している。もしある入力信号に対す る指数コードが“111”であれば、第2の中間値は2進対数値に等しくされ、 第1の中間値は2進対数値を3ビットの距離だけ左にシフトすることにより発生 され、かつ前記組み合わされた値は第2の中間値を第1の中間値から減算するこ とにより生成される。 図4は、図2の累乗回路と共に使用できる指数コード(exponent c odes)の別の例を示す第1の図表である。このテーブルは前記コードおよび それらの対応する制御およびシフト信号を示している。この図表はまた前記指数 コードの各々に応じた加算回路80の動作およびキャリービット114の値を示 す。この図表の各行(row)は前記指数コードの1つに対応する前記信号の値 およびキャリービットを与えている。 例えば、第1の行においては、指数コード“000”はx-1が累乗回路100 によって発生されるべきことを示している。もしある入力信号に対する指数コー ドが“000”であれば、第2の中間値は2進対数値に等しくされ、第1の中間 値はゼロにセットされ、かつ前記組み合わされた値または結合された値は第1の 中間値から第2の中間値を減算することによって生成される。 第2の行においては、指数コード“001”はx-1/2が発生されるべきことを 示している。もしある入力信号に対する指数コードが“001”であれば、第2 の中間値は前記2進対数値を1ビット右にシフトすることにより発 生され、第1の中間値は2進対数値にセットされ、かつ前記組み合わされた値は 第2の中間値から第1の中間値を減算することにより生成される。 第3の行においては、指数コード“010”はx1/2が発生されるべきことを 示している。もしある入力信号に対する指数コードが“010”であれば、第2 の中間値は1ビット右にシフトされ、第1の中間値はゼロにセットされ、かつ前 記組み合わされた値は第2の中間値を第1の中間値に加算することにより生成さ れる。 第4の行においては、指数コード“011”はx1が発生されるべきことを示 している。もしある入力信号に対する指数コードが“011”であれば、第2の 中間値は2進対数値に等しくされ、第1の中間値はゼロにセットされ、かつ前記 組み合わされた値は第2の中間値を第1の中間値に加算することにより生成され る。 第5の行においては、指数コード“100”はx2が発生されるべきことを示 している。もしある入力信号に対する指数コードが“100”であれば、該指数 コードはx2が発生されるべきことを示しており、その場合第2の中間値は2進 対数値を1ビットの距離だけ左にシフトすることにより発生され、第1の中間値 はゼロにセットされ、かつ前記組み合わされた値は第2の中間値を第1の中間値 に加算することにより生成される。 第6の行においては、指数コード“101”はx3が発 生されるべきことを示している。もしある入力信号に対する指数コードが“10 1”であれば、第2の中間値は前記2進対数値を1ビットの距離だけ左にシフト することにより発生され、第1の中間値は2進対数値に等しくされ、かつ前記組 み合わされた値は第2の中間値を第1の中間値に加算することにより生成される 。 第7の行においては、指数コード“110”はx4が発生されるべきことを示 している。もしある入力信号に対する指数コードが“110”であれば、第2の 中間値は2進対数値を2ビットの距離だけ左にシフトすることにより発生され、 第1の中間値はゼロに等しくセットされ、かつ前記組み合わされた値は第2の中 間値を第1の中間値に加算することにより生成される。 第8の行においては、指数コード“111”はx5が発生されるべきことを示 している。もしある入力信号に対する指数コードが“111”であれば、第2の 中間値は2進対数値を2ビットの距離だけ左にシフトすることにより発生され、 第1の中間値は2進対数値に等しくされ、かつ前記組み合わされた値は第2の中 間値を第1の中間値に加算することにより生成される。 図5は、本発明のさらに別の実施形態に係わる累乗回路192のブロック図を 示す。累乗回路192はそれが1つまたはそれ以上の指数関数信号を含む項また はタームを計算する点で図2に示される累乗回路100と同じ機能を行 う。しかしながら、累乗回路192は第2の加算回路166を含み、従って入力 信号ごとに1つの加算サイクルを必要とするのみである。図5の累乗回路192 は図2の累乗回路100よりも高速にすることができるが、それは集積回路とし て実施された場合により多くのスペースを消費する。 累乗回路192は対数回路4、計算要素191、および逆対数回路34を備え ている。計算要素191はP/Iユニット160、P/Zユニット150、第1 のシフトレジスタ146、第2のシフトレジスタ156、第1の加算回路154 、第2の加算回路166、レジスタ170、および制御ユニット180を含んで いる。 対数回路4はその入力2において1つまたはそれ以上の入力信号を受けかつ各 々の入力信号を複数のビットを有する2進対数値に変換する。該2進対数値は次 にバス144によって第1のシフトレジスタ146および第2のシフトレジスタ 156に分配される。2進対数値を受信すると、第1のシフトレジスタ146は その入力に対して算術シフトを行い第1の中間値をバス148上に発生する。シ フトの距離は制御ユニット180によって生成される第1のシフト信号182に よって決定される。第2のシフトレジスタ156はバス144上にそれが受ける 入力に対して算術シフトを行い、それによってバス158上に第2の中間値を発 生する。該シフトの距離は制御ユニット180によっ て生成される第2のシフト信号189によって決定される。 バス158上に入力を受信すると、P/Iユニットは前記2進対数値をバス1 62に渡すか、あるいは前記2進対数値を反転しかつ次にその反転された値をバ ス162に渡す。P/Iユニット160の機能は制御ユニット180によって提 供される第2の制御信号によって決定される。P/Zユニット150は制御ユニ ット180によって提供される第1の制御信号184の値に応じて、2進対数値 あるいはゼロをバス152に渡す。 第1の加算回路154はバス152,162によって提供されるP/Zユニッ ト150およびP/Iユニット160の出力を加算する。第1の加算回路154 の出力164は第2の加算回路166に供給される。第2の加算回路166はま たフィードバックバス172によってレジスタ170の出力を受けかつ結果とし ての合計を発生しこれは出力168によってレジスタ170に提供される。逆対 数回路34は出力174によってレジスタ170に提供される前記合計に対して 逆対数変換を行うことにより出力36に1つまたはそれ以上の指数関数信号を表 す項を発生する。 制御ユニット180は典型的には複数の指数コード(図示せず)を記憶し、こ の場合各々の指数コードは1つの入力信号に対応する。各々の入力信号が累乗回 路192によって受信されたとき、制御ユニット180は対応するコードをデコ ードして第1および第2の制御信号184,18 8、第1および第2のシフト信号182,189、およびキャリービット186 を発生する。 動作においては、累乗回路192は単一の入力信号に対する指数信号あるいは 一連の入力信号から計算された複数の指数信号を含む1つの項を計算することが できる。いずれの場合も、単一の入力信号から指数信号を計算するためには1つ の加算サイクルを必要とするのみである。 図6は、本発明の好ましい実施形態に係わる累乗回路のブロック図を示す。好 ましい累乗回路218はそれが1つまたはそれ以上の指数関数信号を含む項を計 算する点で図2および図5に示される累乗回路100,192と同じ機能を達成 する。さらに、図5に示される累乗回路192のように、この好ましい実施形態 に係わる累乗回路218は入力信号ごとに1つの加算サイクルを必要とするのみ である。しかしながら、図5の累乗回路192に対し、好ましい累乗回路218 はシフトレジスタの代わりにマルチプレクサを使用しかつ従って図5の累乗回路 192よりも必要な電力およびシリコンスペースが少なくなる。 累乗回路218は対数回路4、計算要素217、および逆対数回路34を具備 する。計算要素217は第1のマルチプレクサ199、第2のマルチプレクサ2 03、第3のマルチプクサ210、第1の加算回路208、第2の加算回路21 2、レジスタ214、および制御ユニット201を具備する。 対数回路4はその入力2において1つまたはそれ以上の入力信号を受けかつ各 々の入力信号を複数のビットを有する2進対数値に変換する。該2進対数値は次 にバス190によって第1のマルチプレクサ199および第2のマルチプレクサ 203に分配される。各々のマルチプレクサは4つの入力の内の1つから選択を 行う。第1および第2のマルチプレクサは共にパス入力193a−bおよびゼロ 入力194a−bを供給される。さらに、第1のマルチプレクサ199は1ビッ トの左シフト入力195および1ビットの右シフト入力196を受け、一方第2 のマルチプレクサ203は反転入力197および2ビットの左シフト入力198 を受ける。第1および第2のマルチプレクサ199,203への入力はそれぞれ 第1のmux信号200および第2のmux信号202に従って選択される。 第1および第2のマルチプレクサ199,203への種々の入力は2進対数値 の異なるビットスライスを備える。例えば、パス入力193a−bは単に2進対 数値であり、一方ゼロ入力194a−bはそのすべてのビットがゼロにセットさ れた2進ワードである。これに対し、前記1ビット左シフト入力195は効果的 に1ビット左にシフトされた2進対数値を提供する。これはバス192の最も右 の(right−most)n−1ビットをマルチプレクサ入力の最も左の(l eft−most)n−1ビットに接続することにより達成され、この場合nは 2進対数値のビ ット数である。ゼロがマルチプレクサ入力の最下位ビット(最も右のビット)に 提供される。2ビット左シフト入力198は効果的に左に2ビットシフトされた 2進対数値を提供する。これはバス192の最も右のn−2ビットをマルチプレ クサ入力の最も左のn−2ビットに接続することにより達成される。ゼロがマル チプレクサ入力の2つの最下位ビットに提供される。前記1ビットの右シフト入 力196は効果的に右に1ビットシフトされた2進対数値を提供する。これはバ ス192の最も左のn−1ビットをマルチプレクサ入力の最も右のn−1ビット に接続することによって達成される。ゼロがマルチプレクサ入力の最上位ビット (最も左のビット)に提供される。反転された入力197は前記2進対数値のビ ットを反転することにより生成される。これは2進対数値の1の補数形式を提供 する。 前記第1の加算回路208は第1および第2のマルチプレクサ199,203 の出力を加算する。第1の加算器154はまたキャリービット206および加算 イネーブル信号205に応答する。第1の加算器208の出力は第3のマルチプ レクサ210に供給される。第3のマルチプレクサ210は制御ユニット201 によって発生される第3のmux信号204に従って第1のマルチプレクサ19 9、第2のマルチプレクサ203、または第1の加算回路208の出力を選択す る。 第2の加算器212は第3のマルチプレクサ210の出 力およびフィードバック経路216によって供給される記憶された値を加算する 。第2の加算回路212の出力はレジスタ214に記憶される。始めに、レジス タ214は、ある係数値またはゼロのような、ある値でプリロードすることがで きる。レジスタ214の出力は前記フィードバック経路216および逆対数変換 器34に供給される。逆対数変換器34はレジスタ214によって提供される前 記合計値に対し逆対数変換を行うことにより出力36上に1つまたはそれ以上の 指数関数信号を表す項を発生する。 制御ユニット201は典型的には複数の指数コード(図示せず)を記憶し、こ の場合各々の指数コードは1つの入力信号に対応する。各々の入力信号が累乗回 路218によって受信されたとき、制御ユニット201は対応するコードをデコ ードして前記第1、第2および第3のmux信号200,202および204、 加算器イネーブル信号205、およびキャリービット206を発生する。しかし ながら、本発明の他の態様では、指数コードは制御ユニット201に接続される が累乗回路218とは別個のものであるコード発生手段、例えば指数コードを記 憶するための別個のメモリまたは回路218に接続されたマイクロプロセッサの ようなホストプロセッサ、によって提供することができる。 動作においては、累乗回路218は単一の入力信号に対する指数関数信号また は一連の入力信号から計算された複 数の指数関数信号を含む項を計算できる。いずれの場合も、単一の入力信号から 指数信号を計算するためには1つの加算サイクルが必要であるにすぎない。 本発明の1実施形態では、前記累乗回路40,100,192または218は 以下の数式1で表される一般形式の項を構成するために使用できる。 【数1】 y=w*x1 g 1*x2 g2……xn gn この場合、xiは入力2によって受信された入力信号を表し、かつxi=fi( zj)のような関数とすることができ、zjは任意の変数であり、かつ指数yおよ びjは任意の整数であり、yは累乗回路の出力36を表し、wは係数値を表し、 g1,…,gnは前記項に対する指数を表し、かつnは入力の数である。 図7は、図6の累乗回路と共に使用できる指数コードの例を示す図表である。 この図表は本発明の好ましい実施形態において使用される前記コードおよびそれ らの対応するmux信号を示している。この図表はまた前記指数コードの各々に 応じて発生されるキャリービット206の値および加算器イネーブル信号205 を示している。この図表の各行は指数コードの1つに対応する信号の値およびキ ャリービットを示している。 例えば、第1の行において、指数コード“000”はx-1が累乗回路218に よって発生されるべきことを示す。もしある入力信号に対する指数コードが“0 00”であれば、第1のmux信号200はドントケア(don′t care )であり、第2のmux信号202は反転された入力197を選択するようセッ トされ、加算器イネーブル信号はゼロにセットされ、従って第1の加算器208 をディスエーブルし、第3のmux信号204は第2のマルチプレクサ203の 出力を選択するようセットされ、かつキャリービット206は1にセットされる 。実際に、2進対数値の2の補数形式が第2の加算回路212によって発生され る。 第2の行においては、指数コード“001”はx-1/2が発生されるべきことを 示している。もしある入力信号に対する指数コードが“001”であれば、第1 のmux信号200は1ビット右シフト入力196を選択するようセットされ、 第2のmux信号202は反転された入力197を選択するようセットされ、加 算器イネーブル信号205は1にセットされ、従って第1の加算器208をイネ ーブルし、第3のmux信号204は第1の加算器208の出力を選択するよう セットされ、かつキャリービット206は第1の加算器208に対して“1”に かつ第2の加算器212に対して“0”にセットされる。 第3の行においては、指数コード“010”はx1/2 が発生されるべきことを示している。もしある入力信号に対する指数コードが“ 010”であれば、第1のmux信号200は1ビット右シフト入力196を選 択するようセットされ、第2のmux信号202はドントケアであり、加算器イ ネーブル信号205は“0”にセットされ、第3のmux信号204は第1のマ ルチプレクサ199の出力を選択するようセットされ、かつキャリービット20 6は“0”にセットされる。 第4の行においては、指数コード“011”はx1が発生されるべきことを示 している。もしある入力信号に対して指数コードが“011”であれば、第1の mux信号200はパス入力193aを選択するようセットされ、第2のmux 信号202はドントケアであり、加算器イネーブル信号205は“0”にセット され、第3のmux信号204は第1のマルチプレクサ199の出力を選択する ようセットされ、そしてキャリービット206は“0”にセットされる。 第5の行においては、指数コード“100”x2が発生されるべきことを示し ている。もしある入力信号に対する指数コードが“100”であれば、第1のm ux信号200は1ビット左シフト入力195を選択するようセットされ、第2 のmux信号202はドントケアであり、加算器イネーブル信号205はゼロに セットされ、第3のmux信号204は第1のマルチプレクサ199の出力を選 択 するようセットされ、かつキャリービット206はゼロにセットされる。 第6の行においては、指数コード“101”はx3が発生されるべきことを示 している。もし指数コードがある入力信号に対して“101”であれば、第1の mux信号200は1ビット左シフト入力195を選択するようセットされ、第 2のmux信号202はパス入力193bを選択するようセットされ、加算器イ ネーブル信号205は“1”にセットされ、従って第1の加算器208をイネー ブルし、第3のmux信号204は第1の加算器208の出力を選択するようセ ットされ、かつキャリービット206はゼロにセットされる。 第7の行においては、指数コード“110”はx4が発生されるべきことを示 している。もし指数コードがある入力信号に対して“110”であれば、第1の mux信号200はドントケアであり、第2のmux信号202は2ビット左シ フト入力198を選択するようセットされ、加算器イネーブル信号205はゼロ にセットされ、第3のmux信号204は第2のマルチプレクサ203の出力を 選択するようセットされ、かつキャリービット206はゼロにセットされる。 第8の行においては、指数コード“111”はx5が発生されるべきことを示 している。もしある入力信号に対する指数コードが“111”であれば、第1の mux信号2 00はパス入力193aを選択するようセットされ、第2のmux信号202は 2ビット左シフト入力198を選択するようセットされ、加算器イネーブル信号 205は“1”にセットされ、第3のmux信号204は第1の加算器208の 出力を選択するようセットされ、そしてキャリービット206はゼロにセットさ れる。 指数コードはまたx0が発生されるべきことを示すために提供できる。そのよ うなコードは図7には示されていないが、それは“1000”のような、付加的 な指数コードを提供することにより容易に実施でき、これはデコードされたとき 第1のmux信号200がゼロ入力194bを選択し、加算器イネーブル信号2 05がゼロとなり、第3のmux信号が第1のマルチプレクサ199の出力を選 択し、そしてキャリービットをゼロにするようにさせる。第2のmux信号20 2はドントケアである。 図8は、複数の計算要素を含む累乗回路のブロック図を示す。本発明の他の実 施形態と同様に、図8の累乗回路は1つまたはそれ以上の指数関数信号を含む項 を計算する。累乗回路のこの実施形態は対数変換器220、複数の計算要素22 3、および逆対数変換器206を具備する。対数変換器220はその入力に1つ またはそれ以上の入力信号を受けかつ各々の入力信号を複数のビットを有する2 進対数値に変換する。該2進対数値は次にバス222によって前記複数の計算要 素の各々に分配される。計算要素の出力 は次にバス224によって逆対数変換器226に渡される。逆対数変換器226 は前記複数の計算要素223によって発生された出力に逆対数変換を行うことに より出力36に1つまたはそれ以上の指数関数信号を表す項を発生する。 前記複数の計算要素は図1、図2、図5および図6に示された計算要素9,9 9,191,217の内の任意のものを含むことができる。 本発明の累乗回路および図1、図2、図5、図6および図8に示されたその種 々の実施形態は好ましくは集積回路によって構成される。しかしながら、当業者 はプログラマブルロジックアレイまたは、マイクロプロセッサが実行するソフト ウエアのような、他のデジタル論理装置もまた本発明の累乗回路の種々の実施形 態によって行われる機能を実施するために使用できることを理解するであろう。 図9は、本発明の1実施形態に従った累乗回路を含むコンピュータシステムの ブロック図を示す。該コンピュータシステム230はメモリ232、プロセッサ 236、および累乗回路239を具備する。メモリ232はプロセッサ236に よって使用されるプログラムおよびデータを記憶する。動作においては、プロセ ッサ236はバス234を使用してメモリ232からプログラム命令をフェッチ する。プログラム命令の実行の結果、プロセッサ236は入力信号を累乗回路2 39に伝送しかつその後累乗回路239の出力から少なくとも1つの指数値を取 り出す。プロセッサ 236および累乗回路239の間のすべての通信はバス238によって行われる 。累乗回路239は図1、図2、図5および図6に示された累乗回路、それぞれ 、40,100,192または218の内の任意のものを含むことができる。 図10は、入力信号から指数関数信号を発生する方法の流れ図を示す。そのよ うな方法は入力信号xを有しかつ指数関数信号xgを発生する累乗回路において 使用することができる。 ボックス240において、複数のビットを有する2進対数値が入力信号に対し て対数変換を行うことにより発生される。 ボックス242において、2進対数値の複数のビットがシフトされて中間値を 発生する。シフト動作は2進対数値を2の累乗である係数によって乗算すること と等価である。 次にボックス244において、前記中間値が記憶された値と算術的に組み合わ されて組み合わされた値を生成する。2つの値は中間値を記憶された値に加算す るか、あるいは中間値を記憶された値から減算することによって組み合わせるこ とができる。 ボックス246において、記憶された値は前記組み合わされた値に等しくされ る。判断ボックス248において、入力信号が所定の指数のべき乗に達したか否 かのチェックが行われる。該所定の指数は累乗回路の制御ユニットに記 憶された指数コードに基づく指数、g、である。もし入力信号が前記所定の指数 のべき乗に達しておれば、本方法はボックス250に進む。もしそうでなければ 、本方法はボックス242に戻る。 ボックス250において、指数関数信号xgが前記組み合わされた値に対し逆 対数変換を行うことにより発生される。 図11は、一連の入力信号から発生される複数の指数関数信号を含む項を発生 する方法の流れ図を示す。この方法は一連の入力信号xiを有する累乗回路にお いて使用することができ複数の指数関数信号xi giを有する項を発生することが でき、この場合iは整数である。 ボックス260において、前記一連の入力の内の第1の入力が受信される。次 に、ボックス262において、複数のビットを有する2進対数値が前記第1の入 力に対して対数変換を行うことにより発生される。 ボックス264において、指数コードがデコードされて第1のシフト信号およ び第2のシフト信号を生成する。ボックス266において、第1のシフト信号が 前記2進対数値に適用されて第1の中間値を生成する。第1の中間値は前記2進 対数値の複数のビットをシフトすることにより、あるいは第1の中間値を2進対 数値に等しくすることにより生成できる。 ボックス268において、第2のシフト信号が前記2進 対数値に適用されて第2の中間値を生成する。第2の中間値は複数ビットの2進 対数値をシフトすることにより、あるいは第2の中間値を2進対数値に等しくす ることにより、あるいは第2の中間値をゼロにセットすることにより生成できる 。 次に、ボックス270において、第1の中間値が第2の中間値と算術的に組み 合わされて組み合わされた値を生成する。この組み合わされた値は第1の中間値 を第2の中間値に加算し、あるいは第1の中間値を第2の中間値から減算するこ とにより生成される。前記組み合わされた値は次に記憶された値と加算されて合 計を生成する。 判断ボックス272において、すべての一連の入力が受信されたか否かを判定 するためチェックが行われる。もし受信されておれば、本方法はボックス276 に進む。もし受信されていなければ、本方法はボックス274に進む。 ボックス274において、次の入力が前記一連の入力信号から受信される。次 に、第1の入力が次の入力に等しくされかつ前記記憶された値が前記合計に等し くされる。本方法は次にボックス262に戻る。 最後に、ボックス276において、前記合計に対し逆対数変換を行うことによ り、前記項が発生される。 要するに、ここに開示された本発明は2進対数値の2の累乗倍を得るために少 なくとも1つのシフトレジスタを使用する累乗回路を提供する。これは回路のデ ータのスルー プットレートを大幅に増大する。 また、本発明は加算回路を使用する累乗回路を提供し、それによって累乗に必 要とされる電力およびスペースを低減する。 本発明のさらなる利点はすべてデジタル回路を使用した累乗回路を提供するこ とであり、従って経済的に実施できかつ単一チップ上にマイクロプロセッサコア または他のデジタル論理と共に容易に集積できるようになる。 本発明の特定の実施形態が示されかつ説明されたが、当業者には開示された発 明は種々の方法で変更することができかつ特に上に述べかつ説明した好ましい形 式以外の数多くの実施形態を取り得ることは明らかであろう。 従って、添付の請求の範囲により本発明の真の精神および範囲内に入るこの発 明のすべての変更をカバーすることを意図している。
───────────────────────────────────────────────────── フロントページの続き (81)指定国 EP(AT,BE,CH,DE, DK,ES,FR,GB,GR,IE,IT,LU,M C,NL,PT,SE),OA(BF,BJ,CF,CG ,CI,CM,GA,GN,ML,MR,NE,SN, TD,TG),AP(KE,LS,MW,SD,SZ,U G),AM,AT,AU,BB,BG,BR,BY,C A,CH,CN,CZ,DE,DK,EE,ES,FI ,GB,GE,HU,IS,JP,KE,KG,KP, KR,KZ,LK,LR,LT,LU,LV,MD,M G,MN,MW,MX,NO,NZ,PL,PT,RO ,RU,SD,SE,SG,SI,SK,TJ,TM, TT,UA,UG,US,UZ,VN (72)発明者 ロイド・スコット エドワード アメリカ合衆国イリノイ州 60195、ホフ マン・エステイツ、ポート・アーサー・コ ート 1475 (72)発明者 パン・シャオ ウェイ アメリカ合衆国イリノイ州 60173、シャ ンバーグ、プレイリー・スクエア 1931、 スイート 202 (72)発明者 スミス・ステファン エル アメリカ合衆国アリゾナ州 85226、チャ ンドラー、ウエスト・アイアンウッド・サ ークル 3088 (72)発明者 ワン・シェイ−ピン トーマス アメリカ合衆国イリノイ州 60047、ロン グ・グローブ、エッジウッド・レーン 1701

Claims (1)

  1. 【特許請求の範囲】 1.入力および出力を有する累乗回路であって、該回路は前記入力に入力信号 を受けたことに応じて前記出力に指数関数信号を生成し、前記累乗回路は、 前記入力信号に対して対数変換を行い複数のビットを有する2進対数値を生成 するための対数変換器、 前記2進対数値を受けかつ前記複数のビットをnビットの距離だけシフトして その出力として中間値を発生するためのシフト手段であって、nは整数であるも の、 前記中間値および記憶された値を算術的に組み合わせて組み合わされた値を生 成するための手段、そして 前記組み合わされた値に対して逆対数変換を行い前記指数関数信号を生成する ための逆対数変換器であって、該逆対数変換器は前記回路の出力に指数関数信号 を発生するもの、 を具備する累乗回路。 2.さらに、 前記2進対数値を記憶するための手段、 前記シフト手段に動作可能に結合され、指数コードを前記シフト手段に供給す るための制御ユニット、 を具備し、前記シフト手段は記憶された2進対数値に応じて一連の中間値を発 生し、前記シフト手段は前記一連の中間値の各々の複数のビットを前記指数コー ドに従ったビ ット距離だけシフトし、そして 前記組み合わせ手段は、 前記一連の中間値および前記記憶された値を加算して前記組み合わされた値を 生成するための加算回路、 を具備する、請求項1に記載の累乗回路。 3.前記制御ユニットは前記一連の中間値の内の少なくとも1つを前記一連の 中間値の内の少なくとも1つが加算回路によって受信される前に符号付きの2の 補数形式に変換し、前記制御ユニットは該変換を前記一連の中間値の内の少なく とも1つを反転しかつ対応するキャリィビットを加算回路に提供することによっ て行う、請求項2に記載の累乗回路。 4.前記シフト手段はシフトレジスタを含む、請求項1に記載の累乗回路。 5.前記シフト手段はマルチプレクサを含む、請求項1に記載の累乗回路。 6.一連の入力信号を受信しかつそれに応じて複数の指数関数信号を含む項を 出力として生成する累乗回路であって、前記指数信号の各々は前記入力信号の1 つに対応し、前記回路は、 前記一連の入力信号に対して対数変換を行い一連の2進対数値を生成する対数 変換器であって、前記2進対数値の各々は複数のビットを有しかつ前記入力信号 の1つに対応するもの、 前記一連の2進対数値に応答しかつその出力として一連の第1の中間値を発生 する第1のシフトレジスタであって、該第1のシフトレジスタは前記2進対数値 の各々を受けかつ前記複数のビットをnビットの距離だけシフトして第1の中間 値を発生し、この場合nは整数であるもの、 前記一連の2進対数値に応答しかつその出力として一連の第2の中間値を発生 する第2のシフトレジスタであって、該第2のシフトレジスタは前記2進対数値 の各々を受信しかつ前記複数のビットをnビットの距離だけシフトして第2の中 間値を発生し、この場合nは整数であるもの、 前記第1のシフトレジスタおよび前記第2のシフトレジスタに動作可能に結合 され、複数の指数コードを記憶する制御ユニットであって、前記複数の指数コー ドの各々は前記一連の入力信号の1つに対応し、前記制御ユニットは前記複数の 指数コードを前記第1のシフトレジスタおよび前記第2のシフトレジスタに供給 し、 前記第1のシフトレジスタおよび前記第2のシフトレジスタは前記一連の2進 対数値の各々の複数のビットを前記対応する指数コードに従ったビット距離だけ シフトするもの、そして 前記一連の第1の中間値および前記一連の第2の中間値を算術的に組み合わせ て合計を生成するための手段、そして 前記合計に対し逆対数変換を行って前記項を生成するた めの逆対数変換器であって、該逆対数変換器は前記累乗回路の出力に前記項を提 供するもの、 を具備する累乗回路。 7.前記組み合わせ手段は、 その出力として前記合計を提供する第1のレジスタ、 その出力として組み合わされた値を提供する第2のレジスタ、 出力として前記第1のレジスタの出力または前記第1のシフトレジスタの出力 を提供する第1のマルチプレクサ、 出力として、前記第2のレジスタの出力または前記第2のシフトレジスタの出 力を提供する第2のマルチプレクサ、 前記第1のマルチプレクサの出力に応答する第1の入力および前記第2のマル チプレクサの出力に応答する第2の入力を有する加算回路であって、該加算回路 は出力を発生するもの、 前記加算回路の出力を前記第1のレジスタまたは前記第2のレジスタに提供す るためのデマルチプレクス手段、 を具備し、前記第1のマルチプレクサおよび前記第2のマルチプレクサは前記 制御ユニットからのmux信号に応答しかつ前記デマルチプレクス手段は前記制 御ユニットからのde−mux信号に応答し、 前記制御ユニットは第1の加算サイクルの間に前記mux信号を肯定し、それ によって前記第1のシフトレジスタの出力および前記第2のシフトレジスタの出 力が前記加算 回路に提供されるようにし、 前記制御ユニットは前記第1の加算サイクルの間に前記de−mux信号を肯 定し、それによって前記加算回路の出力が前記第2のレジスタに提供されるよう にし、 前記制御ユニットは第2の加算サイクルの間に前記mux信号を肯定し、それ によって前記第1のレジスタの出力および前記第2のレジスタの出力が前記加算 回路に提供されるようにし、そして 前記制御ユニットは前記第2の加算サイクルの間に前記de−mux信号を肯 定し、それによって前記加算回路の出力が前記第1のレジスタに提供されるよう にする、 請求項6に記載の累乗回路。 8.前記組み合わせ手段は、 前記合計をその出力として提供するための第1のレジスタ、 前記第1のシフトレジスタの出力に応答する第1の入力および前記第2のシフ トレジスタの出力に応答する第2の入力を有する第1の加算回路であって、該第 1の加算回路は出力を発生するもの、 前記第1の加算回路の出力に応答する第1の入力および前記第1のレジスタの 出力に応答する第2の入力を有する第2の加算回路であって、該第2の加算回路 は出力として前記合計を発生しかつ該合計を前記第1のレジスタに提供するもの 、 を含み、前記第1の加算回路は前記一連の第1の中間値の1つおよび前記一連 の入力信号の同じ1つに対応する前記一連の第2の中間値の1つを受信したこと に応じて組み合わされた値を発生し、そして 前記第2の加算回路は前記第1の加算回路から前記組み合わされた値を受信し たことに応じて前記合計を発生する、 請求項6に記載の累乗回路。 9.コンピュータシステムであって、 プログラムを格納するためのメモリ、 入力および出力を有する累乗回路であって、該累乗回路は前記入力に入力信号 を受信したことに応じて前記出力に指数関数信号を生成し、前記累乗回路は、 前記入力信号に対し対数変換を行って複数のビットを有する2進対数値を 生成する対数変換器、 前記2進対数値を受けかつ前記複数のビットをnビットの距離だけシフト してその出力として中間値を発生するシフトレジスタであって、この場合nは整 数であるもの、 前記中間値および記憶された値を算術的に組み合わせて組み合わされた値 を生成するための手段、そして 前記組み合わされた値に対し逆対数変換を行って前記指数関数信号を生成 するための逆対数変換器であって、逆対数変換器は前記累乗回路の出力に前記指 数関数信号を提供するもの、 を含む前記累乗回路、そして 前記メモリにかつ前記累乗回路の入力および出力に動作可能に結合され、前記 メモリからプログラムを読み出しかつ該プログラムを実行するプロセッサであっ て、該プログラムの実行の結果として、該プロセッサは前記入力信号を前記累乗 回路の入力に転送しかつその後前記指数関数信号を前記累乗回路の出力から得る もの、 を含む、コンピュータシステム。 10.入力信号xを有する累乗回路における、指数関数信号xgを発生する方 法であって、 (a)前記入力信号に対し対数変換を行うことにより複数のビットを有する2 進対数値を発生する段階、 (b)前記2進対数値の複数のビットをシフトして中間値を発生する段階、 (c)前記中間値と記憶された値とを算術的に組み合わせて組み合わされた値 を生成する段階であって、該組み合わせる段階は、 (i)前記中間値を前記記憶された値に加算して前記組み合わされた値を 生成する段階、そして (ii)前記中間値を前記記憶された値から減算して前記組み合わされた 値を生成する段階、 からなるグループから選択され、そして (d)前記組み合わされた値に対し逆対数変換を行うことによって指数関数信 号を発生する段階、 を具備する、入力信号xを有する累乗回路における、指 数関数信号xgを発生する方法。
JP8527570A 1995-03-10 1996-01-29 シフト手段を使用した累乗回路および使用方法 Pending JPH10510383A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/401,515 1995-03-10
US08/401,515 US5553012A (en) 1995-03-10 1995-03-10 Exponentiation circuit utilizing shift means and method of using same
PCT/US1996/000955 WO1996028774A1 (en) 1995-03-10 1996-01-29 Exponentiation circuit utilizing shift means and method of using same

Publications (1)

Publication Number Publication Date
JPH10510383A true JPH10510383A (ja) 1998-10-06

Family

ID=23588078

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8527570A Pending JPH10510383A (ja) 1995-03-10 1996-01-29 シフト手段を使用した累乗回路および使用方法

Country Status (7)

Country Link
US (2) US5553012A (ja)
JP (1) JPH10510383A (ja)
KR (1) KR100284799B1 (ja)
AU (1) AU4766496A (ja)
DE (1) DE19681213T1 (ja)
GB (1) GB2314649A (ja)
WO (1) WO1996028774A1 (ja)

Families Citing this family (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2135857A1 (en) * 1994-01-03 1995-07-04 Shay-Ping Thomas Wang Neural network utilizing logarithmic function and method of using same
US5696986A (en) * 1995-03-13 1997-12-09 Motorola, Inc. Computer processor utilizing logarithmic conversion and method of use thereof
US5675822A (en) * 1995-04-07 1997-10-07 Motorola Inc. Method and apparatus for a digital signal processor having a multiplierless computation block
US5721696A (en) * 1995-08-28 1998-02-24 Motorola Inc. Method and system for performing an FIR filtering operation
US5953015A (en) * 1996-11-15 1999-09-14 Samsung Electronics Co., Ltd. Determining the level of detail for texture mapping in computer graphics
US6038265A (en) * 1997-04-21 2000-03-14 Motorola, Inc. Apparatus for amplifying a signal using digital pulse width modulators
US6249857B1 (en) 1997-10-20 2001-06-19 Motorola, Inc. Apparatus using a multiple instruction register logarithm based processor
CA2243761C (en) * 1998-07-21 2009-10-06 Certicom Corp. Timing attack resistant cryptographic system
US6128638A (en) * 1998-07-23 2000-10-03 Silicon Graphics, Inc. Method and apparatus for calculating X to the Exponent of Y
US6567832B1 (en) * 1999-03-15 2003-05-20 Matsushita Electric Industrial Co., Ltd. Device, method, and storage medium for exponentiation and elliptic curve exponentiation
US6804502B2 (en) 2001-10-10 2004-10-12 Peregrine Semiconductor Corporation Switch circuit and method of switching radio frequency signals
JP3640643B2 (ja) * 2002-01-18 2005-04-20 沖電気工業株式会社 べき数エンコーダ回路及びマスク回路
US20060015549A1 (en) * 2004-07-13 2006-01-19 Chren William A Method and apparatus for generation of gaussian deviates
US20060106905A1 (en) * 2004-11-17 2006-05-18 Chren William A Jr Method for reducing memory size in logarithmic number system arithmetic units
USRE48965E1 (en) 2005-07-11 2022-03-08 Psemi Corporation Method and apparatus improving gate oxide reliability by controlling accumulated charge
US20080076371A1 (en) 2005-07-11 2008-03-27 Alexander Dribinsky Circuit and method for controlling charge injection in radio frequency switches
US7910993B2 (en) 2005-07-11 2011-03-22 Peregrine Semiconductor Corporation Method and apparatus for use in improving linearity of MOSFET's using an accumulated charge sink
US9653601B2 (en) 2005-07-11 2017-05-16 Peregrine Semiconductor Corporation Method and apparatus for use in improving linearity of MOSFETs using an accumulated charge sink-harmonic wrinkle reduction
US7890891B2 (en) 2005-07-11 2011-02-15 Peregrine Semiconductor Corporation Method and apparatus improving gate oxide reliability by controlling accumulated charge
US7756226B2 (en) * 2006-07-17 2010-07-13 Samsung Electronics Co., Ltd. Method and system for converting logarithmic values into linear values in digital logic
US8386553B1 (en) 2006-12-05 2013-02-26 Altera Corporation Large multiplier for programmable logic device
US7930336B2 (en) 2006-12-05 2011-04-19 Altera Corporation Large multiplier for programmable logic device
US8959137B1 (en) 2008-02-20 2015-02-17 Altera Corporation Implementing large multipliers in a programmable integrated circuit device
US8244789B1 (en) 2008-03-14 2012-08-14 Altera Corporation Normalization of floating point operations in a programmable integrated circuit device
US8886696B1 (en) 2009-03-03 2014-11-11 Altera Corporation Digital signal processing circuitry with redundancy and ability to support larger multipliers
CN101510148B (zh) * 2009-04-02 2014-10-29 北京中星微电子有限公司 一种指数运算方法和装置
US8510361B2 (en) * 2010-05-28 2013-08-13 George Massenburg Variable exponent averaging detector and dynamic range controller
US8862650B2 (en) 2010-06-25 2014-10-14 Altera Corporation Calculation of trigonometric functions in an integrated circuit device
US9600278B1 (en) 2011-05-09 2017-03-21 Altera Corporation Programmable device using fixed and configurable logic to implement recursive trees
US8817976B2 (en) * 2011-06-24 2014-08-26 Gregory Scott Callen Reversible cipher
US8949298B1 (en) 2011-09-16 2015-02-03 Altera Corporation Computing floating-point polynomials in an integrated circuit device
US9053045B1 (en) 2011-09-16 2015-06-09 Altera Corporation Computing floating-point polynomials in an integrated circuit device
US9098332B1 (en) 2012-06-01 2015-08-04 Altera Corporation Specialized processing block with fixed- and floating-point structures
US8996600B1 (en) 2012-08-03 2015-03-31 Altera Corporation Specialized processing block for implementing floating-point multiplier with subnormal operation support
US9207909B1 (en) 2012-11-26 2015-12-08 Altera Corporation Polynomial calculations optimized for programmable integrated circuit device structures
US9189200B1 (en) 2013-03-14 2015-11-17 Altera Corporation Multiple-precision processing block in a programmable integrated circuit device
US9348795B1 (en) 2013-07-03 2016-05-24 Altera Corporation Programmable device using fixed and configurable logic to implement floating-point rounding
US9379687B1 (en) 2014-01-14 2016-06-28 Altera Corporation Pipelined systolic finite impulse response filter
US9684488B2 (en) 2015-03-26 2017-06-20 Altera Corporation Combined adder and pre-adder for high-radix multiplier circuit
US10345372B2 (en) 2015-04-22 2019-07-09 ASCO Power Technologies L.P. Devices and methods for surge protection device monitoring
US10942706B2 (en) 2017-05-05 2021-03-09 Intel Corporation Implementation of floating-point trigonometric functions in an integrated circuit device
KR101845229B1 (ko) 2018-02-13 2018-04-04 주식회사 우진엔텍 전자회로의 입력신호 제어용 곱셈 연산기 장치
US11838403B2 (en) * 2019-04-12 2023-12-05 Board Of Regents, The University Of Texas System Method and apparatus for an ultra low power VLSI implementation of the 128-bit AES algorithm using a novel approach to the shiftrow transformation

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3551663A (en) * 1965-04-15 1970-12-29 Gen Electric Multiplication apparatus in a data processing system with a variable length multiplier
US3436533A (en) * 1965-11-29 1969-04-01 Us Navy Digital log computer
US3632996A (en) * 1970-05-14 1972-01-04 Nasa Digital quasi-exponential function generator
US3748451A (en) * 1970-08-21 1973-07-24 Control Data Corp General purpose matrix processor with convolution capabilities
US3967100A (en) * 1973-11-12 1976-06-29 Naonobu Shimomura Digital function generator utilizing cascade accumulation
US3922536A (en) * 1974-05-31 1975-11-25 Rca Corp Multionomial processor system
PL106470B1 (pl) * 1977-02-01 1979-12-31 Inst Maszyn Matematycznych Uklad cyfrowy do obliczania wartosci zlozonych wyrazen arytmetycznych
JPS6051733B2 (ja) * 1977-11-19 1985-11-15 日本電気株式会社 指数関数演算装置
JPS59218550A (ja) * 1983-05-27 1984-12-08 Ando Electric Co Ltd デイジタル信号の対数変換回路
US4555768A (en) * 1983-06-07 1985-11-26 Rca Corporation Digital signal processing system employing logarithms to multiply and divide
US4626825A (en) * 1985-07-02 1986-12-02 Vlsi Technology, Inc. Logarithmic conversion apparatus
EP0218971A3 (de) * 1985-09-30 1990-04-11 Siemens Aktiengesellschaft Arbeitsverfahren zur Lösung der Gleichungen des Typs z = k x1 y1 op x2 y2 op ... op xn ym
GB8611124D0 (en) * 1986-05-07 1986-06-11 Gec Avionics Accumulating recursive computation
US4949292A (en) * 1987-05-14 1990-08-14 Fujitsu Limited Vector processor for processing recurrent equations at a high speed
FI894021A (fi) * 1988-08-31 1990-03-01 Fujitsu Ltd Neuronstruktur.
US5073867A (en) * 1989-06-12 1991-12-17 Westinghouse Electric Corp. Digital neural network processing elements
US5184317A (en) * 1989-06-14 1993-02-02 Pickett Lester C Method and apparatus for generating mathematical functions
US5042001A (en) * 1989-10-02 1991-08-20 Cyrix Corporation Method and apparatus for performing mathematical functions using polynomial approximation and a rectangular aspect ratio multiplier
US5177702A (en) * 1990-07-19 1993-01-05 Motorola, Inc. Device and method for evaluating exponentials
US5343254A (en) * 1991-04-25 1994-08-30 Olympus Optical Co., Ltd. Image signal processing device capable of suppressing nonuniformity of illumination
US5278945A (en) * 1992-01-10 1994-01-11 American Neuralogical, Inc. Neural processor apparatus
WO1993017383A1 (de) * 1992-02-29 1993-09-02 Hoefflinger Bernd Schaltungsanordnung zum digitalen multiplizieren von integer-zahlen

Also Published As

Publication number Publication date
KR100284799B1 (ko) 2001-03-15
KR19980702882A (ko) 1998-08-05
US5553012A (en) 1996-09-03
GB2314649A (en) 1998-01-07
US5726924A (en) 1998-03-10
AU4766496A (en) 1996-10-02
WO1996028774A1 (en) 1996-09-19
GB9718193D0 (en) 1997-11-05
DE19681213T1 (de) 1998-02-26

Similar Documents

Publication Publication Date Title
JPH10510383A (ja) シフト手段を使用した累乗回路および使用方法
US7395304B2 (en) Method and apparatus for performing single-cycle addition or subtraction and comparison in redundant form arithmetic
US5768170A (en) Method and apparatus for performing microprocessor integer division operations using floating point hardware
US5042001A (en) Method and apparatus for performing mathematical functions using polynomial approximation and a rectangular aspect ratio multiplier
JP6744913B2 (ja) 浮動小数点数の丸め処理
US4041292A (en) High speed binary multiplication system employing a plurality of multiple generator circuits
US11816448B2 (en) Compressing like-magnitude partial products in multiply accumulation
EP3769208B1 (en) Stochastic rounding logic
US6728739B1 (en) Data calculating device and method for processing data in data block form
EP3716043B1 (en) Information processor, information processing method, and program
US5867413A (en) Fast method of floating-point multiplication and accumulation
JP3537378B2 (ja) 加算器および集積回路
US4823300A (en) Performing binary multiplication using minimal path algorithm
JPH04355827A (ja) 開平演算装置
WO2005069126A2 (en) A data processing apparatus and method for performing data processing operations on floating point data elements
JPH10187416A (ja) 浮動小数点演算装置
US6615228B1 (en) Selection based rounding system and method for floating point operations
JPH0831024B2 (ja) 演算プロセッサ
KR940008611B1 (ko) Ieee 754-1985 표준에 따라서 라운딩한 2진 부동 소숫점 연산
EP0780759A1 (en) Elimination of math overflow flag generation delay in an alu
JP2508286B2 (ja) 平方根演算装置
JPH10333883A (ja) 乗算方法および乗算回路
Ahari Computer Arithmetic in modern computers and usages of Computer Arithmetic
JPH0778748B2 (ja) ガロア体演算ユニット
JP3457082B2 (ja) 演算装置