专利名称:高速数字处理器的制作方法
技术领域:
本发明涉及信息处理系统,尤其涉及高速进行除法和开平方计算的处理器。
在许多信息处理系统中,如在计算机、信号处理器和过程控制器中,高速算术计算是关键设计指标。这些系统越来越依赖于采用高度并行设计的大规模集成电路来提供高速计算。虽然使用并行技术进行乘法计算的装置(器件)很多,但实现除法和开平方功能的装置(器件)通常都是串行的、因此运行速度较低。
除法和开平方计算,和加法、减法或乘法不同,它是一种重复迭代过程。实现除法或开平方功能的装置或线路需要较多步骤或时钟周期来获得商数或平方根值。实现除法和开平方功能所采用的技术对信息处理系统的执行时间和精度有很大的影响。对除法和开平方一般使用一种收敛算法。
在除法中,收敛算法把被除数和除数作为分数来处理。如果用除数的某个函数重复地乘被除数(即分式的分母)而迫使分母的极限值为1,那么用同样的函数来重复地乘被除数,就会迫使被除数的极限值趋于商值。在开平方计算中,要开平方的某个数作为分子分母相同的分式来处理。通过某函数重复地乘该分式迫使分母的极限值为1而分子的极限值为平方根值。
在信息处理系统中,除法和开平方能通过采用高速乘法器和可进行收敛算法的其它线路一起来完成。一种典型的收敛算法需要重复乘法步骤以产生结果。因此、已有技术的高速乘法器对于每个收敛算法周期至少需要三个时钟周期。因此除法和开平方计算与其他算术运算相比需要较长的时间。
由于需要越来越快速的信息处理系统,所以相应地需要提供一种能高速进行除法和开平方计算的处理器。
本发明提供了一种基本上可以排除或克服上述实现高速除法和开平方计算的缺点和问题的处理器。在本发明的一实施例中,所提供的高速数字处理器能在四个时钟周期中完成除法、在六个时钟周期中完成开平方计算。
本发明的处理器有乘法器电路,它用于计算两数相乘的积。所提供的逻辑电路用于将乘法器配置成第一阵列和第二阵列。乘法器的第一和第二阵列用于计算乘积。所提供的操作数发送电路(operandroutingcircuitry)用于将一组操作数导向第一阵列、而将其它操作数导向第二阵列。还提供有寄存器,它按规定的次数或重复选代次数将乘积返回操作数发送电路。最后,所设置的加法器电路,在预定的重复操作次数之后,组合乘积以产生最终结果。
具有可以配置成单个或两个阵列的乘法器的处理器的技术优点是利用收敛算法能实现除法和开平方的计算。乘法器的两个阵列允许除法计算或开平方计算以并行方式完成,所需要的时钟周期较少,因此算述运算的速度高得多。
在本发明的第二实施例中,按照本发明的处理器能完成多个算术运算功能(functions)。该处理器包含译码电路,该译码电路用于先确定执行多个算术运算功能中的哪一个功能。然后该译码电路发送一与所选定的算术运算功能相对应的控制信号。设有乘法器电路,用于计算两数的乘积。逻辑电路响应控制信号,当要进行除法或开平方计算时,将乘法器电路配置成第一阵列和第二阵列。该第一和第二阵列各自独立地计算乘积。所设置的操作数发送电路(operandroutingcircuitry)也响应译码电路的控制信号,以便按照控制信号将一组操作数导入第一阵列,将其它操作数导入第二阵列。还设有加法器电路、它组合乘积产生计算结果。所设开关电路,用于响应控制信号、将乘积导入最后的加法器电路。该开关电路根据控制信号能对进入的乘积进行调整(对准)或使其为零。
具有能够构成单个阵列或双阵列的乘法器的处理器的另一优点是一个乘法器能完成不同的计算。在通常的乘法计算中,该乘法器用于单阵列模式,而对于除法或开平方计算、该乘法器就构成双阵列模式。所提供的能在两种模式之间进行选择的译码电路能最佳地使用这单一的乘法器。
为了更完整地理解本发明及其优点,请参阅下面结合附图所作的描述,其中
图1表示本发明的处理器结构。
图2是本发明中所使用的乘法器电路的功能框图。
本发明的处理器使用两种收敛算法一种用于完成除法计算,另一种用于开平方计算。在除法中,X÷Y=Q,这里X是被除数,Y是除数,而Q是商。此式也可以写成X/Y=Q的形式。在除法算法的第一步中,X和Y两者都用一个选定的能迫使Y逼近1的种子值S(SeedvalueS)相乘。第一步之后,X*S=Q,Y*S=G。下一步用函数F乘Q和G,这里F=2-G.F*Q的结果替代原有的Q值,F*G的结果替代原有的G值。最后一步是重复执行一预定的次数,使F*G逼近1而F*Q逼近X/Y的商值。
在平方根计算中,一个数A的平方根是根R*R=A。在一种计算数A的平方根值R的收敛算法中,等式写成A/A的形式。在收敛算法的第一步中,分子位置上的A用种子值(Seedvalue)S相乘,而分母位置上的A由同一种子值S乘两次,结果A*S=Q,A*S*S=G。下一步中,Q由函数F相乘,这里F=(3-G)/2,而G由该F函数乘两次。结果F*Q取代原来的Q,结果F*F*G取代原有的G。最后步骤是重复预定的次数,使F*Q逼近根值、而F*F*G逼近1。
参看图1,译码器12接收来自逻辑单元(未画出)的指令,以确定要由处理器执行的数值计算,如乘法、除法或开平方计算。响应这些指令,译码器12在其输出端14上发送一控制信号CS,对每个不同类型的计算有不同的控制信号。控制信号CS被送到操作数发送电路16、逻辑电路18、开关电路20和种子数发生器(seedgenerator)28。该控制信号指令电路执行规定的计算,如乘法、除法或开平方。通常这些指令由存储着程序的计算机或其它本技术领域中那些技术人员周知的装置来产生。
操作数发送电路16在输入线22和24上接收操作数N和D,在输入线26上接收来自种子数发生器的种子值S,并且将它们发送到与乘法器38相连的适当的输出线上。操作数发送电路16将操作数N和种子值S送到输出线30和32上,将操作数D和种子值S送到输出线34和36上。操作数N代表分式的分子,而操作数D表示分式的分母。行将对之进行计算的数,按照本技术领域中那些技术人员所熟知的方法,将其规范化,且形成N/D的分式形式。
乘法器38的逻辑电路18接收来自译码器12的控制信号CS,在信号要求做除法或开平方计算时,逻辑电路将乘法器38配置成图中标以L和R的两个阵列。操作数发送电路16将操作数N和种子值S送到L阵列,将操作数D和种子值S送到R阵列。L阵列的输出沿着线40送到开关电路20,而乘法器38的R阵列的输出沿着线40送到开关电路20。
开关电路20响应来自译码器12的控制信号CS,按照所要执行的计算类型,将乘法器阵列L和R的输出沿着预定的通道引出。在通过乘法器38一预定次数之后,开关电路20将乘法器38的阵列L和R的输出引入加法器44。加法器44的输出按照本技术领域中熟知的方式送入舍入电路(roundercircuitry)46,以执行舍入操作。
与开关电路20相联的是Q寄存器48和G寄存器50。该Q和G寄存器通过开关电路20接收来自乘法器38的中间结果,并且将这些中间结果返馈入操作数发送电路16。所设置的与每个Q和G寄存器相联的舍入电路(Roundingcircuitry)增加计算结果的精度。Q舍入器52接收来自Q寄存器48的输出,执行舍入功能且把结果沿线54送入操作数发送电路16。G舍入寄存器56接收来自G寄存器50的输出,执行舍入功能且把输出沿着线58送入操作数发送电路16。
与G寄存器50相连的还有F寄存器60和F产生器62。这些寄存器在开平方的某些步骤期间被使用,在后面将加以更详细的解释。
现在参看图2,本发明中所使用的乘法器电路将加以详细说明。本技术领域中的都知道,乘法能使用一个加法器树(anaddertree)来执行。加法器树的结构是众所周知的。一种这样的器件在共同待批的申请No.149,779中有所描述,该申请由本申请的受让人共同占有。本发明用将乘法器配置为两个分开的阵列修改了申请No.149,779中所描述的乘法器。
操作数发送电路100把操作数N(现在是被乘数)引到总线102。操作数D(现在是被乘数D)送到总线104。种子值S由操作数发送电路100送到总线106。种子值S现在称作为乘数S。总线102被连接到部分乘积产生器108A-D的满精度口(fullprecisionports),而总线104被连到第二组部分乘积产生器110A-D的满精度口。总线106被连到该两组部分积产生器108A-D和110A-D的半精度口。
部分积产生器108A和B被连到第一级加法器112A。部分积产生器108C和D被连到第一级加法器112D。部分积产生器110A和B被连到第一级加法器114A。部分积产生器110C和D被连到第一级加法器114B。第一级加法器成对连接到第二级加法器116A和B。第一级加法器112A和B的输出被连接到第二级加法器116A的输入,而第一级加法器114A和B的输出被连接到第二级加法器116B的输入。第二级加法器116A和B的输出送到开关电路118最后送到加法器120。
两阵列乘法器,如所描述的那样,能配置成乘一对数或乘两对数。在一对数的模式中,乘法器38构成一单一的阵列,N值和D值相等,乘法器以申请No.149,779中所述方式工作。在两对数模式中,乘法器38分成两个阵列,以并行方式执行操作。
现在来描述按本发明所构成的装置的操作。对于每种操作、表明所执行计算的类型的控制信号CS由译码器12产生。在本实施例中,有分别表示乘、除和开平方的三种控制信号。响应所接收的控制信号,操作数发送电路16、逻辑电路18和开关电路20决定数据通道和经乘法器38的重复选代计算(iterations)的次数。
乘法时钟周期O操作数N和D进入乘法器38。线30到36用于操作数发送电路16将乘法器操作数送入乘法器38的L阵列和R阵列中的四个口。操作数N送到乘法器38的L阵列的满精度口,而操作数D送到乘法器38的R阵列的半精度口。N和D的乘积经开关电路20传送到加法器44。
时钟周期1加法器44中的数被加到舍入电路46,以本技术领域中那些技术人员所周知的方法进行舍入。在该时钟周期中,操作数发送电路16和乘法器38已空下来可以进行其他操作。
除法时钟周期O操作数N和D进入处理器的操作数发送电路16。种子值S从种子产生器28检索到,这种子产生器可以是一张查找表,使用一部分D作为索引。来自译码器12的控制信号CS指令操作数发送电路16和乘法器38产生N和S的部分积以及D和S的部分积。乘法器38被配置成L和R阵列。N通过总线102送到阵列L的满精度口,而D通过总线104送到阵列R的满精度口。种子值S通过总线106送到乘法器38的半精度口。在时钟周期的末端,N和S的乘积存储在Q寄存器48中,D和S的乘积存储在G寄存器50中。
时钟周期1在时钟周期O的末端,由存储在G寄存器50中的值计算出F。乘法器38保持两阵列模式的配置以产生Q和F的乘积及G和F的乘积,这里,在两乘法中,F都通过总线106连到半精度口。G和F的乘积回送到G寄存器50,而Q和F的乘积回送到Q寄存器48。
时钟周期2在时钟周期1的末端,由存储在G寄存器50中的值计算出F。乘法器38重新配置成单一阵列模式以产生Q和F的乘积。
F和Q的乘积经开关电路20送到加法器44。加法器44的输出送到舍入电路46。储存在舍入电路46中的数是商的估算值,它将在下一个时钟周期中进行舍入。
时钟周期3舍入电路中的数按本技术中那些技术人员周知的方式进行舍入。在该时钟周期中,操作数发送电路16和乘法器38已空下来可进行另一操作。
开平方时钟周期O操作数N和D进入处理器的操作数发送电路16。种子值S从种子产生器28检索到,该种子产生器可以是一张查找表,使用D的一部分作为索引。乘法器38配置成两个阵列以产生N和S的部分积及D和S的部分积。N通过总线102加到阵列L的满精度口,而D通过总线104送到阵列R的满精度口。S值被送到总线106的半精度口。计算结果经开关电路20传送,在该时钟周期的末端,N的S的乘积存储在Q寄存器48中,而D和S的乘积存储在G寄存器中。
时钟周期1Q寄存器48中的值,在此时钟周期期间不修改。乘法器38重新配置成为单一阵列以对G寄存器中的G值和种子值S进行操作。S和G的乘积回送到G寄存器50。
时钟周期2在时钟周期1的终端,F用G寄存器50中的存储值进行计算。乘法器38的重新配置成两个阵列以产生Q的F的部分积,及G和F的部分积。F和Q的乘积回送到G寄存器50。在时钟周期2开始时所计算的F值保存在F寄存器60中。
时钟周期3在此时钟周期期间,Q寄存器48中的值不进行修改。乘法器38重新配置成单一阵列以对G寄存器50的值和储存在F寄存器60中的F值进行操作。F和G的乘积回送到G寄存器50中。
时钟周期4在时钟周期1的终端,用存储在G寄存器50中的值计算F。乘法器38保持单一阵列模式以产生Q和F的乘积。F和Q的乘积经开关电路20传送到加法器44。加法器44的输出被送到舍入电路46。
时钟周期5舍入电路46中的数按照本技术中技术人员周知的方法进行舍入。在此时钟周期中,操作数发送电路16和乘法器38已空下来,可开始另一个操作。
由前面的描述,本技术领域中的技术人员可以看出本发明所提供的、带有一个单一乘法器的数字处理器,可以配置成单级或双级模式工作。使用这种双阵列乘法器进行除法和开平方计算时比已有技术具有较高的并行度和较高的速度。虽然本发明是就较佳实施例作具体揭示和描述的,但本技术领域中的技术人员可以理解根据本发明所作的揭示,熟悉本技术领域的人员可以作出种种形式上和细节上的变化,但这些变化仍都落在本发明的精神实质和范围之内。
权利要求
1.一种执行多个算术计算功能的处理器,包含用于计算两个或多个数的乘积的乘法电路;用于将所述乘法器重新配置成第一阵列和第二阵列的逻辑电路,其中所述第一和第二阵列计算乘积;用于将一组数导入所述第一阵列和将另一组数导入所述第二阵列的操作数发送电路;用于将所述的乘积以预定的迭代次数引入所述操作数发送电路的寄存器;在所述预定的迭代次数之后、组合所述的乘积以产生计算结果的加法器。
2.如权利要求1所述的处理器,其特征在于所述乘法器是一个加法器树。
3.如权利要求1所述的处理器,其特征在于进一步包含用于产生种子值数并将所述种子值数送到所述操作数发送电路的电路。
4.如权利要求1所述的处理器,其特征在于所述寄存器具有累加中间计算结果的中间存储电路。
5.如权利要求1所述的处理器,其特征在于所述迭代次数由算法确定。
6.如权利要求1所述处理器,其特征在于进一步包含与所述加法器电路相连接、用于舍入所述计算结果的舍入电路。
7.如权利要求1所述处理器,其特征在于所执行的算术运算功能之一是除法。
8.如权利要求1所述处理器,其特征在于所执行的算术运算功能之一是开平方。
9.一种执行多种算术运算功能的处理器,包含用于确定执行哪一种算术运算功能并发送指明所要执行的算术运算功能的控制信号的译码电路;用于计算两个或多个数的乘积的乘法电路;响应所述控制信号以将所述乘法器重新配置成第一阵列和第二阵列的逻辑电路,其中所述第一和第二阵列计算各自的乘积;操作数发送电路,该电路响应所述控制信号,按照所述控制信号将一组数送到所述第一阵列、将另一组数送到所述第二阵列;将所述乘积以预定的迭代次数送到所述操作数发送电路;用于组合所述乘积以形成计算结果的加法器电路;和开关电路,该电路响应所述控制信号,按照所述控制信号将乘积送入所述加法器电路。
10.如权利要求9所述的处理器,其特征在于所述乘法器是一个加法器树。
11.如权利要求9所述的处理器,其特征在于进一步包含用于产生种子值数并将所述种子值数送入所述操作数发送电路的产生器电路。
12.如权利要求9所述的处理器,其特征在于所述寄存器具有用于累加中间计算结果的中间存储电路。
13.如权利要求11所述处理器,其特征在于所述产生器电路包含随机存取存储器。
14.如权利要求9所述处理器,其特征在于进一步包含与所述加法器电路相连接并对所述计算结果进行舍入的舍入电路。
15.如权利要求9所述处理器,其特征在于所执行的算术运算功能之一是除法。
16.如权利要求9所述处理器,其特征在于所执行的算术运算功能之一是开平方。
17.一种执行算术运算功能的方法,其步骤包含将用于计算两个或多个数乘积的乘法器重新配置成第一阵列和第二阵列;将第一组数导入所述第一阵列,将第二组数导入所述第二阵列;在所述第一阵列中计算所述第一组数的乘积,在所述第二阵列中计算所述第二组数的乘积;将所述乘积以预定的迭代次数回送入所述乘法器;和在所述预定的迭代次数之后将所述乘积组合起来产生计算结果。
18.如权利要求17所述的方法,其特征在于进一步包含步骤确定多个算术运算功能的哪一个被执行。
19.如权利要求18所述方法,其特征在于进一步包含步骤将代表所要执行的算术运算功能的控制信号送到所述乘法器。
20.如权利要求17所述的方法,其特征在于进一步包含步骤产生种子值数且将该种子值数送到所述乘法器。
全文摘要
使用接收操作数N、操作数D和种子值(seed-value)S并把这些操作数和种子值传送到乘法器(38)的一种操作数发送电路(16),来执行除法和开平方计算。一个单一的乘法器(38)可以配置成两个阵列以计算N和S及D和S的部分积。根据收敛算法,乘法器(38)的计算结果经开关电路(20)或寄存器(48)(50)被送到操作数发送电路(16)或加法器(44)。最后的计算结果被舍入。
文档编号G06F7/57GK1047152SQ90102438
公开日1990年11月21日 申请日期1990年4月24日 优先权日1989年4月26日
发明者唐纳德·E·施泰斯, 玛丽亚·B·伊珀娜, 亨利·M·达利 申请人:德克萨斯仪器股份有限公司