CN1224893C - 幂运算单元和数据处理系统 - Google Patents

幂运算单元和数据处理系统 Download PDF

Info

Publication number
CN1224893C
CN1224893C CNB011109963A CN01110996A CN1224893C CN 1224893 C CN1224893 C CN 1224893C CN B011109963 A CNB011109963 A CN B011109963A CN 01110996 A CN01110996 A CN 01110996A CN 1224893 C CN1224893 C CN 1224893C
Authority
CN
China
Prior art keywords
mode
signal
operand
value
power
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.)
Expired - Lifetime
Application number
CNB011109963A
Other languages
English (en)
Other versions
CN1319797A (zh
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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of CN1319797A publication Critical patent/CN1319797A/zh
Application granted granted Critical
Publication of CN1224893C publication Critical patent/CN1224893C/zh
Anticipated expiration legal-status Critical
Expired - Lifetime 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
    • 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/74Selecting or encoding within a word the position of one or more bits having a specified value, e.g. most or least significant one or zero detection, priority encoders

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)
  • Complex Calculations (AREA)

Abstract

一种接收操作数和输出该操作数的幂的幂单元,该操作数的幂等于和该操作数的最高有效位(MSB)具有相同值的该操作数的连续位的数目。幂单元可以得到这样操作数的幂值,其位宽度大于前导一检测器(或前导零检测器)的处理的位的宽度。

Description

幂运算单元和数据处理系统
技术领域
本发明通常涉及数据处理系统,并且更具体地涉及一种包括用于输出和操作数最高有效位具有相同值的连续位的数目的幂运算单元的数据处理单元。
背景技术
用于数据处理系统的诸如数字信号处理器(DSP)的幂单元输出和操作数的最高有效位(MSB)具有相同值的连续位的数目。从这样的幂单元输出的幂值被用做执行定点算术运算或乘法/除法算术运算中的移位信息,提高数据处理系统的运算速度。
例如,如果二进制“0.0000011”被表示为定点数,则执行五次左移。因此幂值是十进制数“5”。将幂单元用于定点变换,可以容易地获得幂值。亦即和最高有效位的具有相同值的幂值是十进制数“6”。并且从“6”中减去“1”成为“5”。
可以理解随着用于精确数据表达的在数据处理字位中使用的数据位数的增加,其中形成的电路的处理位宽度必须增加。因此,如果数据处理系统的处理位宽度增加,则其中的幂单元的处理位宽度也必须增加。这就导致了硬件体积以及制造成本的增加。
发明内容
因此,本发明的目的是提供一种数据处理系统中的幂运算单元,能够用最少硬件的增加处理至少两倍的数据位。
为了实现本发明的上述和其他的目的,提供一种用于接收操作数并输出操作数的幂的幂运算单元,以及一种包括幂运算单元的数据处理系统。从幂运算单元输出的操作数的幂等于和操作数最高有效位(MSB)具有相同值的操作数的连续位的数目。
根据本发明的第一方面,提供一种用于接收操作数并输出操作数的幂的幂运算单元。幂运算单元包括:模式信号,用于表示单精度模式或双精度模式,其中双精度模式在单精度模式之后产生;检测装置,用于检测与输入操作数的最高有效位具有相同值的该操作数的连续位的数目,并输出相应的检测值;逻辑电路,用于当该操作数的所有位具有相同值时设置第一状态位,并且设置第二状态位到该操作数的最低有效位;加数和进位控制装置,用于当模式信号表示单精度模式时,输出所述检测值作为加数信号;和当模式信号表示双精度模式时,基于单精度模式的第一状态位和第二状态位,选择性地输出所述检测值作为加数信号,并且基于单精度模式的第一状态位和第二状态位以及该操作数的最高有效位产生进位信号;被加数控制装置,用于产生单精度模式的幂值作为被加数信号;和加法器,用于将加数信号、被加数信号和进位信号相加以获得幂值。
根据本发明的第二方面,提供一种数据处理系统。该数据处理系统包括幂运算单元,用于输出操作数的幂值,该操作数的幂值等于与该操作数的最高有效位具有相同值的该操作数的连续位的数目;状态寄存器,用于存储第一和第二状态位;和解码器,用于对包含操作数的指令进行解码,当解码的指令是幂指令时,提供操作数和存储在所述的状态寄存器中的第一和第二状态位到所述的幂运算单元,并根据解码的指令是单精度幂指令或双精度幂指令分别输出具有第一电平或第二电平的模式信号,其中幂运算单元包括:第一和第二锁存器,分别用于锁存从所述状态寄存器提供的第一和第二状态位;检测装置,用于检测与该操作数的最高有效位具有相同值的该操作数的连续位的数目,并输出相应的检测值;加数和进位控制装置,当模式信号是第一电平时,输出所述检测值作为加数信号;当模式信号是第二电平时,根据第一状态位是置位状态以及第二状态位与该操作数的最高有效位相同,选择性地输出所述检测值作为加数信号;以及当模式信号是第二电平时,根据第一状态位是置位状态以及第二状态位与该操作数的最高有效位相同,输出进位信号;加法器,用于将加数信号、被加数信号和进位信号相加以获得幂值;被加数控制装置,用于将单精度模式的幂值作为被加数信号传送给加法器;和逻辑电路,当操作数的所有位具有相同值时,用于设置第一状态位,设置第二状态位到操作数的最低有效位,并且将第一和第二状态位施加给状态寄存器;其中所述的第一和第二锁存器还用于在预定时间内保持所锁存的值,并且依次产生单精度幂指令和双精度幂指令。
附图说明
通过对下列根据附图的优选实施例的详细描述,本发明的这些和其他观点、特点和优点将会变得更加清楚。
图1是说明根据本发明的优选实施例的数字信号处理器(DSP)的结构的框图;
图2是说明根据本发明的优选实施例的幂单元的框图,其中通过使用24-位前导一检测器,幂单元能够获得48-位操作数的幂值;
图3进一步说明根据本发明的优选实施例的图2中的加数和进位控制器的原理图;
图4是说明根据本发明的优选实施例的幂单元的操作的定时图。
具体实施方式
图1是说明根据本发明的优选实施例的数字信号处理器(DSP)的结构的框图。处理器总线30连接外部程序存储器10数字信号处理器20。处理器总线30包括:程序地址总线31、程序数据总线32、数据总线33和控制总线34。数字信号处理器20包括:耦合到处理器总线30上的管线控制器110、解码器120、算术逻辑单元(ALU)130、状态寄存器140、幂单元150、桶形(barrel)移位器160和乘法器170。
在优选实施例中,数字信号处理器20执行管线处理。管线包括诸如被管线控制器110控制的取数、解码和执行步骤之类。管线控制器110产生将从程序存储器10中取数的指令的地址。解码器120解码来自程序存储器10取数的指令。如果解码的指令是幂指令,则解码器120将包括在取数指令中的操作数提供到幂单元150。接着,解码器120控制存储在状态寄存器140中的状态位(溢出位和进位位)并将其提供到幂单元150。幂指令分为单精度(或标准)幂指令和双精度幂指令。
EXP A
上述指令是用于计算操作数A的幂的单精度幂指令,操作数A包括例如24位(单精度)。48-位(双精度)操作数的幂值可以在两个周期内获得,使用下列指令。
//Double precision exponent evaluation about{A,B}
EXP A
EXPC B
亦即,使用单精度幂指令“EXP A”,可以获得48-位操作数的上24位(A)的幂值。接着,使用双精度幂指令“EXC B”,可以获得下24位(A)的幂值。在这种情况下,双精度幂指令的产生必须跟在单精度幂指令之后。48-位操作数的总的幂值等于上24位(A)的幂值和下24位(B)的幂值相加。
图2是说明根据本发明的优选实施例的幂单元150的框图,在图2的实施例中,48-位操作数的幂值可以通过使用24位前导一检测器234来获得。
幂单元150包括:锁存器202、204、206、208和210、逻辑电路220、幂检测器230、加数和进位控制器240、与门250和260和加法器270。锁存器202和204分别接收并锁存进位位CARRYi-1和溢出位OVERFLOWi-1。进位位CARRYi-1和溢出位OVERFLOWi-1存储在状态寄存器140中。锁存器206锁存通过程序数据总线32输入的操作数DATA[23:0]。锁存器208锁存指示在解码器120中解码的指令是否是单精度幂指令或双精度幂指令的模式信号MODE。如果解码的指令是单精度幂指令,则模式信号MODE具有高电平(逻辑“1”)。但是,如果解码的指令是双精度幂指令,则模式信号MODE具有低电平(逻辑“0”)。锁存器210锁存前一操作数的幂EXPi-1。锁存器202、204、206、208和210在一个周期内保持锁存值。
幂检测器230包括多路转换器232和24位前导一检测器(leading onedetector)234,并且检测操作数DATA[23:0]的幂值。如果锁存到锁存器206的操作数的最高有效位DATA[23]是“0”,则多路转换器232反转并输出锁存在锁存器206中的操作数。如果锁存到锁存器206的操作数的最高有效位DATA[23]是“1”,则多路转换器232按照原样(即,不反转)输出所锁存的操作数。因此,从多路转换器232中输出的操作数的最高有效位(MSB)总是“1”。前导一检测器234接收从多路转换器232输出的操作数,并从第(MSB-1)位开始检测连续为“1”的位的数目,因为最高有效位总是“1”。前导一检测器234可以检测和最高有效位(“1”)具有相同值的连续位的数目(即,幂值)。
最好幂检测器230还能够使用前导零检测器取代前导一检测器234。在这种情况下,如果最高有效位是“0”,则多路转换器232照原样输出锁存的操作数到锁存器206。但是,如果最高有效位“1”,则多路转换器232反转并输出所锁存的操作数到锁存器206。这里给出本发明提供的示范,本领域的一般技术人员在保持本发明的精神和范围的同时将能够预期本发明的这些和其他的基本变型。
如果解码的指令是单精度幂指令,则在幂检测器230中检测的值是操作数A的真幂值。如果解码的幂指令是双精度幂指令,则检测值是操作数B的幂值。因此,将检测值和以前的操作数的幂值相加就得到双精度操作数的真幂值。根据解码的指令是单精度幂指令还是双精度幂指令,在幂检测器230中检测的值被原样输出,或与以前的操作数的幂值相加。这样的操作是通过加数和进位控制器240、与门250和260以及加法器270来执行的。
逻辑电路220包括多路转换器222和228、与门224和全一测试器226。全一测试器226测试从幂检测器230的多路转换器232中输出的操作数的所有的位是否具有相同值。在优选实施例中,多路转换器232反转/不反转并输出操作数DATA[23:0],以便最高有效位是“1”。因此,通过测试操作数的所有位是否都是“1”,可以确定各位是否具有相同值。全一测试器226包括例如与门,并且如果所有的位具有相同值(“1”),输出高电平信号。
如果解码的指令是单精度幂指令(即,模式信号MODE是低电平),则从全一测试器226输出的信号被输出到溢出位OVERFLOWi。亦即,如果操作数DATA[23:0]的所有位都是“1”,则溢出位OVERFLOWi的值被设为“1”。进位位CARRYi被设为锁存到锁存器206的操作数的最低位DATA[0]。
如果解码的指令是双精度幂指令(即,模式信号MODE是高电平),则使用另一种方式设置溢出位OVERFLOWi的值。具体地说,如果当前操作数的最高有效位DATA[23]是“0”,则多路转换器222反转并输出以前的进位位CARRYi-1。但是,如果当前操作数的最高有效位DATA[23]是“1”,则多路转换器222原样输出以前的进位位CARRYi-1。与门224根据全一测试器226的输出信号执行与操作。与门224的输出信号被设置为溢出位OVERFLOWi。如果解码的指令是双精度幂指令,当CARRYi-1具有和当前操作数的DATA[23]相同的值时,则全一测试器226的输出信号被设置为OVERFLOWi
换言之,如果在执行单精度幂指令之后,溢出位OVERFLOWi被设置为“1”,则24-位操作数的所有位具有相同值。如果在执行双精度幂指令之后,溢出位OVERFLOWi被设置为“1”,则48-位操作数的所有位具有相同值。在双精度幂指令的情况下,尽管上24-位具有相同值并且下24-位具有相同值,最好上24-位的值可以和下24-位的值不同。如果溢出位OVERFLOWi没有被设置为“1”,则进位位CARRYi、多路转换器222和与门224被用于检测以前的操作数A的最低位是否等于当前操作数B的最高有效位。
从逻辑电路220输出的进位位CARRYi和溢出位OVERFLOWi被存储在状态寄存器140中。但是,当执行指令时,锁存在锁存器202和204中的以前的进位位CARRYi-1和以前的溢出位OVERFLOWi-1被保持一个周期。
加数和进位控制器240接收来自锁存器202、204、206和208中锁存的值CARRYi-1、OVERFLOWi-1、MODE和DATA[23],并组合这些值以产生屏蔽信号MASK和进位信号Cin。图3进一步说明根据本发明的优选实施例的图2中的加数和进位控制器的原理图。加数和进位控制器240包括第一逻辑电路242和第二逻辑电路244。第一逻辑电路242包括与门302和308、异或门304和反相器306。第二逻辑电路244包括反相器312和或门314。如果OVERFLOWi(由锁存器204锁存)是“1”,CARRYi-1(由锁存器202锁存)和DATA[23]彼此相同,且MODE是高电平(即,解码的指令是双精度幂指令),则第一逻辑电路242输出高电平控制信号CTRL。如果MODE是低电平(即,解码的指令是单精度幂指令)或CTRL是高电平,则第二逻辑电路244输出屏蔽信号MASK以及控制信号CTRL作为进位信号Cin被输出。
回到图2,与门250响应从加数和进位控制器240输出的屏蔽信号MASK,选择地将从幂检测器230输出的幂值提供到加法器270的加数X1。亦即,如果解码的指令是单精度幂指令,则从幂检测器230输出的幂值被直接提供到加法器270的加数X1。而且,如果解码的指令是双精度幂指令,且在下列条件下:以前的操作数的所有位具有相同值;以前操作数的最低位和当前操作数的最高有效位具有相同值,则从幂检测器230输出的幂值也被直接提供到加法器270的加数X1。
与门260根据模式信号MODE和以前的操作数的幂值EXPi-1执行与操作。接着与门260将与操作的结果提供到加法器270的被加数X2。加法器270将幂值X1和X2以及进位信号Cin相加。从加法器270输出的幂值EXPi是当前解码的幂指令的真幂值。
图4是说明根据本发明的优选实施例的幂单元的幂操作的定时图。为了获得双精度数“0.000 0000 0000 0000 0000 0000 0000 0000 0100 1100 10101110”的幂值,执行下列步骤:
EXP A
EXPC B
这里A=0.000 0000 0000 0000 0000 0000
B=0000 0000 0100 1100 1010 1110
在第一时钟周期(Cycle 1)中,管线控制器110产生将从程序存储器10中被提取的地址。在程序存储器10中被提取的指令EXP A放在程序数据总线32上。
在第二时钟周期(Cycle 2)中,被提取到程序存储器10的指令EXP A通过程序数据总线32提供到解码器120的指令寄存器IR。解码器120对存储在指令寄存器IR中的指令进行解码。如果解码的指令是幂指令,解码器120将操作数A提供到幂单元150。解码器120控制进位位CARRYi-l和存储在状态寄存器140中的溢出位OVERFLOWi-1,并将被提供到幂单元150。操作数A通过程序数据总线32被锁存到幂单元150的锁存器206中。进位位CARRYi-1和溢出位OVERFLOWi-1分别通过数据总线34被锁存在幂单元150的锁存器202和204中。因为解码的指令是单精度幂指令,所以解码器120产生低电平(逻辑“0”)的模式信号D_MODE。模式信号D_MODE被锁存在锁存器208中。管线控制器110在第二时钟周期(Cycle 2)中产生下一个提取地址ADDR2。在程序存储器10中的被提取指令EXP A放在程序数据总线32上。
在第三时钟周期中,幂单元150获得操作数A的幂值。因为锁存在锁存器206中的操作数DATA[23:0]的最高有效位(MSB)是“0”,则多路转换器232选择并输出反转的操作数。因此,通过多路转换器232输出的操作数是“1111 1111 1111 1111 1111 1111”。前导一检测器234检测从该操作数的第(MSB-1)位开始的连续的“1”的数目。在这个例子中,从前导一检测器234输出的值是十进制数“23”。
因为模式信号MODE是低电平,则从加数和进位控制器240输出的屏蔽信号MASK是高电平。于是,从前导一检测器234输出的信号通过与门250被提供到加法器270的加数X1。但是,被加数X2和进位位Cin变为“0”。因此,加法器270输出操作数A的幂值十进制数“23”。
因为从多路转换器232输出的操作数的所有位都是“1”,则溢出位OVERFLOWi被设置为“1”。而且,因为锁存在锁存器206中的操作数的最低位DATA[0]是“0”,则进位位CARRYi被设置为“0”。这些状态位OVERFLOWi和进位位CARRYi被存储在状态寄存器140中。
在第三时钟周期中,在程序存储器10中的被提取指令EXPC B通过程序数据总线被提供到解码器120的指令寄存器IR。解码器120对存储在指令寄存器IR中的指令进行解码。如果解码的指令是幂指令,则解码器120提供操作数B到幂单元150。解码器120控制存储在状态寄存器140中的进位位CARRYi和溢出位OVERFLOWi,将他们提供到幂单元150。在执行以前的幂指令EXP A之后,进位位CARRYi-1和溢出位OVERFLOWi-1具有被设置值。从解码器120提供的操作数B通过程序数据总线32被在锁存幂单元150的锁存器206中。从状态寄存器140中提供的进位位CARRYi-l和溢出位OVERFLOWi-1被分别锁存在幂单元150的锁存器202和204中。因为解码的指令是双精度幂指令,所以解码器120产生高电平(逻辑“1”)的模式信号D_MODE。
在第四时钟周期中,幂单元150获得操作数B(=0000 0000 0100 11001010 1110)的幂值。因为锁存在锁存器206中的操作数DATA[23:0]的最高有效位是“0”,所以多路转换器232选择并输出反转的操作数。因此通过多路转换器232输出的操作数是“1111 1111 1011 0011 0101 0001”。前导一检测器234检测操作数的从第(MSB-1)位开始的连续的“1”的数目。在这个例子中,从前导一检测器234输出的值是十进制数“8”。
因为模式信号MODE是高电平,以前的溢出位OVERFLOWi-1是“1”,以前的进位位CARRYi-1是“0”,并且操作数B的最高有效位DATA[23]是“0”,所以从加数和进位控制器240输出的屏蔽信号MASK变成高电平。因此,从加数和进位控制器240输出的信号通过与门250被提供到加法器270。因为模式信号MODE是高电平,以前操作数A的幂值EXPi-l通过与门250被提供到加法器270的加数X1。而且,因为模式信号MODE是高电平,以前操作数A的幂值EXPi-1通过与类型的门260被提供到加法器270的被加数X2。从加数和进位控制器240提供的进位信号Cin变为“1”。因此,加法器270输出X1、X2和Cin的和,即十进制数“32”作为操作数B的幂值。
前导一检测器234在第三周期中输出十进制数“23”作为操作数A的幂值,并在第四周期中输出十进制数“8”作为操作数B的幂值。因此操作数A和B的幂值的和是“31”。但是双精度数“0.000 0000 0000 0000 0000 0000 00000000 0100 1100 1010 1110”的实际值一定是“32”。如果以前的操作数A的所有位具有相同值,并且以前操作数A的最低位和当前操作数B的最高有效位具有相同值,则进位信号Cin变为“1”并且提供到加法器270中。
因为从多路转换器232输出的操作数的所有位不全是“1”,所以溢出位OVERPLOWi被设置为“0”。而且,因为锁存在锁存器206中的操作数的最低位DATA[0]是“0”,所以进位位CARRYi被设置为“0”。状态位OVERFLOWi和CARRYi通过数据总线33被存储在状态寄存器140中。
如上提到的,使用24-位前导一检测器,48-位操作数的幂值可以在第二时钟周期中获得。因此,能够获得在附加最少硬件的情况下具有位宽度大于前导一检测器的处理位宽度的操作数的幂值。因为带这样电路结构的幂单元可以具有处理要处理数据位的一半宽度的前导一检测器,所以可以减少硬件和制造成本。
尽管所说明的实施例已经参考附图进行了描述,将要明白本发明不局限在这些详细的实施例,并且对本领域专业技术人员在不背离本发明的精神和范围的情况下,可以从中得到各种其他的变化和更新。所有这些变化和更新通过附加的权利要求书中的陈述将被包括在本发明的范围内。

Claims (18)

1、一种幂运算单元,包括:
模式信号,用于表示单精度模式或双精度模式,其中双精度模式在单精度模式之后产生;
检测装置,用于检测与输入操作数的最高有效位具有相同值的该操作数的连续位的数目,并输出相应的检测值;
逻辑电路,用于当该操作数的所有位具有相同值时设置第一状态位,并且设置第二状态位到该操作数的最低有效位;
加数和进位控制装置,用于当模式信号表示单精度模式时,输出所述检测值作为加数信号;和当模式信号表示双精度模式时,基于单精度模式的第一状态位和第二状态位,选择性地输出所述检测值作为加数信号,并且基于单精度模式的第一状态位和第二状态位以及该操作数的最高有效位产生进位信号;
被加数控制装置,用于产生单精度模式的幂值作为被加数信号;和
加法器,用于将加数信号、被加数信号和进位信号相加以获得幂值。
2、如权利要求1的幂运算单元,其中所述的逻辑电路还用于测试操作数的所有位是否具有相同值。
3、如权利要求1的幂运算单元,其中当所述模式信号表示单精度模式时,所述的被加数信号和进位信号分别是“1”。
4、如权利要求3的幂运算单元,其中所述的加数和进位控制装置包括;
第一逻辑电路,当所述模式信号表示双精度模式且单精度模式的第一状态位是置位状态且该操作数的最高有效位与单精度模式的第二状态位相同时,用于输出控制信号;
第二逻辑电路,用于根据模式信号的反转值和控制信号执行或操作以输出屏蔽信号;和
第三逻辑电路,用于响应屏蔽信号选择并输出所述的检测装置的检测值,
其中控制信号是作为进位信号被提供的。
5、如权利要求3的幂运算单元,还包括:
第一锁存器,用于存储单精度模式的第一状态位;
第二锁存器,用于存储单精度模式的第二状态位;
第三锁存器,用于存储模式信号;
第四锁存器,用于存储操作数;和
第五锁存器,用于存储单精度模式的幂值,
其中第一至第五锁存器,还用于在预定时间内保持锁存的值。
6、如权利要求3的幂运算单元,其中所述的被加数控制装置包括第四逻辑电路,该第四逻辑电路用于根据模式信号和单精度模式的幂值来执行与操作以输出被加数信号。
7、如权利要求1的幂运算单元,其中所述的检测装置包括:
第一多路转换器,当操作数的最高有效位是逻辑“0”时,用于选择和输出操作数的反转值,以及当操作数的最高有效位是逻辑“1”时,用于选择和输出操作数;和
前导一检测器,用于检测从操作数的第“最高有效位-1”位开始的逻辑“1”的数目。
8、如权利要求7的幂运算单元,其中操作数具有的位宽度大于所述的前导一检测器的处理位宽度。
9、如权利要求7的幂运算单元,其中所述的逻辑电路包括测试器,该测试器用于测试来自所述的第一多路转换器的输出的所有位是否是逻辑“1”,并且输出相应的测试信号。
10、如权利要求9的幂运算单元,其中所述的逻辑电路包括:
第二多路转换器,当操作数的最高有效位是逻辑“1”时,用于选择和输出单精度模式的第二状态位,以及当操作数的最高有效位是逻辑“0”时,用于选择和输出单精度模式的第二状态位的反转值;
与门,用于根据来自所述的第二多路转换器的输出信号和来自所述测试器的测试信号执行与操作;和
第三多路转换器,用于响应于模式信号,选择和输出来自所述测试器的测试信号和来自所述与门的输出信号之一作为第一状态位。
11、一种数据处理系统包括:
幂运算单元,用于输出操作数的幂值,该操作数的幂值等于与该操作数的最高有效位具有相同值的该操作数的连续位的数目;
状态寄存器,用于存储第一和第二状态位;和
解码器,用于对包含操作数的指令进行解码,当解码的指令是幂指令时,提供操作数和存储在所述的状态寄存器中的第一和第二状态位到所述的幂运算单元,并根据解码的指令是单精度幂指令或双精度幂指令分别输出具有第一电平或第二电平的模式信号,
其中幂运算单元包括:
第一和第二锁存器,分别用于锁存从所述状态寄存器提供的第一和第二状态位;
检测装置,用于检测与该操作数的最高有效位具有相同值的该操作数的连续位的数目,并输出相应的检测值;
加数和进位控制装置,当模式信号是第一电平时,输出所述检测值作为加数信号;当模式信号是第二电平时,根据第一状态位是置位状态以及第二状态位与该操作数的最高有效位相同,选择性地输出所述检测值作为加数信号;以及当模式信号是第二电平时,根据第一状态位是置位状态以及第二状态位与该操作数的最高有效位相同,输出进位信号;
加法器,用于将加数信号、被加数信号和进位信号相加以获得幂值;
被加数控制装置,用于将单精度模式的幂值作为被加数信号传送给加法器;和
逻辑电路,当操作数的所有位具有相同值时,用于设置第一状态位,设置第二状态位到操作数的最低有效位,并且将第一和第二状态位施加给状态寄存器;
其中所述的第一和第二锁存器还用于在预定时间内保持所锁存的值,并且依次产生单精度幂指令和双精度幂指令。
12、如权利要求11的数据处理系统,其中所述的逻辑电路还包括测试器,该测试器用于测试操作数的所有位是否具有相同值。
13、如权利要求11的数据处理系统,其中所述的加数和进位控制装置包括:
第一逻辑电路,当模式信号具有第二电平,单精度模式的第一状态位是置位状态,以及单精度模式的第二状态位与该操作数的最高有效位相同时,用于输出控制信号;
第二逻辑电路,用于根据模式信号的反转值和控制信号执行或操作以输出屏蔽信号;和
第三逻辑电路,用于响应屏蔽信号选择并输出该检测装置的检测值作为加数信号,
其中控制信号是作为进位信号被提供的。
14、如权利要求11的数据处理系统,其中该被加数控制装置包括第四逻辑电路,该第四逻辑电路用于根据模式信号和单精度模式的幂值来执行与操作以输出被加数信号。
15、如权利要求11的数据处理系统,其中检测装置包括:
第一多路转换器,当操作数的最高有效位是逻辑“0”时,用于选择和输出操作数的反转值,以及当操作数的最高有效位是逻辑“1”时,用于选择和输出操作数;和
前导一检测器,用于检测从操作数的第“最高有效位-1”位开始的逻辑“1”的数目。
16、如权利要求15的数据处理系统,其中操作数具有的位宽度大于所述的前导一检测器的处理位宽度。
17、如权利要求15的数据处理系统,其中所述的逻辑电路包括测试器,该测试器用于测试来自所述的第一多路转换器的输出的所有位是否是逻辑“1”,并且输出相应的测试信号。
18、如权利要求15的数据处理系统,其中所述的逻辑电路包括:
第二多路转换器,当操作数的最高有效位是逻辑“1”时,用于选择和输出单精度模式的第二状态位,以及当操作数的最高有效位是逻辑“0”时,用于选择和输出单精度模式的第二状态位的反转值;
与门,用于根据来自所述的第二多路转换器的输出信号和来自所述测试器的测试信号执行与操作;和
第三多路转换器,用于响应于模式信号,选择和输出来自所述测试器的测试信号和来自所述与门的输出信号之一作为单精度模式的第一状态位。
CNB011109963A 2000-03-14 2001-03-09 幂运算单元和数据处理系统 Expired - Lifetime CN1224893C (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
KR10-2000-0012770A KR100385233B1 (ko) 2000-03-14 2000-03-14 데이터 프로세싱 시스템의 익스포넌트 유닛
KR12770/2000 2000-03-14
KR12770/00 2000-03-14

Publications (2)

Publication Number Publication Date
CN1319797A CN1319797A (zh) 2001-10-31
CN1224893C true CN1224893C (zh) 2005-10-26

Family

ID=19654999

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB011109963A Expired - Lifetime CN1224893C (zh) 2000-03-14 2001-03-09 幂运算单元和数据处理系统

Country Status (3)

Country Link
US (1) US6760738B2 (zh)
KR (1) KR100385233B1 (zh)
CN (1) CN1224893C (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100829788B1 (ko) * 2006-07-07 2008-05-16 삼성전자주식회사 커맨드 디코딩 시스템, 플래시 메모리 커맨드 디코딩시스템 및 이를 이용한 방법
CN105786444B (zh) * 2014-12-26 2018-10-12 联想(北京)有限公司 一种浮点数尾数前导零检测方法及装置

Family Cites Families (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6198442A (ja) * 1984-10-19 1986-05-16 Nec Corp 演算装置
US5010515A (en) * 1987-07-28 1991-04-23 Raster Technologies, Inc. Parallel graphics processor with workload distributing and dependency mechanisms and method for distributing workload
US5208665A (en) * 1987-08-20 1993-05-04 Telaction Corporation Presentation player for an interactive digital communication system
JPH07122868B2 (ja) * 1988-11-29 1995-12-25 日本電気株式会社 情報処理装置
JP2712131B2 (ja) * 1989-01-23 1998-02-10 株式会社日立製作所 通信制御装置
GB8915136D0 (en) * 1989-06-30 1989-08-23 Inmos Ltd Method for controlling communication between computers
CA2026527A1 (en) * 1989-10-11 1991-04-12 Douglas A. Fischer Parallel polygon/pixel rendering engine
JPH0758510B2 (ja) * 1989-10-31 1995-06-21 株式会社東芝 三次元図形処理装置
JP2910303B2 (ja) * 1990-06-04 1999-06-23 株式会社日立製作所 情報処理装置
US5461266A (en) * 1990-11-27 1995-10-24 Hitachi, Ltd. Power consumption control system
US5276836A (en) * 1991-01-10 1994-01-04 Hitachi, Ltd. Data processing device with common memory connecting mechanism
JP3059520B2 (ja) * 1991-05-24 2000-07-04 キヤノン株式会社 データ処理装置及びファクシミリ装置
US5493644A (en) * 1991-07-11 1996-02-20 Hewlett-Packard Company Polygon span interpolator with main memory Z buffer
JPH0527949A (ja) * 1991-07-25 1993-02-05 Fujitsu Ltd 浮動小数点乗算における指数部演算回路
EP0549924A1 (en) * 1992-01-03 1993-07-07 International Business Machines Corporation Asynchronous co-processor data mover method and means
US5926208A (en) * 1992-02-19 1999-07-20 Noonen; Michael Video compression and decompression arrangement having reconfigurable camera and low-bandwidth transmission capability
JPH05242232A (ja) * 1992-02-28 1993-09-21 Hitachi Ltd 情報処理装置及び映像表示装置
US5655131A (en) * 1992-12-18 1997-08-05 Xerox Corporation SIMD architecture for connection to host processor's bus
US5596742A (en) * 1993-04-02 1997-01-21 Massachusetts Institute Of Technology Virtual interconnections for reconfigurable logic systems
EP0619548B1 (en) * 1993-04-06 1998-12-02 STMicroelectronics S.r.l. Interface circuit between a control bus and an integrated circuit suitable for two different protocol standards
US5655151A (en) * 1994-01-28 1997-08-05 Apple Computer, Inc. DMA controller having a plurality of DMA channels each having multiple register sets storing different information controlling respective data transfer
JPH07225852A (ja) * 1994-02-15 1995-08-22 Fujitsu Ltd 動画生成方法および装置
KR0152169B1 (ko) * 1994-06-07 1998-10-15 모리시다 요이치 프라이어리티, 인코더
WO1996013902A1 (en) * 1994-11-01 1996-05-09 Virtual Machine Works, Inc. Programmable multiplexing input/output port
US5675808A (en) * 1994-11-02 1997-10-07 Advanced Micro Devices, Inc. Power control of circuit modules within an integrated circuit
US5561820A (en) * 1994-11-30 1996-10-01 International Business Machines Corporation Bridge for interfacing buses in computer system with a direct memory access controller having dynamically configurable direct memory access channels
US5646651A (en) * 1994-12-14 1997-07-08 Spannaus; John Block mode, multiple access multi-media/graphics memory
US5644218A (en) * 1995-02-01 1997-07-01 Superconductivity, Inc. Protection device for a superconducting coil of a superconducting voltage stabilizer
US5682513A (en) * 1995-03-31 1997-10-28 International Business Machines Corporation Cache queue entry linking for DASD record updates
JPH10506492A (ja) * 1995-07-21 1998-06-23 フィリップス エレクトロニクス ネムローゼ フェンノートシャップ 高性能密度を有するマルチメディアプロセッサアーキテクチャ
US6006318A (en) * 1995-08-16 1999-12-21 Microunity Systems Engineering, Inc. General purpose, dynamic partitioning, programmable media processor
US5864704A (en) * 1995-10-10 1999-01-26 Chromatic Research, Inc. Multimedia processor using variable length instructions with opcode specification of source operand as result of prior instruction
JP3429927B2 (ja) * 1995-10-16 2003-07-28 三菱電機株式会社 浮動小数点演算装置の正規化回路装置
US6154760A (en) * 1995-11-27 2000-11-28 Intel Corporation Instruction to normalize redundantly encoded floating point numbers
US5898892A (en) * 1996-05-17 1999-04-27 Advanced Micro Devices, Inc. Computer system with a data cache for providing real-time multimedia data to a multimedia engine
US5996058A (en) * 1996-08-19 1999-11-30 Samsung Electronics Company, Ltd. System and method for handling software interrupts with argument passing
KR19990054337A (ko) * 1997-12-26 1999-07-15 윤종용 지수연산 장치
US6078339A (en) * 1998-02-10 2000-06-20 Intel Corporation Mutual exclusion of drawing engine execution on a graphics device
US6041400A (en) * 1998-10-26 2000-03-21 Sony Corporation Distributed extensible processing architecture for digital signal processing applications
US6301594B1 (en) * 1999-03-11 2001-10-09 Sun Microsystems, Inc. Method and apparatus for high-speed exponent adjustment and exception generation for normalization of floating-point numbers
KR100325430B1 (ko) * 1999-10-11 2002-02-25 윤종용 상이한 워드 길이의 산술연산을 수행하는 데이터 처리장치 및 그 방법

Also Published As

Publication number Publication date
KR20010091260A (ko) 2001-10-23
CN1319797A (zh) 2001-10-31
US20010023424A1 (en) 2001-09-20
KR100385233B1 (ko) 2003-05-23
US6760738B2 (en) 2004-07-06

Similar Documents

Publication Publication Date Title
CN1145877C (zh) 多位移位装置,利用多位移位装置的数据处理器及其方法
US4893268A (en) Circuit and method for accumulating partial products of a single, double or mixed precision multiplication
US8280941B2 (en) Method and system for performing calculations using fixed point microprocessor hardware
US5392228A (en) Result normalizer and method of operation
CN103150146B (zh) 基于可扩展处理器架构的专用指令集处理器及其实现方法
US5917741A (en) Method and apparatus for performing floating-point rounding operations for multiple precisions using incrementers
USRE39578E1 (en) Pipelined carry-lookahead generation for a fast incrementer
US10579338B2 (en) Apparatus and method for processing input operand values
CN1118472A (zh) 组合的乘法器/移位器及其方法
US5384723A (en) Method and apparatus for floating point normalization
Lemire Number parsing at a gigabyte per second
CN1224893C (zh) 幂运算单元和数据处理系统
US10459688B1 (en) Encoding special value in anchored-data element
Daumas et al. Validated roundings of dot products by sticky accumulation
Kornerup Correcting the normalization shift of redundant binary representations
US6684232B1 (en) Method and predictor for streamlining execution of convert-to-integer operations
CN111290790B (zh) 一种定点转浮点的转换装置
US10963245B2 (en) Anchored data element conversion
US7016928B2 (en) Floating point status information testing circuit
JPH09128213A (ja) ブロックフローティング処理システムおよび方法
US7444367B2 (en) Floating point status information accumulation circuit
CN1200339C (zh) 数据处理装置及其方法
Chen et al. Decimal floating-point antilogarithmic converter based on selection by rounding: Algorithm and architecture
WO2020169487A1 (en) Processor with instructions for logarithmic number operations
Givaki et al. Hardware Efficient FIR Filter Architectures Using Accurate Unary Stochastic Computing

Legal Events

Date Code Title Description
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C06 Publication
PB01 Publication
C14 Grant of patent or utility model
GR01 Patent grant
CX01 Expiry of patent term
CX01 Expiry of patent term

Granted publication date: 20051026