專利名稱:數(shù)據(jù)相關(guān)串行操作的錯位并行處理方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種數(shù)據(jù)相關(guān)串行操作的錯位并行處理方法,特別涉及一種數(shù)據(jù)相關(guān)的串行操作的并行化處理方法。
提高算術(shù)運(yùn)算速度,是當(dāng)今CPU硬件設(shè)計(jì)中的一項(xiàng)重要課題。其主要有兩條途徑一是進(jìn)一步提高硬件的速度;二是改進(jìn)邏輯設(shè)計(jì)方法,使串行操作并行化。但現(xiàn)有的技術(shù)對數(shù)據(jù)相關(guān)的串行操作都無法使之并行。如何把存在數(shù)據(jù)相關(guān)的一組串行操作變成并行操作是一個重要的課題。
與本發(fā)明有關(guān)的現(xiàn)有技術(shù)包括以下幾種1.串行處理方式對某一任務(wù),如果在一周期的延時(shí)內(nèi)不能完成,可將其分解成K個操作,用K個周期順序完成。當(dāng)一任務(wù)完成后,再處理下一任務(wù)。這就是串行處理方式。顯然,串行處理方式任務(wù)與任務(wù)之間、K個操作之間,數(shù)據(jù)既可無關(guān)也可相關(guān)。
若K個操作內(nèi)容相同可重用一個設(shè)備,經(jīng)K個周期的循環(huán)完成,見
圖1所示。
若K個操作內(nèi)容不同,則需用K個不同設(shè)備,經(jīng)K個周期完成,如圖2所示。
2.傳統(tǒng)的并行處理方式把某一任務(wù)分解成K個操作,用一個周期同時(shí)完成。實(shí)際上是用K個設(shè)備在一個周期完成。對于K個操作不論內(nèi)容是否相同,設(shè)備都不能重用。而且K個操作的數(shù)據(jù)必須無關(guān),不允許第二個操作的數(shù)據(jù)與第一個操作的結(jié)果相關(guān)。這樣使速度大大加快,一個周期就可以做完。如圖3所示。
3.流水處理方式為了提高串行操作的效率,可采用流水處理方式。將每項(xiàng)任務(wù)都分解成串行處理的K個操作,若處理一項(xiàng)任務(wù)需用K個周期完成,而連續(xù)處理n項(xiàng)任務(wù)時(shí)只需n+K個周期。當(dāng)?shù)谝粋€任務(wù)用第一個設(shè)備時(shí),第二項(xiàng)任務(wù)到來時(shí)只能等待。當(dāng)?shù)谝豁?xiàng)任務(wù)做第二個設(shè)備的操作時(shí),第二項(xiàng)任務(wù)才能使用第一個設(shè)備,依次類推。這樣在設(shè)備出口處每一個周期會有一個結(jié)果。流水處理方式需要K個處理設(shè)備,在處理過程中的n項(xiàng)任務(wù),各項(xiàng)任務(wù)之間數(shù)據(jù)必須無關(guān)。
串行任務(wù)如果用流水處理方式解決,需要設(shè)置很多棧。在各個棧的數(shù)據(jù)不能重復(fù)使用,隨著流水級數(shù)的增大,會使棧的深度過深。該處理方式適用于部份處理。
從以上三種不同的技術(shù)來看,我們可以得到以下結(jié)論處理對象若數(shù)據(jù)相關(guān)則必須串行處理,也就是說必須在一項(xiàng)任務(wù)處理完成后,才能進(jìn)行另一項(xiàng)任務(wù)處理。
本發(fā)明的目的在于提供一種數(shù)據(jù)相關(guān)串行操作的錯位并行處理方法,使得因數(shù)據(jù)相關(guān)而必須串行的操作可并行處理,即錯位并行,從而提高電路的執(zhí)行速度。
本發(fā)明還提供了一種錯位并行的浮點(diǎn)對階移位裝置。該裝置可在一周期內(nèi)完成浮點(diǎn)加法運(yùn)算中的對階移位操作,其特征在于1)一個三位一體減法裝置,用于執(zhí)行兩個數(shù)的減法運(yùn)算,并且同時(shí)給出第一操作數(shù)減第二操作數(shù)的值和第二操作數(shù)減第一操作數(shù)的值,以及第一操作數(shù)與第二操作數(shù)的大小比較結(jié)果,2)兩個移位裝置,用于完成兩個操作數(shù)的右移位。這兩個移位裝置受控于上述三位一體減法器給出的兩個減法的結(jié)果。第一操作數(shù)減第二操作數(shù)的結(jié)果控制第二操作數(shù)右移的位數(shù),第二操作數(shù)減第一操作數(shù)的結(jié)果控制第一操作數(shù)右移的位數(shù),3)一個2選1的多路選通器,用上述三位一體減法裝置給出的比較結(jié)果來控制,以選出兩個操作數(shù)中較小操作數(shù)的移位結(jié)果。
為了實(shí)現(xiàn)上述目的,本發(fā)明提供了一種數(shù)據(jù)相關(guān)串行操作的錯位并行處理方法,該方法把因存在數(shù)據(jù)相關(guān)而必須串行處理的兩個或多個操作,各分解成若干小的操作,使經(jīng)過一定錯位延遲后,達(dá)到操作并行處理的目的。
本發(fā)明的一個優(yōu)點(diǎn)是采用本發(fā)明的數(shù)據(jù)相關(guān)串行操作的錯位并行處理方法后,可以把因存在數(shù)據(jù)相關(guān)而必須串行處理的兩個或多個操作并行處理,使本來需要兩個或多個周期完成的串行操作僅在一個周期內(nèi)完成。
本發(fā)明的另一個優(yōu)點(diǎn)是采用本發(fā)明中所述的錯位并行的浮點(diǎn)對階移位裝置后,可在一個周期內(nèi)完成浮點(diǎn)加法中的對階移位操作。
圖1是用一個設(shè)備進(jìn)行循環(huán)串行處理的示意圖。
圖2是用K個設(shè)備進(jìn)行串行處理的示意圖。
圖3是傳統(tǒng)的并行處理方式的示意圖。
圖4是串行操作示意圖。
圖5是兩個數(shù)據(jù)相關(guān)的操作的錯位并行示意圖。
圖6是浮點(diǎn)加法尾數(shù)相加運(yùn)算示意圖。
圖7是錯位并行的浮點(diǎn)加法對階移位裝置的流程圖。
圖8是錯位并行的浮點(diǎn)加法對階移位裝置的結(jié)構(gòu)圖。
圖9是錯位并行的浮點(diǎn)加法對階移位裝置的電路模塊圖。
圖10是三位一體的減法器的電路模塊圖。
圖11是ESG0電路圖。
圖12是ESG1電路圖。
圖13是ESG2電路圖。
圖14是ESG3-4電路圖。
圖15是ESG5電路圖。
圖16是ESFC電路圖。
圖4為因數(shù)據(jù)相關(guān)必須串行操作的示意圖。此串行操作需要兩個設(shè)備A、B。本發(fā)明的數(shù)據(jù)相關(guān)串行操作的錯位并行處理方法將A分解成A1,A2……AK,將B分解成B1,B2……BK,然后進(jìn)行錯位并行處理。如圖5所示。這樣,就可把本來需要雙周期完成的操作變成單周期完成。
下面詳細(xì)描述本發(fā)明的數(shù)據(jù)相關(guān)串行操作的錯位并行處理方法以及錯位并行的浮點(diǎn)對階移位裝置。
給兩浮點(diǎn)數(shù)X·2A與Y·2B(X、Y為尾數(shù),A、B為階碼)。若這兩個浮點(diǎn)數(shù)相加,必須在階碼相同時(shí),尾數(shù)才能相加。即在A=B時(shí)才能做X+Y。假如階碼不相等,那么首先要對階(使階碼相等),然后尾數(shù)才能相加。例如當(dāng)A>B時(shí),必須進(jìn)行以下處理Y·2B=Y(jié)·2-(A-B)·(2B·2A-B)=Y(jié)′·2AY′=Y(jié)·2-(A-B)然后才能做X+Y′。
上述工作一般在計(jì)算機(jī)中要分解成以下幾步操作(1)用比較或減法確定A與B的大小,(2)根據(jù)(1)所得出的結(jié)果,求出A-B或B-A的值(因?yàn)樽鲆莆粫r(shí)需要正數(shù)),(3)根據(jù)(1)和(2)所得出的結(jié)果,如A≥B,做Y′=Y(jié)·2(A-B),即將Y算術(shù)右移A-B位;如A<B,做X′=X·2(B-A),即將X算術(shù)右移B-A位。
(4)做尾數(shù)的相加,X+Y’或X’+Y。
其處理過程見圖6。
由于階差與移位是數(shù)據(jù)相關(guān)的,因此一般計(jì)算機(jī)中對階移位要串行順序做以下操作(1)A-B(比較A、B的大小);(2)A-B≥0(A≥B)時(shí)選Y,A-B<0(A<B)時(shí)選X;(3)A-B<0時(shí)求|A-B|;(4)將Y或X送入移位器,對尾數(shù)進(jìn)行|A-B|位的算術(shù)右移。
考慮到(1)、(3)可以并行,可在一周期內(nèi)完成。(2)、(4)可以并行,可在一周期內(nèi)完成。但由于(2)、(4)對(1)、(3)存在數(shù)據(jù)相關(guān)性,因此在一般計(jì)算機(jī)中至少需2個周期完成。
第一周期求A-B和B-A;第二周期根據(jù)A-B或B-A的結(jié)果將X或Y進(jìn)行B-A位或A-B位算術(shù)右移。
用錯位并行技術(shù),將上述操作進(jìn)行改造,使本應(yīng)用兩個周期內(nèi)完成的操作,在單周期內(nèi)可以完成。
(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>,根據(jù)SA<106>和SB<106>的值產(chǎn)生移位是否有效信號;· 求出是否A≥B。
(2)將移位及選Y或X也分解成以下五步· 根據(jù)SA<10>和SB<10>的值,分別對Y和X進(jìn)行0,1,2,3位算術(shù)右移;· 根據(jù)SA<32>和SB<32>的值,分別對Y和X進(jìn)行0,4,8,12位算術(shù)右移;· 根據(jù)SA<54>和SB<54>的值,分別對Y和X進(jìn)行0,16,32,48位算術(shù)右移;· 根據(jù)移位是否有效信號選出X和Y的移位有效結(jié)果· 根據(jù)是否A≥B選出X和Y的移位結(jié)果。
合并(1),(2)就能在單周期內(nèi)進(jìn)行錯位并行完成對階、移位操作。錯位并行的浮點(diǎn)加法對階移位裝置的流程圖見圖7所示。
圖8為錯位并行的浮點(diǎn)加法對階移位裝置的結(jié)構(gòu)圖。
圖8中的X、Y為兩個規(guī)格化的浮點(diǎn)數(shù)的尾數(shù);A、B為這兩個浮點(diǎn)數(shù)的階碼。
把X和Y分別輸入兩個移位器,同時(shí)開始移位。
圖8中的TSHF<50>表示A-B的低六位差值,MSHF<50>表示B-A的低六位差值。MSHF<50>控制X的移位,TSHF<50>控制Y的移位。MSHF<50>和TSHF<50>由三位一體減法器(ESUB)分三個時(shí)間段給出,第一時(shí)間段ESUB計(jì)算出MSHF<10>和TSHF<10>。第二時(shí)間段ESUB計(jì)算出MSHF<32>和TSHF<32>同時(shí)MSHF<10>控制X的移位器完成0/1/2/3位算術(shù)右移,TSHF<10>控制Y的移位器完成0/1/2/3位算術(shù)右移。第三時(shí)間段ESUB計(jì)算出MSHF<54>和TSHF<54>,同時(shí)MSHF<32>控制X的移位器完成0/4/8/12位算術(shù)右移,TSHF<32>控制Y的移位器完成0/4/8/12位算術(shù)右移。第四時(shí)間段ESUB計(jì)算出移位是否有效信號SHFIN,同時(shí)MSHF<54>控制X的移位器完成0/16/32/48位算
圖10為三位一體的減法器的電路模塊圖。輸入?yún)⒓蛹臃ㄟ\(yùn)算的浮點(diǎn)數(shù)的階碼A<100>和B<100>。輸出NFC為A、B比較大小的結(jié)果;MSHF<50>控制X的移位,TSHF<50>控制Y的移位,SHFIN為移位有效信號。
圖11為ESG0電路圖。其作用為對兩個浮點(diǎn)數(shù)的階碼0、1位(<10>)進(jìn)行比較,并求出差值。其中TSHF<10>=A<10>-B<10>;MSHF<10>=B<10>-A<10>;CASB<1>為A<10>-B<10>運(yùn)算產(chǎn)生的正向進(jìn)位信號;NCBSA<1>為B<10>-A<10>運(yùn)算產(chǎn)生的反向進(jìn)位信號。
電路中所用的器件說明如下EO2兩輸入的異或門;IV反向器;NR2兩輸入的或非門;EN2兩輸入的異或非門;ND2兩輸入的與或非門;AO7三輸入的與或非門。
圖12為ESG1電路圖。其作用為對兩個浮點(diǎn)數(shù)的階碼3、2位(<32>)進(jìn)行比較,并求出差值。其中TSHF<32>=A<32>-B<32>+CASB<1>;MSHF<32>=B<32>-A<32>+NCBSA<1>;GES<2>為A<32>-B<32>運(yùn)算產(chǎn)生的本地進(jìn)位信號;TES<2>為A<32>-B<32>運(yùn)算產(chǎn)生的進(jìn)位傳遞信號。
CBSA<2>為B<32>-A<32>+NCBSA<1>運(yùn)算產(chǎn)生的進(jìn)位信號。
電路中所用的器件說明如下EO2兩輸入的異或門;IV反向器;NR2兩輸入的或非門;EN2兩輸入的異或非門;ND2兩輸入的與或非門;
AO7三輸入的與或非門。
圖13為ESG2電路圖。
其作用為對兩個浮點(diǎn)數(shù)的階碼5、4位(<54>)進(jìn)行比較,并求出差值。其中TSHF<54>=A<54>-B<54>+NCASB<2>;MSHF<54>=B<54>-A<54>+CBSA<2>;GES<3>為A<54>-B<54>運(yùn)算產(chǎn)生的本地進(jìn)位信號;TES<3>為A<54>-B<54>運(yùn)算產(chǎn)生的進(jìn)位傳遞信號。
電路中所用的器件說明如下EO2兩輸入的異或門;IV反向器;NR2兩輸入的或非門;EN2兩輸入的異或非門;ND2兩輸入的與或非門;AO7三輸入的與或非門。
圖14為ESG3-4電路圖。在圖10中用了兩塊ESG3-4電路。
圖10中的ESG3-4<1>的作用為對兩個浮點(diǎn)數(shù)的階碼7、6位(<76>)進(jìn)行比較并產(chǎn)生移位有效信號SHF<76>。其中GES<4>為A<76>-B<76>運(yùn)算產(chǎn)生的本地進(jìn)位信號;TES<4>為A<76>-B<76>運(yùn)算產(chǎn)生的進(jìn)位傳遞信號。
圖10中的ESG3-4<2>的作用為對兩個浮點(diǎn)數(shù)的階碼9、8位(<98>)進(jìn)行比較并產(chǎn)生移位有效信號SHF<98>。其中GES<5>為A<98>-B<98>運(yùn)算產(chǎn)生的本地進(jìn)位信號;TES<4>為A<98>-B<98>運(yùn)算產(chǎn)生的進(jìn)位傳遞信號。
電路中所用的器件說明如下EO2兩輸入的異或門;IV反向器;NR2兩輸入的或非門;EN2兩輸入的異或非門;ND2兩輸入的與或非門;
AO7三輸入的與或非門。
EON1為四輸入的兩與或、兩或再與非門。
圖15為ESG5電路圖。ESG5完成兩浮點(diǎn)數(shù)的階碼的全面比較,并產(chǎn)生最終的移位有效信號SHFIN。移位有效的含義是,A、B的差值小于56,若大于56則超過浮點(diǎn)數(shù)的有效位數(shù),因此移位無效并對最后的移位結(jié)果清零。
電路中所用的器件說明如下EO2兩輸入的異或門;IV反向器;EN2兩輸入的異或非門;ND2兩輸入的與或非門;NR6為6輸入的或非門;NR5為5輸入的或非門;ND5為5輸入的與非門;OR3為3輸入的或門;MUX21-1L為1個一位的反向輸出的2選1的選通器,控制信號為1時(shí)選通MUX21-1L的右端輸入并反向輸出,控制信號為時(shí)選通MUX21-1L的左端輸入并反向輸出。
圖16為ESFC電路圖。ESFC為ESUB的進(jìn)位鏈,它把A-B以及A與B比較的進(jìn)位鏈巧妙地合二為一并產(chǎn)生NCASB<2>、NCASB<3>、NCASB<4>、NCASB<5>和NFC信號。
NCASB<2>為A<30>-B<30>的進(jìn)位信號的反向,有進(jìn)位NCASB<2>=0,沒有進(jìn)位NCASB<2>=1;NCASB<3>為A<50>-B<50>的進(jìn)位信號的反向,有進(jìn)位NCASB<3>=0,沒有進(jìn)位NCASB<3>=1;NCASB<4>為A<70>-B<70>的進(jìn)位信號的反向,有進(jìn)位NCASB<4>=0,沒有進(jìn)位NCASB<4>=1;NCASB<5>為A<90>-B<90>的進(jìn)位信號的反向,有進(jìn)位NCASB<5>=0,沒有進(jìn)位NCASB<5>=1;NFC為A、B比較的狀態(tài)信號,A≥B時(shí)NFC=1,否則NFC=0。
電路中所用的器件說明如下IV反向器;NR2兩輸入的或非門;ND2兩輸入的與或非門;AO6三輸入的與或非門;AO7三輸入的或與非門。
兩浮點(diǎn)數(shù)的階碼比較結(jié)果。其中的器件含義如前。另AO6為3輸入的或與非門。
以上根據(jù)一個具體的實(shí)施例,對本發(fā)明進(jìn)行了描述。然而,本技術(shù)領(lǐng)域內(nèi)的熟練人員很容易看出,在不背離本發(fā)明的精神實(shí)質(zhì)的范圍內(nèi),對本發(fā)明還可以作出各種變形、修改。申請人認(rèn)為這些變形、修改都落入后面的權(quán)利要求的范圍之內(nèi)。
權(quán)利要求
1.一種數(shù)據(jù)相關(guān)串行操作的錯位并行處理方法,用于使因數(shù)據(jù)相關(guān)而必須串行的操作能并行處理。其特征在于把兩個或多個相關(guān)的操作分解,使其整體相關(guān)變成部分相關(guān),因而使原來相關(guān)的部分變成不相關(guān),然后再執(zhí)行經(jīng)上述分解的操作。
2.一種錯位并行的浮點(diǎn)對階移位裝置,該裝置可在一周期內(nèi)完成浮點(diǎn)加法運(yùn)算中的對階移位,其特征在于1)一個三位一體減法裝置,用于執(zhí)行兩個數(shù)的減法運(yùn)算,并且同時(shí)給出第一操作數(shù)減第二操作數(shù)的值和第二操作數(shù)減第一操作數(shù)的值以及第一操作數(shù)與第二操作數(shù)的大小比較結(jié)果,2)兩個移位裝置,用于完成兩個操作數(shù)的右移位,這兩個移位裝置受控于上述三位一體減法器給出的兩個減法的結(jié)果,第一操作數(shù)減第二操作數(shù)的結(jié)果控制第二操作數(shù)的移位,第二操作數(shù)減第一操作數(shù)的結(jié)果控制第一操作數(shù)的移位,3)一個2選1的多路選通路,用上述三位一體減法裝置給出的比較結(jié)果來控制,以選出兩個操作數(shù)中較小操作數(shù)的移位結(jié)果。
全文摘要
本發(fā)明提供了一種數(shù)據(jù)相關(guān)串行操作的錯位并行處理方法,該方法把因存在數(shù)據(jù)相關(guān)而必須串行處理的兩個或多個操作分解成若干小的操作,使其經(jīng)過一定的錯位延時(shí)后,達(dá)到操作并行處理的目的。本發(fā)明還提供了一種錯位并行的浮點(diǎn)對階移位裝置,用于在單周期內(nèi)完成浮點(diǎn)加法的對階移位,該裝置包括一個三位一體減法裝置、兩個移位裝置和一個2選1多路選通路。
文檔編號G06F17/00GK1230719SQ9810612
公開日1999年10月6日 申請日期1998年4月1日 優(yōu)先權(quán)日1998年4月1日
發(fā)明者王攻本 申請人:北京多思科技工業(yè)園股份有限公司