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

技术编号:2887869 阅读:199 留言:0更新日期:2012-04-11 18:40
本发明专利技术提供了一种数据相关串行操作的错位并行处理方法,该方法把因存在数据相关而必须串行处理的两个或多个操作分解成若干小的操作,使其经过一定的错位延时后,达到操作并行处理的目的。本发明专利技术还提供了一种错位并行的浮点对阶移位装置,用于在单周期内完成浮点加法的对阶移位,该装置包括一个三位一体减法装置、两个移位装置和一个2选1多路选通路。(*该技术在2018年保护过期,可自由使用*)

【技术实现步骤摘要】

本专利技术涉及一种,特别涉及一种数据相关的串行操作的并行化处理方法。提高算术运算速度,是当今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&本文档来自技高网...

【技术保护点】
一种数据相关串行操作的错位并行处理方法,用于使因数据相关而必须串行的操作能并行处理。 其特征在于: 把两个或多个相关的操作分解,使其整体相关变成部分相关,因而使原来相关的部分变成不相关,然后再执行经上述分解的操作。

【技术特征摘要】

【专利技术属性】
技术研发人员:王攻本
申请(专利权)人:北京多思科技工业园股份有限公司
类型:发明
国别省市:11[中国|北京]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1