复数对数运算ALU制造技术

技术编号:2842493 阅读:717 留言:0更新日期:2012-04-11 18:40
本发明专利技术涉及复数对数运算ALU,描述了用于对按对数格式表示的实数和/或复数执行对数运算的方法和装置。在一个示范实施例中,ALU对按对数极坐标格式表示的复数执行对数运算。根据该实施例,ALU中的存储器存储用来确定复数的对数的查寻表,而ALU中的处理器利用存储的查寻表,基于按对数极坐标格式表示的复数型输入运算数生成输出对数。在另一示范实施例中,ALU对按对数格式表示的实数和复数执行对数运算。在该实施例中,存储器存储两个查寻表,一个用于确定实数的对数,而另一个用于确定复数的对数,而处理器分别利用实数查寻表或复数查寻表,基于按对数格式表示的实数型输入运算数或复数型输入运算数,来生成输出对数。

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术总体上涉及计算和数字信号处理,更具体地涉及算术逻辑单元(ALU)中的流水线化(pipelined)对数运算。
技术介绍
ALU传统上用于实现对实数和/或复数的诸如加法、减法、乘法、除法等的各种运算功能。常规系统使用定点或浮点数ALU。还已知利用具有受限精度的实对数的ALU。例如,参见“Digital filtering using logarithmicarithmetic”(N.G.Kingsbury and P.J.W.Rayner,Electron.Lett.(Jan.28,1971),Vol.7,No.2,pp.56-58)。“Arithmetic on the European LogarithmicMicroprocessor”(J.N.Coleman,E.I.Chester,C.I.Softley and J.Kadlec,(July2000)IEEE Trans.Comput.,Vol.49,No.7,pp.702-715)提供了针对实数的高精度(32位)对数单元的另一示例。定点编程给编程人员造成了特别是在乘法或除法运算之后脑力确定十进制小数点的位置的负担。例如,假设FIR过滤器涉及利用加权因子-0.607、1.035、-0.607……对信号采样的加权加法,所述加权因子必须被指定到千分之一的精度。在定点运算中,例如,必需用1035表示1.035。结果,信号采样与该数值相乘将结果的字长扩展了10位。为了按相同的存储器字长存储该结果,那么,必需丢弃10位;然而,是应当丢弃MSB(最高有效位)还是应当丢弃LSB(最低有效位),还是应当放弃每个中的一些,取决于信号数据谱(signal data spectrum),而这必须通过利用现实数据的仿真来确定。这使得对正确编程的验证变得费力了。引入了浮点处理器,以通过借助于与每个存储的数值的“尾数”部分相关联的“指数”部分,自动确定小数点,来克服脑力确定小数点的不便。IEEE标准浮点格式是 SEEEEEEEE.MMMMMMMMMMMMMMMMMMMMMMM其中,S是值的符号(0=+,1=-),EEEEEEEE是8位指数,而MMM…MM是23位尾数。对于IEEE标准浮点格式,尾数的第24个最高有效位总是1(除了真零之外),由此被省略了。在IEEE格式中,尾数的实际值因而是1.MMMMMMMMMMMMMMMMMMMMMMM例如,底数为2的对数数值-1.40625×10-2=-1.8×2-7,可以按IEEE标准格式表示为1 01111000.11001100110011001100110。而且,零指数是01111111,由此数值+1.0可以写为0 01111111.00000000000000000000000表示真零需要负无穷大指数,这是不实用的,因此,通过把全零位模式(all zeros bit pattern)解释成真零而非2-127,来生成人工零。为了将两个浮点数相乘,利用定点24×24位乘法器(其是具有适度高复杂性和延迟的逻辑)将被抑制的MSB 1归位后(replaced)的尾数相乘,同时将指数相加,并减去偏移量127中的一个。接着,必须将相乘后的48位结果截取成24位,并且在向左对齐(left-justification)之后删除最高有效位1。由此,与针对定点数的乘法相比,针对浮点数的乘法甚至更复杂。为了将两个浮点数相加,首先,必须将它们的指数相减,以了解它们的小数点是否对准。如果小数点没有对准,则选择较小的数右移等于指数差的多个二进制位置,以在将尾数相加之前对准小数点,从而将隐含的1归位。为了快速执行移位,可以使用桶形移位器(barrel shifter),其在结构和复杂性上类似于定点乘法器。在相加更具体地说在相减之后,必须把前面的零左移出尾数,而使指数递增。因而,在浮点运算中,加法和减法也是复杂的运算。在纯线性格式下,针对定点数的加法和减法是简单的,但乘法、除法、平方以及平方根更复杂。乘法器被构造成一系列“移位和条件相加”电路,这些“移位和条件相加”电路固有地具有大量逻辑延迟。快速处理器可以使用流水线(pipelining)来克服这种延迟,但是这通常使编程复杂化了。由此,最小化快速处理器中的流水线延迟是有意义的。应当注意到,浮点数表示是对数与线性表示之间的混合。指数是数值的以2为底数的对数的整数部分,而尾数是线性小数部分。因为对于线性表示来说乘法是复杂的,而对于对数表示来说加法是复杂的,所以这说明了为什么对于混合浮点表示来说,两者都是复杂的。为了克服这一问题,一些已知的系统,如在上面引述的系统,已经使用了纯对数表示。这解决了确定小数点的问题并简化了乘法,仅剩下加法是复杂的。在现有技术中,利用查寻表来执行对数加法。然而,表的大小局限性把这种解决方案限于受限的字长,例如限于0-24位的范围。在上述对Coleman的引用中,利用需要乘法器的插值技术,以合理大小的查寻表实现了32位精度。这样,Coleman处理仍包括与乘法有关的复杂性。虽然现有技术描述了用于实现实数对数运算的各种方法和装置,但是现有技术没有提供针对复数运算的查寻表解决方案,而复数运算在无线电信号处理中是有用的。而且,现有技术没有提供具有共用的实数和复数处理能力的ALU。因为无线电信号处理通常既需要复数处理能力又需要实数处理能力,所以在具有大小和/或功率问题的无线通信装置中,同时实现实数和复数对数运算的单个ALU将是有益的。
技术实现思路
本专利技术涉及对按对数格式表示的实数和/或复数执行算术运算的算术逻辑单元(ALU)。利用对数数值表示简化了乘法和除法运算,但是使得加法和减法更困难了。然而,可以利用如下所讨论的已知算法简化两个输入运算数的和或差的对数。在下面的讨论中,假定a>b,并且c=a+b。可以表示C=logq(c)=logq(a+b)=A+logq(1+q-r)(1)其中,q是对数的底数,r=A-B,A=logq(a),而B=logq(b)。公式(1)表示的运算(在此称为对数加法(logadd))允许仅利用加法和减法运算来计算a和b的和的对数,其中,利用查寻表来确定logq(1+q-r)的值。在一个示范实施例中,本专利技术提供了一种用于对按对数极坐标(logpolar)格式表示的复数型输入运算数执行对数运算的ALU。例如,A=logq(a)=(R1,θ1)而B=logq(b)=(R2,θ2),其中,R和θ分别表示对数幅值(logmagnitude)和相角,这在下面将进一步讨论。根据该实施例,ALU包括存储器和处理器。存储器存储为确定按对数极坐标格式表示的复数的对数而使用的查寻表,而处理器利用存储的查寻表生成按对数极坐标格式表示的复数型输入运算数的输出对数。在另一示范实施例中,本专利技术提供了一种用于对按对数格式表示的实数和复数执行对数运算的ALU。根据该实施例的示范ALU也包括存储器和处理器。存储器存储两个查寻表,一个查寻表用于确定实数的对数,而另一个查寻表用于确定复数的对数。处理器包括共用处理器,该共用处理器利用针对实数型输入运算数的实数查寻表和针对复数型输入运算数的复数查寻表,基于按对数格式表示的输入运算数来生成输出对数。在任何情况下,根据本专利技术的一个示范实施例,本文档来自技高网
...

【技术保护点】
一种用于计算输出对数的ALU,该ALU包括:存储器,该储存器存储第一查寻表和第二查寻表,所述第一查寻表用于确定实数的对数,而所述第二查寻表用于确定复数的对数;和共用处理器,该共用处理器利用针对实数型输入运算数的所述第一查寻表和针对复数型输入运算数的所述第二查寻表,基于按对数格式表示的两个输入运算数生成输出对数。

【技术特征摘要】
【国外来华专利技术】...

【专利技术属性】
技术研发人员:保罗威尔金森登特
申请(专利权)人:LM爱立信电话有限公司
类型:发明
国别省市:SE[瑞典]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1