数据相关串行操作的错位并行处理方法

文档序号:6414041阅读:270来源:国知局
专利名称:数据相关串行操作的错位并行处理方法
技术领域
本发明涉及一种数据相关串行操作的错位并行处理方法,特别涉及一种数据相关的串行操作的并行化处理方法。
提高算术运算速度,是当今CPU硬件设计中的一项重要课题。其主要有两条途径一是进一步提高硬件的速度;二是改进逻辑设计方法,使串行操作并行化。但现有的技术对数据相关的串行操作都无法使之并行。如何把存在数据相关的一组串行操作变成并行操作是一个重要的课题。
与本发明有关的现有技术包括以下几种1.串行处理方式对某一任务,如果在一周期的延时内不能完成,可将其分解成K个操作,用K个周期顺序完成。当一任务完成后,再处理下一任务。这就是串行处理方式。显然,串行处理方式任务与任务之间、K个操作之间,数据既可无关也可相关。
若K个操作内容相同可重用一个设备,经K个周期的循环完成,见

图1所示。
若K个操作内容不同,则需用K个不同设备,经K个周期完成,如图2所示。
2.传统的并行处理方式把某一任务分解成K个操作,用一个周期同时完成。实际上是用K个设备在一个周期完成。对于K个操作不论内容是否相同,设备都不能重用。而且K个操作的数据必须无关,不允许第二个操作的数据与第一个操作的结果相关。这样使速度大大加快,一个周期就可以做完。如图3所示。
3.流水处理方式为了提高串行操作的效率,可采用流水处理方式。将每项任务都分解成串行处理的K个操作,若处理一项任务需用K个周期完成,而连续处理n项任务时只需n+K个周期。当第一个任务用第一个设备时,第二项任务到来时只能等待。当第一项任务做第二个设备的操作时,第二项任务才能使用第一个设备,依次类推。这样在设备出口处每一个周期会有一个结果。流水处理方式需要K个处理设备,在处理过程中的n项任务,各项任务之间数据必须无关。
串行任务如果用流水处理方式解决,需要设置很多栈。在各个栈的数据不能重复使用,随着流水级数的增大,会使栈的深度过深。该处理方式适用于部份处理。
从以上三种不同的技术来看,我们可以得到以下结论处理对象若数据相关则必须串行处理,也就是说必须在一项任务处理完成后,才能进行另一项任务处理。
本发明的目的在于提供一种数据相关串行操作的错位并行处理方法,使得因数据相关而必须串行的操作可并行处理,即错位并行,从而提高电路的执行速度。
本发明还提供了一种错位并行的浮点对阶移位装置。该装置可在一周期内完成浮点加法运算中的对阶移位操作,其特征在于1)一个三位一体减法装置,用于执行两个数的减法运算,并且同时给出第一操作数减第二操作数的值和第二操作数减第一操作数的值,以及第一操作数与第二操作数的大小比较结果,2)两个移位装置,用于完成两个操作数的右移位。这两个移位装置受控于上述三位一体减法器给出的两个减法的结果。第一操作数减第二操作数的结果控制第二操作数右移的位数,第二操作数减第一操作数的结果控制第一操作数右移的位数,3)一个2选1的多路选通器,用上述三位一体减法装置给出的比较结果来控制,以选出两个操作数中较小操作数的移位结果。
为了实现上述目的,本发明提供了一种数据相关串行操作的错位并行处理方法,该方法把因存在数据相关而必须串行处理的两个或多个操作,各分解成若干小的操作,使经过一定错位延迟后,达到操作并行处理的目的。
本发明的一个优点是采用本发明的数据相关串行操作的错位并行处理方法后,可以把因存在数据相关而必须串行处理的两个或多个操作并行处理,使本来需要两个或多个周期完成的串行操作仅在一个周期内完成。
本发明的另一个优点是采用本发明中所述的错位并行的浮点对阶移位装置后,可在一个周期内完成浮点加法中的对阶移位操作。
图1是用一个设备进行循环串行处理的示意图。
图2是用K个设备进行串行处理的示意图。
图3是传统的并行处理方式的示意图。
图4是串行操作示意图。
图5是两个数据相关的操作的错位并行示意图。
图6是浮点加法尾数相加运算示意图。
图7是错位并行的浮点加法对阶移位装置的流程图。
图8是错位并行的浮点加法对阶移位装置的结构图。
图9是错位并行的浮点加法对阶移位装置的电路模块图。
图10是三位一体的减法器的电路模块图。
图11是ESG0电路图。
图12是ESG1电路图。
图13是ESG2电路图。
图14是ESG3-4电路图。
图15是ESG5电路图。
图16是ESFC电路图。
图4为因数据相关必须串行操作的示意图。此串行操作需要两个设备A、B。本发明的数据相关串行操作的错位并行处理方法将A分解成A1,A2……AK,将B分解成B1,B2……BK,然后进行错位并行处理。如图5所示。这样,就可把本来需要双周期完成的操作变成单周期完成。
下面详细描述本发明的数据相关串行操作的错位并行处理方法以及错位并行的浮点对阶移位装置。
给两浮点数X·2A与Y·2B(X、Y为尾数,A、B为阶码)。若这两个浮点数相加,必须在阶码相同时,尾数才能相加。即在A=B时才能做X+Y。假如阶码不相等,那么首先要对阶(使阶码相等),然后尾数才能相加。例如当A>B时,必须进行以下处理Y·2B=Y·2-(A-B)·(2B·2A-B)=Y′·2AY′=Y·2-(A-B)然后才能做X+Y′。
上述工作一般在计算机中要分解成以下几步操作(1)用比较或减法确定A与B的大小,(2)根据(1)所得出的结果,求出A-B或B-A的值(因为做移位时需要正数),(3)根据(1)和(2)所得出的结果,如A≥B,做Y′=Y·2(A-B),即将Y算术右移A-B位;如A<B,做X′=X·2(B-A),即将X算术右移B-A位。
(4)做尾数的相加,X+Y’或X’+Y。
其处理过程见图6。
由于阶差与移位是数据相关的,因此一般计算机中对阶移位要串行顺序做以下操作(1)A-B(比较A、B的大小);(2)A-B≥0(A≥B)时选Y,A-B<0(A<B)时选X;(3)A-B<0时求|A-B|;(4)将Y或X送入移位器,对尾数进行|A-B|位的算术右移。
考虑到(1)、(3)可以并行,可在一周期内完成。(2)、(4)可以并行,可在一周期内完成。但由于(2)、(4)对(1)、(3)存在数据相关性,因此在一般计算机中至少需2个周期完成。
第一周期求A-B和B-A;第二周期根据A-B或B-A的结果将X或Y进行B-A位或A-B位算术右移。
用错位并行技术,将上述操作进行改造,使本应用两个周期内完成的操作,在单周期内可以完成。
(1)将求SA=A-B和SB=B-A分解成以下五步· 求出A-B和B-A的最后两位SA<10>和SB<10>;
· 求出A-B和B-A的次后两位SA<32>和SB<32>;· 求出A-B和B-A的再次后两位SA<54>和SB<54>;· 求出A-B和B-A的高位SA<106>和SB<106>,根据SA<106>和SB<106>的值产生移位是否有效信号;· 求出是否A≥B。
(2)将移位及选Y或X也分解成以下五步· 根据SA<10>和SB<10>的值,分别对Y和X进行0,1,2,3位算术右移;· 根据SA<32>和SB<32>的值,分别对Y和X进行0,4,8,12位算术右移;· 根据SA<54>和SB<54>的值,分别对Y和X进行0,16,32,48位算术右移;· 根据移位是否有效信号选出X和Y的移位有效结果· 根据是否A≥B选出X和Y的移位结果。
合并(1),(2)就能在单周期内进行错位并行完成对阶、移位操作。错位并行的浮点加法对阶移位装置的流程图见图7所示。
图8为错位并行的浮点加法对阶移位装置的结构图。
图8中的X、Y为两个规格化的浮点数的尾数;A、B为这两个浮点数的阶码。
把X和Y分别输入两个移位器,同时开始移位。
图8中的TSHF<50>表示A-B的低六位差值,MSHF<50>表示B-A的低六位差值。MSHF<50>控制X的移位,TSHF<50>控制Y的移位。MSHF<50>和TSHF<50>由三位一体减法器(ESUB)分三个时间段给出,第一时间段ESUB计算出MSHF<10>和TSHF<10>。第二时间段ESUB计算出MSHF<32>和TSHF<32>同时MSHF<10>控制X的移位器完成0/1/2/3位算术右移,TSHF<10>控制Y的移位器完成0/1/2/3位算术右移。第三时间段ESUB计算出MSHF<54>和TSHF<54>,同时MSHF<32>控制X的移位器完成0/4/8/12位算术右移,TSHF<32>控制Y的移位器完成0/4/8/12位算术右移。第四时间段ESUB计算出移位是否有效信号SHFIN,同时MSHF<54>控制X的移位器完成0/16/32/48位算
图10为三位一体的减法器的电路模块图。输入参加加法运算的浮点数的阶码A<100>和B<100>。输出NFC为A、B比较大小的结果;MSHF<50>控制X的移位,TSHF<50>控制Y的移位,SHFIN为移位有效信号。
图11为ESG0电路图。其作用为对两个浮点数的阶码0、1位(<10>)进行比较,并求出差值。其中TSHF<10>=A<10>-B<10>;MSHF<10>=B<10>-A<10>;CASB<1>为A<10>-B<10>运算产生的正向进位信号;NCBSA<1>为B<10>-A<10>运算产生的反向进位信号。
电路中所用的器件说明如下EO2两输入的异或门;IV反向器;NR2两输入的或非门;EN2两输入的异或非门;ND2两输入的与或非门;AO7三输入的与或非门。
图12为ESG1电路图。其作用为对两个浮点数的阶码3、2位(<32>)进行比较,并求出差值。其中TSHF<32>=A<32>-B<32>+CASB<1>;MSHF<32>=B<32>-A<32>+NCBSA<1>;GES<2>为A<32>-B<32>运算产生的本地进位信号;TES<2>为A<32>-B<32>运算产生的进位传递信号。
CBSA<2>为B<32>-A<32>+NCBSA<1>运算产生的进位信号。
电路中所用的器件说明如下EO2两输入的异或门;IV反向器;NR2两输入的或非门;EN2两输入的异或非门;ND2两输入的与或非门;
AO7三输入的与或非门。
图13为ESG2电路图。
其作用为对两个浮点数的阶码5、4位(<54>)进行比较,并求出差值。其中TSHF<54>=A<54>-B<54>+NCASB<2>;MSHF<54>=B<54>-A<54>+CBSA<2>;GES<3>为A<54>-B<54>运算产生的本地进位信号;TES<3>为A<54>-B<54>运算产生的进位传递信号。
电路中所用的器件说明如下EO2两输入的异或门;IV反向器;NR2两输入的或非门;EN2两输入的异或非门;ND2两输入的与或非门;AO7三输入的与或非门。
图14为ESG3-4电路图。在图10中用了两块ESG3-4电路。
图10中的ESG3-4<1>的作用为对两个浮点数的阶码7、6位(<76>)进行比较并产生移位有效信号SHF<76>。其中GES<4>为A<76>-B<76>运算产生的本地进位信号;TES<4>为A<76>-B<76>运算产生的进位传递信号。
图10中的ESG3-4<2>的作用为对两个浮点数的阶码9、8位(<98>)进行比较并产生移位有效信号SHF<98>。其中GES<5>为A<98>-B<98>运算产生的本地进位信号;TES<4>为A<98>-B<98>运算产生的进位传递信号。
电路中所用的器件说明如下EO2两输入的异或门;IV反向器;NR2两输入的或非门;EN2两输入的异或非门;ND2两输入的与或非门;
AO7三输入的与或非门。
EON1为四输入的两与或、两或再与非门。
图15为ESG5电路图。ESG5完成两浮点数的阶码的全面比较,并产生最终的移位有效信号SHFIN。移位有效的含义是,A、B的差值小于56,若大于56则超过浮点数的有效位数,因此移位无效并对最后的移位结果清零。
电路中所用的器件说明如下EO2两输入的异或门;IV反向器;EN2两输入的异或非门;ND2两输入的与或非门;NR6为6输入的或非门;NR5为5输入的或非门;ND5为5输入的与非门;OR3为3输入的或门;MUX21-1L为1个一位的反向输出的2选1的选通器,控制信号为1时选通MUX21-1L的右端输入并反向输出,控制信号为时选通MUX21-1L的左端输入并反向输出。
图16为ESFC电路图。ESFC为ESUB的进位链,它把A-B以及A与B比较的进位链巧妙地合二为一并产生NCASB<2>、NCASB<3>、NCASB<4>、NCASB<5>和NFC信号。
NCASB<2>为A<30>-B<30>的进位信号的反向,有进位NCASB<2>=0,没有进位NCASB<2>=1;NCASB<3>为A<50>-B<50>的进位信号的反向,有进位NCASB<3>=0,没有进位NCASB<3>=1;NCASB<4>为A<70>-B<70>的进位信号的反向,有进位NCASB<4>=0,没有进位NCASB<4>=1;NCASB<5>为A<90>-B<90>的进位信号的反向,有进位NCASB<5>=0,没有进位NCASB<5>=1;NFC为A、B比较的状态信号,A≥B时NFC=1,否则NFC=0。
电路中所用的器件说明如下IV反向器;NR2两输入的或非门;ND2两输入的与或非门;AO6三输入的与或非门;AO7三输入的或与非门。
两浮点数的阶码比较结果。其中的器件含义如前。另AO6为3输入的或与非门。
以上根据一个具体的实施例,对本发明进行了描述。然而,本技术领域内的熟练人员很容易看出,在不背离本发明的精神实质的范围内,对本发明还可以作出各种变形、修改。申请人认为这些变形、修改都落入后面的权利要求的范围之内。
权利要求
1.一种数据相关串行操作的错位并行处理方法,用于使因数据相关而必须串行的操作能并行处理。其特征在于把两个或多个相关的操作分解,使其整体相关变成部分相关,因而使原来相关的部分变成不相关,然后再执行经上述分解的操作。
2.一种错位并行的浮点对阶移位装置,该装置可在一周期内完成浮点加法运算中的对阶移位,其特征在于1)一个三位一体减法装置,用于执行两个数的减法运算,并且同时给出第一操作数减第二操作数的值和第二操作数减第一操作数的值以及第一操作数与第二操作数的大小比较结果,2)两个移位装置,用于完成两个操作数的右移位,这两个移位装置受控于上述三位一体减法器给出的两个减法的结果,第一操作数减第二操作数的结果控制第二操作数的移位,第二操作数减第一操作数的结果控制第一操作数的移位,3)一个2选1的多路选通路,用上述三位一体减法装置给出的比较结果来控制,以选出两个操作数中较小操作数的移位结果。
全文摘要
本发明提供了一种数据相关串行操作的错位并行处理方法,该方法把因存在数据相关而必须串行处理的两个或多个操作分解成若干小的操作,使其经过一定的错位延时后,达到操作并行处理的目的。本发明还提供了一种错位并行的浮点对阶移位装置,用于在单周期内完成浮点加法的对阶移位,该装置包括一个三位一体减法装置、两个移位装置和一个2选1多路选通路。
文档编号G06F17/00GK1230719SQ9810612
公开日1999年10月6日 申请日期1998年4月1日 优先权日1998年4月1日
发明者王攻本 申请人:北京多思科技工业园股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1