利用截尾泰勒级数的对数/反对数转换器及其使用方法

文档序号:6411001阅读:333来源:国知局
专利名称:利用截尾泰勒级数的对数/反对数转换器及其使用方法
技术领域
本发明涉及下列转让给本发明的同一受让人的发明(1)1995年1月31日提交的,序列号为08/381,368的“对数/反对数转换器及其使用方法”。
(2)1995年1月31日提交的,序列号为08/382,467的“利用二次项的对数/反对数转换器及其使用方法”。
(3)1995年2月22日提交的,序列号为08/391,880的“利用线性内插的对数/反对数转换器及其使用方法”。
(4)1994年1月3日提交的,序列号为08/176,601的“利用对数函数的神经网络及其使用方法”。
(5)1995年3月13日提交的,序列号为08/403,158的“利用对数转换的计算机处理器及其使用方法”。
本发明一般涉及计算电路,而更具体地涉及可用来在输入值上执行对数或反对数转换的计算电路。
对数转换器为用来实现对数函数的装置,并且最通常出现在诸如手持式计算器及电子数据表软件程序等事物中。对数函数属于称作超越函数的在诸如数据通信、控制系统、化学工艺及计算机仿真等广阔的各种应用中重要的一类数学函数。对数函数用下述数学式简化表示y=logb(x)。在该式中,x表示输入值,它可以是大于或等于零的任何数;b表示底数系统;而y则表示与输入值x对应的对数值。
反对数转换器为用来实现反对数函数的装置。本质上,反对数函数为对数函数的反函数。下面的讨论中说明“反函数”的含义。对数函数将输入值的定义域中的一个输入值x转换成对数值的值域中的确定的对数值。基本上,对数函数在定义域中的输入值与值域中的对数值之间建立一种一一对应。这一对应用符号表示为x→y。反对数函数在对数值与输入值之间建立一种逆对应,它用y→x表示。反对数函数缩略成下述等价数学式中之一y=logb-1(x)或y=bx。在这两个式中,x表示输入值;b表示底数系统;而y则表示与输入值x对应的反对数值,并可以是任何大于或等于零的数。和对数函数一样,反对数函数在广阔的各种应用中是重要的。
当前普遍采用两种计算对数与反对数值的技术。两种技术都类似地用来计算对数或反对数值;从而,为了简明的目的,下面的讨论将集中在利用这些技术来计算对数值上,应理解这些技术也能以类似方式用来计算反对数值。
第一种技术包含为每一个可能的输入值在查找表中存储一个对应的对数值。这一方法允许相对快速地计算对数值,并且对于要求有限的精度及具有小的定义域中的输入值的应用是实际的。然而,在许多应用中这一技术是不实际的,因为它需要太大的存储空间来存储查找表。例如,在采用IEEE标准32位浮点数的数字系统中,它具有23位尾数,这一查找表会需要存储223个对数值,每一个可能的尾数值一个。建立存储这一数目的对数值的计算机存储器即使不是不可能也是过于昂贵的。
第二种计算对数值的技术包含计算一个幂级数来副近对数函数。逼近对数函数的幂级数的例子给出为y=log(1+x)=x-x2/2+X3/3-X4/4+…(1)在这一例子中,该对数函数是称作自然对数的在科学与工程应用中广为采用的特定类型的对数函数。式1中的变量定义如下y表示对数值,而x则表示在定义域-1≤x<1中的输入值。虽然利用幂级数来逼近对数函数的技术能够以高精确度计算对数值,它需要大量的计算机运算,并因此需要相对地长的时间来执行。换言之,这一技术通常是缓慢的并负面影响计算机的吞吐量。
总之,存在着对能快速地执行对数或反对数函数,从而允许计算机以更大的吞吐量操作的转换器的需求。这种转换器也应降低执行转换所需的存储空间量,并且它应产生具有高精确度的对数或反对数值。
本发明用所附权利要求书中的特征指明。然而,通过参照下面结合附图的详细描述,本发明的其它特征将更为清楚并将最好地理解本发明,附图中


图1示出按照本发明的较佳实施例的对数/反对数转换器。
图2示出对数函数曲线。
图3示出反对数函数曲线。
图4示出使用图1中所示的对数/反对数转换器的方法的流程图。
图5示出图1中所示的对数/反对数转换器所采用的执行算术运算的方法的流程图。
图6示出包含本发明的实施例的计算装置的一种型式。
图7示出包含本发明的实施例的计算装置的另一型式。
本发明的优点为提供能在计算机、处理器或电路中用来执行对数或反对数转换而无需改变转换器的设计的一种转换器。本发明的又一优点为提供以高精确度计算对数与反对数值的一种转换器。本发明的又另一优点为提供只需明显地减少了的存储空间量并可高效地在低功耗的集成电路中实现的转换器。本发明的附加优点为提供使用转换器产生对数或反对数值的方法。
一般地说,本发明提供用于计算对数或反对数函数的转换器。该转换器包括一个存储器及一个算术装置。存储器存储多个系数,其中这些系数是用泰勒多项式,也称作截尾泰勒级数,计算以估算输入值定义域上的对数或反对数函数的。算术装置根据存储在存储器中的系数,通过在输入值及数个系数上执行算术运算,生成对数或反对数值。
可以通过用不同的系数集合加载存储器而将转换器容易地重新配置成执行对数或反对数函数、或者具有不同的底数系统或输入值定义域的函数。
图1示出按照本发明的较佳实施例的对数/反对数转换器。该转换器包括一个存储器22、第一乘法器28、第二乘法器30、减法装置24、平方装置26、第一加法器32及第二加法器34。存储器22中存储多个系数。这些系数是基于二次泰勒多项式的,并且它们包含一个零次系数、一个一次系数及一个二次系数。
转换器操作如下。输入值20提供用来检索一组系数的地址。此外,该组系数中包含位于存储器22中对应于输入值20的一个公共地址上的零次、一次与二次系数。减法装置24从输入值20中减去基点值以生成间隔值36。平方装置26平方间隔值36以生成平方的间隔值。在本发明的一个实施例中,平方装置26包含一个平方乘法器,它响应接收间隔值生成平方的间隔值。在另一实施例中,平方装置26包含一个只读存储器,用于响应接收间隔值生成平方的间隔值。第一乘法器28将间隔值36乘以一次系数40生成一次项。第二乘法器30将平方的间隔值乘以二次系数42生成二次项。第一加法器32将一次项与二次项相加生成第一和数。第二加法器34将第一和数与零次系数38相加生成输出值35。
在本发明的一个实施例中,转换器是用集成电路实现的。然而,普通技术人员将会认识到可编程的逻辑阵列、应用专用的集成电路(ASIC)或其它数字逻辑器件、以及运行在诸如微处理器等处理器上的软件也能用来实现转换器。
图2示出对数函数50在输入值定义域上的曲线。输入值是沿x轴给出的,而对数值则沿y轴给出。输入值定义域为1至2,而对数值的值域则为0至1。值域内的间隔是用一对基点定界的。基点a与b上的垂直虚线表示一个示例性间隔。定义域中的各基点对应于存储器22中包含在该基点上计算的泰勒系数的位置。对数函数50采用2为底数系统。
图3示出反对数函数52在输入值定义域上的曲线。输入值是沿x轴给出的而反对数值是沿y轴给出的。输入值定义域为0至1,而反对数值值域为1至2。值域内的间隔用一对基点定界。用基点a与b上的垂直虚线表示一个示例性间隔。定义域中的各基点对应于存储器22中包含在该基点上计算的泰勒系数的位置。反对数函数52也采用2为底数系统。
本技术中的普通技术人员将会理解本发明的转换器可用来计算任何对数或反对数函数;然而,在本发明的一个较佳实施例中,转换器计算图2中所描绘的对数函数及图3中所描绘的反对数函数。
使用图1中所示的转换器容易地将一个IEEE标准32位浮点数转换成对数或反对数值。一个IEEE 32位浮点值具有一个符号位、一个23位尾数及一个8位指数。只将尾数作为输入值20提供给转换器。符号位与指数两者都绕过转换器而在稍后与输出值48组合。实质上,转换器计算y=log2(1.M)或y=logx-1(1.M),其中y表示输出值而M表示尾数。浮点数的指数为一以2为底的值2e,其中e表示指数。对应于浮点输入的对数或反对数值是在尾数转换之后,通过将输出值35与指数相加而生成的。这一求和得出以一种数字格式表示的值,它包含j位小数部分与R位整数部分。整数值j与k可根据所要求的转换器精度而改变。
图4示出使用图1中所示的对数/反对数转换器的方法的流程图。该方法可用来生成对数值或反对数值。在框70中,用具有多个系数的一个二次泰勒多项式逼近对数(或反对数)函数。多个系数中包含一个零次、一次与二次系数。下面,在框72中,将系数存储在存储器22中。在框73中,接收一个输入值20。接着在框74中,从存储器22中检索出与输入值20对应的系数。
在框76中,在检索出的系数与输入值20上执行算术运算以产生输出值35。算术运算的细节下面参照图5给出。检索出的系数中包含零次系数38、一次系数40及二次系数42。
参见框70,对数与反对数函数是用具有下列一般形式的二次泰勒多项式逼近的y=f(a)+f′(a)*(x-a)+(f″(a)/2)*(x-a)2(2)其中y表示对数(或反对数)值;f(a)表示零次系数,它是基点a上的对数(或反对数)函数的值;f′(a)表示一次系数,它是基点a上函数的一次导数的值;f″(a)/2表示二次系数,它是基点a上函数的二次导数的值的一半;x-a表示间隔值,而x则表示输入值。
图5示出图1中所示的对数/反对数转换器所使用的执行算术运算的方法的流程图。在框80中,从输入值中减去基点值以生成间隔值。在框82中,将间隔值乘以一次系数而生成一次项。接着在框84中,平方间隔值以生成平方的间隔值。在框86中,将平方的间隔值乘以二次系数以生成二次项。下面在框88中,将一次项与二次项相加以生成第一和数。在框90中,将第一和数与零次系数相加以产生输出值。
图6示出包含本发明的实施例的计算装置的一种型式。该计算装置包括一个处理单元102,用于执行利用对数/反对数值106的计算机运算;一个计算机存储器100,用于存储包含该计算机运算的计算机程序;一条总线101,连接处理单元102与计算机存储器100;以及转换器108,它接收输入值104。
转换器108可包括图1中所示的转换器。在所示的例子中,转换器108包含一个存储器112及可操作地耦合在存储器112上的一个算术装置110。算术装置接收来自处理单元102的输入值104,并根据存储在存储器112中的系数生成对数值或反对数值。
图7示出包含本发明的实施例的计算装置的另一型式。该计算装置包括一个处理单元102,用于执行利用对数/反对数值106的计算机运算;一个计算机存储器100,用于存储包含该计算机运算的计算机程序;一条总线101,连接处理单元102与计算机存储器100;以及一个转换器120,它接收输入值104。
转换器120可包括图1中所示的转换器。在所示的例子中,转换器120包含一个存储器124及可操作地耦合在存储器124上的一个算术装置122。算术装置122接收输入值104并根据存储在存储器124中的系数生成对数值或反对数值。
从而这里已描述了可用来计算对数或反对数函数的转换器的概念以及较佳实施例。因为这里所描述的转换器的实施例利用勒多项式来逼近一个函数,它能使用单个加法器、单个乘法器及一张查找表来执行对数或反对数转换,它能明显地减小存储器大小。这种转换器能以大为降低的成本与装置复杂性改进数据吞吐量与计算精度,不论是在半导体芯片上还是在在计算机程序中。
虽然已在将输入值处理成输出值方面描述了本发明的各种实施例,应将本发明解释为包含电路及用这些电路将表示输入值的输入信号处理成表示输出值的输出信号的所实现的方法。
虽然已示出与描述了本发明的特定实施例,对于熟悉本技术的人员显然可以多种方式修正公开的发明,并可采用与上面特别提出与描述的较佳形式不同的许多实施例。
从而,所附的权利要求书旨在覆盖落入本发明的真实精神与范围内的本发明的所有改型。
权利要求
1.一种对数转换器,包括一个存储器,用于存储多个系数,其中这些系数是基于在输入值定义域上逼近对数函数的泰勒多项式的;以及算术装置,可操作地耦合在存储器上,用于通过在输入值与对应于输入值的多个系数中的数个上执行算术运算,而生成对数值。
2.权利要求1的对数转换器,其中多个系数中的各个是基于具有下述形式的表达式的c=f(n)(a)/n!其中c表示一个系数,f(n)(a)表示对数函数的n阶导数,a表示输入值,而n为一整数。
3.权利要求1的对数转换器,其中该对数函数是用二次泰勒多项式逼近的。
4.权利要求3的对数转换器,其中多个系数中的数个包含一个零次系数、一个一次系数与一个二次系数,以及算术装置包括第一乘法器,用于将间隔值乘以一次系数以生成一次项;用于平方间隔值以生成平方的间隔值的装置;第二乘法器,用于将平方的间隔值乘以二次系数以生成二次项;第一加法器,用于将一次项与二次项相加以生成第一和数;以及第二加法器,用于将第一和数与零次系数相加以产生对数值。
5.权利要求4的对数转换器,还包括用于从输入值中减去基点值以生成间隔值的装置。
6.权利要求4的对数转换器,其中该平方装置包括一个平方乘法器,它响应接收间隔值,生成平方间隔值。
7.权利要求4的对数转换器,其中该平方装置包括一个只读存储器,用于响应接收间隔值,生成平方间隔值。
8.一种用于生成与输入值对应的对数值的对数转换器,包括第一存储器,用于存储多个系数组,其中各系数组是基于在输入值定义域内的一个基点上逼近对数函数的二次泰勒多项式的,存储器作为输出提供对应于输入值的系数组,其中该系数组包含一个零次系数、一个一次系数及一个二次系数;第一乘法器,用于将一个间隔值乘以一次系数以生成一次项;第二存储器,用于响应接收间隔值,生成平方间隔值;第二乘法器,用于将平方间隔值乘以二次系数以生成二次项;第一加法器,用于将一次项与二次项相加以生成第一和数;以及第二加法器,用于将第一和数与零次系数相加以产生对数值。
9.一种计算装置,包括一个处理单元,用于执行利用对数值的计算机运算;一个计算机存储器,用于存储包含该计算机运算的计算机程序;一个对数转换器,它接收输入值并包括一个存储器,用于存储多个系数,其中这些系数是基于在输入值定义域上逼近对数函数的泰勒多项式的;以及算术装置,可操作地耦合在存储器上,用于通过在输入值与对应于输入值的多个系数中的数个上执行算术运算,而产生对数值。
10.一种用于生成对数值的方法,包括下述步骤接收输入值;从存储器中检索出至少一个与输入值对应的系数,其中该至少一个系数是基于逼近对数函数的泰勒多项式的;以及在该至少一个系数与输入值上执行算术运算以产生对数值。
11.一种用于生成与输入值对应的反对数值的反对数转换器,包括一个存储器,用于存储多个系数组,其中各系数组是基于在输入值定义域内的基点上逼近反对数函数的二次泰勒多项式的,存储器作为输出提供对应于输入值的一个系数组,其中该系数组包含一个零次系数、一个一次系数及一个二次系数;第一乘法器,用于将一个间隔值乘以一次系数以生成一次项;一个只读存储器,用于响应接收间隔值,生成平方间隔值;第二乘法器,用于将平方间隔值乘以二次系数以生成二次项;第一加法器,用于将一次项与二次项相加以生成第一和数;以及第二加法器,用于将第一和数与零次系数相加以产生反对数值。
全文摘要
公开了可用来实现对数或反对数函数的转换器。该转换器包括一个存储器(22)、两个乘法器(28)与(30)、及两个加法器(32)与(34)。存储器(22)存储多个系数,它们是基于用来在输入值定义域上估算对数或反对数函数的二次泰勒多项式的。还公开了使用转换器的方法。
文档编号G06F7/556GK1172539SQ96191713
公开日1998年2月4日 申请日期1996年1月3日 优先权日1995年1月31日
发明者詹姆斯·道格拉斯·沃金, 约汉·迈克尔·布斯 申请人:摩托罗拉公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1