CN103593159A - 一种高效率高精度除法实现方法及装置 - Google Patents
一种高效率高精度除法实现方法及装置 Download PDFInfo
- Publication number
- CN103593159A CN103593159A CN201210288609.4A CN201210288609A CN103593159A CN 103593159 A CN103593159 A CN 103593159A CN 201210288609 A CN201210288609 A CN 201210288609A CN 103593159 A CN103593159 A CN 103593159A
- Authority
- CN
- China
- Prior art keywords
- value
- divisor
- bit
- symbol
- division
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Abstract
Description
技术领域
本发明涉及电子与信号处理领域一种高精度高效率的除法实现方法,具体涉及高效率高精度除法实现方法及装置。
背景技术
在数字信号处理领域,经常涉及到除法运算。如在接收信号归一化过程中用到除法运算,信号处理中的矩阵运算等。这些运算中,很多情况下不需要求出余数,但需要求出精度相对较高的商。此类除法运算有很高的运算速度要求,即需要在很短的时间内求出运算结果,或硬件除法器需要工作在很高的频率。
现有除法器结构种多采用多次移位减法与移位操作得到精确的商以及余数。该类除法运算实现时间长,需要多个时钟周期或者综合后硬件工作频率低。例如,在Donald E.Knuth著的《计算机程序设计艺术》,第2卷,半数值算法(“TheArt of Computer Programming,Vol.2,Seminumerical Algorithms”)的第4章第3节介绍了一种计算除法的算法。该法先采用多次牛顿迭代方法求出除数的倒数,然后用被除数乘之得到商。但该法缺点在于为求得一个相对高精度的结果,迭代次数需要很多,插值繁杂,计算时间长。在采用赛灵斯(XILINX)公司的FPGA集成开发工具ISE中的Core Generator生成的32位除16位的除法器,在60MHz的工作时钟绝数下,完成一次运算需要20多个时钟周期。在专利申请号为01132302.7的中国专利申请“一种除法器”中采用移位加减法的方式实现除法器,,32位除16位的除法器需要16个时钟周期。以上现有技术存在的问题在于时钟周期较长,实现速度慢,在数字信号处理领域的应用受到极大限制。
发明内容
本发明针对现有技术除法运算时钟周期较长,实现速度慢问题,提出提出一种高效率高精度除法实现方法及装置。
设定系统有效位宽度l,1≤l≤Bw,Bw为系统位宽,在{16,32,40,64,128,256,…}中取任意值;
从符号位开始,从高位到低位搜索无符号除数x有效位的起始位位置Ps,获得无符号除数x的有效位长度Lx=Bw-Ps+1;
对a进行归一化处理得到a′;
其中,s表示商的符号,x为无符号除数,y为无符号被除数,式(1)中+号表示异或运算。
作为一种可选实施方式,若Lx>l,所述对a进行归一化处理得到a′为将a的高lbit的有效位右移m位得到a′,其中m=Bw-Ps-l+1。
本发明实施例还提供了一种高精度除法实现装置,包括:
流水线控制单元,与操作寄存器和旁路单元相连接,包括定时器、中断控制逻辑、位操作逻辑和存储器,所述存储器用于存储控制寄存器文件;
所述操作寄存器,用于程序流的控制和计算,与指令定序单元相连接;
所述旁路单元,提供算术逻辑单元、乘累加单元、操作寄存器和地址寄存器之间的物理连接;
所述地址寄存器,连接存储单元、操作寄存器和旁路单元,用于地址产生和作为暂存器;
所述算术逻辑单元,包括两个16bit的算术逻辑运算,即加法运算或移位运算;
所述乘累加单元,包括一个40bit的算术逻辑运算,两个40bit的乘法运算和一个40bit的累加运算;
所述指令定序单元,包括指令译码器,指令组合逻辑,调试接口和输出逻辑,用于用以控制算术逻辑单元、乘累加单元,决定数据和资源的独立性,进行指令组合判决。
预存取单元,连接指令定序单元和存储单元,用于指令的预取,包括一个8×8words的指令缓存,一个cycle读取8个words的指令到指令缓存中,一个跳转预测逻辑,产生跳转和调用;
所述存储单元,用于存储运算结果。
相比于现有技术本,发明避免了常规除法实现方式中多次移位运算与减法操作,极大的提高了执行效率,适用于运算速率要求高,精度误差控制在一定范围内的场景;该实现方法通过设定查找表的精度与等式扩展的方式提高商的精度,避免了插值拟合带来的误差过大现象,适用与精度要求较高的场景;综合来说,本发明通过设定系统有效位宽度降低倒数表代码空间开销,且比原有的移位减的普通除法实现方法能减少较多的时间开销,且无论软硬件实现均可达到高速及高精度,且适用范围十分广泛,不限制bit位宽。
附图说明
图1为本发明高效率高精度除法实现方法优选实施例流程示意图;
图2为本发明高效率高精度除法实现装置优选实施例结构示意图;
图3为非精度模式求取1/N商值的仿真图结果示意图;
图4为非精度模式求取N/0x7FFFFFFF商值的仿真图结果示意图;
图5为一级精度模式求取N/0x7FFFFFFF商值的仿真图结果示意图;
图6为二级精度模式求取N/0x7FFFFFFF商值的仿真图结果示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明做进一步详细说明。
本发明中,假设除数x′和被除数y′为任意值,当除数x′和被除数y′为小数时采用定点方式(用Q值表示定点精度)表示,所述定点方式表示方法为本领域公知技术,在此不再累述。
步骤401、数据预处理
符号判断的步骤:根据除数x′和被除数y′的符号判断商w′的符号s(正正得正,负负得正,正负得负),并将除数x′和被除数y′转化为无符号除数x和无符号被除数y;
选定系统位宽Bw,系统位宽根据设备计算能力确定,可选范围为{16,32,40,64,128,256,…},例如,若设备最大能处理16比特,则系统位宽就是16bit,如果设备最大能处理为64bit,那么16bit、32bit、40bit、64bit都可被选取为比特位宽,本发明实施例选取Bw值为32。
作为一种可选实施方式,还包括:
异常判断的步骤:若除数x′为0,则需进行异常处理,输出一个最大值常数constant,并输出一个异常处理标志,结束运算。在一般情况下不需要进行此步骤,而当除数x′为0时,才进行此步骤。
以上符号判断的步骤、异常判断的步骤和选定系统位宽Bw在执行时序上不予限定,即是说,既可先执行符号判断的步骤再执行异常判断的步骤和选定系统位宽Bw,也可先选定系统位宽Bw再执行符号判断的步骤和异常判断的步骤,以及按其他顺序执行都可以,再则,根据需要进行全部或部分步骤也是可以的。
步骤402、对等式进行分解:
等式分解为商的符号s与无符号被除数y、无符号除数的倒数相乘,对于数字信号处理系统(如DSP、ZSP等),乘法用一个指令耗费一个时钟周期即可完成。
步骤403、搜索无符号除数x有效位的起始位位置Ps,Ps从1开始计数,获得无符号除数x的有效位长度Lx=Bw-Ps+1;
为使描述更加清楚,以如下实例1进行说明,假定l=8,除数x′为32bit数,经预处理后,无符号除数x=0000 0101 0100 1110 0111 1101 0000 0010;
从符号位开始,从高位到低位(本发明位置序号从1开始计数),搜索无符号除数x有效位的起始位位置Ps;本实施例搜索得到有效位起始位位置为6(即Ps=6),则从第6位至第32位为无符号除数x有效位,有效位长度为Lx=Bw-Ps+1=32-6+1=27位;
其中l为系统有效位宽度,根据计算系统处理能力取值,取值范围为[1,Bw],例如系统位宽Bw为32时,l取值范围为[1,32]。l取值越大,商的精度越高,但本发明预存表所占数据存储空间越大,因此考虑到精度需求和空间开销,本实施例优选取值为8,预存表所占数据存储空间为28-1=128word。式(4.1)中+号表示异或运算。
本以上实施例中,将无符号除数x分解为包含高lbit有效位的a和包含剩余有效bit位的b,则a包含从第6位开始的8bit有效位(即从第6位至第13位),b包含从第14位开始至第32位的有效位,分解后a和b分别为:
a=0000 0101 0100 1000 0000 0000 0000 0000
b=0000 0000 0000 0110 0111 1101 0000 0010
满足
步骤405、对a进行归一化处理得到a′
将a移位至[2l-1,2l]范围内,以便查询预存的倒数表;
作为一种可实施情况,如果Lx>l,则将a的有效位右移m位(m=Bw-Ps-l+1),左边补0;将a的有效位右移m位得到a′,相当于将a缩小2m倍;
继续以以上实例进行说明,由于Lx>l(Lx=27,l=8),则将a的有效位右移m=Bw-Ps-l+1=32-6-8+1=19位,得到a′
a′=0000 0000 0000 0000 0000 0000 1010 1001
此时,a′在[128,255]范围内,a′的倒数在预存表范围内,可查询预存表求得a′的倒数值;
作为另一种可实施情况,若Lx≤l,所述对a进行归一化处理得到a′为将a的高lbit的有效位左移m′位(m′=Ps-Bw+l-1),右边补0,将a有效位移位至[128,255]范围内,即:
上述移位即2的m′次方相乘,即a×2m′,对于ZSP系统而言,移位采用一个指令一个时钟周期可完成。
为使描述更加清楚,以如下实例2进行说明,假定l=8,除数x′为32bit数,经预处理后,无符号除数x=0000 0000 0000 0000 0000 0000 0000 0101,由可知Ps=30,Lx=Bw-Ps+1=32-30+1=3
将无符号除数x分解为包含高lbit有效位的a和包含剩余有效bit位的b,分解后:
a=0000 0000 0000 0000 0000 0000 0000 0101
b=0000 0000 0000 0000 0000 0000 0000 0000
此时的a值实际上等效于无符号除数x,b值为零。
由于Lx<l(Lx=3,l=8),对a进行归一化处理得到a′,即将a的高lbit的有效位左移m′位(m′=Ps-Bw+l-1=30-32+8-1=5),即移位后得到:
a′=0000 0000 0000 0000 0000 0000 1010 0000
此时,a′在[128,255]范围内,a′的倒数在预存表范围内,可查询预存表求得a′的倒数值;
所述预存的倒数表存储[2l-1,2l-1]内整数的倒数值,预存的倒数表通过预先计算并存储,计算方式为(以为例举例说明预存的倒数表的计算方式:Q值为38时,本实施例中,预存了的值,表的大小为128个倒数值,占用系统数据存储空间128word,如表1所示,为区间内Q值为38的整数预存的倒数表;
表1倒数表
原数据 | 倒数值 | 原数据 | 倒数值 | 原数据 | 倒数值 |
1/255 | 0x40404040 | 1/212 | 0x4D4873EC | 1/169 | 0x60F25DEA |
1/254 | 0x40810204 | 1/211 | 0x4DA637CF | 1/168 | 0x61861861 |
1/253 | 0x40C246D4 | 1/210 | 0x4E04E04E | 1/167 | 0x621B97C2 |
1/252 | 0x41041041 | 1/209 | 0x4E6470B0 | 1/166 | 0x62B2E43D |
1/251 | 0x41465FDF | 1/208 | 0x4EC4EC4E | 1/165 | 0x634C0634 |
1/250 | 0x4189374B | 1/207 | 0x4F265691 | 1/164 | 0x63E7063E |
1/249 | 0x41CC9829 | 1/206 | 0x4F88B2F3 | 1/163 | 0x6483ED27 |
1/248 | 0x42108421 | 1/205 | 0x4FEC04FE | 1/162 | 0x6522C3F3 |
1/247 | 0x4254FCE4 | 1/204 | 0x50505050 | 1/161 | 0x65C393E0 |
1/246 | 0x429A0429 | 1/203 | 0x50B59897 | 1/160 | 0x66666666 |
1/245 | 0x42DF9BB0 | 1/202 | 0x511BE195 | 1/159 | 0x670B453B |
1/244 | 0x4325C53E | 1/201 | 0x51832F1F | 1/158 | 0x67B23A54 |
1/243 | 0x436C82A2 | 1/200 | 0x51EB851E | 1/157 | 0x685B4FE5 |
1/242 | 0x43B3D5AF | 1/199 | 0x5254E78E | 1/156 | 0x69069069 |
1/241 | 0x43FBC043 | 1/198 | 0x52BF5A81 | 1/155 | 0x69B4069B |
1/240 | 0x44444444 | 1/197 | 0x532AE21C | 1/154 | 0x6A63BD81 |
1/239 | 0x448D639D | 1/196 | 0x5397829C | 1/153 | 0x6B15C06B |
1/238 | 0x44D72044 | 1/195 | 0x54054054 | 1/152 | 0x6BCA1AF2 |
1/237 | 0x45217C38 | 1/194 | 0x54741FAB | 1/151 | 0x6C80D901 |
1/236 | 0x456C797D | 1/193 | 0x54E42523 | 1/150 | 0x6D3A06D3 |
1/235 | 0x45B81A25 | 1/192 | 0x55555555 | 1/149 | 0x6DF5B0F7 |
1/234 | 0x46046046 | 1/191 | 0x55C7B4F1 | 1/148 | 0x6EB3E453 |
1/233 | 0x46514E02 | 1/190 | 0x563B48C2 | 1/147 | 0x6F74AE26 |
1/232 | 0x469EE584 | 1/189 | 0x56B015AC | 1/146 | 0x70381C0E |
1/231 | 0x46ED2901 | 1/188 | 0x572620AE | 1/145 | 0x70FE3C07 |
1/230 | 0x473C1AB6 | 1/187 | 0x579D6EE3 | 1/144 | 0x71C71C71 |
1/229 | 0x478BBCEC | 1/186 | 0x58160581 | 1/143 | 0x7292CC15 |
1/228 | 0x47DC11F7 | 1/185 | 0x588FE9DC | 1/142 | 0x73615A24 |
1/227 | 0x482D1C31 | 1/184 | 0x590B2164 | 1/141 | 0x7432D63D |
1/226 | 0x487EDE04 | 1/183 | 0x5987B1A9 | 1/140 | 0x75075075 |
1/225 | 0x48D159E2 | 1/182 | 0x5A05A05A | 1/139 | 0x75DED952 |
1/224 | 0x49249249 | 1/181 | 0x5A84F345 | 1/138 | 0x76B981DA |
1/223 | 0x497889C2 | 1/180 | 0x5B05B05B | 1/137 | 0x77975B8F |
1/222 | 0x49CD42E2 | 1/179 | 0x5B87DDAD | 1/136 | 0x78787878 |
1/221 | 0x4A22C04A | 1/178 | 0x5C0B8170 | 1/135 | 0x795CEB24 |
1/220 | 0x4A7904A7 | 1/177 | 0x5C90A1FD | 1/134 | 0x7A44C6AF |
1/219 | 0x4AD012B4 | 1/176 | 0x5D1745D1 | 1/133 | 0x7B301ECC |
1/218 | 0x4B27ED36 | 1/175 | 0x5D9F7390 | 1/132 | 0x7C1F07C1 |
1/217 | 0x4B809701 | 1/174 | 0x5E293205 | 1/131 | 0x7D119679 |
1/216 | 0x4BDA12F6 | 1/173 | 0x5EB48823 | 1/130 | 0x7E07E07E |
1/215 | 0x4C346404 | 1/172 | 0x5F417D05 | 1/129 | 0x7F01FC07 |
1/214 | 0x4C8F8D28 | 1/171 | 0x5FD017F4 | 1/128 | 0x7FFFFFFF |
1/213 | 0x4CEB916D | 1/170 | 0x60606060 |
例如,查询预存的倒数表,得到实例1:a′=0000 0000 0000 0000 00000000 1010 1001转化为十进制数值为169,其倒数值为1/169,查询预存表得到值为0x60F25DEA;
例如,查询预存的倒数表,得到实例2:a′=0000 0000 0000 0000 0000 00001010 0000转化为十进制数值为160,其倒数值为1/160,查询预存表得到值为0x66666666;
通过设定预存的倒数表,不但避免了现有技术除法运算中多次移位运算与减法操作,而且避免了现有技术插值拟合带来的误差过大现象。
另外,如果左移m位会产生溢出,则不进行左移操作,而是采取降低Q值的措施,Q=Q-m,例如,实例1:值为0x60F25DEA,m=Bw-Ps-l+1=32-6-8+1=19,左移19位会产生溢出,为尽可能多的保留其有效位(即精度),采取降低Q值的措施,降低后的Q值为Q=Q-m,此处Q=Q-m=38-19=19,降低Q值后得到值为0x60F25DEA,其Q值为19;将值0x60F25DEA和Q值19同时输出。本实例中,从数值上看值与值是一致的,但区别在于Q值,的Q值为38,的Q值为19,Q值也是结果的一部分,最后输出结果需带Q值。
在某些情况下,只需要计算而不需要计算便可得到w′(本发明的非精度模式),尽管会损失掉部分精度,但在损失精度可接受且对运算效率有较高要求的情况下,损失的精度不会对商的结果有影响,而不需要计算可节约大量时间,满足这些情况下的高效率运算要求。
其中,k≥1,且k为偶数,表示精度级数。
若采用第一级精度(k=1,即一级精度模式),则此时,
若采用第二级精度(k=2,即二级精度模式),则 此时,
依次类推,分子的级数越高,分母越无限趋近于1,即级数越高,精度越高,所引入的仅仅只是乘法计算和加法计算,极大满足高精度运算要求。
上述等式根据精度要求可控,根据该等式可得出的值。通过等式扩展的方式进一步提高商的精度。
步骤409:采用乘法指令求出商值
在输出的运算结果中,应注明w的Q值。
本发明所述方案不限定除数和被除数的位宽,在可表示的位宽限定范围内均可实现。
本发明还提供一种高效率高精度除法实现装置,可用于实施以上所述方法,如图2所示,包括:
流水线控制单元,与操作寄存器和旁路单元相连接,包括定时器、中断控制逻辑、位操作逻辑和存储器,所述存储器用于存储控制寄存器文件;
所述操作寄存器,用于程序流的控制和计算,与指令定序单元相连接;
所述旁路单元,提供算术逻辑单元、乘累加单元、操作寄存器和地址寄存器之间的物理连接;
所述地址寄存器,连接存储单元、操作寄存器和旁路单元,用于地址产生和作为暂存器;
所述算术逻辑单元,包括两个16bit的算术逻辑运算,即加法运算或移位运算;
所述乘累加单元,包括一个40bit的算术逻辑运算,两个40bit的乘法运算和一个40bit的累加运算;
所述指令定序单元,包括指令译码器,指令组合逻辑,调试接口和输出逻辑,用于用以控制算术逻辑单元、乘累加单元,决定数据和资源的独立性,进行指令组合判决。
预存取单元,连接指令定序单元和存储单元,用于指令的预取,包括一个8×8words的指令缓存,一个cycle读取8个words的指令到指令缓存中,一个跳转预测逻辑,产生跳转和调用;
所述存储单元,用于存储运算结果。
下面以本发明实施例方案相比于现有技术的除法运算的时间开销进行对比说明,以ZSP系统为平台,求取32bit除32bit数据商值,采用常规除法实现方法实现,即采用除法指令循环移位减的方式,与采用本方案的高效率高精度的除法实现方法所耗费时间开销对比如表2所示;
表2时间开销比较表
实现方式 | 时间开销 |
非精度模式 | 51cycle |
一级精度模式 | 68cycle |
二级精度模式 | 82cycle |
常规移位减模式 | 190cycle |
上表中:
所述cycle为时钟周期,即1cycle为1个时钟周期。
所述非精度模式为仅计算有效bit位倒数查表的方式,该方式下获取的商值误差限定在一定范围内。所述误差范围通过表内数据取不同Q值实现不同精度来限定。
所述一级精度模式为步骤4等式扩展仅扩展一步,与有效bit位倒数相乘获取商值的方式,该方式比非精度模式的商值精度高。
所述二级精度模式为步骤4等式扩展扩展两步,与有效bit位倒数相乘获取商值的方式,该方式比非精度模式和一级精度模式的商值精度高。
由表一时间开销比较可知,非精度模式获取商值所需时钟周期最少,常规移位减除法方式所需时钟周期最多,二级精度模式精度最高。但其时间开销比常规移位减除法方式有大大提升。
另外,对于以上几种模式的精度对比,见图3、图4、图5和图6,二级精度模式较一级精度模式精度高,一级精度模式较非精度模式精度高,分子、分母越大,理论可能出现最大误差值越大。
图3是非精度模式求取1/N商值的仿真图,(N取值为1,1+32768,1+32768×2.,…,1+32768×26000;横坐标为N值,纵坐标为32bit的1/N真实值与计算值的误差值);此图表示从1~32768×26000区间内整数进行倒数计算的误差范围,基本控制在(0,1/2^31)的范围内,可满足一般运算精度需求。
图4是非精度模式求取N/0x7FFFFFFF商值的仿真图,(N取值为1,1+1048576,1+1048576×2,…,1+1048576×2048;横坐标为N值,纵坐标为32bit的N/0x7FFFFFFF在非精度模式下的商值),此图表示在非精度模式下,分子由1依次递增至极大值1048576×2048,分母不变且为最大值的商值曲线图,由于dsp的计算精度主要由分母的倒数产生,说明该取值场景是产生最大误差值的情况,分子越大,产生的误差越大,因此,此图说明在非精度模式下可产生最大误差值的的除法场景。
图5是一级精度模式求取N/0x7FFFFFFF商值的仿真图,(N取值为1,1+1048576,1+1048576×2,…,1+1048576×2048;横坐标为N值,纵坐标为32bit的N/0x7FFFFFFF在一级精度模式下的商值);此图表示在一级精度模式下,分子由1依次递增至极大值1048576×2048,分母不变且为最大值的商值曲线图,由于dsp的计算精度主要由分母的倒数产生,说明该取值场景是产生最大误差值的情况,分子越大,产生的误差越大,因此,此图说明在一级精度模式下可产生最大误差值的的除法场景。
图6是二级精度模式求取N/0x7FFFFFFF商值的仿真图,(N取值为1,1+1048576,1+1048576×2,…,1+1048576×2048;横坐标为N值,纵坐标为32bit的N/0x7FFFFFFF在二级精度模式下的商值);此图表示在二级精度模式下,分子由1依次递增至极大值1048576×2048,分母不变且为最大值的商值曲线图,由于dsp的计算精度主要由分母的倒数产生,说明该取值场景是产生最大误差值的情况,分子越大,产生的误差越大,因此,此图说明在二级精度模式下可产生最大误差值的的除法场景。
本发明的高效率高精度的除法实现方法,通过设定预存的倒数表或/和等式扩展的方式提高商的精度,适用于精度要求较高的场景,也适用于运算速率高且精度误差控制在一定范围内的场景。不但避免了现有技术除法运算中多次移位运算与减法操作,而且避免了插值拟合带来的误差过大现象。
进一步,本发明通过可通过设置系统有效位宽度降低倒数表代码空间开销,且比原有的移位减的普通除法实现方法能减少较多的时间开销,且无论软硬件实现均可达到高速及高精度。
本领域技术人员显然清楚并且理解,本发明方法所举的以上实施例仅用于说明本发明,而并不用于限制本发明。虽然通过实施例有效描述了本发明,本领域技术人员知道,本发明存在许多变化而不脱离本发明的精神。在不背离本发明的精神及其实质的情况下,本领域技术人员当可根据本发明方法做出各种相应的改变或变形,但这些相应的改变或变形均属于本发明的权利要求保护范围。
Claims (10)
设定系统有效位宽度l,1≤l≤Bw,Bw为系统位宽,在{16,32,40,64,128,256,…}中取任意值;
从符号位开始,从高位到低位搜索无符号除数x有效位的起始位位置Ps,Ps从1开始计数,获得无符号除数x的有效位长度Lx=Bw-Ps+1;
对a进行归一化处理得到a';
其中,s表示商的符号,x为无符号除数,y为无符号被除数,式(1)中+号表示异或运算。
2.如权利要求1所述除法实现方法,其特征在于:所述对不同或相同位宽的除数x'和被除数y'进行预处理包括:
根据除数x'和被除数y'的符号判断商w'的符号s,并将除数x'和被除数y'转化为无符号除数x和无符号被除数y;
若除数x'为0,则需进行异常处理,输出一个最大值常数constant,并输出一个异常处理标志,结束运算;
根据设备计算能力确定系统位宽Bw。
3.如权利要求1所述除法实现方法,其特征在于:若Lx>l,所述对a进行归一化处理得到a'为将a的高lbit的有效位右移m位得到a',其中m=Bw-Ps-l+1。
4.如权利要求3所述除法实现方法,其特征在于:所述将的值进行回归处理得到的值为,若左移m位会产生溢出,则将的值左移m位,否则降低Q值,Q=Q-m,Q值表示定点精度。
9.一种高精度除法实现装置,其特征在于:包括:
流水线控制单元,与操作寄存器和旁路单元相连接,包括定时器、中断控制逻辑、位操作逻辑和存储器,所述存储器用于存储控制寄存器文件;
所述操作寄存器,用于程序流的控制和计算,与指令定序单元相连接;
所述旁路单元,提供算术逻辑单元、乘累加单元、操作寄存器和地址寄存器之间的物理连接;
所述地址寄存器,连接存储单元、操作寄存器和旁路单元,用于地址产生和作为暂存器;
所述算术逻辑单元,包括两个16bit的算术逻辑运算,即加法运算或移位运算;
所述乘累加单元,包括一个40bit的算术逻辑运算,两个40bit的乘法运算和一个40bit的累加运算;
所述指令定序单元,包括指令译码器,指令组合逻辑,调试接口和输出逻辑,用于用以控制算术逻辑单元、乘累加单元,决定数据和资源的独立性,进行指令组合判决。
预存取单元,连接指令定序单元和存储单元,用于指令的预取,包括一个8×8words的指令缓存,一个cycle读取8个words的指令到指令缓存中,一个跳转预测逻辑,产生跳转和调用;
所述存储单元,用于存储运算结果。
10.如权利要求9所述除法实现装置,其特征在于:所述指令定充单元将最多4条指令组合起来在一个cycle中执行。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210288609.4A CN103593159A (zh) | 2012-08-14 | 2012-08-14 | 一种高效率高精度除法实现方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210288609.4A CN103593159A (zh) | 2012-08-14 | 2012-08-14 | 一种高效率高精度除法实现方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103593159A true CN103593159A (zh) | 2014-02-19 |
Family
ID=50083329
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210288609.4A Pending CN103593159A (zh) | 2012-08-14 | 2012-08-14 | 一种高效率高精度除法实现方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103593159A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106126190A (zh) * | 2015-05-04 | 2016-11-16 | 三星电子株式会社 | 部分余数/除数表拆分实现 |
CN107992284A (zh) * | 2017-11-27 | 2018-05-04 | 中国航空无线电电子研究所 | 一种可编程器件的除法功能实现方法 |
CN109272111A (zh) * | 2018-08-15 | 2019-01-25 | 东南大学 | 一种基于化学反应网络的神经网络元件实现方法 |
CN112328511A (zh) * | 2021-01-04 | 2021-02-05 | 统信软件技术有限公司 | 一种数据处理方法、计算设备及可读存储介质 |
CN113254072A (zh) * | 2021-05-27 | 2021-08-13 | 上海阵量智能科技有限公司 | 数据处理器、数据处理方法、芯片、计算机设备及介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1855031A (zh) * | 2005-04-18 | 2006-11-01 | 展讯通信(上海)有限公司 | 求定点数除法的算法在视频编码流量控制中的应用 |
CN1952875A (zh) * | 2006-09-18 | 2007-04-25 | 华为技术有限公司 | 一种定点除法器及其实现运算的方法 |
US7574468B1 (en) * | 2005-03-18 | 2009-08-11 | Verisilicon Holdings (Cayman Islands) Co. Ltd. | Digital signal processor having inverse discrete cosine transform engine for video decoding and partitioned distributed arithmetic multiply/accumulate unit therefor |
CN102063284A (zh) * | 2010-12-13 | 2011-05-18 | 青岛海信信芯科技有限公司 | 一种除法运算方法及装置 |
CN102231101A (zh) * | 2011-07-29 | 2011-11-02 | 电子科技大学 | 一种除法器及除法处理方法 |
-
2012
- 2012-08-14 CN CN201210288609.4A patent/CN103593159A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7574468B1 (en) * | 2005-03-18 | 2009-08-11 | Verisilicon Holdings (Cayman Islands) Co. Ltd. | Digital signal processor having inverse discrete cosine transform engine for video decoding and partitioned distributed arithmetic multiply/accumulate unit therefor |
CN1855031A (zh) * | 2005-04-18 | 2006-11-01 | 展讯通信(上海)有限公司 | 求定点数除法的算法在视频编码流量控制中的应用 |
CN1952875A (zh) * | 2006-09-18 | 2007-04-25 | 华为技术有限公司 | 一种定点除法器及其实现运算的方法 |
CN102063284A (zh) * | 2010-12-13 | 2011-05-18 | 青岛海信信芯科技有限公司 | 一种除法运算方法及装置 |
CN102231101A (zh) * | 2011-07-29 | 2011-11-02 | 电子科技大学 | 一种除法器及除法处理方法 |
Non-Patent Citations (5)
Title |
---|
ISI LOGIC: "《ZSP540-highly efficient quad-MAC DSP Core》", 31 December 2004, ISI LOGIC CORPORATION * |
廖娅等: "TMS320C2XX(DSP)除法程序的实现", 《重庆石油高等专科学校学报》 * |
张洋: "基于ZSP500处理器的3G可视电话视频编码软件设计", 《中国优秀硕士学位论文全文数据库信息科技辑》 * |
王华等: "浮点除法运算在TMS320C3X DSP中的实现", 《微计算机信息》 * |
石元君等: "定点DSP除法原理及其TMS320C6000实现", 《单片机与嵌入式系统》 * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106126190A (zh) * | 2015-05-04 | 2016-11-16 | 三星电子株式会社 | 部分余数/除数表拆分实现 |
CN106126190B (zh) * | 2015-05-04 | 2021-04-13 | 三星电子株式会社 | 部分余数/除数表拆分实现 |
CN107992284A (zh) * | 2017-11-27 | 2018-05-04 | 中国航空无线电电子研究所 | 一种可编程器件的除法功能实现方法 |
CN107992284B (zh) * | 2017-11-27 | 2022-12-23 | 中国航空无线电电子研究所 | 一种可编程器件的除法功能实现方法 |
CN109272111A (zh) * | 2018-08-15 | 2019-01-25 | 东南大学 | 一种基于化学反应网络的神经网络元件实现方法 |
CN112328511A (zh) * | 2021-01-04 | 2021-02-05 | 统信软件技术有限公司 | 一种数据处理方法、计算设备及可读存储介质 |
CN112328511B (zh) * | 2021-01-04 | 2021-05-04 | 统信软件技术有限公司 | 一种数据处理方法、计算设备及可读存储介质 |
CN113064841A (zh) * | 2021-01-04 | 2021-07-02 | 统信软件技术有限公司 | 一种数据存储方法、处理方法、计算设备及可读存储介质 |
CN113064841B (zh) * | 2021-01-04 | 2023-06-06 | 统信软件技术有限公司 | 一种数据存储方法、处理方法、计算设备及可读存储介质 |
CN113254072A (zh) * | 2021-05-27 | 2021-08-13 | 上海阵量智能科技有限公司 | 数据处理器、数据处理方法、芯片、计算机设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105955706B (zh) | 一种除法器及除法运算方法 | |
CN103593159A (zh) | 一种高效率高精度除法实现方法及装置 | |
Benchohra et al. | Existence and Ulam stability for nonlinear implicit differential equations with Riemann-Liouville fractional derivative | |
CN102681815B (zh) | 用加法器树状结构的有符号乘累加算法的方法 | |
CN106951211B (zh) | 一种可重构定浮点通用乘法器 | |
CN103999078A (zh) | 具有包含用于fir滤波的矢量卷积函数的指令集的矢量处理器 | |
CN103914276A (zh) | 利用浮点架构的定点除法电路 | |
CN101399553A (zh) | 一种可在线编程的准循环ldpc码编码器装置 | |
CN106155627A (zh) | 基于t_cordic算法的低开销迭代三角函数装置 | |
CN115344237A (zh) | 结合Karatsuba和蒙哥马利模乘的数据处理方法 | |
JP2021517301A (ja) | 確率的丸めロジック | |
CN111242293B (zh) | 一种处理部件、数据处理的方法以及电子设备 | |
JP2016062404A (ja) | 演算処理方法及び演算処理装置 | |
CN111813371A (zh) | 数字信号处理的浮点除法运算方法、系统及可读介质 | |
CN111399803A (zh) | 除法运算方法、装置、存储介质及电子设备 | |
CN106681691A (zh) | 基于蒙哥马利模乘的数据处理方法、模乘运算方法和装置 | |
CN103399725A (zh) | 一种不恢复余数的除法器 | |
CN207115387U (zh) | Xiu‑累加寄存器、xiu‑累加寄存器电路、以及电子设备 | |
US9569175B2 (en) | FMA unit, in particular for utilization in a model computation unit for purely hardware-based computing of function models | |
CN108334305B (zh) | 一种除法运算方法、装置、设备和存储介质 | |
CN108897524B (zh) | 除法函数处理电路、方法、芯片以及系统 | |
Hertz et al. | Parabolic synthesis methodology implemented on the sine function | |
CN103176768B (zh) | 计算经典模乘的模乘方法以及可扩展模乘器 | |
CN103699729A (zh) | 模乘法器 | |
RU148925U1 (ru) | Вычислительный элемент бимодульной модулярной арифметики |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20170418 Address after: Nanping Street 400060 Chongqing Nan'an District Nancheng Road No. 199 left attached to the floor 403 Applicant after: Keen (Chongqing) Microelectronics Technology Co., Ltd. Address before: 400065 Chongqing Nan'an District huangjuezhen pass Fort Park No. 1 Applicant before: Chongqing City Communication & Technology Co., Ltd. |
|
TA01 | Transfer of patent application right | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20140219 |
|
RJ01 | Rejection of invention patent application after publication |