发明名称 |
实现基4-Booth编码方法的门电路和基于该方法的流水线大数乘法器 |
摘要 |
本发明基4‑Booth编码方法,乘数B每相邻的三位共有八种组合方式,不同的组合形式分别代表部分积选择是0,±A,±2A之中的一种,其中A代表被乘数,编码值X<sub>i</sub>等于1表示绝对值是被乘数自身的组合方式,编码值X<sub>i</sub>等于0表示其余组合方式;编码值M<sub>i</sub>等于1表示部分积为负数的组合方式;编码值Modify<sub>i</sub>等于1表示绝对值非零的六种组合方式,本发明同时提供了实现该编码的门电路以及基于该编码的流水线大数乘法器,本发明编码方法可缩短Booth编码的延时,流水线大数乘法器可实现256位大数乘法运算,应用于公钥密码算法模乘运算中,可大幅提高公钥密码芯片的性能。 |
申请公布号 |
CN103412737B |
申请公布日期 |
2016.08.10 |
申请号 |
CN201310261574.X |
申请日期 |
2013.06.27 |
申请人 |
清华大学 |
发明人 |
李树国;周怡 |
分类号 |
G06F7/533(2006.01)I |
主分类号 |
G06F7/533(2006.01)I |
代理机构 |
西安智大知识产权代理事务所 61215 |
代理人 |
贾玉健 |
主权项 |
一种实现基4‑Booth编码方法的门电路,所述基4‑Booth编码方法,如下表所示:<img file="FDA0000947757360000011.GIF" wi="1603" he="774" />乘数B每相邻的三位共有八种组合方式,不同的组合形式分别代表部分积选择是0,±A,±2A之中的一种,其中A代表被乘数,编码值X<sub>i</sub>等于1表示绝对值是被乘数自身的组合方式,编码值X<sub>i</sub>等于0表示其余组合方式;编码值M<sub>i</sub>等于1表示部分积为负数的组合方式;编码值Modify<sub>i</sub>等于1表示绝对值非零的六种组合方式,所述编码值中的i表示生成第i个部分积所需要的编码值序号,对256位乘法器来说,其范围是0~128;所述编码值X<sub>i</sub>、M<sub>i</sub>、Modify<sub>i</sub>的逻辑表达式概括如下:<maths num="0001" id="cmaths0001"><math><![CDATA[<mrow><msub><mi>X</mi><mi>i</mi></msub><mo>=</mo><mi>B</mi><mo>[</mo><mn>2</mn><mi>i</mi><mo>-</mo><mn>1</mn><mo>]</mo><mo>⊕</mo><mi>B</mi><mo>[</mo><mn>2</mn><mi>i</mi><mo>]</mo></mrow>]]></math><img file="FDA0000947757360000012.GIF" wi="398" he="70" /></maths>M<sub>i</sub>=B[2i+1]<maths num="0002" id="cmaths0002"><math><![CDATA[<mrow><msub><mi>Modify</mi><mi>i</mi></msub><mo>=</mo><mi>B</mi><mo>[</mo><mn>2</mn><mi>i</mi><mo>+</mo><mn>1</mn><mo>]</mo><mo>⊕</mo><mi>B</mi><mo>[</mo><mn>2</mn><mi>i</mi><mo>-</mo><mn>1</mn><mo>]</mo><mo>+</mo><mi>B</mi><mo>[</mo><mn>2</mn><mi>i</mi><mo>]</mo><mo>⊕</mo><mi>B</mi><mo>[</mo><mn>2</mn><mi>i</mi><mo>-</mo><mn>1</mn><mo>]</mo></mrow>]]></math><img file="FDA0000947757360000013.GIF" wi="966" he="73" /></maths>部分积每一比特位的生成如下述逻辑表达式所示:<maths num="0003" id="cmaths0003"><math><![CDATA[<mrow><msub><mi>p</mi><mi>i</mi></msub><mo>[</mo><mi>j</mi><mo>]</mo><mo>=</mo><mrow><mo>(</mo><mi>A</mi><mo>[</mo><mi>j</mi><mo>]</mo><mo>⊕</mo><msub><mi>M</mi><mi>i</mi></msub><mo>+</mo><mo>(</mo><mrow><mo>~</mo><msub><mi>X</mi><mi>i</mi></msub></mrow><mo>)</mo><mo>)</mo></mrow><mo>·</mo><mrow><mo>(</mo><mi>A</mi><mo>[</mo><mi>j</mi><mo>-</mo><mn>1</mn><mo>]</mo><mo>⊕</mo><msub><mi>M</mi><mi>i</mi></msub><mo>+</mo><msub><mi>X</mi><mi>i</mi></msub><mo>)</mo></mrow><mo>·</mo><mrow><mo>(</mo><msub><mi>X</mi><mi>i</mi></msub><mo>+</mo><msub><mi>Modify</mi><mi>i</mi></msub><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000947757360000014.GIF" wi="1373" he="71" /></maths>其中B[2i]代表乘数的第2i比特位,A[j]表示被乘数A的第j比特位;其特征在于,所述门电路包括:第一异或门(1),其一路输入端接B[2i‑1],另一路输入端接B[2i];第二异或门(2),其一路输入端接B[2i‑1],另一路输入端接B[2i+1];第一或门(3),其一路输入端接第一异或门(1)的输出X<sub>i</sub>,另一路输入端接第二异或门(2)的输出;第三异或门(5),其一路输入端接B[2i+1],另一路输入端接A[j];第四异或门(4),其一路输入端接B[2i+1],另一路输入端接A[j‑1];非门(6),其输入端接第一异或门(1)的输出X<sub>i</sub>;第二或门(7),其一路输入端接第三异或门(5)的输出,另一路输入端接非门(6)的输出;第三或门(8),其一路输入端接第一异或门(1)的输出X<sub>i</sub>,另一路输入端接第一或门(3)的输出Modify<sub>i</sub>;第四或门(9),其一路输入端接第一异或门(1)的输出X<sub>i</sub>,另一路输入端接第四异或门(4)的输出;与门(10),其输入端分别接第二或门(7)、第三或门(8)和第四或门(9)的输出;所述B[2i‑1]表示乘数B的第2i‑1比特位,B[2i]表示乘数B的第2i比特位,B[2i+1]表示乘数B的第2i+1比特位,A[j]表示乘数A的第j比特位,A[j‑1]表示乘数A的第j‑1比特位。 |
地址 |
100084 北京市海淀区100084信箱82分箱清华大学专利办公室 |