CN112948901A - 一种ssd主控芯片中加速运算的优化方法和装置 - Google Patents
一种ssd主控芯片中加速运算的优化方法和装置 Download PDFInfo
- Publication number
- CN112948901A CN112948901A CN202110151958.0A CN202110151958A CN112948901A CN 112948901 A CN112948901 A CN 112948901A CN 202110151958 A CN202110151958 A CN 202110151958A CN 112948901 A CN112948901 A CN 112948901A
- Authority
- CN
- China
- Prior art keywords
- multiplier
- partial product
- control chip
- value
- multiplicand
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/72—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Complex Calculations (AREA)
Abstract
本发明公开SSD主控芯片中加速运算的优化方法和装置,获取输入的被乘数Y和乘数X,所述被乘数Y和乘数X为二进制数值,所述被乘数Y位宽和乘数X位宽都为N位,其中乘数Y和乘数X的最高位为符号位;依次获取乘数X二进制数值中每相邻三位数值大小,根据预设的表格匹配得到对应的部分积E。将每个相邻三位数值的部分积E和对应的系数22i输入到第一乘法器,第一乘法器将部分积E乘上对应的系数22i,得到第一相乘结果分别输入到第一加法器。本发明可以避免在乘数运算结果中产生负值,从而减少了大量补码运算电路。从而大量降低了算法的硬件实现代价。
Description
技术领域
本发明涉及SSD主控芯片运算加速技术领域,尤其涉及SSD主控芯片中加速运算的优化方法和装置。
背景技术
SSD(Solid State Disk,固态硬盘)数据存储已经逐渐成为消费设备数据存储和云存储的主要存储介质。而SSD主控芯片作为SSD存储设备的大脑,其纠错性能和加解密性能直接决定SSD硬盘的耐用度和性能。因此对SSD主控芯片中的加解密电路进行优化具有非常巨大的意义。目前SSD的基四布斯(基4-booth)乘法器的使用比较普遍,但是由于原始算法中每次查表后部分积都可能出现负数,从而在电路实现时需要在每个部分积相加时设计补码电路完成减法运算,从而造成电路成本上升。
发明内容
为此,需要提供SSD主控芯片中加速运算的优化方法和装置,解决目前SSD存储设备加解密时每次查表后部分积都可能出现负数,从而在电路实现时需要在每个部分积相加时设计补码电路完成减法运算,从而造成电路成本上升的问题。
为实现上述目的,本发明提供了SSD主控芯片中加速运算的优化方法,包括如下步骤:
获取输入的被乘数Y和乘数X,所述被乘数Y和乘数X为二进制数值,所述被乘数Y位宽和乘数X位宽都为N位,其中乘数Y和乘数X的最高位为符号位;
依次获取乘数X二进制数值中每相邻三位数值大小,根据预设的表格匹配得到对应的部分积E,所述表格为下表:
在所述表格中,相邻三位数值位置根据X2i+1、X2i、X2i-1确定,所述X2i+1为乘数X的第2i+1比特位,所述X2i为乘数X的第2i比特位,所述X2i-1为乘数X的第2i-1比特位;i的值为0到((N+1)/2)-1的整数,X-1认定为0;每个i对应有一个部分积E;
将每个相邻三位数值的部分积E和对应的系数22i输入到第一乘法器,第一乘法器将部分积E乘上对应的系数22i,得到第一相乘结果分别输入到第一加法器;
第一加法器将输入的每个第一相乘结果进行累加,得到第一累加值,并输入到减法器;
第二乘法器将每个系数22i分别乘上补偿值1<<(N+1),得到第二相乘结果分别输入到第二加法器;
第二加法器将输入的每个第二相乘结果进行累加,得到第二累加值,并输入到减法器;
减法器将第一累加值减去第二累加值,得到被乘数Y和乘数X的乘积结果并输出。
进一步地,所述部分积E乘上对应的系数22i包括步骤:将所述部分积E左移2i位。
进一步地,所述系数22i分别乘上补偿值1<<(N+1)包括步骤:将补偿值左移2i位。
进一步地,在进行累加时需要扩展高位数,则将进行累加计算结果的高位补偿为0。
进一步地,所述被乘数Y和乘数X为SSD主控芯片内部产生的数值。
进一步地,所述补偿值为1<<(N+1)再加上一个大于0的附加值,所述表格中的每个部分积E也分别加上所述附加值。
本发明提供SSD主控芯片加速运算装置,包括存储器、处理器,所述存储器上存储有计算机程序,所述计算机程序被处理器执行时实现如本发明实施例任意一项所述方法的步骤。
区别于现有技术,上述技术方案提出了一种优化的基四布斯乘法算法设计方法,该方法可以去除了原始算法中每次查表后部分积出现的负数可能性,从而在电路实现时不需要每个部分积相加时做减法,从而减少了大量补码运算电路。本发明通过所有部分积相加完成后,在最后做一个统一的减法,把所有部分积所欠的负数在最后减去。从而大量降低了算法的硬件实现代价。
附图说明
图1为具体实施方式所述的方法流程图。
具体实施方式
为详细说明技术方案的技术内容、构造特征、所实现目的及效果,以下结合具体实施例并配合附图详予说明。
请参阅图1,本实施例提供一种SSD主控芯片中加速运算的优化方法和装置,用于对现有的基四布斯乘法器进行优化。现有的基四布斯乘法器的运算公式如下:
其原始运算表格见表1:
表1:原始的基四布斯乘法器运算表格
在原始的基四布斯算法中,可能出现负En,如-2,-1,然后需要计算补码用以进行部分积累加。为了避免出现负En的情况,本发明提供一种SSD主控芯片中加速运算的优化方法,包括如下步骤:步骤S101获取输入的被乘数Y和乘数X,所述被乘数Y和乘数X为二进制数值,所述被乘数Y位宽和乘数X位宽都为N位,其中乘数Y和乘数X的最高位为符号位,除最高位外的其他位表示数值大小。这里的被乘数Y和乘数X可以由外部的芯片输入到本发明的方法运行的SSD主控芯片内或者由SSD主控芯片内部产生。
步骤S102依次获取乘数X二进制数值中每相邻三位数值大小,根据预设的表格匹配得到对应的部分积E,所述表格为下表2:
表2:本发明的基四布斯乘法器运算表格
在所述表格中,相邻三位数值位置根据X2i+1、X2i、X2i-1确定,所述X2i+1为乘数X的第2i+1比特位,所述X2i为乘数X的第2i比特位,所述X2i-1为乘数X的第2i-1比特位;i的值为0到((N+1)/2)-1的整数,X-1认定为0;每个i对应有一个部分积E。如一个6位的乘数和被乘数,则N为6,((N+1)/2)-1的整数部分为2,i的值为0、1、2,则相邻三位数值为三组,第一组为X1、X0、X-1,第二组为X3、X2、X1,第三组为X5、X4、X3。根据每组相邻三位数值的大小,可以从表2中获取对应部分积E。如相邻三位数值为0、0、0则部分积E为{1'b1,N'b0}。在部分积中,大括号{}内的部分为部分积表达式,大括号内部的逗号“,”用于区分前后不同的位组成部分,标识1'表示1位,N'表示N位,b0表示比特位0,b1表示比特位1,~表示后面的比特位反转,Y[N-1]表示被乘数Y的第N位,Y[N-1:0]表示被乘数Y的N-1位到0位数值。如表达式{Y[N-1],~Y[N-1:0],1'b1},即取Y的N-1位数值、Y的N-1位到0位数值取反、1位比特1组成部分积E。如Y为000111,则该表达式的结果为:01110001。补码表示在随后的操作中是否需要补码加1。信号部分积E(result)表示预先加补偿值的结果,不包括加上补码的操作。用公式表示如下:
result=En*Y+1<<(N+1))
而后在步骤S103将每个相邻三位数值的部分积E和对应的系数22i输入到第一乘法器,第一乘法器将部分积E乘上对应的系数22i,得到第一相乘结果分别输入到第一加法器。如i为0的部分积E,则乘上20,得到第一相乘结果E0。如i为1的部分积E,则乘上22,得到第一相乘结果E1。如i为2的部分积E,则乘上24,得到第一相乘结果E2。把E0、E1、E2都输入到第一加法器。而后步骤S104第一加法器将输入的每个第一相乘结果进行累加,得到第一累加值,并输入到减法器。即将E0、E1、E2三者进行加法运算(即E0+E1+E2),得到第一累加值。
在步骤S105第二乘法器将每个系数22i分别乘上补偿值1<<(N+1),得到第二相乘结果分别输入到第二加法器。补偿值1<<(N+1)即1比特左移N+1位,如N为6,则补偿值为10000000。这样补偿值大于-2(6'b1),其中6'b1为被乘数Y所能取到的最大值,保证每个部分积E都是大于0。优选的补偿值为1<<(N+1)。在某些实施例中,补偿值也可以大于1<<(N+1),即在现有补偿值1<<(N+1)上还可以加上附加值,形成新的补偿值。即补偿值为1<<(N+1)再加上一个大于0的附加值,所述表格中的每个部分积E也分别加上所述附加值。第二乘法器对输入的值进行乘法运算,如i为0,则补偿值1<<(N+1)乘上20,得到第二相乘结果F0。如i为1,则补偿值1<<(N+1)乘上22,得到第二相乘结果F1。如i为2,则补偿值1<<(N+1)乘上24,得到第二相乘结果F2。把E0、E1、E2都输入到第二加法器。步骤S106第二加法器将输入的每个第二相乘结果进行累加,得到第二累加值,并输入到减法器。即将F0、F1、F2三者进行加法运算(即F0+F1+F2),得到第二累加值。
在步骤S107减法器将第一累加值减去第二累加值,得到被乘数Y和乘数X的乘积结果并输出。本发明最终的算法公式如下:
这样本发明表格中的部分积E都是先加1<<(N+1)的补偿值,可以去除原始算法中每次查表后部分积出现的负数可能性,从而在电路实现时不需要每个部分积相加时做减法,从而减少了大量补码运算电路。本发明通过所有部分积相加完成后,在最后做一个统一的减法,把所有部分积所欠的负数在最后减去。从而大量降低了算法的硬件实现代价。
上述实施例中,部分积E或者补偿值乘上系数22i时,可以直接将所述部分积E或者补偿值左移2i位即可,提高运算速度。
在某些实施例中,在进行累加时需要扩展高位数,不考虑负数,则将进行累加计算结果的高位补偿为0。这样可以适用高位数的运算。
本发明还提供存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述方法的步骤。本实施例的存储介质可以是设置在电子设备中的存储介质,电子设备可以读取存储介质的内容并实现本发明的效果。存储介质还可以是单独的存储介质,将该存储介质与电子设备连接,电子设备就可以读取存储介质里的内容并实现本发明的方法步骤。
需要说明的是,尽管在本文中已经对上述各实施例进行了描述,但并非因此限制本发明的专利保护范围。因此,基于本发明的创新理念,对本文所述实施例进行的变更和修改,或利用本发明说明书及附图内容所作的等效结构或等效流程变换,直接或间接地将以上技术方案运用在其他相关的技术领域,均包括在本发明的专利保护范围之内。
Claims (7)
1.SSD主控芯片中加速运算的优化方法,其特征在于,包括如下步骤:
获取输入的被乘数Y和乘数X,所述被乘数Y和乘数X为二进制数值,所述被乘数Y位宽和乘数X位宽都为N位,其中乘数Y和乘数X的最高位为符号位;
依次获取乘数X二进制数值中每相邻三位数值大小,根据预设的表格匹配得到对应的部分积E,所述表格为下表:
在所述表格中,相邻三位数值位置根据X2i+1、X2i、X2i-1确定,所述X2i+1为乘数X的第2i+1比特位,所述X2i为乘数X的第2i比特位,所述X2i-1为乘数X的第2i-1比特位;i的值为0到((N+1)/2)-1的整数,X-1认定为0;每个i对应有一个部分积E;
将每个相邻三位数值的部分积E和对应的系数22i输入到第一乘法器,第一乘法器将部分积E乘上对应的系数22i,得到第一相乘结果分别输入到第一加法器;
第一加法器将输入的每个第一相乘结果进行累加,得到第一累加值,并输入到减法器;
第二乘法器将每个系数22i分别乘上补偿值1<<(N+1),得到第二相乘结果分别输入到第二加法器;
第二加法器将输入的每个第二相乘结果进行累加,得到第二累加值,并输入到减法器;
减法器将第一累加值减去第二累加值,得到被乘数Y和乘数X的乘积结果并输出。
2.根据权利要求1所述的SSD主控芯片中加速运算的优化方法,其特征在于:所述部分积E乘上对应的系数22i包括步骤:将所述部分积E左移2i位。
3.根据权利要求1所述的SSD主控芯片中加速运算的优化方法,其特征在于:所述系数22i分别乘上补偿值1<<(N+1)包括步骤:将补偿值左移2i位。
4.根据权利要求1所述的SSD主控芯片中加速运算的优化方法,其特征在于:在进行累加时需要扩展高位数,则将进行累加计算结果的高位补偿为0。
5.根据权利要求1所述的SSD主控芯片中加速运算的优化方法,其特征在于:所述被乘数Y和乘数X为SSD主控芯片内部产生的数值。
6.根据权利要求1所述的SSD主控芯片中加速运算的优化方法,其特征在于:所述补偿值为1<<(N+1)再加上一个大于0的附加值,所述表格中的每个部分积E也分别加上所述附加值。
7.SSD主控芯片加速运算装置,其特征在于:包括存储器、处理器,所述存储器上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1到6任意一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110151958.0A CN112948901B (zh) | 2021-02-04 | 2021-02-04 | 一种ssd主控芯片中加速运算的优化方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110151958.0A CN112948901B (zh) | 2021-02-04 | 2021-02-04 | 一种ssd主控芯片中加速运算的优化方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112948901A true CN112948901A (zh) | 2021-06-11 |
CN112948901B CN112948901B (zh) | 2023-10-03 |
Family
ID=76243568
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110151958.0A Active CN112948901B (zh) | 2021-02-04 | 2021-02-04 | 一种ssd主控芯片中加速运算的优化方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112948901B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112732219A (zh) * | 2021-02-04 | 2021-04-30 | 深圳安捷丽新技术有限公司 | 一种ssd主控芯片中乘法运算电路和方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101458617A (zh) * | 2008-01-22 | 2009-06-17 | 西北工业大学 | 基于cisc微处理器的32位整数乘法器 |
CN102591615A (zh) * | 2012-01-16 | 2012-07-18 | 中国人民解放军国防科学技术大学 | 结构化混合位宽乘法运算方法及装置 |
CN102999312A (zh) * | 2012-12-20 | 2013-03-27 | 西安电子科技大学 | 基16布斯乘法器的优化方法 |
US20130159367A1 (en) * | 2011-12-19 | 2013-06-20 | Lsi Corporation | Implementation of Negation in a Multiplication Operation Without Post-Incrementation |
-
2021
- 2021-02-04 CN CN202110151958.0A patent/CN112948901B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101458617A (zh) * | 2008-01-22 | 2009-06-17 | 西北工业大学 | 基于cisc微处理器的32位整数乘法器 |
US20130159367A1 (en) * | 2011-12-19 | 2013-06-20 | Lsi Corporation | Implementation of Negation in a Multiplication Operation Without Post-Incrementation |
CN102591615A (zh) * | 2012-01-16 | 2012-07-18 | 中国人民解放军国防科学技术大学 | 结构化混合位宽乘法运算方法及装置 |
CN102999312A (zh) * | 2012-12-20 | 2013-03-27 | 西安电子科技大学 | 基16布斯乘法器的优化方法 |
Non-Patent Citations (1)
Title |
---|
傅志晖, 程东方, 梅其元, 李娇, 薛忠杰, 吴鼎祥: "32位浮点阵列乘法器的设计及算法比较", 微电子学, no. 03 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112732219A (zh) * | 2021-02-04 | 2021-04-30 | 深圳安捷丽新技术有限公司 | 一种ssd主控芯片中乘法运算电路和方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112948901B (zh) | 2023-10-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11249726B2 (en) | Integrated circuits with modular multiplication circuitry | |
EP0411491B1 (en) | Method and apparatus for performing division using a rectangular aspect ratio multiplier | |
WO2007012179A2 (en) | Karatsuba based multiplier and method | |
US5796645A (en) | Multiply accumulate computation unit | |
JPH05216627A (ja) | 乗算器および乗算方法 | |
CN1258710C (zh) | 用于高效模数归约和模数乘法的电路和方法 | |
CN112948901A (zh) | 一种ssd主控芯片中加速运算的优化方法和装置 | |
US6182100B1 (en) | Method and system for performing a logarithmic estimation within a data processing system | |
JP4273071B2 (ja) | 除算・開平演算器 | |
CN214409954U (zh) | 一种ssd主控芯片中乘法运算电路 | |
US8909689B2 (en) | Arithmetic device | |
JP2000347835A (ja) | 自乗計算方法及び自乗計算装置 | |
KR20080050226A (ko) | 모듈러 곱셈 장치 및 설계 방법 | |
JPH04355827A (ja) | 開平演算装置 | |
CN113672196B (zh) | 一种基于单数字信号处理单元的双乘法计算装置和方法 | |
CN111064567B (zh) | 一种sidh特殊域快速模乘方法 | |
CN112732219A (zh) | 一种ssd主控芯片中乘法运算电路和方法 | |
CN116149605A (zh) | 模数乘法电路与计算模数乘法的方法 | |
EP1504338A1 (en) | "emod" a fast modulus calculation for computer systems | |
JP4643951B2 (ja) | 剰余系の被変換数を2進数に変換する変換装置及び変換方法 | |
Song et al. | Division-less high-radix interleaved modular multiplication using a scaled modulus | |
JP3659408B2 (ja) | データ演算処理装置及びデータ演算処理プログラム | |
Parhami | Double-least-significant-bits 2's-complement number representation scheme with bitwise complementation and symmetric range | |
Brown | Binary arithmetic | |
JP3461252B2 (ja) | 乗算方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |