CN1195808A - 算术运算系统 - Google Patents

算术运算系统 Download PDF

Info

Publication number
CN1195808A
CN1195808A CN97122094A CN97122094A CN1195808A CN 1195808 A CN1195808 A CN 1195808A CN 97122094 A CN97122094 A CN 97122094A CN 97122094 A CN97122094 A CN 97122094A CN 1195808 A CN1195808 A CN 1195808A
Authority
CN
China
Prior art keywords
mentioned
register
decimal point
operation result
operand
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
Application number
CN97122094A
Other languages
English (en)
Inventor
胜田博志
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Publication of CN1195808A publication Critical patent/CN1195808A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods 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/499Denomination or exception handling, e.g. rounding or overflow
    • G06F7/49936Normalisation mentioned as feature only
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods 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/499Denomination or exception handling, e.g. rounding or overflow
    • G06F7/49942Significance control
    • G06F7/49947Rounding

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Executing Machine-Instructions (AREA)
  • Complex Calculations (AREA)

Abstract

提出一种算术运算系统,其中,第一运算数的实际小数点位置被实际小数点检测器检测以产生一个位置数据和一个位数数据。没有实际小数点的第三运算数由第一移位器将第一运算数移位而产生。均没有实际小数点的第二和第三运算数被整数算术运算器算术运算以输出一第一运算结果。第一运算结果被舍入器舍入以输出一第二运算结果。第二运算结果由一第二移位器将舍入的第二运算结果右移产生。因此,能够不使用专用浮点算术运算处理器或运算器而进行浮点算术运算。

Description

算术运算系统
本发明涉及一种算术运算系统,更具体地说是涉及一种不用任何专用的浮点算术运算子系统如一个浮点算术运算处理器和一个浮点算术运算数字信号处理器(DSP)以算术方法运算一个具有小数点的第一运算数和一个没有小数点的第二运算数的算术运算系统。
当在电子控制应用中进行一个通过将一个没有小数点的变量x乘以一个具有小数点的增益K给出一个结果y的算术运算时,浮点算术运算必不可少。
在此类的常规微型计算机应用系统中,一个专用的浮点算术运算DSP被另外地提供与微型计算机一起以提供浮点算术运算。或者是使用一个含有浮点算术运算功能的高性能的微型计算机。这是因为一个典型的微型计算机或DSP仅仅能够进行整数算术运算(即定点算术运算)。
然而,配备了专用浮点算术运算DSP的常规微型计算机应用系统有一个问题在于专用的DSP增加了微型计算机应用系统的造价。配备了含有浮点算术运算功能的高性能微型计算机的常规的微型计算机应用系统有一个问题在于需要提供专用的浮点算术运算单元以实现浮点算术运算功能,从而导致微型计算机应用系统的造价的增加。
一个可适用于上述浮点算术运算单元的浮点乘法器于1990年在日本未决专利公开号No.2-183828中被公开。
然而,在日本未决专利公开号No.2-183828中被公开的常规浮点乘法器有一个问题在于此乘法器有一个复杂的结构。这是因为,不象一个定点乘法器,该乘法器需要多种专用电路诸如一个用于对将被乘的数的有效位四舍五入的舍入电路,用于用算术方法对有效位和指数移位的移位器,用于指数的加法器,进位检测器,和多路复用器。
为了解决上述的问题在由Ohm出版有限公司出版的名为“OHM”的书中,1993第9卷第95页,一篇名为“whole powerelectronics”的文章中报道了一个改进措施。在此改进措施中,通过使用典型的能够进行整数(即定点)算术运算的微型计算机和一个为其专门设计的专用软件来进行一个浮点算术运算。此软件有如图1所示的步骤。
这里,如图2所示,其假设增益K为m位宽且具有一个n位宽度的小数,其中n<m。因此,增益K的最高有效位(MSB)是位(m-1),最低有效位(LSB)是位0。一个实际二进制小数点位于位n和位(n-1)之间。
在图1所示的步骤S1中,增益K被左移n位(即增益K被乘以2TEN n)以将其转换成一个整数系数k。系数k有一个位于位(n-1)和位n之间的假定二进制小数点P′,如图2所示。
在步骤S2中,整数系数k被乘以小数变量x,得到一个乘积Y(即Y=k*X)。
在S3步骤中,判断乘积Y的小数是小于还是大于二进制的0.1(即0.1TWO)。二进制的0.1等于十进制的0.5(即0.5TEN)。该判断被执行以对乘积Y在位(n-1)上四舍五入,由此最小化乘积Y的舍入误差。
当乘积Y的假定小数,其位于位(n-1)和位0之间,不小于0.1TWO或0.5TEN时,在步骤S4中一个变量T被设置为二进制的1(即1TWO)。该步骤S4是为了将乘积Y在位n四舍五入为“1TWO”而进行的。
接着,在步骤S6中值为1TWO的变量T被左移n位。在步骤S7中左移后的变量T被加到乘积Y上。
最后,乘积Y被右移n位(即乘积Y被除以2TEN n),由此在步骤S8中产生增益K与变量x的舍入乘积y。由于上述的四舍五入,乘积Y的实际小数点P位于位0的右侧。换句话说,乘积y具有一个整数值。
另一方面,当乘积Y的假定小数小于0.1TWO或0.5TEN时,变量T在步骤S5中被设置为0TWO
接着,在步骤S6中值为0TWO的变量T被左移n位。左移后的变量T在步骤S7中被加到乘积Y上。因为变量T值为0TWO,所以乘积Y的值不发生变化。
最后,乘积Y被右移n位,由此在步骤S8中产生增益K与变量x的舍入乘积y。
在该微型计算机应用系统中,算术运算精度取决于对数据值小数的算数运算方式。因此,从运算精度的观点看数据值的小数的算术运算方法十分重要。
例如,在反馈控制系统如使用电气电机的位置控制系统中,含有小数数字的积分数据的算术运算是必不可少的。在此情况中,数据值的小数的算术运算方法很大程度地影响着反馈控制系统的控制精度。
用如图1所示使用专用软件进行的常规浮点算术运算,可以达到一个所需的运算精度。然而,在此情况下,浮点算术运算是通过由微型计算机应用系统中的一个微型计算机的中央处理单元(CPU)执行该软件来进行的。结果是,有一个问题在于其需要很长的时间来完成该算术运算。这意味着上述使用软件的常规浮点算术运算不能够被应用于需要高速控制的微型计算机应用系统。
另一方面,需要浮点算术运算的处理在微型计算机应用系统的整个处理过程中的出现率并不高。因此,即使再另外引入一个专用的浮点算术运算DSP或一个专用的浮点算术运算单元,所引入的昂贵的专用DSP或单元没有被有效地利用。
因此,本发明的一个目的是提供一种能够使用最少量的硬件设备快速地进行浮点算术运算的算术运算系统。
本发明的另一个目的是提供一种使CPU的指令处理步骤最少的进行浮点算术运算的浮点算术运算系统。
上述的目的和其他没有被特别提到的目的将从接下来的说明中被那些技术熟练者所明了。
根据本发明,提出了一种用于对一个具有实际小数点的第一运算数和一个没有实际小数点的第二运算数进行算术运算的算术运算系统。
此系统包括(a)一个用于检测第一运算数的实际小数点的位置以输出一个第一位置数据和一个位数数据的实际小数点检测器,(b)一个用于存储第一位置数据的第一寄存器,(c)一个用于存储位数数据的第二寄存器,(d)一个用于将第一运算数左移对应于存储在第二寄存器中的位数数据的特定位数以输出一个没有实际小数点的第三运算数的第一移位器,(e)一个用于对第二运算数和第三运算数进行算术运算以输出一个第一运算结果的整数算术运算器,(f)一个用于根据第一位置数据指示第一运算结果的假定小数点位置的假定小数点指示器,(g)一个用于根据由假定小数点指示器所指示的第一运算结果的假定小数点的位置来对第一运算结果进行四舍五入以输出第二运算结果的舍入器,和(h)一个用于将第二运算结果右移对应于位数数据的特定位数以输出一个没有实际小数点的第三运算结果的第二移位器。
第三运算结果代表了第一和第二运算数的一个舍入的运算结果。
对于根据本发明的算术运算系统,第一运算数的实际小数点的位置被实际小数点检测器检测,从而得到第一位置数据和位数数据。没有实际小数点的第三运算数是由第一移位器根据位数数据左移具有实际小数点的第一运算数而产生的。均没有实际小数点的第二和第三运算数由整数算术运算器进行算术运算,由此输出第一运算结果。
所输出的第一运算结果接着被舍入器根据所指示的第一运算结果的假定小数点四舍五入,由此输出第二运算结果。
再者,没有实际小数点的第三运算结果是由第二移位器通过对所四舍五入的第二运算结果根据位数数据右移而产生的。
因此,能够不用任何专用的浮点算术运算DSP或专用的浮点算术运算单元来进行一个对第一运算数和第二运算数的浮点算术运算。由此减少了该系统造价。
另外,上述浮点运算是通过使用实际小数点检测器、第一和第二寄存器、第一和第二移位器、整数算术运算器、假定小数点指示器和舍入器来进行的。换句话说,该运算没有用任何浮点算术运算的专用软件而是用硬件设备来进行的。
其结果是,该运算能够使用最少量的硬件设备以最少的CPU的指令处理步骤快速地进行。
在根据本发明系统的一个优选实施例中,整数算术运算器的输出被连接到舍入器的一个输入上,因而从整数算术运算器输出的第一运算结果被直接地输入到舍入器中去。
在此情况下,有一个额外的优点在于总线结构可以很简单。
在根据本发明系统的另一个优选实施例中,另外提供了一个第三寄存器用于存储从整数算术运算器输出的第二运算结果。存储在第三寄存器中的此第二运算结果被加载到舍入器。
在此情况下,有一个额外的优点在于当必要时可以通过使用存储在第三寄存器中的第二运算结果进行多种算术运算。
在根据本发明系统的再另一个优选实施例中,假定小数点指示器输出一个给出了第一运算结果的假定小数点的位置的第二位置数据,且该第二位置数据被存储在第四寄存器中。
在此情况下,有一个额外的优点在于由舍入器进行的第一运算结果的舍入处理和第一寄存器的读取处理之间不会发生竞争。
在根据本发明系统的另一个优选实施例中,实际小数点检测器是由一个算术逻辑单元(ALU)实现的。
在此情况下,有一个额外的优点在于实际小数点检测器的结构可以很简单。
在根据本发明系统的再另一个优选实施例中,第一和第二移位器是由一个单独的双向移位器来实现的。
在此情况下,有一个额外的优点在于第一和第二移位器的结构可以很简单。
为了使本发明能够被容易地实现,现在将参照附图对其进行说明。
图1所示为一个使用一个专用软件和一个定点算术运算器的常规浮点算术运算的步骤顺序的流程图。
图2所示为给出具有实际小数点的增益K和没有实际小数点的变量x的乘积y的一个浮点算术运算的原理简图。
图3所示为根据本发明的第一实施例的算术运算系统的结构方框图。
图4为位置数据值的一个例子的简要示意图,该位置数据值给出用在根据第一实施例系统中乘积结果Y’的假定小数点位置。
图5所示为根据第一实施例系统的浮点算术运算的步骤顺序流程图。
图6所示为根据本发明的第二实施例的算术运算系统的结构方框图。
图7所示为根据第二实施例的系统的浮点算术运算的步骤顺序流程图。
图8所示为根据本发明的第三实施例的算术运算系统的结构方框图。
图9所示为根据第三实施例的系统的浮点算术运算的步骤顺序流程图。
接下来将参照附图3到8对本发明的优选实施例进行说明。
                        第一实施例
如图3所示,根据本发明的第一实施例的一个算术运算系统由一个寄存器存储器1,一个ALU2,一个双向移位器3,一个乘法器4,一个舍入电路6,一个假定小数点寄存器7,和一个控制器15构成。寄存器存储器1,ALU2,双向移位器3,乘法器4,舍入电路6,假定小数点寄存器7是由控制器15控制的。
将被相乘的一个增益K和一个变量x被输入到位于公用总线的5一端的一个输入端16。增益K和变量x的舍入乘积(即Y≈K*x)从位于公用总线5的另一端的输出端17导出。
如图2所示,增益K为m位宽且具有一个实际二进制小数点P。增益K的小数部分为n位宽,整数部分为(m-n)位宽,其中m>n。增益K的MSB和LSB分别为位(m-1)(即最左位)和位0(即最右位)。实际二进制小数点位于位(n-1)和位n之间。
寄存器存储器1包括五个通用寄存器1a,1b,1c,1d,和1e,和两个选择器或转换开关1f和1g。
输入选择器1f根据从控制器15送来的控制信号C1选择寄存器1a,1b,1c,1d,和1e中的一个,以使一个输入数据通过总线5被写进或存储进所选的寄存器1a,1b,1c,1d,和1e中的一个。输出选择器1g根据从控制器15送来的控制信号C2选择寄存器1a,1b,1c,1d,和1e中的一个,以使所选的寄存器1a,1b,1c,1d,和1e中的一个的内容(即所存储的数据)被读取或取出到总线9或10。总线9被连接到ALU2、双向移位器3、和乘法器4。总线10被连接到双向移位器3和乘法器4。
寄存器1a存储增益K的假定二进制小数点P’的位置数据PT。寄存器1b存储增益K在移位器3中将被移位的位数数据n。寄存器1c存储增益K或系数k。系数k是通过将增益K左移等于位数数据n的特定位数而给出的,其具有一个整数值而没有实际二进制小数点。寄存器1d存储具有一个整数值的变量x。寄存器1e存储乘积y或Y。乘积Y是通过将变量x与系数k相乘并且四舍五入乘积结果Y’(=k*x)而给出的。
假定小数点寄存器7存储增益K的假定小数点P’的位置数据PT,其是通过总线5从移位器3送来的。寄存器7通过总线14将位置数据PT输出到舍入电路6。这些操作是根据从控制器5送来的控制信号C3进行的。
假定小数点寄存器可以由一个锁存器电路简单地实现。
ALU2能够进行没有二进制小数点的整数的算术和逻辑运算。ALU2本身不能进行浮点算术运算。ALU2根据从控制器5送来的控制信号C4计算或检测通过总线9加载的增益K的实际二进制小数点P(即小数的位数)的位置。接着,ALU2通过总线11将增益K的实际二进制小数点P的位置数据PT和其将被移位的位数数据n输出到总线5。所检测的位置数据PT和位数数据n通过总线5被分别地存储进寄存器1a和1b中。
位置数据PT的值通常不等于位数数据n的值。
双向移位器3通过总线9从寄存器1a接收位置数据PT。接着,移位器3不进行移位操作而是通过总线12将位置数据PT输出到总线5。这些操作是根据从控制器15送来的控制信号C5而进行的。
另外,移位器3还分别通过总线9和10从寄存器1a和1b接收增益K和位数数据n。接着,移位器3将增益K左移等于位数数据n的特定位数,通过总线12将系数k输出到总线5。这些操作是根据从控制器15送来的控制信号C5而进行的。
另外,移位器3分别通过总线9和10从寄存器1e和1b接收舍入乘积Y和位数数据n。接着,移位器3将舍入乘积Y右移等于位数数据n的特定位数,将乘积y输出到总线12。这些操作是根据从控制器15送来的控制信号C5而进行的。
乘法器4分别通过总线9和10从寄存器1c和1d接收系数k和变量x。乘法器4将系数k和变量x相乘,通过总线13将乘积Y’(=k*x)输出到舍入电路6。这些操作是根据从控制器15送来的控制信号C6进行的。
舍入电路6接收从乘法器4输出的乘积Y’(=k*x)和从假定小数点寄存器7输出的增益K的位置数据PT。接着,电路6舍入乘积Y’以与假定小数点P’的位置数据PT一致。
例如,在舍入电路6中的舍入操作是以如下的方式实现的。
由假定小数点P’的位置数据PT和位数数据n给出的乘积Y’的小数部分的值,同一个二进制数0.1(即0.1TWO)进行比较。换句话说,也就是判断乘积Y’的位(n-1)的值是1还是0。
当乘积Y’的小数部分的值等于或大于0.1TWO(即0.5TEN)时,即当乘积Y’的位(n-1)的值为1TWO时,为了四舍五入的目的,一个二进制数1(即1TWO)的增量被加到乘积Y’的位(n-1)的值上。这意味着数1TWO被加到乘积Y’的位n的值上。
当乘积Y’的小数部分的值小于0.1TWO或0.5TEN时,即当乘积Y’的(n-1)位的值为0TWO时,没有增量被加到乘积Y’的(n-1)位的值上。这意味着乘积Y’的位n的值这里没有改变。
接着,舍入电路6通过总线8将舍入后的乘积Y输出到总线5。
上述的舍入电路6的舍入操作是根据从控制器15送来的控制信号C7而进行的。
很明显舍入电路6可以用一个单向移位器,一个比较器,和一个加法器的组合来简单地实现。
图4显示了用在根据第一实施例的系统中的给出乘积结果Y’的假定小数点P’的位置的位置数据PT的一个例值。在此例中,数值为32位宽,并且只有位8为“1TWO”而其余的全是“0TWO”。特别地,此二进制值被表示为
“00000000000000000000000100000000”。
另一方面,假设32位乘积Y’具有值
“011010011010010110010110.11111111”。
其中符号“.”表示乘积Y’的假定二进制小数点P’。该值的小数部分为8位宽。
位于位0和位7之间的乘积Y’的小数的二进制值“11111111”,比0.1TWO或0.5TEN大。因此,数“000000000000000000000001.00000000”=“1TWO”的位置数据PT的值被加到乘积Y’的位8上,结果为
“011010011010010110010111.11111111”。
同样,假设32位乘积Y’值为“011010011010010110010110.00000001”。
位于位0和位7之间的乘积Y’的小数的二进制值“00000001”,比0.1TWO或0.5TEN小。因此,数“000000000000000000000001.00000000”=“1TWO”的位置数据PT的值不被加到乘积Y’的位8上,结果为
“011010011010010110010111.11111111”
与四舍五入运算之前的值相同。
接下来,将参照图5对根据第一实施例的所示算术运算系统的处理顺序进行解释。
在步骤S1中,通过公用总线5的输入端16输入进此系统的增益K和变量x根据输入选择器1f的操作通过公用总线5被分别存储进寄存器1c和1d中。
在步骤S2中,存储在寄存器1c中的增益K由于输出选择器1g的操作被读出到总线9。在此步骤期间寄存器1c的内容保持不变。ALU2接收所读出的增益K并计算或检测其实际二进制小数点P的位置和将在移位器3中被移位的位数,将增益K的实际二进制小数点P的位置数据PT和位数数据n输出到总线11。
在步骤S3中,ALU2所计算的或检测到的位置数据PT和位数数据n通过公用总线5被分别地存储进寄存器1a和1b中。
在步骤S4中,存储在寄存器1a中的位置数据PT被读出以输入到移位器3中。移位器3将所输入的位置数据PT不做移位地输出到总线12。
在步骤S5中,被移位器3输出到总线12的位置数据PT,通过公用总线5被存储进假定小数点寄存器7中。所存储的位置数据PT在必要时可以由舍入电路6读出。
在步骤6中,存储在寄存器1c和1b中的增益K和位数数据n被读出到移位器3中。接着,移位器3将增益K左移等于位数数据n的特定位数,输出具有一个整数值的系数k到总线12。
在步骤S7中,系数k通过总线5被存储进寄存器1c中。因此,寄存器1c的内容从增益K变为系数k。
在步骤S8中,读出存储在寄存器1c中的系数k和存储在寄存器1d中的变量x以加载到乘法器4。随后,乘法器4将系数k和变量x相乘,得到乘积Y’(=k*x)。乘积Y’被输出到总线13。
在步骤S9中,舍入电路6通过总线13接收从乘法器4输出的乘积Y’。另一方面,舍入电路6接收存储在假定小数点寄存器7中的位置数据PT。接着,舍入电路6根据位置数据PT对乘积Y’四舍五入,将舍入乘积Y输出到总线8。
在步骤S10中,从舍入电路6输出的舍入乘积Y通过公用总线5被存储进寄存器1e中。
在步骤S11中,存储于寄存器1e中的舍入乘积Y和存储在寄存器1b中的位数数据n被读出以输入到移位器3中。移位器3将舍入乘积Y右移等于位数数据n的特定位数,输出乘积y到总线12。
在步骤S12中,从移位器3中输出的乘积y通过输出端17被输出并通过总线5被存储进寄存器1e中。
步骤S1到S12中寄存器存储器1的寄存器1a,1b,1c,1d,和1e和假定小数点寄存器7中的内容如表1所示。
                                   表1
                          寄存器内容
   1a    1b    1c    1d    1e     7
步骤1    -    -     K     x    -     -
步骤2    -    -     K     x    -     -
步骤3    PT     n     K     x    -     -
步骤4    PT     n     K     x    -     -
步骤5    PT     n     K     x    -     PT
步骤6    PT     n     k     x    -     PT
步骤7    PT     n     k     x    -     PT
步骤8    PT     n     k     x    -     PT
步骤9    PT     n     k     x    -     PT
步骤10    PT     n     k     x    Y     PT
步骤11    PT     n     k     x    Y     PT
步骤12    PT     n     k     x    y     PT
对于根据图3和图5中的第一实施例的算术运算系统,增益K的实际小数点P的位置被作为实际小数点检测器的ALU检测,得到位置数据PT和位数数据n。没有实际小数点的系数k是由双向移位器3根据位数数据n将具有实际小数点P的增益K向左移位而产生的。均没有实际小数点的系数k和变量x被乘法器4相乘,由此输出作为第一乘积结果的乘积Y’。
所输出的作为第一乘积结果的乘积Y’接着被舍入电路6根据所指示的乘积Y’的假定小数点四舍五入,由此输出作为第二乘积结果的舍入乘积Y。
另外,作为第三乘积结果没有实际小数点的乘积y,是通过由移位器3对所舍入的作为第二乘积结果的舍入乘积Y根据位数数据n向右移位而产生的。
因此,能够不用任何专用的浮点算术运算DSP或专用的浮点算术运算单元而进行对增益K和变量x的浮点算术运算。这将能够降低此系统的造价。
另外,上述算术运算是通过使用作为一个实际小数点检测器的ALU2、寄存器1a和1b、双向移位器3,作为一个整数算术运算器的乘法器4,作为一个假定小数点指示器的假定小数点寄存器7,和舍入电路6来进行的。换句话说,此运算没有使用任何用于浮点算术运算的专用软件而是通过使用硬件设备来进行的。
其结果是,能够使CPU指令处理步骤最少而使用最小限度的硬件设备快速地进行此算术运算。
还有一个额外的优点在于由舍入电路6所进行的乘积结果Y’的舍入处理和寄存器存储器1的读取处理之间不会发生竞争。
                        第二实施例
图6中所示为根据本发明的第二实施例的算术运算系统。该系统除了(i)乘法器4的总线13没有被连到舍入电路6而是连到公用总线5和(ii)寄存器存储器1的总线10不仅被连到的移位器3和乘法器4还被连到舍入电路6之外,具有与图3所示的第一实施例大体相同的结构。
因此,为了简化说明这里通过在图6中用相同的参考标号或字符指代相同的或相应的元件省略关于相同结构的说明。
接下来,将参照图7对根据第二实施例的算术运算系统的处理顺序进行解释。
在步骤S1中,通过公用总线5的输入端16输入进此系统的增益K和变量x,根据输入选择器1f的操作通过公用总线5被分别存储进寄存器1c和1d中。
在步骤S2中,存储在寄存器1c中的增益K由于输出选择器1g的操作被读出到总线9。在此步骤期间寄存器1c的内容保持不变。ALU2接收所读出的增益K并计算或检测其实际二进制小数点P和将在移位器3中被移位的位数,将增益K的实际小数点P的位置数据PT和位数数据n输出到总线11。
在步骤S3中,ALU2所计算的或检测的位置数据PT和位数数据n通过公用总线5被分别地存储进寄存器1a和1b中。
在步骤S4中,存储在寄存器1a中的位置数据PT被读出以输入到移位器3中。移位器3并不移位而是将所输入的位置数据PT输出到总线12。
在步骤S5中,被移位器3输出到总线12的位置数据PT,通过公用总线5被存储进假定小数点寄存器7中。所存储的位置数据PT在必要时可以由舍入电路6读出。
在步骤S6中,存储在寄存器1c和1b中的增益K和位数数据n被读出到移位器3中。接着,移位器3将增益K左移等于位数数据n的特定位数,输出具有一个整数值的系数k到总线12。
在步骤S7中,系数k通过总线5被存储进寄存器1c中。因此,寄存器1c的内容从增益K变为系数k。
在步骤S8中,存储在寄存器1c中的系数k和存储在寄存器1d中的变量x被加载到乘法器4。随后,乘法器4将系数k和变量x相乘,得到乘积Y’(=k*x)。乘积Y’被输出到总线13。
上面的步骤S1到S8与第一实施例的步骤S1到S8相同。
在步骤S9中,从乘法器4输出的乘积Y’通过总线13和5被存储进寄存器1e中。
在步骤S10中,存储在寄存器1e中的乘积Y’被读出并加载到舍入电路6。另一方面,存储在假定小数点寄存器7中的位置数据PT被读出以加载到舍入电路6。接着,舍入电路6根据位置数据PT对乘积Y’四舍五入,输出舍入的乘积Y到总线8。
在步骤S11中,从舍入电路6输出的舍入乘积Y通过总线8和公用总线5被存储进寄存器1e中。
在步骤S12中,存储在寄存器1e中的舍入乘积Y和存储在寄存器1b中的位数数据n被读出以输入到移位器3中。移位器3将舍入乘积Y右移等于位数数据n的位数,输出乘积y到总线12。
在步骤S13中,从移位器3输出的乘积y通过输出端17被输出并通过总线5存储在寄存器1e中。
步骤S1到S12中寄存器存储器1的寄存器1a,1b,1c,1d,和1e和假定小数点寄存器7中的内容如表2所示。
                                  表2
                          寄存器内容
  1a    1b    1c    1d    1e     7
步骤1   -     -     K     x    -     -
步骤2   -     -     K     x    -     -
步骤3   PT     n     K     x    -     -
步骤4   PT     n     K     x    -     -
步骤5   PT     n     K     x    -     PT
步骤6   PT     n     K     x    -     PT
步骤7   PT     n     k     x    -     PT
步骤8   PT     n     k     x    -     PT
步骤9   PT     n     k     x    Y’     PT
步骤10   PT     n     k     x    Y’     PT
步骤11   PT     n     k     x    Y     PT
步骤12   PT     n     k     x    Y     PT
步骤13   PT     n     k     x    y     PT
根据图6和7中所示的第二实施例的算术运算系统具有与第一实施例相同的优点,因为此系统具有与第一实施例大体相同的结构。
其有一个额外的优点在于可以在必要时通过使用存储在寄存器1e中的乘积结果Y’进行多种算术运算。
                        第三实施例
图8中所示为根据本发明的第三实施例的算术运算系统。该系统除了(i)乘法器4和其相应的总线13被取消了和(ii)寄存器存储器1的总线10不仅被连到的移位器3还被连到ALU2和舍入电路6之外,具有与图3所示的第一实施例大体相同的结构。
因此,为了简化说明这里通过在图8中用相同的参考标号或字符指代相同的或相应的元件而省略关于相同结构的说明。
接下来,将参照图9对根据第三实施例的算术运算系统的处理顺序进行解释。
在步骤S1中,其通过公用总线5的输入端16输入进此系统的增益K和变量x,根据输入选择器1f的操作通过公用总线5被分别存储进寄存器1c和1d中。
在步骤S2中,存储在寄存器1c中的增益K由于输出选择器1g的操作被读出到总线9。在此步骤期间寄存器1c的内容保持不变。ALU2接收所读出的增益K并计算或检测其实际二进制小数点P和将在移位器3中被移位的位数,将增益K的实际二进制小数点P的位置数据PT和位数数据n输出到总线11。
在步骤S3中,ALU2所计算的或检测的位置数据PT和位数数据n通过公用总线5被分别地存储进寄存器1a和1b中。
在步骤S4中,存储在寄存器1a中的位置数据PT被读出以输入到移位器3中。移位器3并不移位而是将所输入的位置数据PT输出到总线12。
在步骤S5中,被移位器3输出到总线12的位置数据PT,通过公用总线5被存储进假定小数点寄存器7中。所存储的位置数据PT在必要时可以由舍入电路6读出。
在步骤S6中,存储在寄存器1c和1b中的增益K和位数数据n被读出以通过总线9和10加到移位器3中。接着,移位器3将增益K左移等于位数数据n的特定位数,输出具有一个整数值的系数k到总线12。
在步骤S7中,系数k通过总线5被存储进寄存器1c中。因此,寄存器1c的内容从增益K变为系数k。
上面的步骤S1到S7与第一实施例的步骤S1到S7相同。
在步骤S8中,存储在寄存器1b中的位数数据n和存储在寄存器1d中的变量x被读出并通过总线9和10加载到移位器3。接着,为了将变量x和系数k的实际小数点对齐,移位器3将变量x左移等于位数数据n的位数,产生一个没有实际小数点的变量X。变量X被输出到总线12。
在步骤S9中,从移位器3输出的变量X通过总线12和5被存储到寄存器1d中。寄存器1d的内容从x变为X。
在步骤S10中,存储在寄存器1c和1d中的系数k和变量X被读出并通过总线9和10加载到ALU2。接着,ALU2将系数k与变量X相加,输出一个和Z’到总线11。
在步骤S11中,从ALU2输出的和Z’通过总线11和公用总线5被存储进寄存器1e中。
在步骤S12中,存储在寄存器1e中的和Z’被读出并通过总线10被输入进输入电路6。另一方面,存储在假定小数点寄存器7中的位置数据PT被读出并通过总线14被输入进舍入电路6。舍入电路6根据位置数据PT对和Z’四舍五入,输出舍入的和Z到总线6。
在步骤S13中,舍入的和Z通过总线8和5被存储进寄存器1e中。
在步骤S14中,存储在寄存器1e中的舍入的和Z和存储在寄存器1b中的位数数据n被读出并通过总线9和10被输入进移位器3。移位器3将舍入的和Z右移等于位数数据n的位数,以输出和z到总线12。
在步骤S15中,从移位器3输出的和z通过输出端17被输出并通过总线5存储进寄存器1e中。
步骤S1到S15中寄存器存储器1的寄存器1a,1b,1c,1d,和1e和假定小数点寄存器7中的内容如表3所示。
                                  表3
                           寄存器内容
  1a    1b    1c    1d    1e     7
步骤1   -     -     K     x     -     -
步骤2   -     -     K     x     -     -
步骤3   PT     n     K     x     -     -
步骤4   PT     n     K     x     -     -
步骤5   PT     n     K     x     -     PT
步骤6   PT     n     K     x     -     PT
步骤7   PT     n     k     x     -     PT
步骤8   PT     n     k     x     -     PT
步骤9   PT     n     k     X     -     PT
步骤10   PT     n     k     X     -     PT
步骤11   PT     n     k     X     Z’     PT
步骤12   PT     n     k     X     Z’     PT
步骤13   PT     n     k     X     Z     PT
步骤14   PT     n     k     X     Z     PT
步骤15   PT     n     k     X     z     PT
根据图8和9中所示的第三实施例的算术运算系统具有与第一实施例相同的优点,因为此系统具有与第一实施例大体相同的结构。
不象第一和第二实施例,在根据第三实施例的系统中进行的是加法运算。
尽管本发明的优选形式已被说明,应该理解的是不背离发明的精神的修正对那些技术熟练者是明显的。因此,发明的范围完全由接下来的权利要求所确定。

Claims (14)

1.一种用于对具有实际小数点的第一运算数和没有实际小数点的第二运算数进行算术运算的算术运算系统;
上述系统特征在于包括:
(a)一个用于检测上述第一运算数的上述实际小数点以输出一个第一位置数据和位数数据的实际小数点检测器;
(b)一个用于存储上述第一位置数据的第一寄存器;
(c)一个用于存储上述位数数据的第二寄存器;
(d)一个按照存储在第二寄存器中的上述位数数据的特定位数将上述第一运算数左移以输出一个没有实际小数点的第三运算数的第一移位器;
(e)一个用于对上述第二和第三运算数进行算术运算以输出一个第一运算结果的整数算术运算器;
(f)一个用于根据上述第一位置数据指示上述第一运算结果的假定小数点的位置的假定小数点指示器。
(g)一个用于根据由上述假定小数点指示器所指示的上述第一运算结果的上述假定小数点对上述第一运算结果四舍五入以输出一个第二运算结果的舍入器;和
(h)一个用于根据存储在上述第一寄存器中的上述位置数据对上述第一运算结果四舍五入的舍入器;和
(i)一个用于将上述第二运算结果右移对应于上述位数数据的位数以输出一个没有实际小数点的第三运算结果的第二移位器;
其中上述第三运算结果代表了上述第一和第二运算数的一个舍入的运算结果。
2.如权利要求1所述的系统,其特征在于上述整数算术运算器的上述一个输出被连接到上述舍入器的一个输入,以使从上述整数算术运算器输出的上述第一运算结果被直接地输入进上述舍入器。
3.如权利要求1所述的系统,其特征在于还包括一个用于存储从上述整数算术运算器输出的上述第二运算结果的第三寄存器;
其中存储在上述第三寄存器中的上述第二运算结果被加载到上述舍入器。
4.如权利要求1所述的系统,其特征在于上述假定小数点指示器输出一个给出上述第一运算结果的上述假定小数点的上述位置的第二位置数据;
且其中上述第二位置数据被存储在一个第四寄存器中。
5.如权利要求1所述的系统,其特征在于上述实际小数点寄存器由一个ALU实现。
6.如权利要求1所述的系统,其特征在于上述第一和第二移位器由一个单独的双向移位器实现。
7.一种用于对具有实际小数点的第一运算数和一个没有实际小数点的第二运算数进行算术运算的算术运算系统;
上述系统特征在于包括:
(a)一个用于检测上述第一运算数的上述实际小数点以输出一个第一位置数据和位数数据的ALU;
(b)一个用于存储上述第一位置数据的第一寄存器;
(c)一个用于存储上述位数数据的第二寄存器;
(d)一个用于将上述第一运算数左移对应于存储在第二寄存器中的上述位数数据的特定位数以输出一个没有实际小数点的第三运算数的双向移位器;
(e)一个将上述第二和第三运算数相乘以输出一个第一乘积结果的乘法器;
(f)一个用于存储上述第一乘积结果的假定小数点的第二位置数据的第三寄存器;和
(g)一个用于根据存储在上述第三寄存器中的上述第二位置数据对上述第一乘积结果四舍五入以输出一个第二乘积结果的舍入电路
其中上述双向移位器将上述第二乘积结果右移对应于上述第一乘积结果的上述假定小数点的上述第二位置数据的特定位数以输出一个没有实际小数点的第三乘积结果;
其中上述第三运算结果代表了上述第一和第二运算数的一个舍入的乘积结果。
8.如权利要求7所述的系统,其特征在于上述乘法器的上述一个输出被连接到上述舍入电路的一个输入,以使从上述乘法器输出的上述第二乘积结果被直接地加载到上述舍入电路。
9.如权利要求7所述的系统,其特征在于还包括一个用于存储上述第二乘积结果的第四寄存器;
其中从上述乘法器输出的上述第二乘积结果通过上述第四寄存器被加载到上述舍入电路。
10.如权利要求7所述的系统,其特征在于上述第一和第二寄存器被设置在一第一硬件设备中,且上述第三寄存器由一个第二硬件设备实现,其控制与第一硬件设备无关。
11.一种用于对具有实际小数点的第一运算数和一个没有实际小数点的第二运算数进行算术运算的算术运算系统;
上述系统特征在于包括:
(a)一个用于检测上述第一运算数的上述实际小数点以输出一个第一位置数据和位数数据的ALU;
(b)一个用于存储上述第一位置数据的第一寄存器;
(c)一个用于存储上述位数数据的第二寄存器;
(d)一个用于将上述第一运算数左移对应于存储在第二寄存器中的上述位数数据的特定位数以输出一个没有实际小数点的第三运算数的双向移位器;
(e)上述ALU对上述第二和第三运算数进行算术运算以输出一个第一运算结果;
(f)一个用于存储上述第一运算结果的假定小数点的第二位置数据的第三寄存器;和
(g)一个用于根据存储在上述第三寄存器中的上述第二位置数据对上述第一运算结果四舍五入以输出一个第二运算结果的舍入电路;
其中上述双向移位器根据上述第一运算结果的上述假定小数点的上述第二位置数据将上述第二运算结果右移特定位数以输出一个没有实际小数点的第三运算结果;
其中上述第三运算结果代表了上述第一和第二运算数的一个舍入的运算结果。
12.如权利要求11所述的系统,其特征在于还包括一个用于存储上述第二运算结果的第四寄存器;
其中从上述ALU输出的上述第二运算结果通过上述第四寄存器被加载到上述舍入电路。
13.如权利要求11所述的系统,其特征在于上述第一和第二寄存器被设置在一个第一硬件设备中,且上述第三寄存器由一第二硬件设备实现,其控制与上述第一硬件设备无关。
14.一种用于对具有实际小数点的第一运算数(K)和一个没有实际小数点的第二运算数(x)进行算术运算的算术运算系统;
其中上述第一运算数的上述实际小数点的位置被检测以输出一个第一位置数据(PT)和一个位数数据(n),上述位置数据和上述位数数据被分别地存储在第一和第二寄存器(1a,1b)中。
其中上述第一运算数被左移对应于存储在上述第二寄存器中的上述位数数据的特定位数以输出一个没有实际小数点的第三运算数(k);
其中上述第二和第三运算数进行一整数算术运算以输出一个第一运算结果(Y’);
其中根据存储在上述第一寄存器中的上述位置数据对上述第一运算结果四舍五入以输出一个第二运算结果(Y);
其中上述第二运算结果被右移对应于存储在上述第二寄存器中的上述位数数据的特定位数以输出一个没有实际小数点的第三运算结果(y);
其中上述第三运算结果代表了上述第一和第二运算数的一个最终运算结果;
其特征在于:
上述第一运算数被一个第一移位器向左移位且上述第二运算结果被一个第二移位器向右移位;和
上述第一运算结果被一个舍入器四舍五入。
CN97122094A 1996-12-20 1997-12-22 算术运算系统 Pending CN1195808A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP96-340695 1996-12-20
JP8340695A JPH10187416A (ja) 1996-12-20 1996-12-20 浮動小数点演算装置

Publications (1)

Publication Number Publication Date
CN1195808A true CN1195808A (zh) 1998-10-14

Family

ID=18339434

Family Applications (1)

Application Number Title Priority Date Filing Date
CN97122094A Pending CN1195808A (zh) 1996-12-20 1997-12-22 算术运算系统

Country Status (5)

Country Link
US (1) US6014683A (zh)
EP (1) EP0849662A3 (zh)
JP (1) JPH10187416A (zh)
KR (1) KR100297312B1 (zh)
CN (1) CN1195808A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100367190C (zh) * 2004-10-27 2008-02-06 威盛电子股份有限公司 二补数电路
CN103593165A (zh) * 2006-09-22 2014-02-19 英特尔公司 响应指令执行舍入运算
CN105910596A (zh) * 2015-02-20 2016-08-31 精工爱普生株式会社 电路装置、物理量检测装置、电子设备以及移动体

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6317770B1 (en) * 1997-08-30 2001-11-13 Lg Electronics Inc. High speed digital signal processor
JP3755602B2 (ja) * 2003-03-04 2006-03-15 ソニー株式会社 信号処理装置、信用処理装置用プログラム、信号処理装置用プログラムを記録した記録媒体、及び信号処理方法
JP4482052B2 (ja) * 2006-02-14 2010-06-16 富士通株式会社 演算装置および演算方法
US7958179B2 (en) * 2006-12-06 2011-06-07 Electronics And Telecommunications Research Institute Arithmetic method and device of reconfigurable processor
JP7087918B2 (ja) * 2018-10-31 2022-06-21 富士通株式会社 演算処理装置及びその制御方法

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60164247A (ja) * 1984-02-07 1985-08-27 Mitsubishi Electric Corp 回転探傷装置
JPH01116730A (ja) * 1987-10-30 1989-05-09 Mitsubishi Electric Corp デイジタル信号処理プロセツサ
JPH02183828A (ja) * 1989-01-11 1990-07-18 Fujitsu Ltd 浮動小数点乗算器
US5208770A (en) * 1989-05-30 1993-05-04 Fujitsu Limited Accumulation circuit having a round-off function
JPH0473249A (ja) * 1990-07-14 1992-03-09 Oji Paper Co Ltd 不織布の製造方法及び装置
JPH0473249U (zh) * 1990-10-29 1992-06-26
US5128890A (en) * 1991-05-06 1992-07-07 Motorola, Inc. Apparatus for performing multiplications with reduced power and a method therefor
JPH05224888A (ja) * 1992-02-13 1993-09-03 Fujitsu Ltd 小数点位置可変型データの乗算回路
GB2268604A (en) * 1992-07-02 1994-01-12 Motorola Inc Integer divider.
JPH06180649A (ja) * 1992-12-14 1994-06-28 Hitachi Ltd マイクロプロセッサ
JP2513139B2 (ja) * 1993-07-27 1996-07-03 日本電気株式会社 信号処理プロセッサ

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100367190C (zh) * 2004-10-27 2008-02-06 威盛电子股份有限公司 二补数电路
CN103593165A (zh) * 2006-09-22 2014-02-19 英特尔公司 响应指令执行舍入运算
US9223751B2 (en) 2006-09-22 2015-12-29 Intel Corporation Performing rounding operations responsive to an instruction
US9286267B2 (en) 2006-09-22 2016-03-15 Intel Corporation Performing rounding operations responsive to an instruction
CN103593165B (zh) * 2006-09-22 2017-10-24 英特尔公司 响应指令执行舍入运算
US10067761B2 (en) 2006-09-22 2018-09-04 Intel Corporation Performing rounding operations responsive to an instruction
US10108416B2 (en) 2006-09-22 2018-10-23 Intel Corporation Performing rounding operations responsive to an instruction
US10114640B2 (en) 2006-09-22 2018-10-30 Intel Corporation Performing rounding operations responsive to an instruction
US10114641B2 (en) 2006-09-22 2018-10-30 Intel Corporation Performing rounding operations responsive to an instruction
CN105910596A (zh) * 2015-02-20 2016-08-31 精工爱普生株式会社 电路装置、物理量检测装置、电子设备以及移动体
CN105910596B (zh) * 2015-02-20 2020-12-08 精工爱普生株式会社 电路装置、物理量检测装置、电子设备以及移动体

Also Published As

Publication number Publication date
US6014683A (en) 2000-01-11
JPH10187416A (ja) 1998-07-21
EP0849662A3 (en) 1999-12-01
KR100297312B1 (ko) 2001-10-24
EP0849662A2 (en) 1998-06-24
KR19980064405A (ko) 1998-10-07

Similar Documents

Publication Publication Date Title
CN105468331B (zh) 独立的浮点转换单元
CN1961284A (zh) 使用n位乘加操作实现不变量除数的整数除法的方法和系统
US7949696B2 (en) Floating-point number arithmetic circuit for handling immediate values
US10073676B2 (en) Reduced floating-point precision arithmetic circuitry
CN1296817C (zh) 模乘方法及装置及模乘计算单元
CN1838024A (zh) 对数处理系统和方法
CN1928809A (zh) 用于执行浮点运算的系统、设备和方法
CN1306390C (zh) 使用带符号的数位表示的乘法器
WO2002023326A1 (en) Handler for floating-point denormalized numbers
CN1195808A (zh) 算术运算系统
US11954456B2 (en) Float division by constant integer
CN1821951A (zh) 算术单元
CN1238604A (zh) 里德-所罗门编码装置与编码方法
CN1826580A (zh) 具有初步饱和检测的加法或者减法运算单元
CN1031613A (zh) 二—十进制加法器电路
US20100174764A1 (en) Reuse of rounder for fixed conversion of log instructions
KR910001535A (ko) 디지탈 신호처리 시스템에서의 실시간 2's 콤플리멘트코드 숫자코드의 승산방법 및 회로
CN1890629A (zh) 使用按比例调整的整数的浮点运算
CN111666065B (zh) 基于cordic的三角函数流水线迭代求解方法和装置
Lyu et al. PWL-based architecture for the logarithmic computation of floating-point numbers
CN1099071C (zh) 具有比特移位单元的数字滤波器
EP0394161A2 (en) Selection of divisor multipliers in a floating point divide circuit
KR100290906B1 (ko) 부동소수점곱셈기에서반올림과덧셈을동시에수행하는장치및방법
US20160085508A1 (en) Optimized structure for hexadecimal and binary multiplier array
CN1731344A (zh) 快速多周期二进制及十进制加法器单元的高度并行结构

Legal Events

Date Code Title Description
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C06 Publication
PB01 Publication
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication