JP4643951B2 - CONVERTING DEVICE AND CONVERTING METHOD FOR CONVERTING RESIDUAL CONVERSION NUMBER TO BINARY NUMBER - Google Patents
CONVERTING DEVICE AND CONVERTING METHOD FOR CONVERTING RESIDUAL CONVERSION NUMBER TO BINARY NUMBER Download PDFInfo
- Publication number
- JP4643951B2 JP4643951B2 JP2004249153A JP2004249153A JP4643951B2 JP 4643951 B2 JP4643951 B2 JP 4643951B2 JP 2004249153 A JP2004249153 A JP 2004249153A JP 2004249153 A JP2004249153 A JP 2004249153A JP 4643951 B2 JP4643951 B2 JP 4643951B2
- Authority
- JP
- Japan
- Prior art keywords
- modulus
- bit string
- partial
- value
- bits
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Description
本発明は、剰余系の被変換数を2進数に変換する変換装置及び変換方法に関する。特に本発明は、少ないハードウェア量で高速に変換を行う剰余系の被変換数を2進数に変換する変換装置及び変換方法に関する。 The present invention relates to a conversion apparatus and a conversion method for converting a converted number of a residue system into a binary number. In particular, the present invention relates to a conversion apparatus and a conversion method for converting a residue conversion number that performs high-speed conversion with a small amount of hardware into a binary number.
従来、ディジタル回路による数値演算は、2進数にもとづく論理回路により実現されている。また近年、剰余系(Residue Number System; RNS)による数値演算方法が提案されている(非特許文献1)。剰余系による加算、減算、及び乗算は、次に述べる理由により、従来の2進数による演算よりも高速に計算できることが知られている。 Conventionally, a numerical operation by a digital circuit is realized by a logic circuit based on a binary number. In recent years, a numerical calculation method using a residue number system (RNS) has been proposed (Non-Patent Document 1). It is known that addition, subtraction, and multiplication by a residue system can be performed at a higher speed than conventional binary arithmetic operations for the following reason.
2進数での加算は、各ビットの演算から桁上がり(キャリー)信号が生じ、さらにLSB側からMSB側に伝播する。このため、(i-1)番目のビットのキャリーが到達するまで。i番目の桁の計算結果は決定できない。したがって、演算対象となるオペランドのビット数に比例して遅延量は大きくなる。一方、剰余系による演算は、各剰余桁で独立して並列に計算することができ、計算速度が計算ビット数に依存しないため、高速化することができる。 In addition in binary numbers, a carry signal is generated from the operation of each bit and further propagates from the LSB side to the MSB side. For this reason, until the carry of the (i-1) th bit arrives. The calculation result of the i-th digit cannot be determined. Therefore, the amount of delay increases in proportion to the number of bits of the operand to be operated. On the other hand, computation by the residue system can be performed in parallel independently for each residue digit, and the computation speed does not depend on the number of computation bits, so that it can be speeded up.
剰余系では1つの数値Xを、N個の剰余数(剰余値)の組み合わせで表現する。 In the remainder system, one numerical value X is expressed by a combination of N remainder numbers (residue values).
式(1−1)においてxi = X mod mi(xi = |X|miとも表現する)であり、Xをi番目のモジュラス(modulus:法)miで割った剰余 (Residue)である。また,xiを剰余桁(Residue Digit) 、又は、モジュラスmiによる剰余値ともよぶ。ここで、modはmoduloの略であり、以下の式(1−2)が成立することを意味する。 Equation (1-1) x i = X mod m i in a (x i = | | X mi also expressed), X i-th modulus: in (modulus modulus) modulo divided by m i (Residue) is there. Further, the remainder digits of x i (Residue Digit), or, also referred to as a remainder value by the modulus m i. Here, mod is an abbreviation for modulo, and means that the following equation (1-2) is established.
ここでpはXをmiで割った商である。このときXとxiはモジュラスmiについて合同(congruent)であるといい、合同式(congruence)をもちいて以下の式により表現してもよい。 Where p is the quotient obtained by dividing the X in the m i. This time is called the X and x i are congruent (congruent) for modulus m i, may be expressed by the following equation using a congruence (congruence).
N個のモジュラスmi(i = 0,1,2,…,N-1)が互いに素(relatively prime)であるとき、以下に示す範囲のすべての数値Xを、N個の剰余数の一意的組み合わせで表現することができる。このとき、{m0, m1, m2, …, mN-1}をモジュラスセットとよぶ。 When N moduli m i (i = 0,1,2, ..., N-1) are relatively prime, all numerical values X in the range shown below are uniquely assigned to N remainder numbers. Can be expressed in a specific combination. At this time, {m 0 , m 1 , m 2 ,..., M N−1 } is called a modulus set.
例として、モジュラスセット{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である。 As an example, consider the remainder representation using the modulus set {m 0 , m 1 , m 2 , m 3 } = {8,7,5,3}. In this remainder system, M = 8 × 7 × 5 × 3 = 840 integers can be represented. For example, (0,0,0,0) RNS is 0 or 840 or 1680 ..., (1,1,1,1) RNS is 1 or 841 or 1681 ..., (0,1,3,2) RNS is 8 Or 848 or 1688 ..., (0,1,4,1) RNS is 64 or 904 or 1744 ... In the case of the modulus set {8, 7, 5, 3}, the number of bits necessary to express each remainder digit is [3 bits, 3 bits, 3 bits, 2 bits] = 11 bits.
剰余系においては、加算、減算、乗算について、各剰余桁同士を独立に演算することにより実現することができ、剰余桁間の情報の伝播は不要である。すなわち、次に示す定理が成立する。 In the remainder system, addition, subtraction, and multiplication can be realized by independently calculating each remainder digit, and propagation of information between the remainder digits is not necessary. That is, the following theorem holds.
(剰余系加減乗算の定理)
演算子「〇」を加算、減算、又は乗算を表現する演算子とし、剰余系のモジュラスを{m0,m1,…,mN-1}、オペランドをA= (a0,a1,a2,...,aN-1)、B= (b0,b1,b2,...,bN-1)とすると、Z=A〇Bは、オペランドの各モジュラスに対する剰余桁同士の演算により実現できる。
(Theoretical addition and subtraction theorem)
The operator “◯” is an operator expressing addition, subtraction, or multiplication, the modulus of the remainder system is {m 0 , m 1 ,..., M N-1 }, and the operand is A = (a 0 , a 1 , a 2 , ..., a N-1 ), B = (b 0 , b 1 , b 2 , ..., b N-1 ), Z = A〇B is the remainder for each modulus of the operand This can be realized by calculating between digits.
ここで、左辺はYのmiによる剰余値である。また、式(1−5)による演算を剰余加算、剰余減算、又は剰余乗算とよぶ。剰余系加減乗算の定理は、以下に示すように証明される。 Here, the left side is the remainder value by m i of Y. In addition, the calculation according to the expression (1-5) is referred to as residue addition, residue subtraction, or residue multiplication. The theorem of remainder addition / subtraction multiplication is proved as shown below.
(剰余系加減乗算の定理の証明)
剰余系の数値表現の定義から、以下の式(1−6)が成立する。
(Proof of the theorem of remainder addition and subtraction)
From the definition of the numerical expression of the residue system, the following expression (1-6) is established.
ここで、piはAをモジュラスmiで割った商であり、qiはBをモジュラスmiで割った商である。 Here, p i is the quotient obtained by dividing A by modulus m i, q i is the quotient obtained by dividing B by the modulus m i.
加減算においては、以下の式(1−7)が成立する。 In addition / subtraction, the following formula (1-7) is established.
ここで、(pi+qi)mi≡0より、以下の式(1−8)が成立する。 Here, from (p i + q i ) m i ≡0, the following expression (1-8) is established.
一方、乗算においては、以下の式(1−9)が成立する。 On the other hand, in the multiplication, the following expression (1-9) is established.
ここで、(piqimi+pibi+qiai)mi≡0より、以下の式(1−10)が成立する。 Here, from (p i q i m i + p i b i + q i a i ) m i ≡0, the following expression (1-10) is established.
上記の式(1−8)及び式(1−10)から、A及びBの各剰余桁同士の演算により、Yの各剰余桁を算出できることが分かる。したがって、式(1−5)の定理が成立することが証明される。 From the above formulas (1-8) and (1-10), it can be seen that each remainder digit of Y can be calculated by computing each remainder digit of A and B. Therefore, it is proved that the theorem of the equation (1-5) holds.
剰余系加減乗算の定理より、剰余系での加減乗算は、入力される2つのオペランドA及びBと、出力される演算結果Yの対応する剰余桁毎に、当該剰余桁についての演算を行う剰余演算ALU(Arithmetic Logic Unit)を設けることにより実現することができる。そして、ある剰余桁の計算は、他の剰余桁の計算と独立に行うことができる。各剰余桁に対応する剰余演算ALUでの演算においては、キャリー伝搬による遅延が当該剰余桁のビット数分に限定できるため、より高速に計算することができる。 According to the residue system addition / subtraction theorem, the addition / subtraction multiplication in the residue system is a residue that performs an operation on the corresponding residue digit for each of the two operand digits A and B that are input and the corresponding operation result Y that is output. This can be realized by providing an arithmetic ALU (Arithmetic Logic Unit). And the calculation of a certain remainder digit can be performed independently of the calculation of other remainder digits. In the calculation in the remainder calculation ALU corresponding to each remainder digit, the delay due to carry propagation can be limited to the number of bits of the remainder digit, so that the calculation can be performed at higher speed.
剰余系を用いて数値演算を高速化するためには、2進数系又は10進数系から剰余系への変換(Binary-to-Residue (B/R) converter)、および剰余系から2進数系又は10進数系への変換(Residue-to-Binary (R/B) converter)が必要である。B/R converterは比較的簡単に実現でき、R/B converterを実現する方法はいくつか検討されている。 In order to speed up the numerical operation using the residue system, the binary system or the decimal system is converted to the residue system (Binary-to-Residue (B / R) converter), and the residue system is converted to the binary system or A conversion to a decimal system (Residue-to-Binary (R / B) converter) is required. The B / R converter can be realized relatively easily, and several methods for realizing the R / B converter have been studied.
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)を得ることができる。
As an R / B converter, one using the Chinese Remainder Theorem is common. When the modulus set is {m 0 , m 1 , m 2 , m 3 } = {8,7,5,3}, Y = (y 0 , y 1 , y 2 , y 3 ) = (5,3 , 4,2) is converted to a decimal number as an example.
(5,3,4,2) can be modified as shown in the following formula (1-11) from the remainder system addition / subtraction theorem shown in formula (1-5), and formula (1-12) Obtainable.
このように、(1,0,0,0) , (0,1,0,0), (0,0,1,0), (0,0,0,1)に対応する10進数表現を予め求めておけば、以下の式(1−13)を用いて任意の剰余表現(y0,y1,y2,y3)を10進数表現に変換できる。 Thus, the decimal representation corresponding to (1,0,0,0), (0,1,0,0), (0,0,1,0), (0,0,0,1) If it is obtained in advance, an arbitrary remainder expression (y 0 , y 1 , y 2 , y 3 ) can be converted into a decimal number expression using the following equation (1-13).
ここで、(1,0,0,0)は、モジュラス8(=m0)に対する剰余が1、かつ、モジュラスのサブセット{7,5,3}={m1,m2,m3}に対する剰余が0である数値である。後者の条件は、m1, m2, m3の最小公倍数であることを条件として(1,0,0,0)を算出すれば満たすことができる。これらの条件は、以下の式(1−14)により表すことができる。 Here, (1,0,0,0) is the remainder for the modulus 8 (= m 0 ) and the modulus subset {7,5,3} = {m 1 , m 2 , m 3 } It is a numerical value whose remainder is 0. The latter condition can be satisfied by calculating (1,0,0,0) on condition that it is the least common multiple of m 1 , m 2 , and m 3 . These conditions can be represented by the following formula (1-14).
ここでβ0は自然数である。そして、m1,m2,m3が互いに素であれば、式(1−4)よりa)及びb)の条件は以下の式(1−15)に書き換えることができる。 Here, β0 is a natural number. If m 1 , m 2 , and m 3 are relatively prime, the conditions a) and b) can be rewritten to the following expression (1-15) from the expression (1-4).
上記の自然数β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進数表現を示す。 By obtaining the above natural number β 0 , a decimal number representation of (1,0,0,0) can be obtained. The following is (1,0,0,0), (0,1,0,0), (0,0,1,0), (0,0, Indicates the decimal representation of (0,1).
式(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となる。 The conversion of the numerical value (5,3,4,2) expressed in the {8,7,5,3} residue system into the decimal number from the expression (1-16) is 5 × 105 + 3 × 120 + 4. × 336 + 2 × 280 = 2117 However, since the numerical value that can be expressed in this remainder system is 0 ≦ Y <M = 840, Y = | 2117 | M = 437.
一般に,中国人の剰余定理は次式で導かれる。 In general, the Chinese remainder theorem is given by
ここで、βi・(M/mi)を、中国人の剰余定理における逆数(multiplicative inverse)(以後単に「逆数」)と呼ぶ。 Here, β i · (M / m i ) is called a multiplicative inverse (hereinafter simply “inverse”) in the Chinese remainder theorem.
中国人の剰余定理をそのまま用いる場合、式(1−17)に示すように、各剰余桁yiと定数βi・(M/mi)との乗算を行う必要があり、計算時間を要する。このため、剰余系で乗算するメリット(計算速度向上)を著しく損なう。 When the Chinese remainder theorem is used as it is, it is necessary to multiply each remainder digit y i by a constant β i · (M / m i ) as shown in the equation (1-17), which requires calculation time. . For this reason, the merit (computation speed improvement) of multiplying by a remainder system is remarkably impaired.
この問題に対して、特定のモジュラスセットを選択することにより、小規模な回路を用いて高速に中国人の剰余定理の計算を行う方法が開示されている(非特許文献2参照。)。 In order to solve this problem, a method of calculating a Chinese remainder theorem at high speed using a small circuit by selecting a specific modulus set has been disclosed (see Non-Patent Document 2).
非特許文献2においては、モジュラスセットをつぎのように定義する。
ただしkは0以上の整数、pは自然数である。たとえばp=3, k=1のとき、Sk = {7, 9, 65}となる。式(1−4)から、式(1−18)の剰余系で表現できる数値の個数Mは以下の式(1−19) となる。
モジュラスセットSkにたいして中国人の剰余定理を適用するために、式(1−14)のb)の条件を満たすβiを求め、逆数を定める。 In order to apply the Chinese remainder theorem to the modulus set S k, β i satisfying the condition of b) in equation (1-14) is obtained, and the reciprocal is determined.
(1)m0(=2p-1) について
式(1−4)及び式(1−18)から、以下の式(1−20)をえる。
ここで、式(1−18)から2p mod m0=1となるため、式(1−20)は、以下の式(1−21)に変形することができる。
さらに、式(1−14)のa)の条件を適用すると、式(1−21)は、以下の式(1−22)に変形することができる。
したがって、式(1−18)のモジュラスセットを用いた場合、以下の式(1−23)が成立する。
(2)mi(=2^(2i-1p)+1、ただしi>0)について
式(1−14)のb)の条件、及び式(1−18)より、以下の式(1−24)が成立する。
ここで、式(1−24)のAの部分は、以下の式(1−25)となる。
一方、式(1−24)のBの部分は、以下の式(1−26)となる。
したがって、式(1−24)は、式(1−25)及び(1−26)により、以下の式(1−27)に変形することができる。
式(1−27)が1と合同であれば、式(1−14)のa)の条件と式(1−18)とを満たす。したがって、βi(-2k-i+2) ≡ 1 mod miをβiについて解くと、以下の式(1−28)をえる。
以上に示した式(1−23)及び(1−28)を式(1−17)に代入することにより、式(1−18)に示したモジュラスセットに対する中国人の剰余定理は、以下の式(1−29)となる。
次に、Sk ={m0, m1, m2} = {7, 9, 65}として、式(1−29)の具体的な計算例を示す。
本例においては、k=1であるから、式(1−29)は、以下の式(1−30)となる。
In this example, since k = 1, the expression (1-29) becomes the following expression (1-30).
式(1−30)を展開して整理すると、式(1−31)がえられる。
式(1−31)の各項の逆数は全て2のべき乗であるから、2進数のビットシフト演算で実現できる。これより、式(1−31)の各項は、y0とy1の加減算とy2の加減算のみで計算可能である。k ≧ 2のときも、式(1−31)と同様の変形が可能である。したがって、非特許文献2の技術を利用することにより、従来乗算と加算が必要であった中国人の剰余定理の計算を加減算のみで実現することができる。この結果、中国人の剰余定理をハードウェアでインプリメントした場合に回路面積を小さくすることができ、かつ計算時間を短縮することができる。
非特許文献2においては、式(1−31)の計算に、約4・2kpkビットの加算器及び/又は減算器が必要となる。たとえばk=1, p=3のとき、(y0 + y1)と(y0−y1)の演算にそれぞれpビットの加算器が必要となり、y2の加算には4・2kpビットの加算器が必要となる。そして、この加算を(モジュラス数−1)回(= k回)繰り返すので、合計で約4・2kpビット分の加算器が必要となる。
In
そこで本発明は、上記の課題を解決することのできる変換装置及び変換方法を提供することを目的とする。この目的は特許請求の範囲における独立項に記載の特徴の組み合わせにより達成される。また従属項は本発明の更なる有利な具体例を規定する。 Therefore, an object of the present invention is to provide a conversion device and a conversion method that can solve the above-described problems. This object is achieved by a combination of features described in the independent claims. The dependent claims define further advantageous specific examples of the present invention.
本発明の第1の形態によると、剰余系により表現された被変換数を2進数に変換する変換装置であって、前記剰余系は、複数のモジュラスのそれぞれにより前記被変換数を割った複数の剰余値の組により、前記被変換数を表現するものであり、第1の前記モジュラスは、2を自然数によりべき乗した、当該第1モジュラスより小さい前記モジュラスの積より大きいべき乗値に、1を加えた値をとり、複数のモジュラスのそれぞれについて、当該モジュラスについての前記剰余値に当該モジュラス以外のモジュラスの積を乗じた値に基づく2進数の値である、当該モジュラスに対応するモジュラス対応変換値の、少なくとも一部に含まれる部分ビット列を生成する部分ビット列生成部と、前記複数のモジュラスのそれぞれについての前記部分ビット列に基づいて、前記複数のモジュラスのそれぞれについての前記モジュラス対応変換値を加算した2進数の前記被変換数を算出するモジュラス対応変換値加算部とを備え、前記モジュラス対応変換値加算部は、前記第1モジュラスより小さい少なくとも1つの前記モジュラスに対応する前記モジュラス対応変換値の和である第1部分和の一部に含まれる予め定められたビット数の下位ビット列を、当該下位ビット列より上位桁の上位ビット列として複製し、同一の上位ビット列及び下位ビット列を含む被加算数を生成する下位ビット列複製部と、前記被加算数に、前記第1モジュラスに対応する前記部分ビット列を加算して、前記第1部分和に前記第1モジュラスについての前記モジュラス対応変換値を加えた第2部分和の少なくとも一部に含まれる下位ビット列を算出するビット列加算部とを有する変換装置を提供する。 According to the first aspect of the present invention, there is provided a conversion device that converts a number to be converted expressed by a residue system into a binary number, wherein the residue system is a plurality obtained by dividing the number to be converted by each of a plurality of moduli. The converted number is expressed by a set of remainder values of the following: the first modulus is a power value greater than the product of the modulus less than the first modulus, which is a power of 2 by a natural number, and 1 For each of a plurality of moduli, a conversion value corresponding to a modulus corresponding to the modulus, which is a binary value based on a value obtained by multiplying the remainder of the modulus by a product of a modulus other than the modulus. A partial bit string generation unit that generates a partial bit string included in at least a part of the plurality of moduli, A conversion value addition unit corresponding to a modulus for calculating the binary converted number obtained by adding the conversion values corresponding to the moduli for each of the plurality of moduli, and the conversion value addition unit corresponding to the modulus A lower-order bit string of a predetermined number of bits included in a part of the first partial sum that is the sum of the modulus-corresponding conversion values corresponding to at least one of the moduli smaller than the first modulus is higher than the lower-order bit string A lower bit string duplicating unit that replicates as an upper bit string of digits and generates an added number including the same upper bit string and lower bit string, and adds the partial bit string corresponding to the first modulus to the added number; At least one of the second partial sums obtained by adding the modulus corresponding conversion value for the first modulus to the first partial sum. Which provides a conversion device having a bit sequence adder for calculating a low-order bit string included in.
最小の前記モジュラスは、2の自然数によるべき乗値から1を減じた2以上の自然数であり、前記複数のモジュラスのうち最小でない前記モジュラスのそれぞれは、2を自然数によりべき乗した、当該モジュラスより小さい前記モジュラスの積より大きいべき乗値に、1を加えた値をとり、前記下位ビット列複製部は、前記複数のモジュラスのうち最小でない前記モジュラスのそれぞれについて、当該モジュラスより小さい全ての前記モジュラスに対応する前記モジュラス対応変換値の和である前記第1部分和の一部に含まれる予め定められたビット数の下位ビット列を、当該下位ビット列より上位桁の上位ビット列として複製して、当該モジュラスについての前記被加算数を生成し、前記ビット列加算部は、前記複数のモジュラスのうち最小でない前記モジュラスのそれぞれについて、当該モジュラスについての前記被加算数に、当該モジュラスに対応する前記部分ビット列を加算して、前記第1部分和に当該モジュラスについての前記モジュラス対応変換値を加えた前記第2部分和の少なくとも一部に含まれる下位ビット列を算出してもよい。 The minimum modulus is a natural number of 2 or more obtained by subtracting 1 from a power value of a natural number of 2, and each of the non-minimum moduli of the plurality of moduli is smaller than the modulus that is a power of 2 by a natural number. A value obtained by adding 1 to a power value greater than the product of the moduli, and the lower bit string duplicating unit, for each of the non-minimum moduli of the plurality of moduli, corresponds to all the moduli smaller than the moduli. A lower bit string having a predetermined number of bits included in a part of the first partial sum, which is the sum of the conversion values corresponding to the modulus, is copied as an upper bit string having a higher digit than the lower bit string, and the subject for the modulus is copied. An addition number is generated, and the bit string addition unit generates a maximum of the plurality of moduli. For each of the moduli that is not, the first bit obtained by adding the partial bit string corresponding to the modulus to the addend number for the modulus and adding the modulus corresponding conversion value for the modulus to the first partial sum. A lower bit string included in at least a part of the two-part sum may be calculated.
前記複数のモジュラスは、以下の数32に示す値をとり、前記下位ビット列複製部は、前記複数のモジュラスのうち最小でない前記モジュラスmi(i=1,…,k+1)のそれぞれについて、当該モジュラスmiより小さい全てのモジュラスに対応する前記モジュラス対応変換値の和である前記第1部分和におけるp・2i-1ビットの下位ビット列を、当該下位ビット列より上位桁のp・2i-1ビットの上位ビット列として複製して、p・2iビットの前記被加算数を生成し、前記ビット列加算部は、前記複数のモジュラスのうち最小でない前記モジュラスmi(i=1,…,k+1)のそれぞれについて、当該モジュラスmiについての前記被加算数に、当該モジュラスmiに対応する前記モジュラス対応変換値における下位p・2iビットの前記部分ビット列を加算して、前記第1部分和に当該モジュラスについての前記モジュラス対応変換値を加えた前記第2部分和におけるp・2iビットの下位ビット列を算出してもよい。
前記ビット列加算部は、前記第1モジュラスmi1について、p・2i1ビットの前記被加算数に、前記モジュラス対応変換値におけるp・2i1ビットの前記部分ビット列を加算するp・2i1ビットの加算器と、第2の前記モジュラスmi2について、p・2i2ビットの前記被加算数に、前記モジュラス対応変換値におけるp・2i2ビットの前記部分ビット列を加算するp・2i2ビットの加算器とを含んでもよい。 The bit string adding unit, for the first modulus m i1, said p · 2 i1 bit augend, the p · 2 i1 bits for adding the partial bit string of p · 2 i1 bits in the modulus corresponding conversion value an adder, a second of said modulus m i2, p · 2 i2 of bits of the in augend, the addition of p · 2 i2 bits for adding the partial bit string of p · 2 i2 bits in the modulus corresponding conversion value May also be included.
前記ビット列加算部は、前記加算により前記被加算数及び前記部分ビット列のビット数を越える桁あふれが生じた場合に、前記加算の結果得られたビット列における前記被加算数と同一ビット数の下位ビット列の下位ビットに、前記桁あふれしたビットを加えて前記第2部分和の下位ビット列を算出してもよい。 The bit string adding unit, when the addition causes an overflow exceeding the number of bits to be added and the number of bits of the partial bit string, a lower bit string having the same number of bits as the number to be added in the bit string obtained as a result of the addition The lower bit string of the second partial sum may be calculated by adding the bits overflowing to the lower bits of.
本発明の第2の形態によると、剰余系により表現された被変換数を2進数に変換する変換装置であって、前記剰余系は、複数のモジュラスのそれぞれにより前記被変換数を割った複数の剰余値の組により、前記被変換数を表現するものであり、第1の前記モジュラスは、2を自然数によりべき乗した、当該第1モジュラスより小さい前記モジュラスの積より大きいべき乗値に、1を加えた値をとり、複数のモジュラスのそれぞれについて、当該モジュラスについての前記剰余値に当該モジュラス以外のモジュラスの積を乗じた値に基づいて、当該モジュラスに対応する2進数の値であるモジュラス対応変換値を生成するモジュラス対応変換値生成部と、前記複数のモジュラスのそれぞれについての前記モジュラス対応変換値を加算して、2進数の前記被変換数を算出するモジュラス対応変換値加算部とを備え、前記モジュラス対応変換値生成部は、前記第1モジュラスより小さい第2モジュラスにより前記被変換数を割った剰余値のビット列に基づいて、当該第2モジュラスに対応する前記モジュラス対応変換値の一部となる部分ビット列を生成する部分ビット列生成部と、当該第2モジュラスに対応する前記モジュラス対応変換値の複数箇所に前記部分ビット列を複製することにより、前記部分ビット列に前記第1モジュラスを乗じた当該モジュラス対応変換値を生成する部分ビット列複製部とを有する変換装置を提供する。 According to a second aspect of the present invention, there is provided a conversion device for converting a converted number expressed by a residue system into a binary number, wherein the residue system is a plurality of divisions obtained by dividing the converted number by each of a plurality of moduli. The converted number is expressed by a set of remainder values of the following: the first modulus is a power value greater than the product of the modulus less than the first modulus, which is a power of 2 by a natural number, and 1 For each of a plurality of moduli, a modulus-corresponding conversion that is a binary value corresponding to the modulus based on a value obtained by multiplying the remainder of the modulus by a product of a modulus other than the modulus A modulus-corresponding conversion value generation unit for generating a value, and adding the modulus-corresponding conversion value for each of the plurality of moduli A modulus-corresponding conversion value adding unit that calculates the number of conversions, and the modulus-corresponding conversion value generation unit is based on a bit string of a remainder value obtained by dividing the conversion number by a second modulus smaller than the first modulus. A partial bit string generation unit that generates a partial bit string that is a part of the modulus-corresponding conversion value corresponding to the second modulus, and the partial bit string at a plurality of locations of the modulus-corresponding conversion value corresponding to the second modulus. There is provided a conversion device including a partial bit string duplicating unit that generates a conversion value corresponding to a modulus obtained by duplicating the partial bit string and the first modulus.
最小の前記モジュラスは、2の自然数によるべき乗値から1を減じた2以上の自然数であり、前記複数のモジュラスのうち最小でない前記モジュラスのそれぞれは、2を自然数によりべき乗した、当該モジュラスより小さい前記モジュラスの積より大きいべき乗値に、1を加えた値をとり、前記部分ビット列生成部は、複数のモジュラスのうち最小でない前記モジュラスのそれぞれについて、前記被変換数の当該モジュラスによる剰余値を当該モジュラスに対応する前記自然数分のビット数だけ上位桁側にシフトした値から当該剰余値を減じた前記部分ビット列を生成してもよい。 The minimum modulus is a natural number of 2 or more obtained by subtracting 1 from a power value of a natural number of 2, and each of the non-minimum moduli of the plurality of moduli is smaller than the modulus that is a power of 2 by a natural number. The partial bit string generation unit takes a value obtained by adding 1 to a power value greater than the product of the moduli, and for each non-minimum modulus among a plurality of moduli, the partial bit string generation unit calculates a remainder value by the moduli of the number to be converted. The partial bit string may be generated by subtracting the remainder value from the value shifted to the upper digit side by the number of bits corresponding to the natural number.
前記複数のモジュラスは、以下の数33に示す値をとり、前記部分ビット列生成部は、複数のモジュラスのうち最小でない前記モジュラスmi(i=1,…,k+1)のそれぞれについて、前記被変換数の当該モジュラスmiによる剰余値を2i-1・pビット分上位桁側へシフトした値から当該剰余値を減じた2i・pビットの前記部分ビット列を生成し、前記部分ビット列複製部は、複数のモジュラスのうち最小及び最大でない前記モジュラスmiのそれぞれについて、当該モジュラスmiに対応する前記モジュラス対応変換値の複数箇所に、前記部分ビット列を2i・pビット間隔で複製することにより、当該モジュラスmiに対応する前記モジュラス対応変換値を生成してもよい。
前記モジュラス対応変換値生成部は、前記第1モジュラスmi1について、前記被変換数の前記第1モジュラスmi1による剰余値に基づいて、2i1・pビットの第1の前記部分ビット列を生成する第1の前記部分ビット列生成部と、前記第2モジュラスmi2について、前記被変換数の前記第1モジュラスmi2による剰余値に基づいて、2i2・pビットの第2の前記部分ビット列を生成する第2の前記部分ビット列生成部と、前記第1の部分ビット列を2i1・pビット間隔で複製することにより、当該モジュラスmi1に対応する前記モジュラス対応変換値を生成する第1の前記部分ビット列複製部と、前記第2の部分ビット列を2i2・pビット間隔で複製することにより、当該モジュラスmi2に対応する前記モジュラス対応変換値を生成する第2の前記部分ビット複製部とを有してもよい。 The modulus corresponding conversion value generating unit, for the first modulus m i1, on the basis of the remainder value by said first modulus m i1 of the number of conversions to generate a first of said partial bit string of the 2 i1 · p bits For the first partial bit string generation unit and the second modulus m i2 , a second partial bit string of 2 i2 · p bits is generated based on a remainder value of the number to be converted by the first modulus m i2 The second partial bit string generation unit that performs the first partial bit string to generate the modulus-corresponding conversion value corresponding to the modulus m i1 by duplicating the first partial bit string at intervals of 2 i1 · p bits. by duplicating the bit string replication unit, the second partial bit string by 2 i2 · p bit interval, a second of said partial bit double generating the modulus corresponding conversion value corresponding to the modulus m i2 It may have a part.
本発明の第3の形態によると、剰余系により表現された被変換数を変換装置により2進数に変換する変換方法であって、前記剰余系は、複数のモジュラスのそれぞれにより前記被変換数を割った複数の剰余値の組により、前記被変換数を表現するものであり、第1の前記モジュラスは、2を自然数によりべき乗した、当該第1モジュラスより小さい前記モジュラスの積より大きいべき乗値に、1を加えた値をとり、複数のモジュラスのそれぞれについて、当該モジュラスについての前記剰余値に当該モジュラス以外のモジュラスの積を乗じた値に基づく2進数の値である、当該モジュラスに対応するモジュラス対応変換値の、少なくとも一部に含まれる部分ビット列を生成する部分ビット列生成段階と、前記複数のモジュラスのそれぞれについての前記部分ビット列に基づいて、前記複数のモジュラスのそれぞれについての前記モジュラス対応変換値を加算した2進数の前記被変換数を算出するモジュラス対応変換値加算段階とを備え、前記モジュラス対応変換値加算段階は、前記第1モジュラスより小さい少なくとも1つの前記モジュラスに対応する前記モジュラス対応変換値の和である第1部分和の一部に含まれる予め定められたビット数の下位ビット列を、当該下位ビット列より上位桁の上位ビット列として複製し、同一の上位ビット列及び下位ビット列を含む被加算数を生成する下位ビット列複製段階と、前記被加算数に、前記第1モジュラスに対応する前記部分ビット列を加算して、前記第1部分和に前記第1モジュラスについての前記モジュラス対応変換値を加えた第2部分和の少なくとも一部に含まれる下位ビット列を算出するビット列加算段階とを有する変換方法を提供する。 According to a third aspect of the present invention, there is provided a conversion method for converting a converted number expressed by a residue system into a binary number by a conversion device, wherein the residue system converts the converted number by each of a plurality of moduli. The converted number is expressed by a set of a plurality of remainder values divided, and the first modulus is a power value larger than the product of the modulus less than the first modulus obtained by raising 2 by a natural number. A modulus corresponding to the modulus, which is a binary value based on a value obtained by adding 1 and multiplying the remainder of the modulus by a product of a modulus other than the modulus for each of a plurality of moduli A partial bit string generation stage for generating a partial bit string included in at least a part of the corresponding conversion value, and each of the plurality of moduli. A modulus-corresponding conversion value adding step of calculating a binary converted number by adding the modulus-corresponding conversion value for each of the plurality of moduli based on the partial bit string In the adding step, a lower-order bit string having a predetermined number of bits included in a part of a first partial sum that is a sum of the modulus-corresponding conversion values corresponding to at least one modulus smaller than the first modulus A lower bit string duplicating step for generating an added number including the same upper bit string and lower bit string as a higher bit string having a higher digit than the bit string, and adding the partial bit string corresponding to the first modulus to the added number Then, the first partial sum is added with the modulus corresponding conversion value for the first modulus. To provide a conversion method and a bit sequence summing calculating a low-order bit string included in at least part of the partial sums.
本発明の第4の形態によると、剰余系により表現された被変換数を変換装置2進数に変換する変換方法であって、前記剰余系は、複数のモジュラスのそれぞれにより前記被変換数を割った複数の剰余値の組により、前記被変換数を表現するものであり、第1の前記モジュラスは、2を自然数によりべき乗した、当該第1モジュラスより小さい前記モジュラスの積より大きいべき乗値に、1を加えた値をとり、複数のモジュラスのそれぞれについて、当該モジュラスについての前記剰余値に当該モジュラス以外のモジュラスの積を乗じた値に基づいて、当該モジュラスに対応する2進数の値であるモジュラス対応変換値を生成するモジュラス対応変換値生成段階と、前記複数のモジュラスのそれぞれについての前記モジュラス対応変換値を加算して、2進数の前記被変換数を算出するモジュラス対応変換値加算段階とを備え、前記モジュラス対応変換値生成段階は、前記第1モジュラスより小さい第2モジュラスにより前記被変換数を割った剰余値のビット列に基づいて、当該第2モジュラスに対応する前記モジュラス対応変換値の一部となる部分ビット列を生成する部分ビット列生成段階と、当該第2モジュラスに対応する前記モジュラス対応変換値の複数箇所に前記部分ビット列を複製することにより、前記部分ビット列に前記第1モジュラスを乗じた当該モジュラス対応変換値を生成する部分ビット列複製段階とを有する変換方法を提供する。 According to a fourth aspect of the present invention, there is provided a conversion method for converting a converted number represented by a residue system into a conversion device binary number, wherein the remainder system divides the converted number by each of a plurality of moduli. In addition, the converted number is expressed by a set of a plurality of residue values, and the first modulus is a power value larger than the product of the modulus less than the first modulus, which is a power of 2 by a natural number, 1 is added, and for each of a plurality of moduli, a modulus that is a binary value corresponding to the modulus based on a value obtained by multiplying the remainder of the modulus by a product of a modulus other than the modulus A modulus-corresponding conversion value generation stage for generating a corresponding conversion value, and adding the modulus-corresponding conversion values for each of the plurality of moduli A modulus-corresponding conversion value adding step for calculating the binary converted number, wherein the modulus-corresponding conversion value generating step divides the converted number by a second modulus smaller than the first modulus. A partial bit string generation stage for generating a partial bit string that becomes a part of the modulus-corresponding conversion value corresponding to the second modulus, and a plurality of places corresponding to the modulus-corresponding conversion value corresponding to the second modulus. There is provided a conversion method including a partial bit string duplication step of generating a conversion value corresponding to a modulus obtained by multiplying the partial bit string by the first modulus by duplicating the partial bit string.
本発明の第5の形態によると、剰余系により表現された被変換数をコンピュータにより2進数に変換するプログラムであって、前記剰余系は、複数のモジュラスのそれぞれにより前記被変換数を割った複数の剰余値の組により、前記被変換数を表現するものであり、第1の前記モジュラスは、2を自然数によりべき乗した、当該第1モジュラスより小さい前記モジュラスの積より大きいべき乗値に、1を加えた値をとり、当該プログラムは、前記コンピュータを、複数のモジュラスのそれぞれについて、当該モジュラスについての前記剰余値に当該モジュラス以外のモジュラスの積を乗じた値に基づく2進数の値である、当該モジュラスに対応するモジュラス対応変換値の、少なくとも一部に含まれる部分ビット列を生成する部分ビット列生成部と、前記複数のモジュラスのそれぞれについての前記部分ビット列に基づいて、前記複数のモジュラスのそれぞれについての前記モジュラス対応変換値を加算した2進数の前記被変換数を算出するモジュラス対応変換値加算部として機能させ、前記モジュラス対応変換値加算部は、前記第1モジュラスより小さい少なくとも1つの前記モジュラスに対応する前記モジュラス対応変換値の和である第1部分和の一部に含まれる予め定められたビット数の下位ビット列を、当該下位ビット列より上位桁の上位ビット列として複製し、同一の上位ビット列及び下位ビット列を含む被加算数を生成する下位ビット列複製部と、前記被加算数に、前記第1モジュラスに対応する前記部分ビット列を加算して、前記第1部分和に前記第1モジュラスについての前記モジュラス対応変換値を加えた第2部分和の少なくとも一部に含まれる下位ビット列を算出するビット列加算部とを有するものであるプログラムを提供する。 According to a fifth aspect of the present invention, there is provided a program for converting a converted number expressed by a remainder system into a binary number by a computer, wherein the remainder system divides the converted number by each of a plurality of moduli. The converted number is expressed by a set of a plurality of remainder values, and the first modulus is a power value larger than the product of the modulus less than the first modulus obtained by raising 2 to a power of a natural number, and 1 The program is a binary value based on a value obtained by multiplying the remainder of the modulus by a product of a modulus other than the modulus for each of a plurality of moduli. A partial bit string generator that generates a partial bit string included in at least a part of the modulus-corresponding conversion value corresponding to the modulus. And a modulus-corresponding conversion value adding unit that calculates the binary converted number by adding the modulus-corresponding conversion value for each of the plurality of moduli based on the partial bit string for each of the plurality of moduli The modulus-corresponding conversion value adding unit is included in a part of a first partial sum that is a sum of the modulus-corresponding conversion values corresponding to at least one of the moduli smaller than the first modulus. A lower bit string replicating unit that replicates a lower bit string of the number of bits as an upper bit string of an upper digit than the lower bit string, and generates an added number including the same upper bit string and lower bit string; and The partial bit string corresponding to the modulus is added to the first partial sum to the first modulus. Providing have been the modulus corresponding is converted value as it has a bit string adder for calculating a low-order bit string included in at least part of the second partial sum plus program.
本発明の第6の形態によると、剰余系により表現された被変換数をコンピュータにより2進数に変換するプログラムであって、前記剰余系は、複数のモジュラスのそれぞれにより前記被変換数を割った複数の剰余値の組により、前記被変換数を表現するものであり、第1の前記モジュラスは、2を自然数によりべき乗した、当該第1モジュラスより小さい前記モジュラスの積より大きいべき乗値に、1を加えた値をとり、当該プログラムは、前記コンピュータを、複数のモジュラスのそれぞれについて、当該モジュラスについての前記剰余値に当該モジュラス以外のモジュラスの積を乗じた値に基づいて、当該モジュラスに対応する2進数の値であるモジュラス対応変換値を生成するモジュラス対応変換値生成部と、前記複数のモジュラスのそれぞれについての前記モジュラス対応変換値を加算して、2進数の前記被変換数を算出するモジュラス対応変換値加算部として機能させ、前記モジュラス対応変換値生成部は、前記第1モジュラスより小さい第2モジュラスにより前記被変換数を割った剰余値のビット列に基づいて、当該第2モジュラスに対応する前記モジュラス対応変換値の一部となる部分ビット列を生成する部分ビット列生成部と、当該第2モジュラスに対応する前記モジュラス対応変換値の複数箇所に前記部分ビット列を複製することにより、前記部分ビット列に前記第1モジュラスを乗じた当該モジュラス対応変換値を生成する部分ビット列複製部とを有するものであるプログラムを提供する。 According to a sixth aspect of the present invention, there is provided a program for converting a converted number expressed by a residue system into a binary number by a computer, wherein the residue system divides the converted number by each of a plurality of moduli. The converted number is expressed by a set of a plurality of remainder values, and the first modulus is a power value larger than the product of the modulus less than the first modulus obtained by raising 2 to a power of a natural number, and 1 For each of a plurality of moduli, the program corresponds to the modulus based on a value obtained by multiplying the remainder of the modulus by a product of a modulus other than the modulus. A modulus-corresponding conversion value generating unit that generates a modulus-corresponding conversion value that is a binary value; Each of the modulus-corresponding conversion values is added to function as a modulus-corresponding conversion value adding unit that calculates the binary converted number, and the modulus-corresponding conversion value generating unit is smaller than the first modulus. A partial bit string generation unit that generates a partial bit string that is a part of the modulus-corresponding conversion value corresponding to the second modulus, based on a bit string of a remainder value obtained by dividing the number to be converted by a second modulus; A partial bit string duplicating unit that replicates the partial bit string at a plurality of locations of the modulus-corresponding conversion value corresponding to the modulus to generate the modulus-corresponding conversion value obtained by multiplying the partial bit string by the first modulus. Provide a program.
本発明の第7の形態によると、上記のプログラムを記録した、コンピュータにより読み取り可能な記録媒体を提供する。 According to a seventh aspect of the present invention, there is provided a computer-readable recording medium on which the above program is recorded.
なお、上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではなく、これらの特徴群のサブコンビネーションもまた、発明となりうる。 The above summary of the invention does not enumerate all the necessary features of the present invention, and sub-combinations of these feature groups can also be the invention.
本発明によれば、少ないハードウェア量で高速に剰余系の数値を2進数に変換することができる。 According to the present invention, it is possible to convert a numerical value of a residue system into a binary number at a high speed with a small amount of hardware.
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではなく、また実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。 Hereinafter, the present invention will be described through embodiments of the invention. However, the following embodiments do not limit the invention according to the scope of claims, and all combinations of features described in the embodiments are included. It is not necessarily essential for the solution of the invention.
以下に、本実施形態における、剰余系から2進数系へ変換する変換装置(R/B converter)の原理を示す。 Below, the principle of the converter (R / B converter) which converts from a remainder system to a binary number system in this embodiment is shown.
(1)式(1−18)のモジュラスセットに対する中国人の剰余定理の性質
式(1−18)のモジュラスセットに対する中国人の剰余定理においては、式(1−29)における逆数βi・(M/mi)の2進数表現のビット列は、以下の2つの性質を有する。なお、以下数値をビット列により表現するが、複数ビットをまとめて1桁と見なしてもよい。
(1) The nature of the Chinese remainder theorem for the modulus set of equation (1-18) In the Chinese remainder theorem for the modulus set of equation (1-18), the inverse β i · ( The bit string of the binary representation of M / m i ) has the following two properties. In the following, numerical values are expressed by bit strings, but a plurality of bits may be collectively regarded as one digit.
(1a)性質1:逆数の循環性
・β0・(M/m0)の場合
β0・(M/m0)の場合、以下の式(2−1a)が成立する。
すなわち、(2^(20p)+1)を1×(2^(20p)+1) = "00...01(pビット)" ×(2^(20p)+1)と見なせば、最下位ビットが"1"かつ他のビットが"0"のpビットのビット列"00…01"を、下位pビット、及びpビット分上位桁側にシフトしたpビットの部分に複製した2pビットのビット列"00…0100…01"(第0ビット(最下位ビット)及び第pビットが"1"、その他のビットは"0")であることがわかる。 That is, (2 ^ (2 0 p) +1) becomes 1 × (2 ^ (2 0 p) +1) = “00 ... 01 (p bits)” × (2 ^ (2 0 p) +1 ), The p-bit bit string "00 ... 01" with the least significant bit set to "1" and the other bits set to "0" is shifted to the upper digit side by the lower p bits and p bits. It can be seen that the 2p-bit bit string “00... 0100... 01” (the 0th bit (least significant bit) and the pth bit is “1” and the other bits are “0”) duplicated in the part.
同様に、上記の2pビットのビット列"00…0100…01"に(2^(21p)+1)を乗じれば、当該2pビットのビット列を下位2pビット、及び2pビット分上位桁にシフトした2pビットの部分に複製した4pビットのビット列"00…0100…0100…0100…01"となることがわかる。このビット列は、最下位ビットが"1"かつ他のビットが"0"のpビットのビット列"00…01"を、4箇所に複製したビット列であり、言い換えれば当該pビットのビット列を4つ結合したビット列である。 Similarly, if the above 2p bit string "00 ... 0100 ... 01" is multiplied by (2 ^ (2 1 p) +1), the 2p bit string will be converted into the lower 2p bits and the upper digits for 2p bits. It can be seen that the 4p-bit bit string "00 ... 0100 ... 0100 ... 0100 ... 01" replicated in the shifted 2p-bit part. This bit string is a bit string obtained by duplicating the p-bit bit string “00... 01” having the least significant bit “1” and the other bits “0” in four places, in other words, four bit strings of the p-bit. It is a combined bit string.
以下同様にして、(2^(22p)+1)、(2^(23p)+1)、…、(2^(2kp)+1)を順に乗じた値は、最下位ビットが"1"かつ他のビットが"0"のpビットのビット列"00…01"を、2k+1箇所に循環的(cyclic)に複製した2k+1 pビットのビット列となることがわかる。言い換えれば、当該pビットのビット列を、2k+1個結合したビット列である。 Similarly, (2 ^ (2 2 p) +1), (2 ^ (2 3 p) +1), ..., (2 ^ (2 k p) +1) This is a 2 k + 1 p-bit bit string that is a cyclic copy of the p-bit bit string “00… 01” with the lower bit “1” and the other bits “0” cyclically at 2 k + 1 locations. I understand that. In other words, it is a bit string obtained by combining 2 p + 1 bit strings of the p bits.
そして、上記の2k+1 pビットのビット列に2p-(k+1)を乗じた値は、上記の2k+1 pビットのビット列の下位桁にp-(k+1)個の"0"を付加することにより当該ビット列をp-(k+1)ビット分上位桁側にシフトしたビット列となる。 Then, the value obtained by multiplying the 2 k + 1 p-bit bit string by 2 p- (k + 1) is p- (k + 1) bits in the lower digits of the 2 k + 1 p-bit bit string. By adding “0”, the bit string is shifted to the upper digit side by p− (k + 1) bits.
・βi・(M/mi)の場合(ただし1≦i≦k+1)
β1・(M/m1)の場合、以下の式(2−1b)が成立する。
In the case of β 1 · (M / m 1 ), the following equation (2-1b) is established.
すなわち、(2p-1)を上位pビットが"0"かつ下位pビットが"1"の2pビットのビット列"00…0011…11"と見なせば、この値に(2^(21p)+1)を乗じた値は、当該2pビットのビット列を、下位2pビット、及び2pビット分上位桁側にシフトした2pビットの部分に複製した4pビットのビット列"00…0011…1100…0011…11"(第0ビット(最下位ビット)から第p-1ビット、及び第2pビットから第3p-1ビットが"1"、その他は"0")となることがわかる。 That is, if (2 p -1) is regarded as a 2p-bit bit string "00 ... 0011 ... 11" in which the upper p bits are "0" and the lower p bits are "1", this value becomes (2 ^ (2 1 The value obtained by multiplying p) +1) is a 4p-bit bit string “00… 0011… 1100 ... which is a copy of the 2p-bit bit string and the 2p-bit part shifted to the upper digit side by 2p bits. ... 11 ”(0th bit (least significant bit) to the (p-1) th bit, 2nd bit to the 3rd p-1 bit are" 1 ", and the others are" 0 ").
以下β0・(M/m0)の場合と同様にして、(2^(22p)+1)、(2^(23p)+1)、…、(2^(2kp)+1)を順に乗じた値は、上位pビットが"0"かつ下位pビットが"1"の2pビットのビット列"00…0011…11"を、2k箇所に複製した2k+1 pビットのビット列となることがわかる。言い換えれば、当該2pビットのビット列を、2k個結合したビット列である。 Hereinafter, (2 ^ (2 2 p) +1), (2 ^ (2 3 p) +1), ..., (2 ^ (2 k p), as in the case of β 0 (M / m 0 ) ) +1) in order, 2 k + 1, which is a duplicate of a 2 p-bit bit sequence “00… 0011… 11” with the upper p bits being “0” and the lower p bits being “1” at 2 k locations. It can be seen that the bit string is p bits. In other words, it is a bit string obtained by combining 2 k bit strings of the 2p bits.
そして、β0・(M/m0)の場合と同様にして、上記の2k+1 pビットのビット列に2p-(k+1)を乗じた値は、上記の2k+1 pビットのビット列の下位桁にp-(k+1)個の"0"を付加することにより当該ビット列をp-(k+1)ビット分上位桁側にシフトしたビット列となる。 Similarly to the case of β 0 · (M / m 0 ), the value obtained by multiplying the bit string of 2 k + 1 p bits by 2 p- (k + 1) is 2 k + 1 p By adding p- (k + 1) “0” s to the lower digits of the bit sequence of bits, the bit sequence is shifted to the upper digits by p- (k + 1) bits.
また、(2p-1)を2pと-1の組み合わせと見なせば、(2p-1)は、第pビットが"1"、第0ビットが"-1"、かつ他のビットが"0"の2pビットのビット列"00…0100…0(-1)"と見なすことができる。ここで、式(2−1b)においては、1の補数表現の(-1)を、ハイフン付の"1"で表す。この表現形式を用いれば、式(2−1b)の(2 p -1)(2 2p -1)・・・(2^(2 k p)-1)の部分は、最下位ビットが"1"のpビットのビット列"00…01"と最下位ビットが"-1"のpビットのビット列の組を、2kp箇所に複製した2 k+1 pビットのビット列となることがわかる。そして、β 0 ・(M/m 0 )の場合と同様にして、上記の2 k+1 pビットのビット列に2 p-(k+1) を乗じた値は、上記の2 k+1 pビットのビット列の下位桁にp-(k+1)個の"0"を付加することにより当該ビット列をp-(k+1)ビット分上位桁側にシフトしたビット列となる。
Also, if regarded as a combination of (2 p -1) of 2 p and -1, (2 p -1) is the p-th bit is "1", the 0th bit is "-1", and the other bits Can be regarded as a 2p-bit bit string "00 ... 0100 ... 0 (-1)". Here, in the expression (2-1b), (-1) in the complement of 1 is represented by “1” with a hyphen. If this expression format is used, the least significant bit is “1” in the part of (2 p −1) (2 2p −1)... (2 ^ (2 k p) −1) in equation (2-1b). "bit string of p bit of" 00 ... 01, "and the least significant bit is" -1 a set of bit strings of p-bit ", it can be seen that a 2 k
β1・(M/m1)の場合と同様に、βi・(M/mi)(i<k+1)の場合、以下の式(2−1c)が成立する。
すなわち、(2^(2i-1p)-1)を上位2i-1pビットが"0"かつ下位2i-1pビットが"1"の2ipビットのビット列"00…0011…11"と見なせば、この値に(2^(2ip)+1)を乗じた値は、当該2ipビットのビット列を、下位2ipビット、及び2 ipビット分上位桁側の2 ipビットの部分に複製した2 i+1pビットのビット列"00…0011…1100…0011…11"(第0ビット(最下位ビット)から第2i-1p-1ビット、及び第2・2i-1pビットから第3・2i-1p-1ビットが"1"、その他は"0")となることがわかる。
That is, (2 ^ (2 i-1 p) -1) is a 2 i p-bit bit string "00 ... 0011" in which the upper 2 i-1 p bits are "0" and the lower 2 i-1 p bits are "1". if ... 11 regarded as "value obtained by multiplying the (2 ^ (2 i p) +1) this value a bit string of the 2 i p bits, low-order 2 i p bits, and 2 i p bits higher 2 i
以下β1・(M/m1)の場合と同様にして、(2^(2i+1p)+1)、…、(2^(2kp)+1)を順に乗じた値は、上位2i-1pビットが"0"かつ下位2i-1pビットが"1"の2ipビットのビット列"00…0011…11"を、2k-I+1箇所に複製した2k+1 pビットのビット列となることがわかる。言い換えれば、当該2 ipビットのビット列を、2k-i個結合したビット列である。 The value obtained by multiplying (2 ^ (2 i + 1 p) +1), ..., (2 ^ (2 k p) +1) in the same way as in the case of β 1 · (M / m 1 ) The 2 i p-bit bit string “00… 0011… 11” with the upper 2 i-1 p bits set to “0” and the lower 2 i-1 p bits set to “1” is copied to 2 k-I + 1 locations. It can be seen that the bit string is 2 k + 1 p bits. In other words, it is a bit string obtained by joining 2 ki bit strings of the 2 i p bits.
そして、β1・(M/m1)の場合と同様にして、上記の2k+1 pビットのビット列に2^(2i-1p-(k-i+2))を乗じた値は、上記の2k+1 pビットのビット列の下位桁に2i-1p-(k-i+2)個の"0"を付加することにより当該ビット列を2i-1p-(k-i+2)ビット分上位桁側にシフトしたビット列となる。 Then, the value obtained by multiplying the 2 k + 1 p-bit bit string by 2 ^ (2 i-1 p- (k-i + 2)) in the same manner as in the case of β 1 · (M / m 1 ) Adds 2 i-1 p- (k-i + 2) “0” s to the lower digits of the 2 k + 1 p-bit bit sequence to make the bit sequence 2 i-1 p- (k -i + 2) Bit string shifted to the upper digit side by bits.
また、(2^(2i-1p)-1)を2^(2i-1p)と-1の組み合わせと見なせば、(2^(2i-1p)-1)は、第2i-1pビットが"1"、第0ビットが"-1"、かつ他のビットが"0"の2ipビットのビット列"00…0100…0(-1)"と見なすことができる。この表現形式を用いれば、βi・(M/mi)は、最下位ビットが"1"の2i-1pビットのビット列"00…01"と最下位ビットが"-1"の2i-1pビットのビット列の組を、2k-I+1箇所に複製したビット列となることがわかる。 If (2 ^ (2 i-1 p) -1) is regarded as a combination of 2 ^ (2 i-1 p) and -1, then (2 ^ (2 i-1 p) -1) Assume that the 2 i p bit string “00… 0100… 0 (-1)” is the second i-1 p bit is "1", the 0th bit is "-1", and the other bits are "0" Can do. Using this representation format, β i · (M / m i ) is 2 i−1 p-bit bit string “00… 01” with the least significant bit “1” and 2 with the least significant bit “−1”. It can be seen that a bit string that is a duplicate of a bit string set of i-1 p bits is duplicated at 2 k-I + 1 locations.
βk+1・(M/m k+1)の場合、以下の式(2−1d)が成立する。
すなわち、(2^(2kp)-1)は、上位2kpビットが"0"かつ下位2kpビットが"1"の2k+1pビットのビット列"00…0011…11"と見なせる。そして、この2k+1 pビットのビット列に2^(2kp-1)を乗じた値は、上記の2k+1 pビットのビット列の下位桁に2kp-1個の"0"を付加して当該ビット列を2kp-1ビット分上位桁側にシフトしたビット列となる。 That is, (2 ^ (2 k p) -1) is a 2 k + 1 p bit string “00… 0011… 11” in which the upper 2 k p bits are “0” and the lower 2 k p bits are “1”. Can be considered. The value obtained by multiplying the 2 k + 1 p-bit bit string by 2 ^ (2 k p-1) is 2 k p-1 “0” in the lower digit of the 2 k + 1 p-bit bit string. The bit string is shifted to the upper digit side by 2 k p-1 bits by adding "."
(1b)性質2:被乗数のビット数
式(1−18)をモジュラスセットとする剰余系により表現された被変換数Y=(y0,y1,…,yk+1)の各剰余桁の剰余値yiは、以下に示す性質を有する。
(1b) Property 2: Number of bits of multiplicand Each residue digit of the converted number Y = (y 0 , y 1 ,..., Y k + 1 ) expressed by a residue system with the equation (1-18) as a modulus set The remainder value y i has the following properties.
・y0の場合
y0は、モジュラス(2p-1)の剰余値であるから、2進数pビットで表現できる。
・yi(1≦i≦k+1)の場合
yiは、モジュラス(2^(2i-1p)+1)の剰余値であるから、2進数2i-1p+1ビットで表現できる。ただし、最上位ビットが"1"となるのはyiが最大値2^(2i-1p)="100…00(2i-1p+1ビット)である場合のみであり、この場合最上位ビット以外のビットは全て"0"となる。
・ When y 0
Since y 0 is a modulus (2 p −1) remainder value, it can be expressed by binary p bits.
・ Y i (1 ≦ i ≦ k + 1)
Since y i is a remainder value of modulus (2 ^ (2 i−1 p) +1), it can be expressed by binary number 2 i−1 p + 1 bits. However, the most significant bit is "1" only when y i is the
以下の式(2−2a)から(2−2d)に、剰余値yiのビット列を示す。
(2)剰余桁毎の2進数への変換の高速化
上記の性質1及び性質2により、中国人の剰余定理の乗算部 は、被乗数yiを複製してして連結することにより実現することができる。これにより、本実施形態に係る変換装置においては、通常の乗算に必要なAND回路(部分積)と全加算器を不要とすることができる。
(2) Acceleration of conversion to binary number for each remainder digit By the
y0についての計算例を、以下の式(2−3)に示す。
性質2に示したように、y0(="ap-1 ap-2 … a0")はpビットである。一方、式(2−1a)に示したように、β0・(M/m0)は、pビット毎に"1"となるビット列である。したがって、y0をpビット毎に複製していき下位ビットに"0"を付加すれば、乗算及び加算を行うことなくモジュラスm0に対応する剰余桁を2進数に変換したモジュラス対応変換値y0・β0・(M/m0)を求めることができる。
As shown in
次に、yiについての計算例を、以下の式(2−4)に示す。
性質2に示したように、yi(="c2^(i-1)p c2^(i-1)p-1 … c0")は2i-1p+1ビットであるが、最大値は2^(2i-1p)である。このため、yiに(2^(2^i-1p)-1)(="00..0100..0(-1)")を乗じた値の最大値は、2^(2ip)- 2^(2i-1p)となり、2ipビットのビット列(="c2^ip-1' c2^ip-2' … c0'")で表現することができる。一方、式(2−1b)から(2−1d)に示したように、βi・(M/mi)は、2ipビット毎に"00…0100…0(-1)"となるビット列である。したがって、y0の場合と同様にしてyi・(2^(2^i-1p)-1) (="c2^ip-1' c2^ip-2' … c0'")のビット列を2ipビット毎に複製して下位ビットに"0"を付加すれば、当該ビット列に基づいて、乗算及び加算を行うことなくモジュラスmiに対応する剰余桁を2進数に変換したモジュラス対応変換値yi・βi・(M/mi)を求めることができる。
このモジュラス対応変換値yi・βi・(M/mi)を以下の式(2−5)に示す。
The modulus-corresponding conversion value y i · β i · (M / m i ) is shown in the following equation (2-5).
(3)EAC(End-Around Carry)処理
中国人の剰余定理の式(1−17)によれば、被乗数と逆数の積和演算の後に、モジュラスセットSkによる剰余系で表現できる数値の最大個数M=2^(2k+1p)+1にたいする剰余を計算する必要がある。この剰余計算は、以下に示すEAC処理により実現することができる。
(3) EAC according to the equation (1-17) of (End-Around Carry) processing Chinese remainder theorem, after the product-sum operation of the multiplicand and the inverse, maximum value that can be represented by the residue system according modulus sets S k It is necessary to calculate the remainder for the number M = 2 ^ (2 k + 1 p) +1. This remainder calculation can be realized by the following EAC process.
式(1−18)に示したモジュラスセットを用いた場合、モジュラスM=2^(2k+1p)+1であるから、2^(2k+1p)≡1(mod M)が成立する。したがって、剰余系の加減乗算定理より、次の等式(2−6)が成立する。
ここで、2^(2k+1p)は2k+1pビットの2進数である。したがって、式(2−6)は、以下の式(2−7)に示すように、2k+1pビットより上位のビット桁を、2k+1pビット下位桁側へシフトすることにより、モジュラスMによる剰余を算出できることを示す。
これを利用して、EAC処理においては、剰余桁の値と逆数を積和演算した値における2k+1pビットより上位のビット桁を最下位ビット側に循環シフト(cyclic shift)して加え、モジュラスMによる剰余値を算出する。 Using this, in EAC processing, a bit digit higher than 2 k + 1 p bits in the value obtained by multiply-and-accumulate the remainder digit value and the reciprocal value is cyclically shifted to the least significant bit side and added. Then, the remainder value by the modulus M is calculated.
式(2−5)に示したyi・βi・(M/mi)に対するEAC処理を以下の式(2−8)に示す。
式(2−5)に示したように、yi・βi・(M/mi)における2k+1pビットより上位のビットは、2i-1p-(k-i+2)ビットである。一方、yi・βi・(M/mi)は、下位2i-1p-(k-i+2)ビットが"0"であるから、yi・βi・(M/mi)における2k+1pビットより上位のビット桁を、下位ビットに移動させるのみで、yi・βi・(M/mi)のMによる剰余値を求めることができる。 As shown in the equation (2-5), bits higher than 2 k + 1 p bits in y i · β i · (M / m i ) are 2 i-1 p- (k-i + 2) Is a bit. On the other hand, since y i · β i · (M / m i ) has the lower 2 i-1 p- (k-i + 2) bits "0", y i · β i · (M / m i ), The remainder value by M of y i · β i · (M / m i ) can be obtained only by moving the higher-order bit digits than 2 k + 1 p bits to the lower bits.
(4)剰余桁間の加算の高速化
式(1−29)におけるモジュラス対応変換値yi・βi・(M/mi)の加算は、以下に示す方法により回路規模の低減及び高速化を図ることができる。ここでは、簡単のため、式(1−18)においてp=3, k=2としたモジュラスセットを例として示す。すなわち、モジュラスセットSk ={m0, m1, m2, m3} = {7(=23-1), 9(=23+1), 65(=26+1), 4097(=212+1)}である。この剰余系で表現できる数値の個数Mは(224-1)である。この剰余系で表現されたある数値を(y0,y1,y2,y3)とすると、それぞれの2進数表現は、つぎの式(2−9a)から(2−9d)となる。
上記の(1)で示した中国人の剰余定理の性質、(2)で示した剰余桁の性質、及び、(3)で示したEAC処理を用いれば、図1に示した計算方法により中国人の剰余定理の計算をすることができる。 Using the properties of the Chinese remainder theorem shown in (1) above, the properties of the residue digit shown in (2), and the EAC processing shown in (3), the calculation method shown in FIG. It is possible to calculate the person's remainder theorem.
まず、モジュラスm0に対応して、3(=p)ビットの部分ビット列y0(="a2 a1 a0")を上位桁の3ビットのビット列として複製し、同一の部分ビット列を上位ビット列及び下位ビット列として含む6ビットの被加算数"a2 a1 a0 a2 a1 a0"を生成する。この被加算数は、式(2−1a)における2pビットの"00…0100…01"とy0との積に対応するビット列であり、式(2−3)における"ap-1 ap-2 … a0 ap-1 ap-2 … a0"に対応する。 First, corresponding to the modulus m 0 , the partial bit string y 0 (= “a 2 a 1 a 0 ”) of 3 (= p) bits is copied as a 3-bit bit string of the upper digits, and the same partial bit string is A 6-bit addend number “a 2 a 1 a 0 a 2 a 1 a 0 ” including a bit string and a lower bit string is generated. This added number is a bit string corresponding to the product of 2p bits “00... 0100... 01” and y 0 in equation (2-1a), and “a p-1 a p in equation (2-3)”. -2 ... a 0 a p-1 a p-2 ... a 0 "
次に、モジュラスm1に対応して、4(=2(1-1)p+1)ビットの剰余値y1を3(=2(1-1)pビット上位桁側へシフトした値から当該剰余値y1を減じた6(=21p) ビットの部分ビット列"b5' b4' b3' b2' b1' b0'"を生成する。 Next, from the value obtained by shifting the remainder value y 1 of 4 (= 2 (1-1) p + 1) bits to the upper digit side of 3 (= 2 (1-1) p bits, corresponding to the modulus m 1 A 6 (= 2 1 p) -bit partial bit string “b 5 ′ b 4 ′ b 3 ′ b 2 ′ b 1 ′ b 0 ′” obtained by subtracting the remainder value y 1 is generated.
次に、上記の6ビットの被加算数"a2 a1 a0 a2 a1 a0"及び部分ビット列"b5' b4' b3' b2' b1' b0'"を、6ビット加算器により加算し、EAC処理を行って6ビットのビット列"s5 s4 s3 s2 s1 s0"をえる。このEAC処理は、本来24ビットの加算を行った結果最上位ビットのキャリーを最下位ビットに加えるものである。しかし、被加算数及びモジュラス対応変換値の規則性から、最上位ビットのキャリービットは下位6ビットの加算からえられるキャリービットと同一となるため、6ビット加算によるキャリービットを用いることができる。 Next, the 6-bit addend "a 2 a 1 a 0 a 2 a 1 a 0 " and the partial bit string "b 5 'b 4 ' b 3 'b 2 ' b 1 'b 0 '" Addition is performed by a 6-bit adder, and EAC processing is performed to obtain a 6-bit bit string “s 5 s 4 s 3 s 2 s 1 s 0 ”. In this EAC process, the carry of the most significant bit is added to the least significant bit as a result of the original 24-bit addition. However, because of the regularity of the added number and the modulus-corresponding conversion value, the carry bit of the most significant bit is the same as the carry bit obtained from the addition of the lower 6 bits, so a carry bit by 6-bit addition can be used.
ここで、モジュラスm0及びm1に対応するモジュラス対応変換値は、式(2−1a)、(2−1b)、(2−4)及び(2−5)に示したように上記の被加算数及び部分ビット列を4個結合したビット列である。したがって、モジュラスm0及びm1に対応するモジュラス対応変換値の和は、6ビットのビット列"s5 s4 s3 s2 s1 s0"を4個結合したビット列となる。そこで、この和にモジュラスm2に対応するモジュラス対応変換値を加えるために、当該6ビットのビット列"s5 s4 s3 s2 s1 s0"を上位桁6ビットのビット列として複製し、当該ビット列を上位ビット列及び下位ビット列として含む12ビットの被加算数"s5 s4 s3 s2 s1 s0 s5 s4 s3 s2 s1 s0"を生成する。 Here, the modulus-corresponding conversion values corresponding to the moduli m 0 and m 1 are the above-mentioned values as shown in the equations (2-1a), (2-1b), (2-4) and (2-5). This is a bit string obtained by combining the addition number and four partial bit strings. Therefore, the sum of the modulus-corresponding conversion values corresponding to the moduli m 0 and m 1 is a bit string obtained by combining four 6-bit bit strings “s 5 s 4 s 3 s 2 s 1 s 0 ”. Therefore, in order to add a modulus-corresponding conversion value corresponding to the modulus m 2 to this sum, the 6-bit bit string “s 5 s 4 s 3 s 2 s 1 s 0 ” is copied as a 6-bit bit string of upper digits, A 12-bit addend number “s 5 s 4 s 3 s 2 s 1 s 0 s 5 s 4 s 3 s 2 s 1 s 0 ” including the bit string as an upper bit string and a lower bit string is generated.
次に、モジュラスm2に対応して、7(=2(2-1)p+1)ビットの剰余値y2を6(=2(2-1)p)ビット上位桁側へシフトした値から当該剰余値y2を減じ、下位桁に"0 0 0 0"(=22-1p-(k-i+2) )ビットを付加したビット列"c11' c10' c9' c8' c7' c6' c5' c4' c3' c2' c1' c0' 0 0 0 0"を生成する。そして、式(2−8)に示したEAC処理を行い、12(=22p) ビットの部分ビット列"c7' c6' c5' c4' c3' c2' c1' c0' c11' c10' c9' c8'"を生成する。 Next, corresponding to the modulus m 2 , a value obtained by shifting the remainder value y 2 of 7 (= 2 (2-1) p + 1) bits to the upper digit side of 6 (= 2 (2-1) p) bits Bit sequence "c 11 'c 10 ' c 9 'c with the remainder y 2 subtracted from" 0 0 0 0 "(= 2 2-1 p- (k-i + 2)) bits added to the lower digit 8 'c 7' c 6 ' c 5' c 4 'c 3' c 2 'c 1' c 0 ' to generate a 0 0 0 0 ". Then, the EAC processing shown in Expression (2-8) is performed, and the 12 (= 2 2 p) bit partial bit string “c 7 ′ c 6 ′ c 5 ′ c 4 ′ c 3 ′ c 2 ′ c 1 ′ c generating a 0 'c 11' c 10 ' c 9' c 8 '".
次に、上記の12ビットの被加算数"s5 s4 s3 s2 s1 s0 s5 s4 s3 s2 s1 s0"及び部分ビット列"c7' c6' c5' c4' c3' c2' c1' c0' c11' c10' c9' c8'"を12ビット加算器により加算し、モジュラスm0及びm1に対する加算と同様にEAC処理を行って、12ビットのビット列"t11 t10 t9 t8 t7 t6 t5 t4 t3 t2 t1 t0"をえる。 Next, the 12-bit addend "s 5 s 4 s 3 s 2 s 1 s 0 s 5 s 4 s 3 s 2 s 1 s 0 " and the partial bit string "c 7 'c 6 ' c 5 ' c 4 'c 3 ' c 2 'c 1 ' c 0 'c 11 ' c 10 'c 9 ' c 8 '"is added by a 12-bit adder, and EAC processing is performed in the same way as addition to the modulus m 0 and m 1 To obtain a 12-bit bit string “t 11 t 10 t 9 t 8 t 7 t 6 t 5 t 4 t 3 t 2 t 1 t 0 ”.
以下同様にして、当該12ビットのビット列を上位桁12ビットに複製し、当該12ビットのビット列を上位ビット列及び下位ビット列として含む24ビットの被加算数を生成する。そして、当該被加算数に、モジュラスm3に対応するモジュラス対応変換値を加え、EAC処理を行うことにより、被変換数を2進数に変換した変換値を求めることができる。 Similarly, the 12-bit bit string is copied to the upper 12 bits, and a 24-bit addend number including the 12-bit bit string as the upper and lower bit strings is generated. Then, by adding a modulus-corresponding conversion value corresponding to the modulus m 3 to the added number and performing EAC processing, a converted value obtained by converting the converted number into a binary number can be obtained.
本実施形態に係る変換装置においては、以上に示したように、逆数の2進数表現が規則性をもつことを利用することにより、より少ないハードウェア量で高速に中国人の剰余定理を計算できる。 In the conversion device according to the present embodiment, as described above, the Chinese remainder theorem can be calculated at a high speed with a smaller amount of hardware by utilizing the fact that the binary representation of the reciprocal number has regularity. .
図2は、本実施形態に係る変換装置10の構成を示す。変換装置10は、剰余系により表現された被変換数を2進数に変換する。この剰余系は、複数のモジュラスmiのそれぞれにより被変換数Yを割った複数の剰余値yiの組により、被変換数Yを表現するものである。一例として、本実施形態に係る変換装置10は、この複数のモジュラスmiの組として、式(1−18)に示したモジュラスセットSkを用いる。
FIG. 2 shows a configuration of the
式(1−18)に示したモジュラスセットSkにおける最小のモジュラスm0は、2の自然数pによるべき乗値から1を減じた2以上の自然数である。また、複数のモジュラスのうち最小でないモジュラスm1,…,mk+1のそれぞれは、2を自然数によりべき乗したべき乗値に1を加えた値をとる。ここで、当該べき乗値は、当該モジュラスより小さいモジュラスの積より大きい値をとり、当該モジュラスより小さいモジュラスの積より大きい最小のべき乗値2^(2i-1p)であってよい。
The minimum modulus m 0 in the modulus set S k shown in the equation (1-18) is a natural number of 2 or more obtained by subtracting 1 from the power value of the natural number p of 2. Each of the non-minimum moduli m 1 ,..., M k + 1 among the plurality of moduli takes a value obtained by adding 1 to a power value obtained by raising 2 to a power of a natural number. Here, the power value takes a value larger than the product of the modulus smaller than the modulus, and may be the
本実施形態に係る変換装置10は、剰余値と中国人の剰余定理における逆数との積である2進数のモジュラス対応変換値yi・βi・(M/mi)を、ビット列の複製により実現する。これにより変換装置10は、被変換数Yを、少ないハードウェア量で高速に2進数に変換することができる。
The
変換装置10は、モジュラス対応変換値生成部100と、モジュラス対応変換値加算部130とを備える。
モジュラス対応変換値生成部100は、複数のモジュラスm0,…mk+1のそれぞれについて、当該モジュラスの剰余値yi(="α2^(i-1)p α2^(i-1)p-1 … α0")に当該モジュラスmi以外のモジュラスの積(M/mi)を乗じた値yi・ (M/mi)に基づいて、当該モジュラスに対応する2進数の値であるモジュラス対応変換値yi・βi・(M/mi)を生成する。
The
The modulus-corresponding conversion
モジュラス対応変換値生成部100は、1又は複数の部分ビット列生成部110(110a〜d)と、1又は複数の部分ビット列複製部120(120a〜d)とを有する。部分ビット列生成部110a〜dのそれぞれは、当該部分ビット列生成部110に対応するモジュラスmiにより被変換数Yを割った剰余値yiに基づいて、当該モジュラスmiに対応するモジュラス対応変換値yi・βi・(M/mi)の一部となる部分ビット列(="α2^ip-1' α2^ip-2' … α0')を生成する。ここで、最小のモジュラスm0に対応する部分ビット列生成部110aは、部分ビット列として、y0(="ap-1 ap-2 … a0")の値を出力する。一方、最小でないモジュラスmiに対応する部分ビット列生成部110b〜dは、部分ビット列として、剰余値yiに(2^(2^i-1p)-1)(="00..0100..0(-1)")を乗じた値を出力する。
The modulus conversion
部分ビット列複製部120a〜dのそれぞれは、当該部分ビット列複製部120に対応するモジュラス対応変換値yi・βi・(M/mi)の複数箇所に部分ビット列生成部110が生成した部分ビット列を複製する。これにより部分ビット列複製部120は、部分ビット列に当該モジュラスmiを乗じたモジュラス対応変換値yi・βi・(M/mi)を生成する。ここで、最大のモジュラスmk+1に対応する部分ビット列複製部120dは、部分ビット列生成部110が生成したビット列を、モジュラス対応変換値yk+1・βk+1・(M/m k+1)の1箇所に複製する。
Each of the partial bit
モジュラス対応変換値加算部130は、複数のモジュラスm0,…mk+1のそれぞれについてのモジュラス対応変換値を加算して、2進数の被変換数bin Yを算出する。なお、以上に示した各部分ビット列生成部110及び各部分ビット列複製部120は、モジュラス毎に別個の回路により実現されるのが望ましいが、これに代えて同一の回路を用いてモジュラス毎に順次処理する構成を採ることもできる。
なお、被変換数Yの各剰余値yiの組は、モジュラスセットSkの順序と異なる並びで入力されてもよい。この場合、変換装置10は、複数の剰余値yiの順序をモジュラスセットSkの順序に並べ替える剰余値並べ替え部を更に備えてもよい。
The modulus-corresponding conversion
Note that each set of remainder value y i of the transformation number Y may be entered in a different arrangement and order of the modulus sets S k. In this case,
図3は、本実施形態に係る部分ビット列生成部110の構成を示す。図3に示した部分ビット列生成部110は、最小で無い各モジュラスm1,…mk+1に対応して設けられ、当該モジュラスmiについての剰余値yi(="α2^(i-1)p α2^(i-1)p-1 … α0")から、部分ビット列 (="α2^ip-1' α2^ip-2' … α0'")を生成する。この部分ビット列は、式(2−4)におけるビット列"c2^ip-1' c2^ip-2' … c0'"に対応する。
FIG. 3 shows a configuration of the partial bit
部分ビット列生成部110は、補数演算器200と、加算器210とを含む。補数演算器200は、モジュラスmiに対応する2i-1p+1ビットの剰余値yi(="α2^(i-1)p α2^(i-1)p-1 … α0")を入力し、当該剰余値yiの補数を算出する。本実施形態に係る補数演算器200は、当該剰余値yiの2の補数である2ipビットのビット列を出力する。
Partial bit
加算器210は、剰余値yi(="α2^(i-1)p α2^(i-1)p-1 … α0")の下位2i-1pビットに補数演算器200が出力した補数の上位2i-1pビットを加える。そして加算器210は、加算結果を補数の下位2i-1pビットの上位桁に付加して、2ipビットの部分ビット列(="α2^ip-1 α2^ip-2 … α0")を生成する。これにより、加算器210は、剰余値yi(="α2^(i-1)p α2^(i-1)p-1 … α0")を当該モジュラスmiに対応する自然数分のビット数2i-1pだけ上位桁側にシフトした値から、当該剰余値を減じた値となる部分ビット列を生成することができる。
The
図4は、本実施形態に係る部分ビット列複製部120の構成を示す。部分ビット列複製部120は、複製器300と、EAC演算器310とを含む。最小のモジュラスm0に対応する複製器300は、式(2−3)に示したように、当該モジュラスm0に対応するモジュラス対応変換値の複数箇所、より具体的には2k+1箇所に、部分ビット列をpビット間隔で複製する。最小及び最大でないモジュラスmiに対応する複製器300は、式(2−4)で示したように、当該モジュラスmiに対応するモジュラス対応変換値の複数箇所、より具体的には2k-i+1箇所に、部分ビット列を2i・pビット間隔で複製する。これにより複製器300は、2k-i+1個の部分ビット列を結合する。このようにして得られるビット列は、下位ビットに2i-1p-(k-i+2)ビットの値を付加すればモジュラス対応変換値yi・βi・(M/mi)となる値をとる。最大のモジュラスmk+1に対応する複製器300は、式(2−1d)からわかるように、当該モジュラスmiに対応するモジュラス対応変換値の1箇所に、部分ビット列を複製する。
FIG. 4 shows a configuration of the partial bit
EAC演算器310は、式(2−8)に示したように、複製器300が出力したビット列の上位2i-1p-(k-i+2)ビットを、当該ビット列の下位ビット側に循環シフトすることによりEAC処理を行う。これにより、EAC演算器310は、EAC処理済みのモジュラス対応変換値yi・βi・(M/mi)を得ることができる。
As shown in the equation (2-8), the
以上に示した部分ビット列複製部120によれば、部分ビット列を複数箇所に複製し、上位ビットを下位ビットに移動させることにより、モジュラス対応変換値yi・βi・(M/mi)を得ることができる。したがって、部分ビット列複製部120は、乗算器や加算器等の演算回路を用いることなく、部分ビット列の複製及び一部のビットの移動によりモジュラス対応変換値yi・βi・(M/mi)を生成することができ、少ないハードウェア量で高速に処理を行うことができる。
According to the partial bit
図5は、本実施形態に係る変換装置10の動作フローを示す。
まず、複数の部分ビット列生成部110のそれぞれは、対応する剰余桁についての剰余値yiに基づいて、当該剰余桁に対応する部分ビット列を生成する(S400)。
FIG. 5 shows an operation flow of the
First, each of the plurality of partial bit
次に、複数の部分ビット列複製部120のそれぞれは、対応する剰余桁についての部分ビット列を複製してEAC処理を行う(S410)。この処理により部分ビット列複製部120は、被変換数Yの当該モジュラスmiによる剰余値yiに、当該モジュラスmiに対応する剰余値が1かつ他のモジュラスに対応する剰余値が0となる2進数の値、すなわち式(1−14)のb)等の値を乗じて、当該剰余桁についてのモジュラス対応変換値yi・βi・(M/mi)を生成することができる。
Next, each of the plurality of partial bit
そして、モジュラス対応変換値加算部130は、全てのモジュラス対応変換値を加算していくことにより合計を算出し、被変換数Yの2進表現として出力する。
Then, the modulus-corresponding conversion
以上に示した変換装置10によれば、剰余系の被変換数Yを、少ないハードウェア量で高速に2進数に変換することができる。
According to the
以上に代えて変換装置10は、一部のモジュラスについてのみビット列の複製を用いてモジュラス対応変換値を求めてもよい。すなわち、2を自然数によりべき乗した、当該モジュラスより小さいモジュラスの積より大きいべき乗値に、1を加えた値をとるあるモジュラスmiが存在する場合に、当該モジュラスmiより小さいモジュラスmjについて上記のS410の処理を行ってもよい。
Instead of the above, the
図6は、本実施形態の変形例に係る変換装置10の構成を示す。本変形例に係る変換装置10は、剰余系により表現された被変換数を2進数に変換する。この剰余系は、図2に関連して説明した剰余系と同様である。
FIG. 6 shows a configuration of the
本変形例に係る変換装置10は、各モジュラスに対応する部分ビット列を加算していく際に、部分和の下位ビット列を上位ビット列に複製した被加算数を用いる。これにより、変換装置10は、各モジュラスに対応する剰余値のビット数に合わせて加算器のビット数を低減することができ、剰余系の被変換数Yを、少ないハードウェア量で高速に2進数に変換することができる。
When the
変換装置10は、1又は複数の部分ビット列生成部110(110a〜d)と、モジュラス対応変換値加算部600とを備える。部分ビット列生成部110のそれぞれは、複数のモジュラスm0,…,mk+1のそれぞれについて、当該モジュラスmiに対応するモジュラス対応変換値yi・βi・(M/mi)の少なくとも一部に含まれる部分ビット列(="α2^ip-1 α2^ip-2 … α0")を生成する。このモジュラス対応変換値は、図1の変換装置10と同様に、複数のモジュラスのうち当該モジュラス以外のモジュラスを乗じた値に基づく2進数の値である。ここで、本変形例に係る部分ビット列生成部110は、図2及び図3に示した部分ビット列生成部110と同一の機能及び構成を採るため、説明を省略する。
The
モジュラス対応変換値加算部600は、複数のモジュラスm0,…,mk+1のそれぞれについての部分ビット列に基づいて、複数のモジュラスm0,…,mk+1のそれぞれについてのモジュラス対応変換値yi・βi・(M/mi)を加算した2進数の被変換数を算出する。モジュラス対応変換値加算部600は、1又は複数の下位ビット列複製部610(610a、610b、610c、…)と、1又は複数のビット列加算部620(620a、620b、…、620d)とを有する。
Modulus corresponding conversion
それぞれの下位ビット列複製部610は、複数のモジュラスm0,…,mk+1のうち最小でないモジュラスm1,…,mk+1のそれぞれに対応して設けられる。下位ビット列複製部610は、図1に示したように、対応するモジュラスmiより小さい全てのモジュラスに対応するモジュラス対応変換値y0・β0・(M/m0)、…、yi-1・βi-1・(M/mi-1)の和である第1の部分和の一部に含まれる予め定められたビット数の下位ビット列を、当該下位ビット列より上位桁の上位ビット列として複製する。これにより下位ビット列複製部610は、同一の上位ビット列及び下位ビット列を含む被加算数を生成する。この際、モジュラスm1に対応して設けられた下位ビット列複製部610aは、第1の部分和の下位ビット列として、部分ビット列生成部110aが出力した剰余値y0のビット列を用いる。
Each lower bit
それぞれのビット列加算部620は、複数のモジュラスm0,…,mk+1のうち最小でないモジュラスm1,…,mk+1のそれぞれに対応して設けられる。ビット列加算部620は、図1に示したように、対応するモジュラスmiについて下位ビット列複製部610により生成された被加算数に、当該モジュラスmiに対応して部分ビット列生成部110により生成された部分ビット列を加算する。これによりビット列加算部620は、当該モジュラスmiより小さい全てのモジュラスm0,…,mi-1について算出された第1の部分和に、当該モジュラスmiについてのモジュラス対応変換値を加えた第2の部分和の、少なくとも一部に含まれる下位ビット列を算出する。この下位ビット列は、モジュラスm0,…,miについて算出された部分和の下位ビット列として、当該モジュラスmiの次に大きいモジュラスmi+1に対応する下位ビット列複製部610に入力される。そして、最大のモジュラスmk+1に対応するビット列加算部620dにより算出されたビット列は、全てのモジュラス対応変換値の和となり、被変換数の2進数表現bin Yとして出力される。
Each bit
図7は、本実施形態の変形例に係る下位ビット列複製部610の構成を示す。下位ビット列複製部610は、対応するモジュラスmiより小さい全てのモジュラスに対応するモジュラス対応変換値y0・β0・(M/m0)、…、yi-1・βi-1・(M/mi-1)の和である第1の部分和の下位ビット列を入力する。そして、このp・2i-1ビットの下位ビット列を、当該下位ビット列より上位桁のp・2i-1ビットの上位ビット列として複製して、p・2iビットの被加算数を生成する。
FIG. 7 shows a configuration of the lower-order bit
以上に示した下位ビット列複製部610によれば、モジュラスmiに対応する部分ビット列と同一ビット数の被加算数をビット列の複製により生成することができる。
According to lower bit
図8は、本実施形態の変形例に係るビット列加算部620の構成を示す。ビット列加算部620は、加算器800と、EAC演算器810とを含む。加算器800は、図1に示したように、対応するモジュラスmiについての被加算数に、当該モジュラスmiに対応するモジュラス対応変換値における下位p・2iビットの部分ビット列を加算する。EAC演算器810は、加算により被加算数及び部分ビット列のビット数を越える桁あふれが生じた場合に、式(2−8)及び図1に示したように、加算の結果得られたビット列における、被加算数と同一ビット数の下位ビット列の下位ビットに、桁あふれしたビットを加えることによりEAC処理を行う。
FIG. 8 shows a configuration of a
以上に示したビット列加算部620によれば、第1の部分和に当該モジュラスmiについてのモジュラス対応変換値yi・βi・(M/mi)を加えた第2の部分和におけるp・2iビットの下位ビット列を算出することができる。
According to the bit
図9は、本実施形態の変形例に係る変換装置10の動作フローを示す。
まず、複数の部分ビット列生成部110のそれぞれは、対応する剰余桁についての剰余値yiに基づいて、当該剰余桁に対応する部分ビット列を生成する(S400)。次に、モジュラス対応変換値加算部600は、最小でないモジュラスm1,…,mk+1のそれぞれに対応してS910からS930の処理を繰り返す(S900、S940)。
FIG. 9 shows an operation flow of the
First, each of the plurality of partial bit
繰返し処理において、処理対象のモジュラスmiに対応する下位ビット列複製部610は、i-1番目の部分和の下位ビット列を上位ビット列に複製して、i番目の被加算数を生成する(S910)。次に、処理対象のモジュラスmiに対応するビット列加算部620は、i番目の被加算数に、i番目の部分ビット列を加算する(S920)。そして、ビット列加算部620は、加算結果に対しEAC処理を行い、i番目の部分和の下位ビット列を生成する(S930)。
In the iterative process, the lower bit
以上の処理を繰り返すことにより(S940)、最終段のビット列加算部620から全てのモジュラス対応変換値の和を出力することができる。
By repeating the above processing (S940), the sum of all the modulus-corresponding conversion values can be output from the
一例として、p=3, k=2とし、モジュラスセットをSk ={m0, m1, m2, m3} = {7(=23-1), 9(=23+1), 65(=26+1), 4097(=212+1)}とした場合において、この剰余系で表現された被変換数(y0、 y1、 y2、 y3) = (5、 6、47、3125)に中国人の剰余定理を適用して2進数表現に変換する計算を示す。各剰余値の2進数表現は、y0=”101”、 y1=”110”、 y2 = “101111”、 y3 = “110000110101”である。 As an example, p = 3, k = 2, and the modulus set is S k = {m 0 , m 1 , m 2 , m 3 } = (7 (= 2 3 -1), 9 (= 2 3 +1) , 65 (= 2 6 +1), 4097 (= 2 12 +1)}, the number of transforms (y 0 , y 1 , y 2 , y 3 ) = (5 , 6, 47, 3125) show the calculation to convert the binary representation by applying the Chinese remainder theorem. The binary representation of each remainder value is y 0 = “101”, y 1 = “110”, y 2 = “101111”, y 3 = “110000110101”.
まず、補数演算器200は、y1、 y2、 y3について、2の補数 (-y1)= “111010”、 (-y2)= “111111010001”、 (-y3)= “111111111111001111001011”を算出する。次に、加算器210は、(-y1)のMSB側にy1を加算して、部分ビット列“101010”をえる。同様に、加算器210は、(-y2)のMSB側、(-y3)のMSB側にy2、 y3を加算し、部分ビット列“101110010001”、 “110000110100001111001011”をえる。加算器210は、前述した性質1にもとづいて、y2・β2・(M/m2) については4ビット、 y3・β3・(M/m3)については11ビットのEAC処理を行う。これにより、加算器210は、EAC処理済みの部分ビット列 “100100011011”及び“000111100101111000011010”をえる。これが、中国人の剰余定理における乗算部 の部分積に相当する。
First, the complement computing unit 200 sets the two's complement (−y 1 ) = “111010”, (−y 2 ) = “111111010001”, (−y 3 ) = “111111111111001111001011” for y 1 , y 2 , y 3. Is calculated. Then, the
次に、下位ビット列複製部610aは、y0=“101”を2箇所に複製して被加算数“101101”とする。ビット列加算部620aは、当該被加算数と部分ビット列“101010”を加算したビット列”1010111”のMSBをEAC処理し、モジュラスm1に対応する部分和(部分和1)の下位ビット列”011000”をえる。
Next, the lower-order bit
次に、下位ビット列複製部610bは、この部分和1を2箇所に複製して被加算数”011000011000”とする。ビット列加算部620bは、当該被加算数と部分ビット列“100100011011”を加算したビット列”111100110011”をえる。13ビット目にキャリーが発生していないので、EAC処理は不要となり、このビット列がモジュラスm2に対応する部分和(部分和2)の下位ビット列となる。
Next, the lower-order bit
次に、下位ビット列複製部610cは、この部分和2を2箇所に複製して被加算数”111100110011111100110011”とする。ビット列加算部620cは、当該被加算数と部分ビット列“000111100101111000011010”を加算したビット列”1000100011001110101001101”のMSBをEAC処理し、被変換数を2進数に変換した24ビットの数値”000100011001110101001110”をえる。この数値を10進数で表現すると1154382となり、この数値が(y0、 y1、 y2、 y3) = (5、 6、47、3125)にたいする中国人の剰余定理の計算結果となる。
Next, the lower-order bit string duplicating unit 610c duplicates this
以上に示した変換装置10によれば、モジュラス対応変換値加算部600は、各モジュラスmiに対応して被加算数及び部分ビット列を加算するために、被加算数及び部分ビット列のビット数に応じたビット数の加算器800を用いることができる。すなわち、ビット列加算部620は、第1のモジュラスmi1について、p・2i1ビットの被加算数に、モジュラス対応変換値におけるp・2i1ビットの部分ビット列を加算するp・2i1ビットの加算器210と、第2のモジュラスmi2について、p・2i2ビットの被加算数に、モジュラス対応変換値におけるp・2i2ビットの部分ビット列を加算するp・2i2ビットの加算器210とを別個に用意しておくことができる。これにより、値が小さいモジュラスについては少ないビット数の加算器を使用することができ、少ないハードウェア量でより高速に被変換数の変換を行うことができる。
According to the
以上に代えて変換装置10は、一部のモジュラスについてのみビット列の複製を用いて被加算数を求めてもよい。すなわち、ある第1のモジュラスmiについて、下位ビット列複製部610は、第1のモジュラスmiより小さい少なくとも1つのモジュラスに対応するモジュラス対応変換値の和である第1部分和の一部に含まれる下位ビット列を上位ビット列として複製し、同一の上位ビット列及び下位ビット列を含む被加算数を生成してもよい。この場合、ビット列加算部620は、この被加算数に、第1のモジュラスmiに対応する部分ビット列を加算して、第2の部分和の少なくとも一部に含まれるビット列を生成する。
Instead of the above, the
図10は、本実施形態に係るコンピュータ1900のハードウェア構成の一例を示す。本実施形態に係るコンピュータ1900は、ホスト・コントローラ2082により相互に接続されるCPU2000、RAM2020、グラフィック・コントローラ2075、及び表示装置2080を有するCPU周辺部と、入出力コントローラ2084によりホスト・コントローラ2082に接続される通信インターフェイス2030、ハードディスクドライブ2040、及びCD−ROMドライブ2060を有する入出力部と、入出力コントローラ2084に接続されるROM2010、フレキシブルディスク・ドライブ2050、及び入出力チップ2070を有するレガシー入出力部とを備える。
FIG. 10 shows an example of a hardware configuration of a
ホスト・コントローラ2082は、RAM2020と、高い転送レートでRAM2020をアクセスするCPU2000及びグラフィック・コントローラ2075とを接続する。CPU2000は、ROM2010及びRAM2020に格納されたプログラムに基づいて動作し、各部の制御を行う。グラフィック・コントローラ2075は、CPU2000等がRAM2020内に設けたフレーム・バッファ上に生成する画像データを取得し、表示装置2080上に表示させる。これに代えて、グラフィック・コントローラ2075は、CPU2000等が生成する画像データを格納するフレーム・バッファを、内部に含んでもよい。
The
入出力コントローラ2084は、ホスト・コントローラ2082と、比較的高速な入出力装置である通信インターフェイス2030、ハードディスクドライブ2040、CD−ROMドライブ2060を接続する。通信インターフェイス2030は、ネットワークを介して他の装置と通信する。ハードディスクドライブ2040は、コンピュータ1900内のCPU2000が使用するプログラム及びデータを格納する。CD−ROMドライブ2060は、CD−ROM2095からプログラム又はデータを読み取り、RAM2020を介してハードディスクドライブ2040に提供する。
The input /
また、入出力コントローラ2084には、ROM2010と、フレキシブルディスク・ドライブ2050、及び入出力チップ2070の比較的低速な入出力装置とが接続される。ROM2010は、コンピュータ1900が起動時に実行するブート・プログラムや、コンピュータ1900のハードウェアに依存するプログラム等を格納する。フレキシブルディスク・ドライブ2050は、フレキシブルディスク2090からプログラム又はデータを読み取り、RAM2020を介してハードディスクドライブ2040に提供する。入出力チップ2070は、フレキシブルディスク・ドライブ2050や、例えばパラレル・ポート、シリアル・ポート、キーボード・ポート、マウス・ポート等を介して各種の入出力装置を接続する。
The input /
RAM2020を介してハードディスクドライブ2040に提供されるプログラムは、フレキシブルディスク2090、CD−ROM2095、又はICカード等の記録媒体に格納されて利用者によって提供される。プログラムは、記録媒体から読み出され、RAM2020を介してコンピュータ1900内のハードディスクドライブ2040にインストールされ、CPU2000において実行される。
A program provided to the
コンピュータ1900にインストールされ、コンピュータ1900を図2に示した変換装置10として機能させるプログラムは、部分ビット列生成モジュール及び部分ビット列複製モジュールを有するモジュラス対応変換値生成モジュールと、モジュラス対応変換値加算モジュールとを備える。これらのプログラム又はモジュールは、CPU2000等に働きかけて、コンピュータ1900を、1又は複数の部分ビット列生成部110及び1又は複数の部分ビット列複製部120を有するモジュラス対応変換値生成部100と、モジュラス対応変換値加算部130としてそれぞれ機能させる。部分ビット列生成モジュールは、補数演算プログラムと、加算プログラムとを含む。これらのプログラムは、CPU2000等に働きかけて、コンピュータ1900を、補数演算器200及び加算器210としてそれぞれ機能させる。部分ビット列複製モジュールは、複製プログラムと、EAC演算プログラムとを含む。これらのプログラムは、CPU2000等に働きかけて、コンピュータ1900を、複製器300及びEAC演算器310としてそれぞれ機能させる。
A program that is installed in the
また、コンピュータ1900にインストールされ、コンピュータ1900を図6に示した変換装置10として機能させるプログラムは、部分ビット列生成モジュールと、下位ビット列複製モジュール及びビット列加算モジュールを有するモジュラス対応変換値生成モジュールと、モジュラス対応変換値加算モジュールとを備える。これらのプログラム又はモジュールは、CPU2000等に働きかけて、コンピュータ1900を、1又は複数の部分ビット列生成部110と、1又は複数の下位ビット列複製部610及びビット列加算部620を有するモジュラス対応変換値加算部600としてそれぞれ機能させる。ビット列加算モジュールは、加算プログラムと、EAC演算プログラムとを含む。これらのプログラム又はモジュールは、CPU2000等に働きかけて、コンピュータ1900を、加算器800及びEAC演算器810としてそれぞれ機能させる。
A program that is installed in the
以上に示したプログラム又はモジュールは、外部の記憶媒体に格納されてもよい。記憶媒体としては、フレキシブルディスク2090、CD−ROM2095の他に、DVDやCD等の光学記録媒体、MO等の光磁気記録媒体、テープ媒体、ICカード等の半導体メモリ等を用いることができる。また、専用通信ネットワークやインターネットに接続されたサーバシステムに設けたハードディスク又はRAM等の記憶装置を記録媒体として使用し、ネットワークを介してプログラムをコンピュータ1900に提供してもよい。
The program or module shown above may be stored in an external storage medium. As the storage medium, in addition to the
図11は、図6に示した変換装置10の回路規模及び計算時間を、従来技術(非特許文献2)における計算方法と比較した結果を示す。ここでは、1ビット半加算器のトランジスタ数(約15トランジスタ)を1HA、1ビット半加算器の遅延を1Dとして比較する。この場合、1ビット全加算器の回路規模及び遅延はそれぞれ2HA及び 2Dとなる。補数演算については、従来技術及び変換装置10において共通して行われるため、省略する。
FIG. 11 shows the result of comparing the circuit scale and calculation time of the
モジュラスセットがSk ={m0, m1, m2, m3} = {7(=23-1)、 9(=23+1)、 65(=26+1)、 4097(=212+1)}の場合、従来技術においては、24ビットの全加算器が3段とEAC処理のための半加算器(12ビット)が3段必要となり、回路規模は24×2HA×3+12HA×3 = 180HAとなる。また、非特許文献2においては、遅延量は、(24ビット加算器の遅延3段分)+(EACの遅延)= 24×2D×3+12×1D = 156Dとなる。
The modulus set is S k = {m 0 , m 1 , m 2 , m 3 } = {7 (= 2 3 -1), 9 (= 2 3 +1), 65 (= 2 6 +1), 4097 ( = 2 12 +1)}, the prior art requires 3 stages of 24-bit full adders and 3 stages of half adders (12 bits) for EAC processing, and the circuit scale is 24 × 2HA × 3 + 12HA × 3 = 180HA. In
これに対し、変換装置10によれば、回路規模は(6ビット全加算器)+(12ビット全加算器)+(24ビット全加算器)+(3ビットEAC)+(6ビットEAC)+(12ビットEAC) +(3ビットEAC)+(6ビットEAC)+(12ビットEAC) = 6×2HA+12×2HA+24×2HA+3HA+6HA+12HA +3HA+6HA+12HA = 126HAとなる。また、遅延は、(6ビット加算器の遅延)+(12ビット加算器の遅延) +(24ビット加算器の遅延)+(12ビットEACの遅延)+(12ビットEACの遅延)= 6×2D + 12×2D+24×2D+12×1D +12×1D = 108Dとなる。
On the other hand, according to the
したがって、上記のモジュラスセットを用いた場合、変換装置10は、従来技術に対して回路規模を30%縮小し、遅延を30%短縮することができる。また、任意のp、kを考慮した場合、従来技術は、回路規模及び遅延がkに比例して大きくなっていく。これに対し、変換装置10においては、回路規模及び遅延は(2+2-k)に比例する。したがって、変換装置10は、kが大きくなるほど、従来技術と比較して回路規模及び遅延を小さくすることができる。
Therefore, when the above-described modulus set is used, the
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。 As mentioned above, although this invention was demonstrated using embodiment, the technical scope of this invention is not limited to the range as described in the said embodiment. It will be apparent to those skilled in the art that various modifications or improvements can be added to the above-described embodiment. It is apparent from the scope of the claims that the embodiments added with such changes or improvements can be included in the technical scope of the present invention.
10 変換装置
100 モジュラス対応変換値生成部
110a〜d 部分ビット列生成部
120a〜d 部分ビット列複製部
130 モジュラス対応変換値加算部
200 補数演算器
210 加算器
300 複製器
310 EAC演算器
600 モジュラス対応変換値加算部
610a〜d 下位ビット列複製部
620a〜d ビット列加算部
800 加算器
810 EAC演算器
1900 コンピュータ
2000 CPU
2010 ROM
2020 RAM
2030 通信インターフェイス
2040 ハードディスクドライブ
2050 フレキシブルディスク・ドライブ
2060 CD−ROMドライブ
2070 入出力チップ
2075 グラフィック・コントローラ
2080 表示装置
2082 ホスト・コントローラ
2084 入出力コントローラ
2090 フレキシブルディスク
2095 CD−ROM
DESCRIPTION OF
2010 ROM
2020 RAM
2030
Claims (9)
前記剰余系は、複数のモジュラスのそれぞれにより前記被変換数を割った複数の剰余値の組により、前記被変換数を表現するものであり、
第1の前記モジュラスは、2を自然数によりべき乗した、当該第1モジュラスより小さい前記モジュラスの積より大きいべき乗値に、1を加えた値をとり、
複数のモジュラスのそれぞれについて、当該モジュラスについての前記剰余値に当該モジュラス以外のモジュラスの積を乗じた値に基づく2進数の値である、当該モジュラスに対応するモジュラス対応変換値の、少なくとも一部に含まれる部分ビット列を生成する部分ビット列生成部と、
前記複数のモジュラスのそれぞれについての前記部分ビット列に基づいて、前記複数のモジュラスのそれぞれについての前記モジュラス対応変換値を加算した2進数の前記被変換数を算出するモジュラス対応変換値加算部と
を備え、
前記モジュラス対応変換値加算部は、
前記第1モジュラスより小さい少なくとも1つの前記モジュラスに対応する前記モジュラス対応変換値の和である第1部分和の一部に含まれる予め定められたビット数の下位ビット列を、当該下位ビット列より上位桁の上位ビット列として複製し、同一の上位ビット列及び下位ビット列を含む被加算数を生成する下位ビット列複製部と、
前記被加算数に、前記第1モジュラスに対応する前記部分ビット列を加算して、前記第1部分和に前記第1モジュラスについての前記モジュラス対応変換値を加えた第2部分和の少なくとも一部に含まれる下位ビット列を算出するビット列加算部と
を有する変換装置。 A conversion device that converts a converted number expressed by a residue system into a binary number,
The residue system represents the converted number by a set of a plurality of remainder values obtained by dividing the converted number by each of a plurality of moduli,
The first modulus is a value obtained by adding 1 to a power value larger than the product of the modulus less than the first modulus, which is a power of 2 by a natural number,
For each of a plurality of moduli, at least a part of a conversion value corresponding to a modulus corresponding to the modulus, which is a binary value based on a value obtained by multiplying the remainder of the modulus by a product of a modulus other than the modulus. A partial bit string generation unit for generating the included partial bit string;
A modulus-corresponding conversion value adding unit that calculates the binary converted number by adding the modulus-corresponding conversion value for each of the plurality of moduli based on the partial bit string for each of the plurality of moduli. ,
The modulus corresponding conversion value adding unit is
A lower-order bit string having a predetermined number of bits included in a part of the first partial sum that is the sum of the modulus-corresponding conversion values corresponding to at least one of the moduli smaller than the first modulus is a higher-order digit than the lower-order bit string. A lower bit string duplicating unit that replicates as an upper bit string of the same and generates an added number including the same upper bit string and lower bit string;
At least a part of the second partial sum obtained by adding the partial bit string corresponding to the first modulus to the added number and adding the modulus corresponding conversion value for the first modulus to the first partial sum. A conversion apparatus comprising: a bit string addition unit that calculates a lower bit string included therein.
前記複数のモジュラスのうち最小でない前記モジュラスのそれぞれは、2を自然数によりべき乗した、当該モジュラスより小さい前記モジュラスの積より大きいべき乗値に、1を加えた値をとり、
前記下位ビット列複製部は、前記複数のモジュラスのうち最小でない前記モジュラスのそれぞれについて、当該モジュラスより小さい全ての前記モジュラスに対応する前記モジュラス対応変換値の和である前記第1部分和の一部に含まれる予め定められたビット数の下位ビット列を、当該下位ビット列より上位桁の上位ビット列として複製して、当該モジュラスについての前記被加算数を生成し、
前記ビット列加算部は、前記複数のモジュラスのうち最小でない前記モジュラスのそれぞれについて、当該モジュラスについての前記被加算数に、当該モジュラスに対応する前記部分ビット列を加算して、前記第1部分和に当該モジュラスについての前記モジュラス対応変換値を加えた前記第2部分和の少なくとも一部に含まれる下位ビット列を算出する
請求項1記載の変換装置。 The minimum modulus is a natural number of 2 or more obtained by subtracting 1 from a power value of 2 natural numbers;
Each of the non-minimum moduli of the plurality of moduli takes a value obtained by adding 1 to a power value larger than the product of the moduli smaller than the modulus obtained by raising 2 by a natural number,
The lower-order bit string duplicating unit, for each of the non-minimum moduli of the plurality of moduli, includes a part of the first partial sum that is a sum of the modulus-corresponding conversion values corresponding to all the moduli smaller than the moduli. A lower bit string of a predetermined number of bits included is copied as an upper bit string of higher digits than the lower bit string, and the added number for the modulus is generated,
For each of the non-minimum moduli of the plurality of moduli, the bit string adding unit adds the partial bit string corresponding to the modulus to the added number for the modulus, and adds the partial bit string corresponding to the first partial sum. The conversion apparatus according to claim 1, wherein a lower-order bit string included in at least a part of the second partial sum obtained by adding the modulus-corresponding conversion value for a modulus is calculated.
前記下位ビット列複製部は、前記複数のモジュラスのうち最小でない前記モジュラスmi(i=1,…,k+1)のそれぞれについて、当該モジュラスmiより小さい全てのモジュラスに対応する前記モジュラス対応変換値の和である前記第1部分和におけるp・2i-1ビットの下位ビット列を、当該下位ビット列より上位桁のp・2i-1ビットの上位ビット列として複製して、p・2iビットの前記被加算数を生成し、
前記ビット列加算部は、前記複数のモジュラスのうち最小でない前記モジュラスmi(i=1,…,k+1)のそれぞれについて、当該モジュラスmiについての前記被加算数に、当該モジュラスmiに対応する前記モジュラス対応変換値における下位p・2iビットの前記部分ビット列を加算して、前記第1部分和に当該モジュラスについての前記モジュラス対応変換値を加えた前記第2部分和におけるp・2iビットの下位ビット列を算出する
請求項1記載の変換装置。
The low-order bit string duplicating unit, for each of the non-minimum moduli m i (i = 1,..., K + 1) among the plurality of moduli, the modulus corresponding conversion corresponding to all moduli smaller than the modulus m i. The p · 2 i-1 bit lower bit string in the first partial sum, which is the sum of the values, is copied as an upper bit string of p · 2 i-1 bits higher than the lower bit string, and p · 2 i bits Generate the addend of
The bit string adding section, said modulus m i is not the smallest among the plurality of modulus (i = 1, ..., k + 1) for each of the augend for the modulus m i, to the modulus m i P · 2 in the second partial sum obtained by adding the partial bit string of the lower p · 2 i bits in the corresponding conversion value corresponding to the modulus and adding the modulus corresponding conversion value for the modulus to the first partial sum. The conversion apparatus according to claim 1, wherein an i- bit lower bit string is calculated.
前記第1モジュラスmi1について、p・2i1ビットの前記被加算数に、前記モジュラス対応変換値におけるp・2i1ビットの前記部分ビット列を加算するp・2i1ビットの加算器と、
第2の前記モジュラスmi2について、p・2i2ビットの前記被加算数に、前記モジュラス対応変換値におけるp・2i2ビットの前記部分ビット列を加算するp・2i2ビットの加算器と
を含む請求項3記載の変換装置。 The bit string addition unit
For the first modulus m i1, said p · 2 i1 bit augend, and p · 2 i1 bit adder for adding said partial bit string of p · 2 i1 bits in the modulus corresponding conversion value,
The second of said modulus m i2, p · 2 i2 of bits of the in augend, and a p · 2 i2 bit adder for adding the partial bit string of p · 2 i2 bits in the modulus corresponding conversion value The conversion device according to claim 3.
前記剰余系は、複数のモジュラスのそれぞれにより前記被変換数を割った複数の剰余値の組により、前記被変換数を表現するものであり、
第1の前記モジュラスは、2を自然数によりべき乗した、当該第1モジュラスより小さい前記モジュラスの積より大きいべき乗値に、1を加えた値をとり、
複数のモジュラスのそれぞれについて、当該モジュラスについての前記剰余値に当該モジュラス以外のモジュラスの積を乗じた値に基づいて、当該モジュラスに対応する2進数の値であるモジュラス対応変換値を生成するモジュラス対応変換値生成部と、
前記複数のモジュラスのそれぞれについての前記モジュラス対応変換値を加算して、2進数の前記被変換数を算出するモジュラス対応変換値加算部と
を備え、
前記モジュラス対応変換値生成部は、
前記第1モジュラスより小さい第2モジュラスにより前記被変換数を割った剰余値のビット列に基づいて、当該第2モジュラスに対応する前記モジュラス対応変換値の一部となる部分ビット列を生成する部分ビット列生成部と、
当該第2モジュラスに対応する前記モジュラス対応変換値の複数箇所に前記部分ビット列を複製することにより、前記部分ビット列に前記第1モジュラスを乗じた当該モジュラス対応変換値を生成する部分ビット列複製部と
を有する
変換装置。 A conversion device that converts a converted number expressed by a residue system into a binary number,
The residue system represents the converted number by a set of a plurality of remainder values obtained by dividing the converted number by each of a plurality of moduli,
The first modulus is a value obtained by adding 1 to a power value larger than the product of the modulus less than the first modulus, which is a power of 2 by a natural number,
For each of a plurality of moduli, a modulus corresponding conversion value that is a binary value corresponding to the modulus is generated based on a value obtained by multiplying the remainder of the modulus by a product of a modulus other than the modulus A conversion value generation unit;
A modulus-corresponding conversion value adding unit that adds the modulus-corresponding conversion values for each of the plurality of moduli to calculate the binary converted number;
The modulus corresponding conversion value generation unit
Partial bit string generation for generating a partial bit string that becomes a part of the modulus-corresponding conversion value corresponding to the second modulus based on a bit string of a remainder value obtained by dividing the number of conversion by a second modulus smaller than the first modulus And
A partial bit string duplicating unit that generates the modulus-corresponding conversion value obtained by multiplying the partial bit string by the first modulus by replicating the partial bit string at a plurality of locations of the modulus-corresponding conversion value corresponding to the second modulus. Having a conversion device.
前記複数のモジュラスのうち最小でない前記モジュラスのそれぞれは、2を自然数によりべき乗した、当該モジュラスより小さい前記モジュラスの積より大きいべき乗値に、1を加えた値をとり、
前記部分ビット列生成部は、複数のモジュラスのうち最小でない前記モジュラスのそれぞれについて、前記被変換数の当該モジュラスによる剰余値を当該モジュラスに対応する前記自然数分のビット数だけ上位桁側にシフトした値から当該剰余値を減じた前記部分ビット列を生成する
請求項6記載の変換装置。 The minimum modulus is a natural number of 2 or more obtained by subtracting 1 from a power value of 2 natural numbers;
Each of the non-minimum moduli of the plurality of moduli takes a value obtained by adding 1 to a power value larger than the product of the moduli smaller than the modulus obtained by raising 2 by a natural number,
The partial bit string generation unit is a value obtained by shifting, for each of the non-minimum moduli of a plurality of moduli, a remainder value obtained by the modulus of the converted number to the upper digit side by the number of bits corresponding to the natural number. The conversion apparatus according to claim 6, wherein the partial bit string is generated by subtracting the remainder value from.
前記部分ビット列生成部は、複数のモジュラスのうち最小でない前記モジュラスmi(i=1,…,k+1)のそれぞれについて、前記被変換数の当該モジュラスmiによる剰余値を2i-1・pビット分上位桁側へシフトした値から当該剰余値を減じた2i・pビットの前記部分ビット列を生成し、
前記部分ビット列複製部は、複数のモジュラスのうち最小及び最大でない前記モジュラスmiのそれぞれについて、当該モジュラスmiに対応する前記モジュラス対応変換値の複数箇所に、前記部分ビット列を2i・pビット間隔で複製することにより、当該モジュラスmiに対応する前記モジュラス対応変換値を生成する
請求項6記載の変換装置。
The partial bit string generation unit, the modulus m i is not the smallest among the plurality of modulus (i = 1, ..., k + 1) for each of the remainder value by the modulus m i of the object to be converted number 2 i-1 Generate the partial bit string of 2 i · p bits by subtracting the remainder value from the value shifted to the upper digit side by p bits,
The partial bit string replication unit, for each of the moduli m i not the minimum and maximum of the plurality of modulus, at a plurality of locations of the modulus corresponding conversion value corresponding to the modulus m i, 2 i · p bits the partial bit string by replicating at intervals converter according to claim 6, wherein generating the modulus corresponding conversion value corresponding to the modulus m i.
前記第1モジュラスmi1について、前記被変換数の前記第1モジュラスmi1による剰余値に基づいて、2i1・pビットの第1の前記部分ビット列を生成する第1の前記部分ビット列生成部と、
前記第2モジュラスmi2について、前記被変換数の前記第1モジュラスmi2による剰余値に基づいて、2i2・pビットの第2の前記部分ビット列を生成する第2の前記部分ビット列生成部と、
前記第1の部分ビット列を2i1・pビット間隔で複製することにより、当該モジュラスmi1に対応する前記モジュラス対応変換値を生成する第1の前記部分ビット列複製部と、
前記第2の部分ビット列を2i2・pビット間隔で複製することにより、当該モジュラスmi2に対応する前記モジュラス対応変換値を生成する第2の前記部分ビット複製部と
を有する請求項8記載の変換装置。 The modulus corresponding conversion value generation unit
For the first modulus m i1, on the basis of the remainder value by said first modulus m i1 of the number of conversions, a first of said partial bit string generating unit for generating a first of said partial bit string of the 2 i1 · p bits ,
For the second modulus m i2, and on the basis of the remainder value by said first modulus m i2 of the number of conversions, a second of said partial bit string generating unit for generating a second of said partial bit string of the 2 i2 · p bits ,
A first partial bit string duplicating unit that creates the modulus-corresponding conversion value corresponding to the modulus m i1 by duplicating the first partial bit string at intervals of 2 i1 · p bits;
9. The second partial bit duplicating unit configured to duplicate the second partial bit string at an interval of 2 i2 · p bits to generate the modulus-corresponding conversion value corresponding to the modulus m i2. 9. Conversion device.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004249153A JP4643951B2 (en) | 2004-08-27 | 2004-08-27 | CONVERTING DEVICE AND CONVERTING METHOD FOR CONVERTING RESIDUAL CONVERSION NUMBER TO BINARY NUMBER |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004249153A JP4643951B2 (en) | 2004-08-27 | 2004-08-27 | CONVERTING DEVICE AND CONVERTING METHOD FOR CONVERTING RESIDUAL CONVERSION NUMBER TO BINARY NUMBER |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2006065116A JP2006065116A (en) | 2006-03-09 |
JP4643951B2 true JP4643951B2 (en) | 2011-03-02 |
Family
ID=36111652
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004249153A Expired - Fee Related JP4643951B2 (en) | 2004-08-27 | 2004-08-27 | CONVERTING DEVICE AND CONVERTING METHOD FOR CONVERTING RESIDUAL CONVERSION NUMBER TO BINARY NUMBER |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4643951B2 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8611530B2 (en) * | 2007-05-22 | 2013-12-17 | Harris Corporation | Encryption via induced unweighted errors |
-
2004
- 2004-08-27 JP JP2004249153A patent/JP4643951B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2006065116A (en) | 2006-03-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7188133B2 (en) | Floating point number storage method and floating point arithmetic device | |
TW401557B (en) | Method, apparatus and system for automatically designing logic circuit, and multiplier | |
JP4273071B2 (en) | Divide and square root calculator | |
JP2840169B2 (en) | Automatic logic circuit design method and apparatus | |
CN113608718A (en) | Method for realizing acceleration of prime number domain large integer modular multiplication calculation | |
JP4643951B2 (en) | CONVERTING DEVICE AND CONVERTING METHOD FOR CONVERTING RESIDUAL CONVERSION NUMBER TO BINARY NUMBER | |
JP5175983B2 (en) | Arithmetic unit | |
JP4279626B2 (en) | Remainder calculation system, scaling calculator, scaling calculation method, program thereof and recording medium | |
JP3660075B2 (en) | Dividing device | |
Timarchi et al. | Area-time-power efficient maximally redundant signed-digit modulo 2 n− 1 adder and multiplier | |
Lindström et al. | Arithmetic circuits combining residue and signed-digit representations | |
WO2006120680A2 (en) | Large number multiplication method and device | |
JP4163967B2 (en) | Floating point arithmetic unit | |
JP3332270B2 (en) | Exponentiation unit | |
JP2795253B2 (en) | Divider | |
Fit-Florea et al. | A discrete logarithm number system for integer arithmetic modulo 2^{k}: algorithms and lookup structures | |
JP3112662B2 (en) | Multiplier | |
JP2000010763A (en) | Division circuit | |
JP2580413B2 (en) | Multiplication processing unit | |
JP3461252B2 (en) | Multiplication method | |
sadat Hoseininasab et al. | A Method for Single Radix-10 constant multiplication | |
Pohane et al. | VLSI Designing of High Speed Parallel Multiplier Accumulator Based on Radix 4 Booths Multiplier | |
JP2002344316A (en) | Nonlinear quantizer and nonlinear quantizing method, nonlinear quantizing program | |
JP2021047778A (en) | Operational circuit | |
Barik et al. | A High-Speed Booth Multiplier Based on Redundant Binary Algorithm |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20070705 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20100831 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100914 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20101101 |
|
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: 20101124 |
|
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: 20101203 |
|
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: 20131210 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131210 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |