JP4279626B2 - 剰余系演算システム、スケーリング演算器、スケーリング演算方法、及びそのプログラムと記録媒体 - Google Patents

剰余系演算システム、スケーリング演算器、スケーリング演算方法、及びそのプログラムと記録媒体 Download PDF

Info

Publication number
JP4279626B2
JP4279626B2 JP2003284534A JP2003284534A JP4279626B2 JP 4279626 B2 JP4279626 B2 JP 4279626B2 JP 2003284534 A JP2003284534 A JP 2003284534A JP 2003284534 A JP2003284534 A JP 2003284534A JP 4279626 B2 JP4279626 B2 JP 4279626B2
Authority
JP
Japan
Prior art keywords
modulus
value
remainder
residue
sub
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
Application number
JP2003284534A
Other languages
English (en)
Other versions
JP2005056032A (ja
Inventor
和幸 丸尾
隆弘 山口
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Advantest Corp
Original Assignee
Advantest Corp
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 Advantest Corp filed Critical Advantest Corp
Priority to JP2003284534A priority Critical patent/JP4279626B2/ja
Priority to PCT/JP2004/010510 priority patent/WO2005013117A1/ja
Publication of JP2005056032A publication Critical patent/JP2005056032A/ja
Priority to US11/340,870 priority patent/US8326908B2/en
Application granted granted Critical
Publication of JP4279626B2 publication Critical patent/JP4279626B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • 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/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/72Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
    • G06F7/729Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic using representation by a residue number system

Landscapes

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

Description

本発明は、剰余系演算システム、スケーリング演算器、スケーリング演算方法、及びそのプログラムと記録媒体に関する。特に本発明は、剰余系で表現された数値のスケーリング演算を効率良く行う剰余系演算システム、スケーリング演算器、スケーリング演算方法、及びそのプログラムと記録媒体に関する。
従来、ディジタル回路による数値演算は、2進数にもとづく論理回路により実現されている。また近年、剰余系(Residue Number System; RNS)による数値演算方法が提案されている(非特許文献1)。剰余系による加算、減算、及び乗算は、次に述べる理由により、従来の2進数による演算よりも高速に計算できることが知られている。
2進数での加算は、各ビットの演算から桁上がり(キャリー)信号が生じ、さらにLSB側からMSB側に伝播する。このため、(i-1)番目のビットのキャリーが到達するまで。i番目の桁の計算結果は決定できない。したがって、演算対象となるオペランドのビット数に比例して遅延量は大きくなる。一方、剰余系による演算は、各剰余桁で独立して並列に計算することができ、計算速度が計算ビット数に依存しないため、高速化することができる。
剰余系では1つの数値Xを、N個の剰余数(剰余値)の組み合わせで表現する。
Figure 0004279626
式(1−1)においてxi = X mod mi(xi = |X|miとも表現する)であり、Xをi番目のモジュラス(modulus:法)miで割った剰余 (Residue)である。また,xiを剰余桁(Residue Digit) 、又は、モジュラスmiによる剰余値ともよぶ。ここで、modはmoduloの略であり、以下の式(1−2)が成立することを意味する。
Figure 0004279626
ここでpはXをmiで割った商である。このときXとxiはモジュラスmiについて合同(congruent)であるといい、合同式(congruence)をもちいて以下の式により表現してもよい。
Figure 0004279626
N個のモジュラスmi(i = 0,1,2,…,N-1)が互いに素(relatively prime)であるとき、以下に示す範囲のすべての数値Xを、N個の剰余数の一意的組み合わせで表現することができる。このとき,{m0, m1, m2, …, mN-1}をモジュラスセットとよぶ。
Figure 0004279626
例として,モジュラスセット{m0, m1, m2, m3}= {8,7,5,3}をもちいた剰余表現を考えると、この剰余系では M = 8×7×5×3 = 840個の整数を表現することができる。例えば、(0,0,0,0)RNS は 0 または 840 または 1680…、(1,1,1,1)RNS は 1 または 841 または 1681…、(0,1,3,2)RNS は 8 または 848 または 1688…、(0,1,4,1)RNS は 64 または 904 または 1744…、となる。そしてモジュラス セット{8,7,5,3}の場合、各剰余桁を表現するために必要となるビット数は、 [3bit, 3bit, 3bit, 2bit ] = 11bitである。
剰余系においては、加算、減算、乗算について、各剰余桁同士を独立に演算することにより実現することができ、剰余桁間の情報の伝播は不要である。すなわち、次に示す定理が成立する。
(剰余系加減乗算の定理)
演算子「〇」を加算、減算、又は乗算を表現する演算子とし、剰余系のモジュラスを{m0,m1,…,mN-1}、オペランドをA= (a0,a1,a2,...,aN-1)、B= (b0,b1,b2,...,bN-1)とすると、Z=A〇Bは、オペランドの各モジュラスに対する剰余桁同士の演算により実現できる。
Figure 0004279626
ここで、左辺はYのmiによる剰余値である。また、式(1−5)による演算を剰余加算、剰余減算、又は剰余乗算とよぶ。剰余系加減乗算の定理は、以下に示すように証明される。
(剰余系加減乗算の定理の証明)
剰余系の数値表現の定義から、以下の式(1−6)が成立する。
Figure 0004279626
ここで、piはAをモジュラスmiで割った商であり、qiはBをモジュラスmiで割った商である。
加減算においては、以下の式(1−7)が成立する。
Figure 0004279626
ここで、(pi+qi)mi≡0より、以下の式(1−8)が成立する。
Figure 0004279626
一方、乗算においては、以下の式(1−9)が成立する。
Figure 0004279626
ここで、(piqimi+pibi+qiai)mi≡0より、以下の式(1−10)が成立する。
Figure 0004279626
上記の式(1−8)及び式(1−10)から、A及びBの各剰余桁同士の演算により、Yの各剰余桁を算出できることが分かる。したがって、式(1−5)の定理が成立することが証明される。
剰余系加減乗算の定理より、剰余系での加減乗算は、入力される2つのオペランドA及びBと、出力される演算結果Yの対応する剰余桁毎に、当該剰余桁についての演算を行う剰余演算ALU(Arithmetic Logic Unit)を設けることにより実現することができる。そして、ある剰余桁の計算は、他の剰余桁の計算と独立に行うことができる。各剰余桁に対応する剰余演算ALUでの演算においては、キャリー伝搬による遅延が当該剰余桁のビット数分に限定できるため、より高速に計算することができる。
剰余系を用いて数値演算を高速化するためには、2進数系又は10進数系から剰余系への変換(Binary-to-Residue (B/R) converter)、および剰余系から2進数系又は10進数系への変換(Residue-to-Binary (R/B) converter)が必要である。B/R converterは比較的簡単に実現でき、R/B converterを実現する方法はいくつか検討されている。
R/B converterとしては、中国人の剰余定理(Chinese Remainder Theorem)を用いるものが一般的である。モジュラスセットが{m0,m1,m2,m3}={8,7,5,3}の場合において、Y = (y0,y1,y2,y3)=(5,3,4,2)を10進数に変換する場合を例に示す。
(5,3,4,2)は、式(1−5)に示した剰余系加減乗算の定理から以下の式(1−11)に示すように変形でき、更に式(1−12)を得ることができる。
Figure 0004279626
Figure 0004279626
このように、(1,0,0,0) , (0,1,0,0), (0,0,1,0), (0,0,0,1)に対応する10進数表現を予め求めておけば、以下の式(1−13)を用いて任意の剰余表現(y0,y1,y2,y3)を10進数表現に変換できる。
Figure 0004279626
ここで、(1,0,0,0)は、モジュラス8(=m0)に対する剰余が1、かつ、モジュラスのサブセット{7,5,3}={m1,m2,m3}に対する剰余が0である数値である。後者の条件は、m1, m2, m3の最小公倍数であることを条件として(1,0,0,0)を算出すれば満たすことができる。これらの条件は、以下の式(1−14)により表すことができる。
Figure 0004279626
ここでβ0は自然数である。そして、m1,m2,m3が互いに素であれば、式(1−4)よりa)及びb)の条件は以下の式(1−15)に書き換えることができる。
Figure 0004279626
上記の自然数β0を求めることにより、(1,0,0,0)の10進数表現を求めることができる。以下に、{8,7,5,3}剰余系について(1,0,0,0) , (0,1,0,0), (0,0,1,0), (0,0,0,1)の10進数表現を示す。
Figure 0004279626
式(1−16)から、{8,7,5,3}剰余系で表現された数値(5,3,4,2)の10進数への変換は、5×105 + 3×120 + 4×336 + 2×280 = 2117となる。ただし、この剰余系で表現できる数値は0≦Y<M=840であるため、Y =|2117|M = 437となる。
一般に,中国人の剰余定理は次式で導かれる。
Figure 0004279626
B. Parhami, Computer Arithmetic, Oxford University Press, 2000年, pp. 54-72
剰余系をもちいると、加減乗算を高速に計算できる。しかし,次に述べるスケーリング演算のため、2進数で加減乗算を計算するよりも高速にならないという問題点がある。
2進数でn ビット× n ビットの乗算をおこなうと、乗算結果は(2n)ビットとなる。(514)×(237)のように1回の乗算であれば、入力n ビットにたいして(2n) ビットの乗算結果をそのまま出力すればよい。
ところが(514)×(237)×・・・×(353)のように乗算を繰り返すと、出力ビット数は大きくなってしまう。例えば10進数の(15/16)×(15/16)を計算すると、(225/256)が乗算結果となるが、出力ビットが4ビットしかないときは計算結果の一部を切捨て(truncate)て、入力ビット数と同じn ビットを計算結果として出力する。これは n ビット右へシフトするという処理に相当する。本例においては(15/16)×(15/16) =(225/256)を、4ビットシフトし、乗算結果として(14/16)を出力する。この桁合わせ処理のことをスケーリング(Scaling:縮小化)といい、例えば浮動小数点乗算における仮数部の桁合わせ等に用いられる。
このスケーリング処理を2進数に施すには、2進数の各桁に対応して重み付けされているから、ビットシフト処理、あるいは不要なビットをマスクするだけでよい。すなわちnビットに対応するシフト時間を必要とするのみである。しかし、剰余系で表現された数値に対しては、スケーリングをビットシフト操作で実現できない。例えば{8,7,5,3}剰余系で、(5,3,4,2)×(3,2,4,2) (=437×779 dec)の乗算をすると、乗算結果は340,423 decとなる。この剰余系では最大839までの数値しか表現できない。したがって,{8,7,5,3}剰余系のM=840でスケーリングして、乗算結果を405とする必要がある。ところが,(5,3,4,2) × (3,2,4,2) = (7,6,1,1)RNS{8,7,5,3}となり、このままでは405 = (5,6,0,0)にスケーリングすることができない。
剰余系においてスケーリングを行うために、中国人の剰余定理を利用する方法も考えられる。すなわち、乗算結果(7,6,1,1)を2進数(1010011000111000111)に変換し、この結果を上述したビットシフトによりスケーリングして(101001100)を得る。そして、再び剰余系に変換して(5,6,0,0)を得るという処理である。しかしながら、中国人の剰余定理は式(1−17)に示したように、各剰余桁yiと定数bi・(M/mi)との乗算を伴うため、計算時間を要することになる。乗算を多用するような数値計算処理を行うとき、乗算毎に中国人の剰余定理を用いて2進数に変換しスケーリングすると、剰余系で乗算するメリット(計算速度向上)が失われてしまう。
そこで本発明は、上記の課題を解決することのできる剰余系演算システム、スケーリング演算器、スケーリング演算方法、及びそのプログラムと記録媒体を提供することを目的とする。この目的は特許請求の範囲における独立項に記載の特徴の組み合わせにより達成される。また従属項は本発明の更なる有利な具体例を規定する。
本発明の第1の形態によると、数値を第1モジュラス(法)による剰余値及び第2モジュラスによる剰余値の組による第1の剰余形式で表現する剰余系において、前記第1の剰余形式の入力値を前記第2モジュラスで割った前記第1の剰余形式の商を算出するスケーリング演算器であって、前記入力値における、前記第1モジュラスによる剰余値及び前記第2モジュラスによる剰余値の差分値であるモジュラス間差分値を出力する減算器と、前記モジュラス間差分値に基づいて、前記商の第1モジュラスによる剰余値及び前記商の前記第2モジュラスによる剰余値の組を前記商として出力する商出力部とを備えるスケーリング演算器を提供する。
前記第1モジュラス及び前記第2モジュラスは互いに素であってよい。また、前記第1モジュラス及び前記第2モジュラスの差は1であり、前記商出力部は、前記商の第1モジュラスによる剰余値及び前記商の前記第2モジュラスによる剰余値として、前記モジュラス間差分値の前記第1モジュラスによる剰余値を出力してよい。
また、前記第1モジュラス及び前記第2モジュラスの積を前記第1モジュラス及び前記第2モジュラスの差の絶対値により割った値が前記入力値以上の場合に、前記入力値のオーバーフローを検出するオーバーフロー検出器を更に備えてもよい。
また、前記減算器は、前記剰余形式の前記入力値における、前記第1モジュラス及び前記第2モジュラスのうちより小さいモジュラスによる剰余値からより大きいモジュラスによる剰余値を減じた前記モジュラス間差分値を出力し、前記商出力部は、前記モジュラス間差分値を前記第1モジュラス及び前記第2モジュラスの差の絶対値により割った値の前記第1モジュラスによる剰余値を、前記商の第1モジュラスによる剰余値及び前記商の前記第2モジュラスによる剰余値として算出してもよい。
また、前記第1モジュラスは、互いに素な複数の整数である複数の第1サブモジュラスの積であり、前記第2モジュラスは、互いに素な複数の整数である複数の第2サブモジュラスの積であり、前記入力値の前記第1モジュラスによる剰余値が、前記複数の第1サブモジュラスのそれぞれにより前記入力値を割った複数の第1サブ剰余値により表現され、前記入力値の前記第2モジュラスによる剰余値が、前記複数の第2サブモジュラスのそれぞれにより前記入力値を割った複数の第2サブ剰余値により表現された第2の剰余形式の前記入力値を、前記第1の剰余形式の前記入力値に変換する剰余形式変換器と、前記商出力部が出力した前記第1の剰余形式の前記商を、前記第2の剰余形式の前記商に変換する剰余形式逆変換器とを備えてもよい。
また、前記第1モジュラスは、互いに素な複数の整数である複数の第1サブモジュラスの積であり、前記第2モジュラスは、互いに素な複数の整数である複数の第2サブモジュラスの積であり、前記入力値は、前記第1モジュラスによる剰余値が、前記複数の第1サブモジュラスのそれぞれにより前記入力値を割った複数の第1サブ剰余値により表現され、前記第2モジュラスによる剰余値が、前記複数の第2サブモジュラスのそれぞれにより前記入力値を割った複数の第2サブ剰余値により表現された第2の剰余形式により更に表現され、前記複数の第1サブ剰余値により表現された、前記入力値の前記第1モジュラスによる剰余値を、前記複数の第2サブモジュラスのそれぞれによる剰余である複数の第1変換サブ剰余値に変換する第1サブ剰余値変換部を更に備え、前記減算器は、前記入力値の前記第1モジュラスによる剰余値を示す前記複数の第1変換サブ剰余値と、前記入力値の前記第2モジュラスによる剰余値を示す前記複数の第2サブ剰余値との差分値であって、前記複数の第2サブモジュラスのそれぞれにより当該差分値を割った複数の剰余値により表現された第1の前記モジュラス間差分値を出力する第2モジュラス対応減算器を有し、前記商出力部は、前記第1のモジュラス間差分値に基づいて、前記複数の第2サブモジュラスのそれぞれによる複数の剰余値により表現された前記商の前記第2モジュラスによる剰余値を出力する第2モジュラス対応商出力部を有してもよい。
また、前記複数の第2サブ剰余値により表現された、前記入力値の前記第2モジュラスによる剰余値を、前記複数の第1サブモジュラスのそれぞれによる剰余である複数の第2変換サブ剰余値に変換する第2サブ剰余値変換部を更に備え、前記減算器は、前記入力値の前記第2モジュラスによる剰余値を示す前記複数の第2変換サブ剰余値と、前記入力値の前記第1モジュラスによる剰余値を示す前記複数の第1サブ剰余値との差分値であって、前記複数の第1サブモジュラスのそれぞれにより当該差分値を割った複数の剰余値により表現された第2の前記モジュラス間差分値を出力する第1モジュラス対応減算器を更に有し、前記商出力部は、前記第2のモジュラス間差分値に基づいて、前記複数の第1サブモジュラスのそれぞれによる複数の剰余値により表現された前記商の前記第1モジュラスによる剰余値を出力する第1モジュラス対応商出力部を更に有してもよい。
また、前記入力値の前記第1モジュラスによる剰余値と、前記入力値の前記第2モジュラスによる剰余値とが、予め定められた大小関係を満たすか否かを判断する条件判断部を更に備え、前記商出力部は、前記入力値の前記第1モジュラスによる剰余値と、前記入力値の前記第2モジュラスによる剰余値とが、前記予め定められた大小関係を満たす場合に、前記第1のモジュラス間差分値及び前記第2のモジュラス間差分値の一方に予め定められた定数を加えて調整した前記第1のモジュラス間差分値及び前記第2のモジュラス間差分値を、前記第1モジュラス対応商出力部及び前記第2モジュラス対応商出力部にそれぞれ供給する差分値調整部を更に有してもよい。
また、前記第1モジュラスは、前記第2モジュラスより1大きく、前記条件判断部は、前記入力値の前記第1モジュラスによる剰余値が前記入力値の前記第2モジュラスによる剰余値より大きい場合に、前記入力値の前記第1モジュラスによる剰余値と、前記入力値の前記第2モジュラスによる剰余値とが、前記予め定められた大小関係を満たすと判断し、前記予め定められた大小関係を満たす場合に、前記差分値調整部は、前記第2のモジュラス間差分値に1を加えて調整し、前記第1モジュラス対応商出力部は、前記差分値調整部により調整された前記第2のモジュラス間差分値を、前記複数の第1サブモジュラスのそれぞれによる複数の剰余値により表現された前記商の前記第1モジュラスによる剰余値とし、前記第2モジュラス対応商出力部は、前記第1のモジュラス間差分値を、前記複数の第2サブモジュラスのそれぞれによる複数の剰余値により表現された前記商の前記第2モジュラスによる剰余値としてもよい。
また、前記第1サブ剰余値変換部は、前記複数の第1サブ剰余値により表現された前記入力値の前記第1モジュラスによる剰余値を初期値とする被変換値における、前記複数の第1サブモジュラスのそれぞれにより前記被変換値を割った複数の被変換剰余値のそれぞれについて、前記被変換値から減じた場合に、順次当該被変換剰余値を0とし、かつ、既に0に変換された他の全ての前記被変換剰余値を0に保つ変換係数を算出する変換係数算出部と、前記変換係数算出部により順次算出される、前記第1モジュラスによる剰余値により表現された前記変換係数を、順次加算していく変換係数加算器と、前記変換係数算出部により順次算出される、前記複数の第1サブモジュラスのそれぞれによる複数の剰余値により表現された前記変換係数を、前記被変換値から順次減じる被変換値減算器と、前記複数の被変換剰余値の全てについて算出された全ての前記変換係数が前記変換係数加算器により加算された加算値を前記複数の第2サブモジュラスのそれぞれにより割った複数の剰余値を、前記複数の第1変換サブ剰余値として出力する変換結果出力部とを備えてもよい。
また、前記変換係数算出部は、前記複数の被変換剰余値のそれぞれについて、当該被変換剰余値に対応するアドレスに、当該被変換剰余値に対応する前記変換係数をデータとして格納するメモリを含んでもよい。
また、前記第1モジュラスは、互いに素な複数の整数である複数の第1サブモジュラスの積であり、前記第2モジュラスは、互いに素な複数の整数である複数の第2サブモジュラスの積であり、前記入力値は、前記第1モジュラスによる剰余値が、前記複数の第1サブモジュラスのそれぞれにより前記入力値を割った複数の第1サブ剰余値により表現され、前記第2モジュラスによる剰余値が、前記複数の第2サブモジュラスのそれぞれにより前記入力値を割った複数の第2サブ剰余値により表現された第2の剰余形式により更に表現され、前記複数の第1サブ剰余値により表現された前記入力値の前記第2モジュラスによる剰余値を初期値とする被変換値における、前記複数の第1サブモジュラスのそれぞれにより前記被変換値を割った複数の被変換剰余値のそれぞれについて、前記被変換値から減じた場合に、順次当該被変換剰余値を0とし、かつ、既に0に変換された他の全ての前記被変換剰余値を0に保つ変換係数を算出する変換係数算出部と、前記変換係数算出部により順次算出される、前記複数の第1サブモジュラスのそれぞれによる複数の剰余値により表現された前記変換係数を、前記被変換値から順次減じる被変換値減算部とを更に備え、前記減算器は、前記変換係数算出部により順次算出される、前記複数の第2サブモジュラスのそれぞれによる複数の剰余値により表現された前記変換係数を、前記複数の第2サブ剰余値により表現された前記入力値の前記第2モジュラスによる剰余値から順次減じて前記複数の第2サブモジュラスのそれぞれによる複数の剰余値により表現された第1の前記モジュラス間差分値を出力する第2モジュラス対応減算器を有し、前記商出力部は、前記第1のモジュラス間差分値に基づいて、前記複数の第2サブモジュラスのそれぞれによる複数の剰余値により表現された前記商の前記第2モジュラスによる剰余値を出力する第2モジュラス対応商出力部を有してもよい。
また、前記第1モジュラスは、互いに素な複数の整数である複数の第1サブモジュラスの積であり、前記第2モジュラスは、互いに素な複数の整数である複数の第2サブモジュラスの積であり、前記入力値は、前記第1モジュラスによる剰余値が、前記複数の第1サブモジュラスのそれぞれにより前記入力値を割った複数の第1サブ剰余値により表現され、前記入力値の前記第2モジュラスによる剰余値が、前記複数の第2サブモジュラスのそれぞれにより前記入力値を割った複数の第2サブ剰余値により表現された第2の剰余形式により更に表現され、前記複数の第1サブ剰余値により表現された前記入力値の前記第1モジュラスによる剰余値を、前記複数の第2サブモジュラスのそれぞれによる剰余である複数の第1変換サブ剰余値に変換する第1サブ剰余値変換部を更に備え、前記減算器は、前記入力値の前記第1モジュラスによる剰余値を示す前記複数の第1変換サブ剰余値と、前記入力値の前記第2モジュラスによる剰余値を示す前記複数の第2サブ剰余値との差分値であって、前記複数の第2サブモジュラスのそれぞれにより当該差分値を割った複数の剰余値により表現された第1の前記モジュラス間差分値を出力する第2モジュラス対応減算器を有し、更に、前記複数の第2サブモジュラスのそれぞれによる複数の剰余値により表現された前記第1のモジュラス間差分値を、前記複数の第1サブモジュラスのそれぞれによる複数の剰余値により表現された変換モジュラス間差分値に変換する第2サブ剰余値変換部を備え、前記商出力部は、前記変換モジュラス間差分値に基づいて、前記複数の第1サブモジュラスのそれぞれによる複数の剰余値により表現された前記商の前記第1モジュラスによる剰余値を出力する第1モジュラス対応商出力部と、前記第1のモジュラス間差分値に基づいて、前記複数の第2サブモジュラスのそれぞれによる複数の剰余値により表現された前記商の前記第2モジュラスによる剰余値を出力する第2モジュラス対応商出力部とを有してもよい。
本発明の第2の形態によれば、数値を第1モジュラス(法)による剰余値及び第2モジュラスによる剰余値の組による第1の剰余形式で表現する剰余系を用いる剰余系演算システムであって、演算対象となる2つの被演算値を入力し、2つの被演算値の間で加算、減算、又は乗算を行う剰余系演算器と、前記剰余系演算器による演算結果にスケーリングが必要である場合に、前記演算結果を入力値として入力し、前記入力値を前記第2モジュラスで割った商を前記演算結果のスケーリング結果として算出するスケーリング演算器とを備え、前記スケーリング演算器は、前記入力値における、前記第1モジュラスによる剰余値及び前記第2モジュラスによる剰余値の差分値であるモジュラス間差分値を出力する減算器と、前記モジュラス間差分値に基づいて、前記商の第1モジュラスによる剰余値及び前記商の前記第2モジュラスによる剰余値の組を前記商として出力する商出力部とを有する剰余系演算システムを提供する。
本発明の第3の形態によれば、数値を第1モジュラス(法)による剰余値及び第2モジュラスによる剰余値の組による第1の剰余形式で表現する剰余系において、前記第1の剰余形式の入力値を前記第2モジュラスで割った前記第1の剰余形式の商を算出するスケーリング演算器としてコンピュータを機能させるプログラムであって、前記コンピュータを、前記入力値における、前記第1モジュラスによる剰余値及び前記第2モジュラスによる剰余値の差分値であるモジュラス間差分値を出力する減算器と、前記モジュラス間差分値に基づいて、前記商の第1モジュラスによる剰余値及び前記商の前記第2モジュラスによる剰余値の組を前記商として出力する商出力部として機能させるプログラム、又は、当該プログラムを記録した記録媒体を提供する。
本発明の第4の形態によれば、数値を第1モジュラス(法)による剰余値及び第2モジュラスによる剰余値の組による第1の剰余形式で表現する剰余系において、前記第1の剰余形式の入力値を前記第2モジュラスで割った前記第1の剰余形式の商を演算器により算出するスケーリング演算方法であって、前記入力値における、前記第1モジュラスによる剰余値及び前記第2モジュラスによる剰余値の差分値であるモジュラス間差分値を出力する減算段階と、前記モジュラス間差分値に基づいて、前記商の第1モジュラスによる剰余値及び前記商の前記第2モジュラスによる剰余値の組を前記商として出力する商出力段階とを備えるスケーリング演算方法を提供する。
前記第1モジュラスは、互いに素な複数の整数である複数の第1サブモジュラスの積であり、前記第2モジュラスは、互いに素な複数の整数である複数の第2サブモジュラスの積であり、前記入力値は、前記第1モジュラスによる剰余値が、前記複数の第1サブモジュラスのそれぞれにより前記入力値を割った複数の第1サブ剰余値により表現され、前記第2モジュラスによる剰余値が、前記複数の第2サブモジュラスのそれぞれにより前記入力値を割った複数の第2サブ剰余値により表現された第2の剰余形式により更に表現され、前記複数の第1サブ剰余値により表現された、前記入力値の前記第1モジュラスによる剰余値を、前記複数の第2サブモジュラスのそれぞれによる剰余である複数の第1変換サブ剰余値に変換する第1サブ剰余値変換段階を更に備え、前記減算段階は、前記入力値の前記第1モジュラスによる剰余値を示す前記複数の第1変換サブ剰余値と、前記入力値の前記第2モジュラスによる剰余値を示す前記複数の第2サブ剰余値との差分値であって、前記複数の第2サブモジュラスのそれぞれにより当該差分値を割った複数の剰余値により表現された第1の前記モジュラス間差分値を出力する第2モジュラス対応減算段階を有し、前記商出力段階は、前記第1のモジュラス間差分値に基づいて、前記複数の第2サブモジュラスのそれぞれによる複数の剰余値により表現された前記商の前記第2モジュラスによる剰余値を出力する第2モジュラス対応商出力段階を有してもよい。
なお、上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではなく、これらの特徴群のサブコンビネーションもまた、発明となりうる。
本発明によれば、剰余系による加減乗算の高速化と、スケーリング演算の高速化とを両立して実現する剰余系演算システムを提供することができる。
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではなく、また実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
本実施形態に係る剰余系演算システムは、以下に示すスケーリング剰余系(Scaling RNS)と算術剰余系(Arithmetic RNS)の2種類の剰余表現を用い、加減乗算は算術剰余系で、スケーリングはスケーリング剰余系で計算させることにより、加減乗算とスケーリング演算を高速に実現する。
(1)スケーリング剰余系(Scaling RNS)
スケーリング剰余系は、被スケーリング数Yを高速にスケーリングすることを目的とする剰余系である。ここで、スケーリング剰余系を用いたスケーリング方法を、「スケーリング剰余系によるスケーリング(Scaling by the Difference in Scaling RNS; SDSRNS)」と呼ぶ。
スケーリング剰余系は、モジュラス{m,m}が与えられ、数値を第1モジュラスmによる剰余値及び第2モジュラスmによる剰余値の組による第1の剰余形式で表現する剰余系である。本実施形態において、m及びmは互いに素であり、m及びmの差が1、より具体的にはm=m-1である場合を中心に説明する。
m=m-1の場合、後述の補足説明1に示した通り、Y=p・m+yかつY=p・m+yとすると、Yをmにより割った商q、すなわちYをmによりスケーリングしたスケーリング結果q=(q mod m,q mod m)は、以下の式(2−1)により求められる。
Figure 0004279626
図1は、SDSRNS法によるスケーリング処理の概略を示す。本図に示したスケーリング演算器3は、SDSRNS法を用いて式(2−1)に基づきスケーリング処理を行う。これにより、スケーリング演算器3は、入力値Yの剰余桁間の減算結果を用いて高速にスケーリングを行うことができる。
(2)算術剰余系(Arhithmetic RNS)
SDSRNS法を用いることにより、上記の式(2−1)に示した様に、従来の剰余系におけるスケーリングで必要となる中国人の剰余定理を用いた乗算等の、演算ビット数の2乗に比例する演算量を要する処理が不要になる。このため、スケーリング処理を高速化することができる。
しかし、SDSRNS法においては、被スケーリング数を2つのモジュラスにより表現するため、各モジュラスが大きい値となり、加減乗算のときにキャリー伝播遅延が大きくなるという問題点がある。例えば、表現する数値の最大値Mを224とすると、m及びmは212近傍の値となり、{m,m}={4097,4096}をモジュラスセットにすることが考えられる。この結果、各剰余桁の計算のビット数が12(=log2M)となる。このように、SDSRNS法によれば、キャリー伝播遅延がlog2Mに比例して大きくなる。本来の剰余系のメリットは、4〜5ビット程度のモジュラスを組み合わせて剰余桁毎に独立して計算することにより、キャリー伝播遅延を低減できることにある。このため、Mが大きくなるにつれてキャリー伝播遅延も大きくなるスケーリング剰余系によれば、剰余系のメリットを十分に活かせない。
そこで、スケーリングの際に用いるスケーリング剰余系に加えて、スケーリング以外の演算に用いる算術剰余系を導入し、数値演算処理の高速化とスケーリングの高速化を両立させる。以下に、算術剰余系を定義する。
算術剰余系は、スケーリング剰余系の第1モジュラスmを素因数分解して得られる複数のモジュラス{m 0,m 1,m 2,…,m j-1}と、第2モジュラスmを素因数分解して得られる複数のモジュラス{ m 0,m 1,m 2,…,m k-1}とをモジュラスセットとする。すなわち、算術剰余系は、{{m 0,m 1,m 2,…,m j-1},{ m 0,m 1,m 2,…,m k-1}}をモジュラスセットとする剰余系である。
ここで、第1モジュラスmに対応する複数のモジュラス{m 0,m 1,m 2,…,m j-1}を、第1モジュラスmに対応するモジュラスサブセット又は複数の第1サブモジュラス{m 0,m 1,m 2,…,m j-1}と呼び、第2モジュラスmに対応する複数のモジュラス{ m 0,m 1,m 2,…,m k-1}の組を、第2モジュラスmに対応するモジュラスサブセット又は第2サブモジュラス{ m 0,m 1,m 2,…,m k-1}と呼ぶ。
このとき、以下の式(2−2)に示すように、第1モジュラスmは、互いに素な複数の整数である複数の第1サブモジュラス{m 0,m 1,m 2,…,m j-1}の積となり、第2モジュラスmは、互いに素な複数の整数である複数の第2サブモジュラス{ m 0,m 1,m 2,…,m k-1}の積となる。
Figure 0004279626
ここで表現を簡略化するため、以下の式(2−3)に示すように、スケーリング剰余系で表現された数値を|X|ScalingRNS、算術剰余系で表現された数値を|X|ArithmeticRNSと表現する。
Figure 0004279626
式(2−3)により、算術剰余系は、Xの第1モジュラスmによる剰余値xが、複数の第1サブモジュラス{m 0,m 1,m 2,…,m j-1}のそれぞれによりXを割った複数のサブ剰余値(x 0, x 1,…,x j-1)により表現され、Xの第2モジュラスmによる剰余値xが、複数の第2サブモジュラス{m 0,m 1,m 2,…,m j-1}のそれぞれによりXを割った複数のサブ剰余値(x 0, x 1,…,x j-1)により表現された第2の剰余形式を採るとみなすことができる。
本実施形態に係る剰余系演算システム5は、算術剰余系で表現された数|A|ArithmeticRNS及び|B|ArithmeticRNSを入力として剰余系演算器10により加減乗算を行う。剰余系演算器10による計算の結果スケーリングが必要となった場合に、計算結果|Y|ArithmeticRNS を算術剰余形式からスケーリング剰余形式に変換し、|Y|ScalingRNSを得る。次に、スケーリング剰余系で前述したSDSRNS法によるスケーリングを行い、|Y/mScalingRNSを得る。そして、これをスケーリング剰余形式から算術剰余形式に変換し、|Y/mArithmeticRNSを得る。これにより剰余系演算システム5は、加減乗算の高速化と、スケーリングの高速化を両立させることができる。すなわち、加減乗算は各剰余桁表現が例えば4ビット等の、スケーリング剰余系と比較しビット幅の小さい算術剰余系でおこなうため、キャリー伝播遅延を小さく抑えることができる。そして、スケーリングはSDSRNS法により減算のみで実現できるため、従来の中国人の剰余定理を利用するスケーリング方法より高速に計算できる。
図2は、本実施形態に係る剰余系演算システム5の構成を示す。剰余系演算システム5は、剰余系の数値A及びBを入力して各種の演算を行う剰余系演算器10と、剰余系演算器10による演算の結果スケーリング処理が必要となった場合に、スケーリング演算を行うスケーリング演算器100とを備える。ここでスケーリング演算器100は、剰余系演算器10による演算結果を入力し、入力値の剰余桁間で減算した結果に基づいて、入力値をモジュラスの1つで割った商をスケーリング結果として算出する。これによりスケーリング演算器100は、中国人の剰余定理を利用して一旦2進数又は10進数に変換した後にスケーリングを行う場合と比較して高速にスケーリングを行うことができる。
剰余系演算システム5は、剰余系演算器10と、スケーリング演算器100とを備える。
剰余系演算器10は、本発明に係る第2の剰余形式の一例である算術剰余形式により表現されたオペランドA及びBを入力し、A及びBの間で加算、減算、又は乗算を行う。本実施形態において、オペランドAは、複数の第1サブモジュラス{m 0,m 1,m 2,m 3}のそれぞれによりオペランドAを割った複数の剰余値(a 0,a 1,a 2,a 3)と、複数の第2サブモジュラス{m 0,m 1,m 2}のそれぞれによりオペランドAを割った複数の剰余値 (a 0,a 1,a 2)との組により表現される。同様にオペランドBは、複数の剰余値(b 0,b 1,b 2,b 3)と、複数の剰余値 (b 0,b 1,b 2)との組により表現される。剰余系演算器10は、オペランドA及びオペランドBの対応する剰余桁の剰余値の間で加算、減算、又は乗算を行う複数の剰余演算ALU20を有する。
スケーリング演算器100は、剰余系演算器10による演算結果Y=(y 0,y 1,y 2,y 3,y 0,y 1,y 2)を入力値として入力し、入力値Yをmで割った商を演算結果Yのスケーリング結果Z=(z 0,z 1,z 2,z 3,z 0,z 1,z 2)として算出する。スケーリング演算器100は、オーバーフロー検出器110と、剰余形式変換器120と、減算器130と、商出力部140と、剰余形式逆変換器150とを有する。
オーバーフロー検出器110は、スケーリング演算器100に入力される入力値Yのオーバーフローを検出する。剰余形式変換器120は、算術剰余系により表現された入力値Yを、スケーリング剰余系により表現された入力値Y=(y,y)に変換する。減算器130は、スケーリング剰余系により表現された入力値Yに対して、後述の式(3−5)に示した剰余桁間の減算を行い、剰余桁間の差分値であるモジュラス間差分値を出力する。商出力部140は、式(2−1)に示した様に、モジュラス間差分値に基づいて、スケーリング剰余系により表現されたスケーリング結果Z=(z,z)、すなわち入力値Yをmで割った商Zを出力する。剰余形式逆変換器150は、スケーリング剰余系により表現されたスケーリング結果Zを、算術剰余系により表現されたスケーリング結果Z=(z 0,z 1,z 2,z 3,z 0,z 1,z 2)に変換し、スケーリング結果として出力する。
図3は、本実施形態に係る剰余系演算システム5の動作フローを示す。
まず、剰余系演算器10は、演算対象となる2つの被演算値であるオペランドA及びBを入力して、A及びBの間で加算、減算、又は乗算を行う(ステップS200)。次に剰余系演算器10は、演算結果Yをスケーリングすべきか否かを判断する(S210)。スケーリングが不要である場合、剰余系演算器10は、第2の剰余形式による演算結果Yを演算結果として出力する。
一方、スケーリングが必要である場合、剰余系演算器10は、第2の剰余形式の演算結果Yをスケーリング演算器100に入力する。オーバーフロー検出器110は、スケーリング演算器100に入力された入力値Yのオーバーフローを検出する(S220)。すなわち、後述の補足説明1の(1)に記載したように、被スケーリング数である入力値Yの上限が制限されている場合、オーバーフロー検出器110はオーバーフローを検出する。
また、m≠m-1により剰余系演算システム5を実現した場合、オーバーフロー検出器110は、第1モジュラスm及び第2モジュラスの積mを第1モジュラスm及び第2モジュラスmの差の絶対値により割った値が入力値Y以上である場合に、入力値Yのオーバーフローを検出する。これにより、後述の補足説明1の(2)又は(3)に記載した式(3−13)及び式(3−16)が成立する範囲に入力値Yを制限することができる。
次に、剰余形式変換器120は、算術剰余系により表現された入力値Yを、スケーリング剰余系により表現された入力値Yに変換する。すなわち剰余形式変換器120は、入力値Yの第1モジュラスmによる剰余値yが、複数の第1サブモジュラス{m 0,m 1,m 2,m 3}のそれぞれにより入力値Yを割った複数の第1サブ剰余値(y 0,y 1,y 2,y 3)により表現され、入力値Yの第2モジュラスmによる剰余値yが、複数の第2サブモジュラス{m 0,m 1,m 2}のそれぞれにより入力値を割った複数の第2サブ剰余値(y 0,y 1,y 2)により表現された算術剰余形式の入力値Yを、スケーリング剰余形式の入力値Yに変換する。
次に、減算器130は、入力値Yにおける、第1モジュラスmによる剰余値y及び第2モジュラスmによる剰余値yの差分値であるモジュラス間差分値を出力する。より具体的には、減算器130は、後述の補足説明1の式(3−5)、(3−6)、(3−11)、又は(3−12)等に示した(y- y) mod m又は(y- y) mod mを、モジュラス間差分値として算出し出力する剰余減算器である。ここで、減算器130は、剰余形式の入力値における、第1モジュラスm及び第2モジュラスmのうちより小さいモジュラス(例えばm)による剰余値(例えばy)からより大きいモジュラス(例えばm)による剰余値(例えばy)を減じたモジュラス間差分値(y- y) mod mを出力してよい。
次に、商出力部140は、モジュラス間差分値に基づいて、商qの第1モジュラスmによる剰余値及び商qの第2モジュラスmによる剰余値の組を商qとして出力する。より具体的には、商出力部140は、後述の補足説明1の式(3−10)、(3−13)、又は(3−16)に示した商qを出力する。
すなわち、第1モジュラスm及び第2モジュラスmの差が1である場合、商出力部140は、式(3−10)に示した様に、商qの第1モジュラスmによる剰余値及び商qの第2モジュラスmによる剰余値として、モジュラス間差分値の第1モジュラスmによる剰余値を出力する。また、式(3−10)を用いる場合において、商出力部140は、q mod m=mの場合にq mod m=0に変換する等により剰余桁の補正を行い、スケーリング剰余形式の商qを出力してよい。
また、第1モジュラスm及び第2モジュラスmの差が1でない場合、商出力部140は、式(3−13)又は(3−16)に示した様に、モジュラス間差分値(y- y) mod m又は(y- y) mod mを第1モジュラスm及び第2モジュラスmの差の絶対値|m-m|により割った値の第1モジュラスmによる剰余値を、商qの第1モジュラスmによる剰余値及び商qの第2モジュラスmによる剰余値として算出する。
次に、剰余形式逆変換器150は、商出力部140が出力したスケーリング剰余形式の商qを、算術剰余形式の商qに変換し、算術剰余形式のスケーリング結果Z=(z 0,z 1,z 2,z 3,z 0,z 1,z 2)として出力する。
以上に示した剰余系演算システム5によれば、算術剰余系を用いて加減乗算を行う一方、スケーリング剰余系を用いてスケーリング演算を行うため、剰余系による加減乗算の高速化と、スケーリング演算の高速化とを両立して実現することができる。
図4は、本実施形態の第1変形例に係るスケーリング演算器100の構成を示す。本変形例に係るスケーリング演算器100は、スケーリング剰余系と算術剰余系の間で剰余系の変換を行うのに代えて、第1モジュラスmに対応する複数の第1サブモジュラス{m 0,m 1,m 2,m 3}により表された複数の剰余桁を、第2モジュラスmに対応する複数の第2サブモジュラス{m 0,m 1,m 2}により表された複数の剰余桁に変換し、変換された第1モジュラスmによる剰余値及び第2モジュラスmによる剰余値の差分値をモジュラス間差分値として算出する。これにより、剰余形式変換器120及び剰余形式逆変換器150による変換処理のオーバーヘッドを低減することができる。
なお、算術剰余系におけるモジュラスセット{{m 0,m 1,m 2,m 3},{m 0,m 1,m 2}}のモジュラスサブセット{m 0,m 1,m 2,m 3}及び{m 0,m 1,m 2}の間で剰余数を変換することを、「モジュラスサブセットの桁揃え(Base Extention for Moduli Subset; BEMS)」と呼ぶ。
本変形例に係るスケーリング演算器100は、入力値Yの第1モジュラスmによる剰余値yが、複数の第1サブモジュラス{m 0,m 1,m 2,m 3}のそれぞれにより入力値Yを割った複数の第1サブ剰余値(y 0,y 1,y 2,y 3)により表現され、入力値Yの第2モジュラスmによる剰余値が、複数の第2サブモジュラス{m 0,m 1,m 2}のそれぞれにより入力値Yを割った複数の第2サブ剰余値(y 0,y 1,y 2)により表現された算術剰余形式の入力値Yを入力し、この入力値Yに対してスケーリングを行う。スケーリング演算器100は、第1サブ剰余値変換部300と、第2サブ剰余値変換部310と、減算器320と、条件判断部350と、商出力部370とを有する。
第1サブ剰余値変換部300は、複数の第1サブ剰余値(y 0,y 1,y 2,y 3)により表現された、入力値Yの第1モジュラスmによる剰余値yを、複数の第2サブモジュラス{m 0,m 1,m 2}のそれぞれによる剰余である複数の第1変換サブ剰余値(ψ 0 1 2) に変換する。第1サブ剰余値変換部300は、複数の第1サブ剰余値(y 0,y 1,y 2,y 3)により表現された第1モジュラスmによる剰余値yを2進数のyに変換する剰余値変換器302と、2進数のyを複数の第1変換サブ剰余値(ψ 0 1 2) に変換する変換結果出力部304を含む。ここで、複数の第1変換サブ剰余値(ψ 0 1 2)は、(y 0,y 1,y 2)との差分値を求めることによりスケーリングを実現することができるため、スケーリング係数Ψと表現してよい。
第2サブ剰余値変換部310は、複数の第2サブ剰余値(y 0,y 1,y 2)により表現された、入力値Yの第2モジュラスmによる剰余値を、複数の第1サブモジュラス{m 0,m 1,m 2,m 3}のそれぞれによる剰余である複数の第2変換サブ剰余値(ψ 0 1 2 3)に変換する。第1サブ剰余値変換部300は、複数の第2サブ剰余値(y 0,y 1,y 2)により表現された第2モジュラスmによる剰余値yを2進数のyに変換する剰余値変換器312と、2進数のyを複数の第2変換サブ剰余値(ψ 0 1 2 3)に変換する変換結果出力部314を含む。ここで、複数の第2変換サブ剰余値(ψ 0 1 2 3)を、スケーリング係数Ψと表現してもよい。
減算器320は、入力値Yにおける、第1モジュラスmによる剰余値y及び第2モジュラスmによる剰余値yの差分値であるモジュラス間差分値を出力する。減算器320は、第1モジュラス対応減算器330及び第2モジュラス対応減算器340を含む。
第1モジュラス対応減算器330は、入力値Yの第2モジュラスmによる剰余値yを示す複数の第2変換サブ剰余値(ψ 0 1 2 3)と、入力値Yの第1モジュラスmによる剰余値yを示す複数の第1サブ剰余値(y 0,y 1,y 2,y 3)との差分値であって、複数の第1サブモジュラス{m 0,m 1,m 2,m 3}のそれぞれにより当該差分値を割った複数の剰余値により表現された第2のモジュラス間差分値(zUP 0,zUP 1,zUP 2,zUP 3)を出力する。
第2モジュラス対応減算器340は、入力値Yの第1モジュラスmによる剰余値yを示す複数の第1変換サブ剰余値(ψ 0 1 2)と、入力値Yの第2モジュラスmによる剰余値yを示す複数の第2サブ剰余値(y 0,y 1,y 2)との差分値であって、複数の第2サブモジュラス{m 0,m 1,m 2}のそれぞれにより当該差分値を割った複数の剰余値により表現された第1のモジュラス間差分値を出力する。後述の補足説明1に示したように、第1のモジュラス間差分値は、m=m-1の場合スケーリング結果(z 0,z 1,z 2)と同一となる。
条件判断部350は、第1サブ剰余値変換部300内の剰余値変換器302が2進数の形式で出力する、入力値Yの第1モジュラスmによる剰余値bin yと、第1サブ剰余値変換部300内の第2サブ剰余値変換部310が2進数の形式で出力する、入力値Yの第2モジュラスmによる剰余値bin yとが、予め定められた大小関係を満たすか否かを判断する。
ここで第1モジュラスが第2モジュラスより1大きい場合(m=m-1の場合)、条件判断部350は、後述の補足説明2に示した様に、入力値Yの第1モジュラスmによる剰余値bin yが入力値の第2モジュラスmによる剰余値bin yより大きい場合に、入力値Yの第1モジュラスmによる剰余値yと、入力値の第2モジュラスmによる剰余値yとが、予め定められた大小関係を満たすと判断する。
商出力部370は、第1のモジュラス間差分値及び第2のモジュラス間差分値に基づいて、スケーリング結果Zとなる商qの第1モジュラスmによる剰余値z=(z 0,z 1,z 2,z 3)、及び、商qの第2モジュラスmによる剰余値z=(z 0,z 1,z 2)の組を商qとして出力する。商出力部370は、差分値調整部360と、第1モジュラス対応商出力部372と、第2モジュラス対応商出力部374とを含む。
差分値調整部360は、入力値Yの第1モジュラスmによる剰余値yと、入力値Yの第2モジュラスmによる剰余値yとが、条件判断部350により予め定められた大小関係を満たすと判断された場合に、第1のモジュラス間差分値及び第2のモジュラス間差分値の一方に予め定められた定数を加えて調整した第1のモジュラス間差分値及び第2のモジュラス間差分値を、第1モジュラス対応商出力部372及び第2モジュラス対応商出力部374にそれぞれ供給する。ここでm=m-1の場合、差分値調整部360は、条件判断部350によりbin y<bin yの大小関係を満たすと判断された場合に、第2のモジュラス間差分値(zUP 0,zUP 1,zUP 2,zUP 3)に1を加えて調整した第2のモジュラス間差分値を第1モジュラス対応商出力部372に、第1のモジュラス間差分値を第2モジュラス対応商出力部374にそれぞれ供給する。
第1モジュラス対応商出力部372は、差分値調整部360から供給された第2のモジュラス間差分値に基づいて、複数の第1サブモジュラス{m 0,m 1,m 2,m 3}のそれぞれによる複数の剰余値(z 0,z 1,z 2,z 3)により表現されたスケーリング結果Zとなる商の、第1モジュラスmによる剰余値zを出力する。ここでm=m-1の場合、第1モジュラス対応商出力部372は、差分値調整部360により調整された第2のモジュラス間差分値を、複数の第1サブモジュラス{m 0,m 1,m 2,m 3}のそれぞれによる複数の剰余値{z 0,z 1,z 2,z 3}により表現された商qの第1モジュラスmによる剰余値とする。
第2モジュラス対応商出力部374は、第1のモジュラス間差分値に基づいて、複数の第2サブモジュラス{m 0,m 1,m 2}のそれぞれによる複数の剰余値(z 0,z 1,z 2)により表現されたスケーリング結果Zとなる商の、第2モジュラスmによる剰余値zを出力する。ここでm=m-1の場合、第2モジュラス対応商出力部374は、第1のモジュラス間差分値を、複数の第2サブモジュラス{m 0,m 1,m 2}のそれぞれによる複数の剰余値{z 0,z 1,z 2}により表現された商qの第2モジュラスmによる剰余値とする。
図5は、本実施形態の第1変形例に係る第1サブ剰余値変換部300及び第2モジュラス対応減算器340の構成を示す。なお、第2サブ剰余値変換部310及び第1モジュラス対応減算器330は、剰余桁の数が異なる点を除いて第1サブ剰余値変換部300及び第2モジュラス対応減算器340と略同様の構成をとるため、説明を省略する。
第1サブ剰余値変換部300内の剰余値変換器302は、複数の第2サブモジュラス{m 0,m 1,m 2}のそれぞれによる剰余値の形式に変換すべき被変換値Ξ(0)の初期値(ξ0(0),ξ1(0),ξ2(0),ξ3(0))として、複数の第1サブ剰余値(y 0,y 1,y 2,y 3)により表現された、入力値Yの第1モジュラスmによる剰余値yを入力する。そして剰余値変換器302は、第1モジュラスmによる剰余値yを2進数に変換する。
剰余値変換器302は、被変換値減算器400a〜cと、変換係数算出部410b〜dと、変換係数加算器420b〜dとを含む。
被変換値減算器400aは、被変換値Ξ(0)における、複数の第1サブモジュラス{m 0,m 1,m 2,m 3}のそれぞれにより被変換値Ξ(0)を割った複数の被変換剰余値(ξ0(0),ξ1(0),ξ2(0),ξ3(0))のうち、第1サブモジュラスm 0に対応する被変換剰余値ξ0(0)を0に変換するべくξ0(0)を被変換値Ξ(0)から減じて被変換値Ξ(1)とする。この結果、被変換値Ξ(1)の第1サブモジュラスm 0に対応する剰余値が0となり、Ξ(1)= (0,ξ1(0)-ξ0(0),ξ2(0)-ξ0(0),ξ3(0)-ξ0(0))= (0,ξ1(1),ξ2(1),ξ3(1))となる。そして被変換値Ξ(0)から減じたξ0(0)は、被変換剰余値ξ0(0)を0に変換するために用いた変換係数α1として変換係数加算器420bに入力される。
変換係数算出部410bは、被変換値Ξ(1)から減じた場合に、被変換剰余値ξ1(1)を0とし、かつ、既に0に変換された、第1サブモジュラスm 0に対応する被変換剰余値を0に保つ変換係数α2を算出する。なお、変換係数αnが満たすべき条件については後述する。
変換係数加算器420bは、変換係数算出部410bにより算出される、2進数により表現された変換係数α2を、変換係数α1に加算する。ここで、yは第1モジュラスmより小さいため、変換係数の加算値は第1モジュラスmによる剰余値であると見なせる。
被変換値減算器400bは、変換係数算出部410bにより算出された、第1モジュラスmによる剰余値により表現された変換係数α2を、被変換値Ξ(1)から減じて被変換値Ξ(2)とする。この結果、被変換値Ξ(2)の2つの第1サブモジュラスm 0及びm 1に対応する被変換剰余値がそれぞれ0となり、Ξ(2)= (0, 0,ξ2(1)-ξ1(1),ξ3(1)-ξ1(1))= (0,0,ξ2(2),ξ3(2))となる。
変換係数算出部410cは、被変換値Ξ(2)から減じた場合に、被変換剰余値ξ2(2)を0とし、かつ、既に0に変換された、2つの第1サブモジュラスm 0及びm 1に対応する被変換剰余値を0に保つ変換係数α3を算出する。
変換係数加算器420cは、変換係数算出部410cにより算出される、2進数により表現された変換係数α3を、変換係数α1及びα2の加算値に加算する。
被変換値減算器400cは、変換係数算出部410cにより算出された、第1モジュラスmによる剰余値により表現された変換係数α3を、被変換値Ξ(2)から減じて被変換値Ξ(3)とする。この結果、被変換値Ξ(3)の3つの第1サブモジュラスm 0からm 2に対応する被変換剰余値がそれぞれ0となり、Ξ(3)= (0, 0,0,ξ3(2)-ξ2(2))= (0,0,0,ξ3(3))となる。
変換係数算出部410dは、被変換値Ξ(3)から減じた場合に、被変換剰余値ξ3(3)を0とし、かつ、既に0に変換された、3つの第1サブモジュラスm 0からm 2に対応する被変換剰余値を0に保つ変換係数α4を算出する。
変換係数加算器420dは、変換係数算出部410dにより算出される、2進数により表現された変換係数α4を、変換係数α1からα3の加算値に加算する。そして変換係数加算器420dは、全ての変換係数の加算値を、2進数の剰余値yとして出力する。
以上において、変換係数算出部410b〜dは、変換係数αnとして、既に0に変換された1又は複数の第1サブモジュラスの倍数であり、かつ、次に0に変換する被変換剰余値を0とする、以下の式(2−4)を満たす最小の自然数を算出する。ただし、sn及びtnは自然数である。
Figure 0004279626
以上に示した様に、初期値をyとする被変換値から変換係数を順次剰余減算する一方、被変換値から減じた変換係数を順次2進数で加算していくことにより、被変換値が0となった時点でyに対応する2進数のyを得ることができる。
変換結果出力部304は、複数の被変換剰余値の全てについて算出された全ての変換係数α1からα4が変換係数加算器420b〜dにより加算された加算値である2進数の剰余値yを、複数の第2サブモジュラス{m 0,m 1,m 2}のそれぞれにより割った複数の剰余値を、複数の第1変換サブ剰余値{m 0,m 1,m 2}として出力する。変換結果出力部304は、2進数の剰余値yの、複数の第2サブモジュラス{m 0,m 1,m 2}のそれぞれによる剰余である複数の第1変換サブ剰余値(ψ 0 1 2)を算出する複数の剰余演算器430を含む。
第2モジュラス対応減算器340は、複数の第2サブモジュラス{m 0,m 1,m 2}のそれぞれに対応する剰余桁間の減算を行う複数の剰余減算器440を含み、第1変換サブ剰余値(ψ 0 1 2)と、複数の第2サブ剰余値(y 0,y 1,y 2)との差分値である第1のモジュラス間差分値(z 0,z 1,z 2)を出力する。
図6は、本実施形態の第1変形例に係る条件判断部350及び差分値調整部360の構成を示す。
条件判断部350は、入力値Yの第1モジュラスmによる剰余値bin yと、入力値Yの第2モジュラスmによる剰余値bin yとが、予め定められた大小関係を満たすか否かを判断する。第1モジュラスが第2モジュラスより1大きい場合(m=m-1の場合)、条件判断部350は、入力値Yの第1モジュラスmによる剰余値bin yが入力値の第2モジュラスmによる剰余値bin yより大きい場合に、論理値1を出力する比較器500を含む。
差分値調整部360は、比較器500が論理値0を出力した場合に出力値0が選択され、比較器500が論理値1を出力した場合に出力値1が選択されるセレクタ510と、セレクタ510の出力値を第2のモジュラス間差分値(zUP 0,zUP 1,zUP 2,zUP 3)に加える複数の剰余加算器520とを含む。
以上に示した条件判断部350及び差分値調整部360により、スケーリング演算器100は、式(4−8)及び式(4−9)に示した方法を用いて第2のモジュラス間差分値(zUP 0,zUP 1,zUP 2,zUP 3)を調整し、スケーリング結果Zの第1モジュラスmによる剰余値z=(z 0,z 1,z 2,z 3)を出力することができる。
図7は、本実施形態の第1変形例に係るスケーリング演算器100の動作フローを示す。
算術剰余形式の被スケーリング数である入力値Yが入力されると、第1サブ剰余値変換部300内の剰余値変換器302は、複数の第1サブ剰余値(y 0,y 1,y 2,y 3)により表現された、入力値Yの第1モジュラスmによる剰余値yを、2進数のyに変換する(S600)。また、第2サブ剰余値変換部310内の剰余値変換器312は、複数の第2サブ剰余値(y 0,y 1,y 2)により表現された第2モジュラスmによる剰余値を、2進数のyに変換する。
より具体的には、剰余値変換器302内の変換係数算出部410b〜dは、複数の第1サブ剰余値(y 0,y 1,y 2,y 3)により表現された入力値Yの第1モジュラスmによる剰余値yを初期値Ξ(0)とする被変換値Ξ(n)における、複数の第1サブモジュラス{m 0,m 1,m 2,m 3}のそれぞれにより被変換値Ξ(n)を割った複数の被変換剰余値(ξ0123)のそれぞれについて、被変換値Ξ(n)から減じた場合に、順次当該被変換剰余値ξnを0とし、かつ、既に0に変換された他の全ての被変換剰余値ξ0からξn-1を0に保つ変換係数αn+1を算出する。
ここで剰余値変換器302は、1番目の被変換剰余値ξ0については、変換係数α1をξ0とする。そして、被変換値減算器400aは、被変換値Ξ(0)の各剰余桁から変換係数α1を減じて被変換値をΞ(1)に更新する。
次に、剰余値変換器302内の変換係数加算器420b〜dは、変換係数算出部410b〜dにより順次算出される、第1モジュラスmによる剰余値により表現された変換係数αn+1を、順次加算していく。そして、被変換値減算器400b〜dは、変換係数算出部410b〜cにより順次算出される、第1モジュラスmによる剰余値により表現された変換係数αn+1を、被変換値Ξ(n)から順次減じる。
次に、変換結果出力部304は、2進数のyを複数の第1変換サブ剰余値(ψ 0 1 2) に変換し、変換結果出力部314は、2進数のyを複数の第2変換サブ剰余値(ψ 0 1 2 3)に変換する(S610)。次に、減算器320は、入力値Yにおける、第1モジュラスmによる剰余値y及び第2モジュラスmによる剰余値yの差分値である第1のモジュラス間差分値(z 0,z 1,z 2)と、第2のモジュラス間差分値(zUP 0,zUP 1,zUP 2,zUP 3)とを出力する(S620)。
次に、入力値Yの第1モジュラスmによる剰余値bin yが入力値の第2モジュラスmによる剰余値bin yより大きい場合に、条件判断部350は、y及びyが予め定められた大小関係を満たすと判断する(S630)。
y及びyが予め定められた大小関係を満たす場合(S630:Yes)、差分値調整部360は、第2のモジュラス間差分値(zUP 0,zUP 1,zUP 2,zUP 3)を調整する(S640)。一方、y及びyが予め定められた大小関係を満たさない場合(S630:No)、差分値調整部360は、第2のモジュラス間差分値(zUP 0,zUP 1,zUP 2,zUP 3)を調整せず、そのまま商出力部370に供給する(S650)。
次に、商出力部370は、第1のモジュラス間差分値及び第2のモジュラス間差分値に基づいて、スケーリング結果Zとなる商qの第1モジュラスmによる剰余値z=(z 0,z 1,z 2,z 3)、及び、商qの第2モジュラスmによる剰余値z=(z 0,z 1,z 2)の組を商qとして出力する(S660)。
以上に示した通り、第1変形例に係るスケーリング演算器100によれば、算術剰余系における複数の剰余桁の一部を、他の複数の剰余桁における表現に変換してモジュラス間差分値を算出する。これにより、スケーリング剰余系と算術剰余系の間で剰余系の変換を行った場合と比較し変換処理のオーバーヘッドを低減することができる。
なお、以上の変換係数算出部410b〜dは、剰余系加算器により実現するのに代えて、各被変換剰余値ξを入力し、当該被変換剰余値ξに対応する変換係数αを出力するルックアップテーブルにより構成してもよい。より具体的には、変換係数算出部410b〜dは、複数の被変換剰余値のそれぞれについて、当該被変換剰余値に対応するアドレスに、当該被変換剰余値に対応する変換係数をデータとして格納するメモリを含み、被変換剰余値に対応する変換係数を当該メモリから出力してよい。
この場合、当該メモリは、被変換剰余値の値に対応するアドレスに、当該被変換剰余値に対応する変換係数を、2進数の値、及び、複数の第2サブモジュラスによる複数の剰余値の2通りのデータとして格納してよい。これにより、変換係数算出部410b〜dから変換係数加算器420b〜dに供給する2進数の変換係数と、被変換値減算器400b〜cに供給する、複数の第2サブモジュラスにより表現された変換係数とを、メモリから直接読み出して供給することができる。
また、変換係数算出部410b〜dは、被変換値Ξにおける、複数の被変換剰余値ξのそれぞれについて、複数の第1サブモジュラスm0 からmj-1 のうちより大きい第1サブモジュラスmn に対応する被変換剰余値ξnから順に、変換係数αn+1を算出してよい。これにより、変換係数算出部410b〜dをルックアップテーブルにより構成した場合等におけるハードウェア量を低減することができる。
また、以上に示した変換係数加算器420b〜dを設ける代わりに、第2モジュラス対応減算器340は、変換係数算出部410b〜dにより順次算出される変換係数を、入力値Yの第2モジュラスによる剰余値(y 0,y 1,y 2)から順次減じて第1のモジュラス間差分値を算出し出力してもよい。より具体的には、第2モジュラス対応減算器340は、変換係数算出部410b〜dにより順次算出される、複数の第2サブモジュラス{m 0,m 1,m 2}のそれぞれによる複数の剰余値により表現された変換係数αnを、複数の第2サブ剰余値{m 0,m 1,m 2}により表現された入力値Yの第2モジュラス{m 0,m 1,m 2}による剰余値(y 0,y 1,y 2)から順次減じて、複数の第2サブモジュラス{m 0,m 1,m 2}のそれぞれによる複数の剰余値により表現された第1のモジュラス間差分値(z 0,z 1,z 2)を出力してよい。
図8は、本実施形態の第2変形例に係るスケーリング演算器100の構成を示す。本変形例に係るスケーリング演算器100は、一方のスケーリング結果Z mod m=z=(z 0,z 1,z 2)から、他方のスケーリング結果Z mod m=z=(z 0,z 1,z 2,z 3)を算出する。ここで後述の式(3−8)よりZ≦mであるから、後述の式(3−9)を適用すれば以下の式(2−5)が成立する。
Figure 0004279626
従って、図4の第2サブ剰余値変換部310を使用すれば、複数の第2サブモジュラス{m 0,m 1,m 2}のそれぞれによる複数の剰余値により表現された第1のモジュラス間差分値であるスケーリング結果(z 0,z 1,z 2)を、複数の第1サブモジュラス{m 0,m 1,m 2,m 3}のそれぞれによる複数の剰余値により表現された変換モジュラス間差分値であるスケーリング結果(z 0,z 1,z 2,z 3)に変換することができる。
本変形例に係るスケーリング演算器100は、第1サブ剰余値変換部300と、第2モジュラス対応減算器340を含む減算器320と、第2サブ剰余値変換部310と、商出力部370とを有する。本変形例に係る第1サブ剰余値変換部300、第2サブ剰余値変換部310、第2モジュラス対応減算器340、及び商出力部370は、図4に示した第1サブ剰余値変換部300、第2サブ剰余値変換部310、第2モジュラス対応減算器340、及び商出力部370とそれぞれ同様の機能及び構成をとるため、以下相違点を除き説明を省略する。
減算器320は、入力値Yにおける、第1モジュラスmによる剰余値y及び第2モジュラスmによる剰余値yの差分値であるモジュラス間差分値として、第2モジュラス対応減算器340により出力された第1のモジュラス間差分値を出力する。後述の補足説明1に示したように、第1のモジュラス間差分値は、m=m-1の場合スケーリング結果(z 0,z 1,z 2)と同一となる。
第2サブ剰余値変換部310は、複数の第2サブモジュラス{m 0,m 1,m 2}のそれぞれによる複数の剰余値により表現された第1のモジュラス間差分値(z 0,z 1,z 2)を、複数の第1サブモジュラス{m 0,m 1,m 2,m 3}のそれぞれによる複数の剰余値により表現された変換モジュラス間差分値に変換する。
商出力部370は、差分値調整部360を有さず、変換モジュラス間差分値に基づいて、複数の第1サブモジュラス{m 0,m 1,m 2,m 3}のそれぞれによる複数の剰余値により表現された、スケーリング結果Zとなる商qの第1モジュラスによる剰余値(z 0,z 1,z 2,z 3)を出力する第1モジュラス対応商出力部372と、第1のモジュラス間差分値に基づいて、複数の第2サブモジュラスのそれぞれによる複数の剰余値により表現された、スケーリング結果Zとなる商qの第2モジュラスによる剰余値(z 0,z 1,z 2)を出力する。
図9は、本実施形態の第2変形例に係るスケーリング演算器100の動作フローを示す。
算術剰余形式の被スケーリング数である入力値Yが入力されると、第1サブ剰余値変換部300内の剰余値変換器302は、複数の第1サブ剰余値(y 0,y 1,y 2,y 3)により表現された、入力値Yの第1モジュラスmによる剰余値yを、2進数のyに変換する(S800)。次に、変換結果出力部304は、2進数のyを複数の第1変換サブ剰余値(ψ 0 1 2) に変換する(S810)。
次に、減算器320は、入力値Yにおける、第1モジュラスmによる剰余値y及び第2モジュラスmによる剰余値yの差分値であるモジュラス間差分値として、第2モジュラス対応減算器340により出力された第1のモジュラス間差分値を出力する(S820)。
次に、第2サブ剰余値変換部310は、複数の第2サブモジュラス{m 0,m 1,m 2}のそれぞれによる複数の剰余値により表現された第1のモジュラス間差分値を、複数の第1サブモジュラス{m 0,m 1,m 2,m 3}のそれぞれによる複数の剰余値により表現された変換モジュラス間差分値に変換する(S830)。
次に、商出力部370は、変換モジュラス間差分値に基づいて、スケーリング結果Zとなる商qの第1モジュラスによる剰余値(z 0,z 1,z 2,z 3)及び第2モジュラスによる剰余値(z 0,z 1,z 2)の組を出力する(S850)。
以上に示した通り、第2変形例に係るスケーリング演算器100によれば、算術剰余系における複数の剰余桁の一部を、他の複数の剰余桁における表現に変換してモジュラス間差分値を算出する。これにより、スケーリング剰余系と算術剰余系の間で剰余系の変換を行った場合と比較し変換処理のオーバーヘッドを低減することができる。また、減算器320が算出した1つのモジュラス間差分値を用いて、スケーリング結果Zの各剰余桁を生成することができ、ハードウェア量を低減することができる。
図10は、本実施形態に係るコンピュータ900のハードウェア構成の一例を示す。本実施形態に係るコンピュータ900は、CPU1000、ROM1010、RAM1020、通信インターフェイス1030、ハードディスク・ドライブ1040、フレキシブルディスク・ドライブ1050、及びCD−ROMドライブ1060を備える。
CPU1000は、ROM1010及びRAM1020に格納されたプログラムに基づいて動作し、各部の制御を行う。ROM1010は、コンピュータ900の起動時にCPU1000が実行するブートプログラムや、コンピュータ900のハードウェアに依存するプログラム等を格納する。RAM1020は、CPU1000が実行するプログラム及びCPU1000が使用するデータ等を格納する。通信インターフェイス1030は、通信ネットワークを介して他の装置と通信する。ハードディスク・ドライブ1040は、コンピュータ900が使用するプログラム及びデータを格納し、RAM1020を介してCPU1000に供給する。フレキシブルディスク・ドライブ1050は、フレキシブルディスク1070からプログラム又はデータを読み取り、RAM1020に提供する。CD−ROMドライブ1060は、CD−ROM1080からプログラム又はデータを読み取り、RAM1020に提供する。
RAM1020を介してCPU1000に提供されるプログラムは、フレキシブルディスク1070、CD−ROM1080、又はICカード等の記録媒体に格納されて利用者によって提供される。プログラムは、記録媒体から読み出され、RAM1020を介してコンピュータ900にインストールされ、コンピュータ900において実行される。
コンピュータ900にインストールされて実行され、コンピュータ900を剰余系演算システム5として機能させるプログラムは、剰余系演算モジュールと、オーバーフロー検出モジュール、剰余形式変換モジュール、減算モジュール、商出力モジュール、及び剰余形式逆変換モジュールを含むスケーリング演算モジュールとを備える。これらのプログラム又はモジュールは、コンピュータ900内のCPU1000及び/又はRAM1020等を、剰余系演算器10と、オーバーフロー検出器110、剰余形式変換器120、減算器130、商出力部140、及び剰余形式逆変換器150を含むスケーリング演算器100としてそれぞれ機能させる。
これに代えて、スケーリング演算モジュールは、剰余値変換モジュール及び変換結果出力モジュールを含む第1サブ剰余値変換モジュールと、剰余値変換モジュール及び変換結果出力モジュールを含む第2サブ剰余値変換モジュールと、第1モジュラス対応減算モジュール及び第2モジュラス対応減算モジュールを含む減算モジュールと、条件判断モジュールと、差分値調整モジュール、第1モジュラス対応商出力モジュール、及び第2モジュラス対応商出力モジュールを含む商出力モジュールとを備えてもよい。これらのプログラム又はモジュールは、コンピュータ900内のCPU1000及び/又はRAM1020等を、剰余値変換器302及び変換結果出力部304を含む第1サブ剰余値変換部300と、剰余値変換器312及び変換結果出力部314を含む第2サブ剰余値変換部310と、第1モジュラス対応減算器330及び第2モジュラス対応減算器340を含む減算器320と、条件判断部350と、差分値調整部360、第1モジュラス対応商出力部372、及び第2モジュラス対応商出力部374を含む商出力部370としてそれぞれ機能させる。
また、スケーリング演算モジュールは、剰余値変換モジュール及び変換結果出力モジュールを含む第1サブ剰余値変換モジュールと、剰余値変換モジュール及び変換結果出力モジュールを含む第2サブ剰余値変換モジュールと、第2モジュラス対応減算モジュールを含む減算モジュールと、第1モジュラス対応商出力モジュール及び第2モジュラス対応商出力モジュールを含む商出力モジュールとを備えてもよい。これらのプログラム又はモジュールは、コンピュータ900内のCPU1000及び/又はRAM1020等を、剰余値変換器302及び変換結果出力部304を含む第1サブ剰余値変換部300と、剰余値変換器312及び変換結果出力部314を含む第2サブ剰余値変換部310と、第2モジュラス対応減算器340を含む減算器320と、商出力部370としてそれぞれ機能させる。
以上に示したプログラム又はモジュールは、外部の記録媒体に格納されてもよい。記録媒体としては、フレキシブルディスク1070、CD−ROM1080の他に、DVDやPD等の光学記録媒体、MD等の光磁気記録媒体、テープ媒体、ICカード等の半導体メモリ等を用いることができる。また、専用通信ネットワークやインターネットに接続されたサーバシステムに設けたハードディスク又はRAM等の記憶装置を記録媒体として使用し、通信ネットワークを介して外部のネットワークからプログラムをコンピュータ900に提供してもよい。
以上に示したスケーリング演算器100によるスケーリング演算の計算量を、従来方式と比較する。
例えば、{25,8,7,3,19,17,13}という7個のモジュラスで表現される算術剰余系の数値をスケーリングする場合、式(1−17)に示した中国人の剰余定理を用いると、2進数の24ビット乗算を7回行うこととなる。これに対し、図2に示したスケーリング演算器100によれば、12ビット乗算を7回行うことにより同様のスケーリングを実現できる。ここで、積和演算の計算量はビット数の2乗に比例する。この様に、2進数でnビットとなる数値をスケーリングする場合、1ビット加算器の計算量をC(Complexity)とすると、従来方式ではn2Cの計算量に対して、図2に示したスケーリング演算器100では(n/2)2Cの計算量となる。従って、図2に示したスケーリング演算器100によれば、従来方式と比較し計算量を1/4に低減させることができる。
また、図4に示したスケーリング演算器100において、剰余値変換器302内の変換係数算出部410b〜dをルックアップテーブルにより構成すれば、2進数の各剰余桁(2から5ビット)の剰余加減算を9から12回行うこととなる。この様に、図4に示したスケーリング演算器100においては、モジュラスの選択によるが、概ね(n+(1/2)n)Cの計算量となり、従来方式と比較し計算量を約(1/24)nに低減させることができる。
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
以下に、剰余系演算システム5を実現する前提となる事項について補足説明を行う。
(補足説明1)スケーリング剰余系によるスケーリング方式の説明
以下に、スケーリング剰余系によるスケーリング方式(SDSRNS方式)について、m=m-1及びm≠m-1の各場合に分けて説明する。
(1)m=m-1の場合
モジュラスが{m, m}の2個からなるスケーリング剰余系において、Yをmでスケーリングしたスケーリング結果は、Yをmで割った商qを用いて(q mod m,q mod m)という形で与えられる。ここで、m及びmは互いに素であり、mとmの間には、以下の式(3−1)の関係があるものとする。
Figure 0004279626
この場合、スケーリング剰余系で表現できる数値の最大値はM=mm=m(m-1)となる。
被スケーリング数Yをモジュラスmでスケーリングした結果qを算出する方法を以下に示す。なお、被スケーリング数Yのモジュラスmによるスケーリング結果pは、同様の方法で算出できるため説明を省略する。
被スケーリング数Yは、第1のモジュラスmによる剰余値y及び第2のモジュラスmによる剰余値yの組による第1の剰余形式(y,y)で表現される。ここで式(1−2)より、以下の式(3−2)及び式(3−3)が成立する。ただし、yはYをmで割った剰余値、yはYをmで割った剰余値、pはYをmで割った商(p= Y/m)、qはYをmで割った商(q= Y/m)である。
Figure 0004279626
Figure 0004279626
式(3−1)を式(3−3)に代入し、これを式(3−2)より引くと、以下の式(3−4)を得ることができ、式(3−5)が成立することが分かる。
Figure 0004279626
Figure 0004279626
式(3−5)から、2つの剰余数の差(y− y)を計算することにより、Yをモジュラスmでスケーリングした結果qを得ることができる。同様に、Yをモジュラスmでスケーリングした結果pの2進数表現は、以下の式(3−6)で得られる。
Figure 0004279626
つぎに,2進数表現のスケーリング結果qを、スケーリング剰余系による表現に変換する。モジュラスが十分に大きな数であるとき、以下の式(3−7)の近似を用いて、式(3−8)を導くことができる。
Figure 0004279626
Figure 0004279626
すなわち、剰余桁の差でもとめられる計算結果qは、必ずモジュラスm (m)よりも小さいと近似することができ、以下の式(3−9)が成立する。
Figure 0004279626
以上により、Yをモジュラスmでスケーリングした結果は、以下の式(3−10)により求めることができる。
Figure 0004279626
ただし、以上の式(3−7)の近似は、q=mとなる場合には成立しない。そこで、被スケーリング数Yの上限をY< m×mに制限するか、mによりスケーリングを行うか、q mod m=mの場合にq mod m=0に変換するかのいずれかの手段を用いて実現してよい。
(2)m≠m-1の場合
m≠m-1かつm>mの場合、式(3−2)及び(3−3)から以下の式(3−11)を導くことができる。
Figure 0004279626
ここで、q・(m-m)<mに制限すると、以下の式(3−12)が成立する。なお、この制限により、Yの最大値Mは(m×m)/(m-m)未満に制限される。
Figure 0004279626
以上より、Yをモジュラスmでスケーリングした結果は、式(3−6)から式(3−10)と同様にして、以下の式(3−13)により求めることができる。
Figure 0004279626
一方、m≠m-1かつm<mの場合、式(3−2)及び(3−3)から以下の式(3−14)を導くことができる。
Figure 0004279626
ここで、q・(m-m)<mに制限すると、以下の式(3−15)が成立する。なお、この制限により、Yの最大値Mは(m×m)/(m-m)未満に制限される。
Figure 0004279626
以上より、Yをモジュラスmでスケーリングした結果は、以下の式(3−16)により求めることができる。
Figure 0004279626
(補足説明2)差分値調整によるスケーリング結果の算出方法
複数の第2サブ剰余値(y 0,y 1,y 2)により表現される被スケーリング数yを、複数の第2変換サブ剰余値(ψ 0 1 2 3)により表現されるスケーリング係数Ψに変換したモジュラス間差分値を用いて、スケーリング結果Zにおけるzを算出する方法を説明する。以下説明の便宜上スケーリング剰余系を用いる。
まず、zのmによるスケーリング結果(以下zUP)から、zのmによるスケーリング結果(以下zLO)を導出するために、zUP及びzLOの関係を示す。ここで、zUP及びzLOの間には、以下の補助定理が成立する。
補助定理:m=m-1の場合、zUP及びzLOは、zLO=zUP又はzLO= zUP+ 1を満たす。
証明:zLO=zUP+Jと仮定する。ただし、Jは整数である。また、zLOはYをmでスケーリングした結果、zUPはYをmでスケーリングした結果である。式(1−2)より、スケーリング剰余系(y,y)を用いて以下の式(4−1)及び式(4−2)が得られる。
Figure 0004279626
Figure 0004279626
式(4−1)は、m=m-1を用いて以下の式(4−3)に変形することができる。
Figure 0004279626
式(4−2)と式(4−3)により、以下の式(4−4)が成立する。
Figure 0004279626
ここで、yは第1モジュラスmの剰余であるため、0≦y<mを満たす。また、yは第2モジュラスmの剰余であるため、 0≦y<mを満たす。従って、以下の式(4−5)が成立する。
Figure 0004279626
更に、zUPはYをmでスケーリングした結果であるから、式(3−8)を適用すれば以下の式(4−6)が成立する。
Figure 0004279626
ここで、式(4−4)においてJ≧2と仮定し、yをとりえる最小値である0、zUPをとりえる最大値である(m−1)とすると、以下の式(4−7)となり、0≦y<mに矛盾する。
Figure 0004279626
また、J<0と仮定した場合においても、y=(1-J)m−1+y>mとなり、0≦y<mに矛盾する。従って、Jの取り得る値は0又は1である。すなわち、zLO=zUP又はzLO=zUP+1となる。
以上に示した補助定理を用いて、zUPからスケーリング結果z(=zLO)を算出することができる。以下に、2進数のy(bin y)及びy(bin y)を用いてzLOがzUP又はzUP+1のいずれであるかを判定する方法を示す。
式(4−4)から、J=0のときy-y= zUP≧0となり、J=1のときy-y= zUP- m<0となる。このため、以下の式(4−8)及び式(4−9)が成立する。
Figure 0004279626
Figure 0004279626
したがってbin y≧bin yの場合にはzUPを、bin y<bin yの場合にはzUP+1を、スケーリング結果zとして出力すればよい。
本発明の実施形態に係るスケーリング処理の概略を示す。 本発明の実施形態に係る剰余系演算システム5の構成を示す。 本発明の実施形態に係る剰余系演算システム5の動作フローを示す。 本発明の実施形態の第1変形例に係るスケーリング演算器100の構成を示す。 本発明の実施形態の第1変形例に係る第1サブ剰余値変換部300及び第2モジュラス対応減算器340の構成を示す。 本発明の実施形態の第1変形例に係る条件判断部350及び差分値調整部360の構成を示す。 本発明の実施形態の第1変形例に係るスケーリング演算器100の動作フローを示す。 本発明の実施形態の第2変形例に係るスケーリング演算器100の構成を示す。 本発明の実施形態の第2変形例に係るスケーリング演算器100の動作フローを示す。 本発明の実施形態に係るコンピュータ900のハードウェア構成の一例を示す。
符号の説明
3 スケーリング演算器
5 剰余系演算システム
10 剰余系演算器
20 剰余演算ALU
100 スケーリング演算器
110 オーバーフロー検出器
120 剰余形式変換器
130 減算器
140 商出力部
150 剰余形式逆変換器
300 第1サブ剰余値変換部
302 剰余値変換器
304 変換結果出力部
310 第2サブ剰余値変換部
312 剰余値変換器
314 変換結果出力部
320 減算器
330 第1モジュラス対応減算器
340 第2モジュラス対応減算器
350 条件判断部
360 差分値調整部
370 商出力部
372 第1モジュラス対応商出力部
374 第2モジュラス対応商出力部
400a〜c 被変換値減算器
410b〜d 変換係数算出部
420b〜d 変換係数加算器
430 剰余演算器
440 剰余減算器
500 比較器
510 セレクタ
520 剰余加算器
900 コンピュータ
1000 CPU
1010 ROM
1020 RAM
1030 通信インターフェイス
1040 ハードディスク・ドライブ
1050 フレキシブルディスク・ドライブ
1060 CD−ROMドライブ
1070 フレキシブルディスク
1080 CD−ROM

Claims (12)

  1. 数値を第1モジュラス(法)による剰余値及び第2モジュラスによる剰余値の組による第1の剰余形式で表現する剰余系において、前記第1の剰余形式の入力値を前記第2モジュラスで割った前記第1の剰余形式の商を算出するスケーリング演算器であって、
    前記入力値における、前記第1モジュラスによる剰余値及び前記第2モジュラスによる剰余値の差分値であるモジュラス間差分値を出力する減算器と、
    前記モジュラス間差分値に基づいて、前記商の第1モジュラスによる剰余値及び前記商の前記第2モジュラスによる剰余値の組を前記商として出力する商出力部と
    を備えるスケーリング演算器。
  2. 前記第1モジュラス及び前記第2モジュラスは互いに素である請求項1記載のスケーリング演算器。
  3. 前記第1モジュラス及び前記第2モジュラスの差は1であり、
    前記商出力部は、前記商の第1モジュラスによる剰余値及び前記商の前記第2モジュラスによる剰余値として、前記モジュラス間差分値の前記第1モジュラスによる剰余値を出力する
    請求項1または2記載のスケーリング演算器。
  4. 前記減算器は、前記剰余形式の前記入力値における、前記第1モジュラス及び前記第2モジュラスのうちより小さいモジュラスによる剰余値からより大きいモジュラスによる剰余値を減じた前記モジュラス間差分値を出力し、
    前記商出力部は、前記モジュラス間差分値を前記第1モジュラス及び前記第2モジュラスの差の絶対値により割った値の前記第1モジュラスによる剰余値を、前記商の第1モジュラスによる剰余値及び前記商の前記第2モジュラスによる剰余値として算出する
    請求項1から3のいずれかに記載のスケーリング演算器。
  5. 前記第1モジュラスは、互いに素な複数の整数である複数の第1サブモジュラスの積であり、
    前記第2モジュラスは、互いに素な複数の整数である複数の第2サブモジュラスの積であり、
    前記入力値の前記第1モジュラスによる剰余値が、前記複数の第1サブモジュラスのそれぞれにより前記入力値を割った複数の第1サブ剰余値により表現され、前記入力値の前記第2モジュラスによる剰余値が、前記複数の第2サブモジュラスのそれぞれにより前記入力値を割った複数の第2サブ剰余値により表現された第2の剰余形式の前記入力値を、前記第1の剰余形式の前記入力値に変換する剰余形式変換器と、
    前記商出力部が出力した前記第1の剰余形式の前記商を、前記第2の剰余形式の前記商に変換する剰余形式逆変換器と
    を備える請求項1から4のいずれかに記載のスケーリング演算器。
  6. 前記第1モジュラスは、互いに素な複数の整数である複数の第1サブモジュラスの積であり、
    前記第2モジュラスは、互いに素な複数の整数である複数の第2サブモジュラスの積であり、
    前記入力値は、前記第1モジュラスによる剰余値が、前記複数の第1サブモジュラスのそれぞれにより前記入力値を割った複数の第1サブ剰余値により表現され、前記第2モジュラスによる剰余値が、前記複数の第2サブモジュラスのそれぞれにより前記入力値を割った複数の第2サブ剰余値により表現された第2の剰余形式により更に表現され、
    前記複数の第1サブ剰余値により表現された、前記入力値の前記第1モジュラスによる剰余値を、前記複数の第2サブモジュラスのそれぞれによる剰余である複数の第1変換サブ剰余値に変換する第1サブ剰余値変換部を更に備え、
    前記減算器は、前記入力値の前記第1モジュラスによる剰余値を示す前記複数の第1変換サブ剰余値と、前記入力値の前記第2モジュラスによる剰余値を示す前記複数の第2サブ剰余値との差分値であって、前記複数の第2サブモジュラスのそれぞれにより当該差分値を割った複数の剰余値により表現された第1の前記モジュラス間差分値を出力する第2モジュラス対応減算器を有し、
    前記商出力部は、前記第1のモジュラス間差分値に基づいて、前記複数の第2サブモジュラスのそれぞれによる複数の剰余値により表現された前記商の前記第2モジュラスによる剰余値を出力する第2モジュラス対応商出力部を有する
    請求項1から4のいずれかに記載のスケーリング演算器。
  7. 前記複数の第2サブ剰余値により表現された、前記入力値の前記第2モジュラスによる剰余値を、前記複数の第1サブモジュラスのそれぞれによる剰余である複数の第2変換サブ剰余値に変換する第2サブ剰余値変換部を更に備え、
    前記減算器は、前記入力値の前記第2モジュラスによる剰余値を示す前記複数の第2変換サブ剰余値と、前記入力値の前記第1モジュラスによる剰余値を示す前記複数の第1サブ剰余値との差分値であって、前記複数の第1サブモジュラスのそれぞれにより当該差分値を割った複数の剰余値により表現された第2の前記モジュラス間差分値を出力する第1モジュラス対応減算器を更に有し、
    前記商出力部は、前記第2のモジュラス間差分値に基づいて、前記複数の第1サブモジュラスのそれぞれによる複数の剰余値により表現された前記商の前記第1モジュラスによる剰余値を出力する第1モジュラス対応商出力部を更に有する
    請求項6記載のスケーリング演算器。
  8. 前記入力値の前記第1モジュラスによる剰余値と、前記入力値の前記第2モジュラスによる剰余値とが、予め定められた大小関係を満たすか否かを判断する条件判断部を更に備え、
    前記商出力部は、前記入力値の前記第1モジュラスによる剰余値と、前記入力値の前記第2モジュラスによる剰余値とが、前記予め定められた大小関係を満たす場合に、前記第1のモジュラス間差分値及び前記第2のモジュラス間差分値の一方に予め定められた定数を加えて調整した前記第1のモジュラス間差分値及び前記第2のモジュラス間差分値を、前記第1モジュラス対応商出力部及び前記第2モジュラス対応商出力部にそれぞれ供給する差分値調整部を更に有する
    請求項7記載のスケーリング演算器。
  9. 前記第1サブ剰余値変換部は、
    前記複数の第1サブ剰余値により表現された前記入力値の前記第1モジュラスによる剰余値を初期値とする被変換値における、前記複数の第1サブモジュラスのそれぞれにより前記被変換値を割った複数の被変換剰余値のそれぞれについて、前記被変換値から減じた場合に、順次当該被変換剰余値を0とし、かつ、既に0に変換された他の全ての前記被変換剰余値を0に保つ変換係数を算出する変換係数算出部と、
    前記変換係数算出部により順次算出される、前記第1モジュラスによる剰余値により表現された前記変換係数を、順次加算していく変換係数加算器と、
    前記変換係数算出部により順次算出される、前記複数の第1サブモジュラスのそれぞれによる複数の剰余値により表現された前記変換係数を、前記被変換値から順次減じる被変換値減算器と、
    前記複数の被変換剰余値の全てについて算出された全ての前記変換係数が前記変換係数加算器により加算された加算値を前記複数の第2サブモジュラスのそれぞれにより割った複数の剰余値を、前記複数の第1変換サブ剰余値として出力する変換結果出力部と
    を備える請求項7記載のスケーリング演算器。
  10. 前記変換係数算出部は、前記複数の被変換剰余値のそれぞれについて、当該被変換剰余値に対応するアドレスに、当該被変換剰余値に対応する前記変換係数をデータとして格納するメモリを含む請求項9記載のスケーリング演算器。
  11. 前記第1モジュラスは、互いに素な複数の整数である複数の第1サブモジュラスの積であり、
    前記第2モジュラスは、互いに素な複数の整数である複数の第2サブモジュラスの積であり、
    前記入力値は、前記第1モジュラスによる剰余値が、前記複数の第1サブモジュラスのそれぞれにより前記入力値を割った複数の第1サブ剰余値により表現され、前記入力値の前記第2モジュラスによる剰余値が、前記複数の第2サブモジュラスのそれぞれにより前記入力値を割った複数の第2サブ剰余値により表現された第2の剰余形式により更に表現され、
    前記複数の第1サブ剰余値により表現された前記入力値の前記第1モジュラスによる剰余値を、前記複数の第2サブモジュラスのそれぞれによる剰余である複数の第1変換サブ剰余値に変換する第1サブ剰余値変換部を更に備え、
    前記減算器は、前記入力値の前記第1モジュラスによる剰余値を示す前記複数の第1変換サブ剰余値と、前記入力値の前記第2モジュラスによる剰余値を示す前記複数の第2サブ剰余値との差分値であって、前記複数の第2サブモジュラスのそれぞれにより当該差分値を割った複数の剰余値により表現された第1の前記モジュラス間差分値を出力する第2モジュラス対応減算器を有し、
    更に、前記複数の第2サブモジュラスのそれぞれによる複数の剰余値により表現された前記第1のモジュラス間差分値を、前記複数の第1サブモジュラスのそれぞれによる複数の剰余値により表現された変換モジュラス間差分値に変換する第2サブ剰余値変換部を備え、
    前記商出力部は、
    前記変換モジュラス間差分値に基づいて、前記複数の第1サブモジュラスのそれぞれによる複数の剰余値により表現された前記商の前記第1モジュラスによる剰余値を出力する第1モジュラス対応商出力部と、
    前記第1のモジュラス間差分値に基づいて、前記複数の第2サブモジュラスのそれぞれによる複数の剰余値により表現された前記商の前記第2モジュラスによる剰余値を出力する第2モジュラス対応商出力部と
    を有する請求項1から4のいずれかに記載のスケーリング演算器。
  12. 数値を第1モジュラス(法)による剰余値及び第2モジュラスによる剰余値の組による第1の剰余形式で表現する剰余系を用いる剰余系演算システムであって、
    演算対象となる2つの被演算値を入力し、2つの被演算値の間で加算、減算、又は乗算を行う剰余系演算器と、
    前記剰余系演算器による演算結果にスケーリングが必要である場合に、前記演算結果を入力値として入力し、前記入力値を前記第2モジュラスで割った商を前記演算結果のスケーリング結果として算出するスケーリング演算器と
    を備え、
    前記スケーリング演算器は、
    前記入力値における、前記第1モジュラスによる剰余値及び前記第2モジュラスによる剰余値の差分値であるモジュラス間差分値を出力する減算器と、
    前記モジュラス間差分値に基づいて、前記商の第1モジュラスによる剰余値及び前記商の前記第2モジュラスによる剰余値の組を前記商として出力する商出力部と
    を有する剰余系演算システム。
JP2003284534A 2003-07-31 2003-07-31 剰余系演算システム、スケーリング演算器、スケーリング演算方法、及びそのプログラムと記録媒体 Expired - Fee Related JP4279626B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2003284534A JP4279626B2 (ja) 2003-07-31 2003-07-31 剰余系演算システム、スケーリング演算器、スケーリング演算方法、及びそのプログラムと記録媒体
PCT/JP2004/010510 WO2005013117A1 (ja) 2003-07-31 2004-07-23 剰余系演算システム、スケーリング演算器、スケーリング演算方法、及びそのプログラムと記録媒体
US11/340,870 US8326908B2 (en) 2003-07-31 2006-01-27 Residue number system arithmetic operating system, scaling operator, scaling operation method and program and recording medium of the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003284534A JP4279626B2 (ja) 2003-07-31 2003-07-31 剰余系演算システム、スケーリング演算器、スケーリング演算方法、及びそのプログラムと記録媒体

Publications (2)

Publication Number Publication Date
JP2005056032A JP2005056032A (ja) 2005-03-03
JP4279626B2 true JP4279626B2 (ja) 2009-06-17

Family

ID=34113845

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003284534A Expired - Fee Related JP4279626B2 (ja) 2003-07-31 2003-07-31 剰余系演算システム、スケーリング演算器、スケーリング演算方法、及びそのプログラムと記録媒体

Country Status (3)

Country Link
US (1) US8326908B2 (ja)
JP (1) JP4279626B2 (ja)
WO (1) WO2005013117A1 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2485574C1 (ru) * 2012-04-17 2013-06-20 Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования Вятский государственный университет (ФГБОУ ВПО "ВятГУ") Способ организации умножения чисел с плавающей запятой, представленных в системе остаточных классов
US9081608B2 (en) * 2012-05-19 2015-07-14 Digital System Research Inc. Residue number arithmetic logic unit
RU2509345C1 (ru) * 2012-07-27 2014-03-10 Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования Вятский государственный университет ФГБОУ ВПО "ВятГУ" Способ организации выполнения операции умножения двух чисел в модулярно-позиционном формате представления с плавающей точкой на универсальных многоядерных процессорах
US9513870B2 (en) * 2014-04-22 2016-12-06 Dialog Semiconductor (Uk) Limited Modulo9 and modulo7 operation on unsigned binary numbers
IT201700008949A1 (it) * 2017-01-27 2018-07-27 St Microelectronics Srl Procedimento di funzionamento di reti neurali, rete, apparecchiatura e prodotto informatico corrispondenti
US10387122B1 (en) 2018-05-04 2019-08-20 Olsen Ip Reserve, Llc Residue number matrix multiplier
US10992314B2 (en) * 2019-01-21 2021-04-27 Olsen Ip Reserve, Llc Residue number systems and methods for arithmetic error detection and correction
US10725788B1 (en) * 2019-03-25 2020-07-28 Intel Corporation Advanced error detection for integer single instruction, multiple data (SIMD) arithmetic operations

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2217882B (en) * 1988-04-29 1992-06-10 Philips Electronic Associated Arithmetic apparatus
GB2217883B (en) * 1988-04-29 1992-06-10 Philips Electronic Associated Arithmetic apparatus
US6898613B1 (en) * 1999-08-26 2005-05-24 Stmicroelectronics, Inc. Arithmetic circuits for use with the residue number system
JP3515462B2 (ja) * 2000-01-24 2004-04-05 株式会社東芝 剰余系演算装置及び方法

Also Published As

Publication number Publication date
WO2005013117A1 (ja) 2005-02-10
US20060184600A1 (en) 2006-08-17
US8326908B2 (en) 2012-12-04
JP2005056032A (ja) 2005-03-03

Similar Documents

Publication Publication Date Title
CA2530015C (en) Division and square root arithmetic unit
JPH0635680A (ja) 対数を計算するディジタル回路及びコンピュータシステムを動作させる方法
US8326908B2 (en) Residue number system arithmetic operating system, scaling operator, scaling operation method and program and recording medium of the same
JP4274633B2 (ja) 累乗演算装置
US5349551A (en) Device for and method of preforming an N-bit modular multiplication in approximately N/2 steps
JP3551113B2 (ja) 除算器
JP2005018759A (ja) 2の浮動小数点数乗の概算を実施するための方法および装置
JP2004519017A (ja) 係数乗算するための方法および装置
US8909689B2 (en) Arithmetic device
JP3941868B2 (ja) 計算装置及び計算方法
CN114201140A (zh) 指数函数处理单元、方法和神经网络芯片
JP2010102431A (ja) 浮動小数点数演算回路と浮動小数点演算方法及びサーボ制御装置
JP2795253B2 (ja) 除算器
JPH086766A (ja) 正弦余弦演算装置
JP4163967B2 (ja) 浮動小数点演算装置
JP2000010763A (ja) 除算回路
Villalba-Moreno et al. Floating Point Square Root under HUB Format
JP4643951B2 (ja) 剰余系の被変換数を2進数に変換する変換装置及び変換方法
Villalba-Moreno Digit recurence division under HUB format
JP2518532B2 (ja) 減算シフト型除算器
JP2002318792A (ja) データ演算処理装置及びデータ演算処理プログラム
JP2008097194A (ja) 逆数算出装置、逆数算出方法、及び逆数算出プログラム
JP3659408B2 (ja) データ演算処理装置及びデータ演算処理プログラム
JP4073513B2 (ja) 浮動小数点処理装置
JPH06243194A (ja) 論理回路の自動設計方法およびその装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060626

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090120

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090206

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: 20090303

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090312

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120319

Year of fee payment: 3

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: 20120319

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130319

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130319

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130319

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140319

Year of fee payment: 5

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees