CN106959840B - 除法运算装置及其运算方法 - Google Patents
除法运算装置及其运算方法 Download PDFInfo
- Publication number
- CN106959840B CN106959840B CN201610012732.1A CN201610012732A CN106959840B CN 106959840 B CN106959840 B CN 106959840B CN 201610012732 A CN201610012732 A CN 201610012732A CN 106959840 B CN106959840 B CN 106959840B
- Authority
- CN
- China
- Prior art keywords
- divisor
- look
- parameter
- circuit
- mapping
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/52—Multiplying; Dividing
- G06F7/535—Dividing only
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Complex Calculations (AREA)
Abstract
一种除法运算装置,包含:存储器、非零位元检测电路、映射计算电路、查找电路、补偿电路及乘法电路。存储器储存除数查找表,包含多个表项目。非零位元检测电路接收除数,以检测除数的最高非零位元数,以判断除数是否超出除数查找表的范围。映射计算电路在除数超出除数查找表的范围时,通过映射函数产生除数的映射值,映射值位于除数查找表的范围内。查找电路根据映射值查询除数查找表,以检索包含储存倒数值的对应表项目。补偿电路根据映射函数产生补偿值。乘法电路将被除数、储存倒数值以及补偿值相乘,以产生被除数以及除数的相除结果。
Description
技术领域
本发明涉及一种运算装置,且特别涉及一种除法运算装置及其运算方法。
背景技术
不同的处理器进行信号处理时,常会使用到数学运算如加法、减法、乘法和除法。这些数学运算在以电路实现时,除法所具有的复杂度高于其他的数学运算的复杂度。然而,在影像处理模块针对影像检测器输出的数字影像信号进行例如正规化、鱼眼校正中的补偿坐标转换等运算中,常常会使用到除法。即便除法在整体运算中只占了相当小的部分,对整体执行时间与硬件面积都有相当程度的影响。
因此,如何设计一个新的除法运算装置及其运算方法,以提升除法运算的速度并降低其复杂度,乃为此一业界亟待解决的问题。
发明内容
本案的一态样是在提供一种除法运算装置,除法运算装置包含存储器、非零位元检测电路、映射计算电路、查找电路、补偿电路以及乘法电路。存储器配置以储存除数查找表,包含多个表项目。非零位元检测电路配置以接收除数,以检测除数的最高非零位元数,以判断除数是否超出除数查找表的范围。映射计算电路配置以在除数超出除数查找表的范围时,通过映射函数产生除数的映射值,映射值是位于除数查找表的范围内。查找电路配置以根据映射值查询除数查找表,以自表项目中检索对应表项目,对应表项目包含储存倒数值。补偿电路配置以根据映射函数产生补偿值。乘法电路配置以将被除数、储存倒数值以及补偿值相乘,以产生被除数以及除数的相除结果。
本案的另一态样是在提供一种除法运算方法,包含下列步骤。使非零位元检测电路接收除数,以检测除数的最高非零位元数,以判断除数是否超出除数查找表的范围,其中除数查找表储存于存储器中,并包含多个表项目。使映射计算电路在除数超出除数查找表的范围时,通过映射函数产生除数的映射值,映射值是位于除数查找表的范围内;使查找电路根据映射值查询除数查找表,以自表项目中检索对应表项目,对应表项目包含储存倒数值;使补偿电路根据映射函数产生补偿值;以及使乘法电路将被除数、储存倒数值以及补偿值相乘,以产生被除数以及除数的相除结果。
应用本案的优点在于通过寻找除数的最高非零位元数,依照精确度需求计算补偿值,并根据除数查找表找寻除数倒数的近似值,快速地在低复杂度的情形下完成除数的运算,而轻易地达到上述的目的。
附图说明
图1为本案一实施例中,一种除法运算装置的方块图;
图2为本案一实施例中,除数查找表的示意图;以及
图3为本案一实施例中,一种除法运算方法的流程图。
附图标记说明:
1:除法运算装置 100:存储器
101:除数查找表 102:非零位元检测电路
104:映射计算电路 106:查找电路
108:补偿电路 110:乘法电路
200:表项目 300:除法运算方法
301-308:步骤 A:被除数
B:除数 COMP:补偿值
DIV:相除结果 DR:判断结果
f(B):映射值 j:第一参数指数
L:长度指数 LUT[f(B)]、LUT[B]、LUT[i]、
N:最高非零位元 数LUT[N-i]:表项目
具体实施方式
参照图1。图1为本案一实施例中,一种除法运算装置1的方块图。除法运算装置1包含:存储器100、非零位元检测电路102、映射计算电路104、查找电路106、补偿电路108以及乘法电路110。
通过上述的元件,除法运算装置1可以对被除数A以及除数B进行除法运算,以得到除法结果A/B。以下将对除法运算装置1的运作方式进行详细的说明。
存储器100配置以储存除数查找表101。同时参照图2,图2为本发明一实施例中,除数查找表101的示意图。
在一实施例中,除数查找表101包含多个表项目200。在一实施例中,上述的除数查找表101的长度为2L,L为长度指数。表项目200分别用以储存1/I(I=1、2、…及2L)的对应数值,即I的倒数值。在本实施例中,表项目200包含以LUT[1]、LUT[2]、…、LUT[2L]表示的储存倒数值。
在一些实施例中,当除数B为0时,除法运算装置1将回传除数为0的信息,并不会进行除法运算。
在一实施例中,除数查找表101是以整数的方式储存,且每个表项目200包含相同的位元长度。举例来说,对应于储存倒数值LUT[5]的表项目200可储存有例如,但不限于5的倒数值,亦即0.2。因此,以所储存的精确度为7为例,其二进位表示法为0.0011001。则当表项目200的位元长度为8位元时,储存倒数值LUT[5]可表示为00011001。
非零位元检测电路102配置以接收除数B,以检测除数B的最高非零位元数,以判断除数B是否超出除数查找表101的范围,并产生判断结果DR。
以上述长度为2L的除数查找表101为例,当L为4,亦即除数查找表101的长度为16时,如果除数B为5,则非零位元检测电路102将判断此除数B并未超出范围。
在这样的状况下,查找电路106接收判断结果DR,以选择除数B并据以查询除数查找表101,来检索对应于此除数B的表项目200,例如对应于储存倒数值LUT[5]的表项目200(对应于1/5的倒数)。在一实施例中,上述除数查找表101的表项目200的排列具有特定规则,使得其精确度可以直接由查找电路106根据表项目200的位置判断而不需额外储存。在另一实施例中,精确度亦可与储存倒数值一同储存于表项目200中,以使查找电路106依据精确度确定储存倒数值实际上的数值为何。
接着,乘法电路110进一步将被除数A以及储存倒数值LUT[5]进行相乘,以得到被除数A和除数B相除的相除结果DIV。换言之,被除数A以及除数B的相除结果DIV可表示为:
A×LUT[B]。
另一方面,当除数查找表101的长度为16时,如果除数B为23,则非零位元检测电路102将判断此除数B超出范围。
在这样的状况下,映射计算电路104将通过映射函数产生除数B的映射值f(B),其中映射值f(B)位于除数查找表101的范围内。
在一实施例中,映射函数使除数乘以第一参数2j再除以第二参数2N,以产生映射值。其中j为第一参数指数,N为第二参数指数。亦即,映射函数可由下式产生映射值f(B):
f(B)=(B×2j)/2N。
其中,第二参数2N大于第一参数2j,且第一参数2j及第二参数2N均为2的幂次方。更详细地说,j及N均为大于等于零的整数,且N>j。
在其他实施例中,第二参数2N亦可小于第一参数2j。更详细地说,j及N均为大于等于零的整数,且N<j。例如,除数查找表101对应的范围可能为5~10,若除数B为3时,N要小于j,才能使得f(B)落入于除数查找表101的范围中。
在一实施例中,N为除数B的最高非零位元数。而j则可依实际需求选定不同的数值。举例来说,当除数B为23时,以二进位是表示为10111。因此,此除数B的最高非零位元数N为4(对应于24的位元)。如j选定为3,则映射计算电路104将依照映射函数计算下式的值:
f(23)=(23×23)/24=(23×8)/16。
在一实施例中,映射计算电路104是采用无条件舍去的方式计算,因此根据上述映射函数所产生的映射值f(B)将为11。需注意的是,在其他实施例中,映射计算电路104亦可采用例如,但不限于四舍五入或是无条件进位的方式来进行映射值f(B)的计算。
接着,查找电路106接收判断结果DR,以选择映射值f(B)并据以查询除数查找表101,来检索对应于此映射值f(B)的表项目200,查找相应的储存倒数值LUT[f(B)]。以上述映射值f(B)为11的范例而言,查找电路106将检索对应于储存倒数值LUT[11]的表项目200(对应于1/11的倒数)。
然而,由于经过映射函数的映射计算,查找电路106所检索的表项目200中的储存倒数值LUT[11]并非原始除数B的倒数值。因此,补偿电路108将进一步根据映射函数产生补偿值COMP。
以前述的映射函数为例,补偿值COMP是由第二参数的倒数2N乘以第一参数2j所产生。更详细的说,补偿值COMP是由下式计算产生:
(1/2N)×2j。
由于在本实施例中,第二参数2N超过除数查找表101的范围无法查表,因此补偿电路108将第二参数2N因式分解为第三参数2i以及第四参数2N-i,且第三参数2i以及第四参数2N-i均为2的幂次方。更详细地说,i均为大于等于1的整数。
查找电路106进一步根据第三参数2i以及第四参数2N-i的数值,查询除数查找表101,以检索对应于第三参数2i以及第四参数2N-i的表项目200,查找相应的储存倒数值LUT[2i]及LUT[2N-i],以产生第三参数2i以及第四参数2N-i的倒数。举例来说,如N为4,i选定为2,则查找电路106根据第三参数22以及第四参数22的数值,查询除数查找表101,例如对应于储存倒数值LUT[4]的表项目200(对应于1/4的倒数)。
在一些实施例中,i可为固定或非固定的数值。
补偿电路108将根据第三参数2i以及第四参数2N-i的倒数乘积产生第二参数2N的倒数1/2N的数值。换言之,补偿电路108所产生的补偿值COMP可进一步表示为:
(1/2N)×2j=(1/2i)×(1/2N-i)×2j=LUT(2i)×LUT(2N-i)×2j。
接着,乘法电路110进一步将被除数A、储存倒数值LUT[f(B)]以及补偿值=LUT(2i)×LUT(2N-i)×2j相乘,以产生被除数A以及除数B的相除结果DIV。换言之,被除数A以及除数B的相除结果DIV可表示为:
A×LUT[f(B)]×LUT(2i)×LUT(2N-i)×2j。
因此,本案的除法运算装置1可通过寻找除数B的最高非零位元数,依照精确度需求计算补偿值,并根据除数查找表101找寻除数倒数的近似值,快速地在低复杂度的情形下完成除数的运算。
需注意的是,上述的映射函数仅为一范例。在其他实施例中,映射计算电路104可根据其他的映射函数将除数B映射至除数查找表101的范围中进行查询,并依照相应的映射函数产生补偿值COMP。
并且,上述的参数的选值亦仅为一范例。在其他实施例中,除数查找表101的长度2L、表项目200所储存的位元长度及精确度、除数B的最高非零位元数N、第一参数2j及第三参数2i均可视不同情况选用不同的数值,不为上述实施例所限。
在一实施例中,存储器100更配置以储存参考索引(未示出),包含多因式分解关系。查找电路106可更配置以根据映射值f(B)查询参考索引,以根据因式分解关系其中之一检索映射值f(B)对应的多个表项目200。举例来说,当映射值f(B)为15时,由于可因式分解为3及5,因此查找电路106可根据因式分解关系,检索对应于储存倒数值LUT[3]以及LUT[5]的表项目200(分别对应于1/3和1/5的倒数)。乘法电路110则可将被除数A、LUT[3]、LUT[5]以及相关的补偿值相乘,来产生被除数A以及除数B的相除结果DIV。再例如,若除数查找表101的范围为1~8,而除数B为12,12的因式分解为3X4或是2X6,此时可以根据除数查找表101中3、4对应的表项目200计算,或者也可以根据除数查找表101中2、6对应的表项目200计算。
在一实施例中,除数查找表101的表项目200可分别对应于一个质数。再搭配上述的因式分解关系后,除数查找表101的长度可大幅缩减,而可将映射值f(B)依质数组合出。
在又一实施例中,除数查找表101的表项目200亦可不储存2的幂次方的倒数值。当除数B为2的的幂次方时,乘法电路110可直接将被除数A根据除数B进行位元右位移。
参照图3。图3为本案一实施例中,一种除法运算方法300的流程图。除法运算方法300可应用于如图1所示的除法运算装置1中。除法运算方法300包含下列步骤(应了解到,在本实施方式中所提及的步骤,除特别叙明其顺序者外,均可依实际需要调整其前后顺序,甚至可同时或部分同时执行)。
在步骤301,使非零位元检测电路102接收除数B,以检测除数B的最高非零位元数N,并在步骤302中判断除数B是否超出除数查找表101的范围。
当除数B并未超出除数查找表101的范围时,在步骤303,查找电路106根据除数B查询除数查找表101,以检索对应的表项目200。
接着,在步骤304,乘法电路110将被除数A以及表项目200中的储存倒数值LUT[B]相乘,以产生被除数A以及除数B的相除结果DIV。
而当除数B超出除数查找表101的范围时,在步骤305,使映射计算电路104通过映射函数产生除数B的映射值f(B),以使映射值f(B)位于除数查找表101的范围内。
在步骤306,使查找电路106根据映射值f(B)查询除数查找表101,以检索对应的表项目200。
在步骤307,使补偿电路108根据映射函数产生补偿值COMP。以上述实施例中的映射函数为例,补偿值COMP相当于LUT(2i)×LUT(2N-i)×2j。
在步骤308,使乘法电路110将被除数A、储存倒数值LUT[f(B)]以及补偿值LUT(2i)×LUT(2N-i)×2j相乘,以产生被除数A以及除数B的相除结果DIV。
虽然本案内容已以实施方式公开如上,然其并非配置以限定本案内容,任何本领域技术人员,在不脱离本案内容的精神和范围内,当可作各种的变动与润饰,因此本案内容的保护范围当视后附的权利要求所界定者为准。
Claims (10)
1.一种除法运算装置,包含:
一存储器,配置以储存一除数查找表,包含多个表项目;
一非零位元检测电路,配置以接收一除数,以检测该除数的一最高非零位元数,以判断该除数是否超出该除数查找表的范围,并产生一判断结果;
一映射计算电路,配置以在该除数超出该除数查找表的范围时,通过一映射函数产生该除数的一映射值,该映射值是位于该除数查找表的范围内;
一查找电路,配置以接收该判断结果,并根据该判断结果于该除数及该映射值中选取一者来查询该除数查找表,以自所述多个表项目中检索一对应表项目,该对应表项目包含一储存倒数值;
一补偿电路,配置以根据该映射函数产生一补偿值;以及
一乘法电路,配置以将一被除数、该储存倒数值以及该补偿值相乘,以产生该被除数以及该除数的一相除结果。
2.如权利要求1所述的除法运算装置,其中该映射函数是使该除数乘以一第一参数再除以一第二参数,以产生该映射值,且该第一参数及该第二参数均为2的幂次方。
3.如权利要求2所述的除法运算装置,其中该第二参数为2的该最高非零位元数的次方。
4.如权利要求2所述的除法运算装置,其中该补偿值为该第二参数的倒数乘以该第一参数。
5.如权利要求4所述的除法运算装置,当该第二参数超过该除数查找表的范围时,该补偿电路是将该第二参数因式分解为一第三参数以及一第四参数,其中该第三参数及该第四参数均为2的幂次方,以使该查找电路根据该第三参数以及该第四参数产生该第三参数以及该第四参数的倒数,以使该补偿电路根据该第三参数以及该第四参数的倒数乘积产生该第二参数的倒数。
6.如权利要求1所述的除法运算装置,其中当该除数并未超出该除数查找表的范围时,该查找电路直接根据该除数查询该除数查找表,以自所述多个表项目中检索该对应表项目,以使该乘法电路将该被除数以及该对应表项目的该储存倒数值相乘,以产生该被除数以及该除数的该相除结果。
7.如权利要求1所述的除法运算装置,其中该存储器更配置以储存一参考索引,包含多因式分解关系;
该查找电路更配置以根据该映射值查询该参考索引,以根据所述多因式分解关系其中之一自所述多个表项目中检索该映射值对应的多个该对应表项目;以及
该乘法电路更配置以将该被除数、多个该对应表项目的各该储存倒数值以及该补偿值相乘,以产生该被除数以及该除数的一相除结果。
8.如权利要求7所述的除法运算装置,其中该除数查找表的所述多个表项目分别对应于一质数。
9.如权利要求1所述的除法运算装置,其中当该除数为2的幂次方时,该乘法电路直接将该被除数根据该除数进行位元右位移。
10.一种除法运算方法,包含:
使一非零位元检测电路接收一除数,以检测该除数的一最高非零位元数,以判断该除数是否超出一除数查找表的范围,并产生一判断结果,其中该除数查找表储存于一存储器中,并包含多个表项目;
使一映射计算电路在该除数超出该除数查找表的范围时,通过一映射函数产生该除数的一映射值,该映射值是位于该除数查找表的范围内;
使一查找电路接收该判断结果,并根据该判断结果于该除数及该映射值中选取一者来查询该除数查找表,以自所述多个表项目中检索一对应表项目,该对应表项目包含一储存倒数值;
使一补偿电路根据该映射函数产生一补偿值;以及
使一乘法电路将一被除数、该储存倒数值以及该补偿值相乘,以产生该被除数以及该除数的一相除结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610012732.1A CN106959840B (zh) | 2016-01-08 | 2016-01-08 | 除法运算装置及其运算方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610012732.1A CN106959840B (zh) | 2016-01-08 | 2016-01-08 | 除法运算装置及其运算方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106959840A CN106959840A (zh) | 2017-07-18 |
CN106959840B true CN106959840B (zh) | 2019-06-28 |
Family
ID=59480494
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610012732.1A Active CN106959840B (zh) | 2016-01-08 | 2016-01-08 | 除法运算装置及其运算方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106959840B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107992284B (zh) * | 2017-11-27 | 2022-12-23 | 中国航空无线电电子研究所 | 一种可编程器件的除法功能实现方法 |
CN111399803B (zh) * | 2019-01-03 | 2022-07-15 | 北京小米松果电子有限公司 | 除法运算方法、装置、存储介质及电子设备 |
CN113254072B (zh) * | 2021-05-27 | 2023-04-07 | 上海阵量智能科技有限公司 | 数据处理器、数据处理方法、芯片、计算机设备及介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1961284A (zh) * | 2004-06-29 | 2007-05-09 | 英特尔公司 | 使用n位乘加操作实现不变量除数的整数除法的方法和系统 |
CN1979411A (zh) * | 2005-11-30 | 2007-06-13 | 北京中电华大电子设计有限责任公司 | 一种高速除法器的实现方法与装置 |
CN101493760A (zh) * | 2008-12-24 | 2009-07-29 | 京信通信系统(中国)有限公司 | 一种高速除法器及其实现高速除法运算的方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20120027827A (ko) * | 2010-09-13 | 2012-03-22 | 한국전자통신연구원 | 디바이더 및 그것의 동작 방법 |
KR102106538B1 (ko) * | 2013-10-08 | 2020-05-04 | 삼성전자주식회사 | 수치 연산을 처리하는 장치 및 방법 |
US9524143B2 (en) * | 2014-06-26 | 2016-12-20 | Arm Limited | Apparatus and method for efficient division performance |
-
2016
- 2016-01-08 CN CN201610012732.1A patent/CN106959840B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1961284A (zh) * | 2004-06-29 | 2007-05-09 | 英特尔公司 | 使用n位乘加操作实现不变量除数的整数除法的方法和系统 |
CN1979411A (zh) * | 2005-11-30 | 2007-06-13 | 北京中电华大电子设计有限责任公司 | 一种高速除法器的实现方法与装置 |
CN101493760A (zh) * | 2008-12-24 | 2009-07-29 | 京信通信系统(中国)有限公司 | 一种高速除法器及其实现高速除法运算的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN106959840A (zh) | 2017-07-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI557641B (zh) | 除法運算裝置及其運算方法 | |
CN106959840B (zh) | 除法运算装置及其运算方法 | |
Larrosa et al. | Resolution in Max-SAT and its relation to local consistency in weighted CSPs | |
CA2562281A1 (en) | Partial query caching | |
KR20140084294A (ko) | 복소 지수 비선형 함수와 함께 명령어를 갖는 디지털 처리 | |
Kudithi | An efficient hardware implementation of the elliptic curve cryptographic processor over prime field | |
McLarty | Axiomatizing a category of categories | |
US9020954B2 (en) | Ranking supervised hashing | |
US7143126B2 (en) | Method and apparatus for implementing power of two floating point estimation | |
CN107992284A (zh) | 一种可编程器件的除法功能实现方法 | |
Liu et al. | Sliding 2D discrete fractional Fourier transform | |
Ercegovac et al. | On-line scheme for computing rotation factors | |
Sasao | On the number of dependent variables for incompletely specified multiple-valued functions | |
Seo et al. | Optimized multi-precision multiplication for public-key cryptography on embedded microprocessors | |
Ercegovac et al. | Complex division with prescaling of operands | |
EP0990981B1 (en) | High speed multiplier | |
CN108073661A (zh) | 数据检索方法及装置、报表生成系统及方法 | |
Gorgin et al. | An Efficient Dot-Product Unit Based on Online Arithmetic for Variable Precision Applications | |
US20160034255A1 (en) | Arithmetic Devices, Montgomery Parameter Calculation Method and Modular Multiplication Method Thereof | |
CN106445975B (zh) | 项集挖掘方法及装置 | |
CN112884501B (zh) | 数据处理方法、装置、电子设备及存储介质 | |
Conway | Modified overlap technique using Fermat and Mersenne transforms | |
Zalmai | Duality for generalized fractional programs involving n-set functions | |
CN110275693B (zh) | 用于随机计算的多加数加法电路 | |
Skavantzos et al. | Design of a balanced 8-modulus RNS |
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 |