專利名稱:用于完成乘法運(yùn)算的方法、系統(tǒng)和設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種用于以流水線方式完成一個(gè)乘法運(yùn)算和另一個(gè)乘法運(yùn)算的方法,其中,在完成所述一個(gè)乘法運(yùn)算之前開(kāi)始所述另一個(gè)乘法運(yùn)算,將所述乘法運(yùn)算分成至少第一子運(yùn)算和第二子運(yùn)算,在一個(gè)流水線級(jí)執(zhí)行每個(gè)所述第一和第二子運(yùn)算。本發(fā)明也涉及一種用于以流水線方式完成一個(gè)乘法運(yùn)算和另一個(gè)乘法運(yùn)算的設(shè)備,該設(shè)備包括用于將乘法運(yùn)算分成至少第一子運(yùn)算和第二子運(yùn)算的裝置,將每一個(gè)所述第一和第二子運(yùn)算設(shè)置成在一個(gè)流水線級(jí)內(nèi)執(zhí)行。本發(fā)明也涉及一種包含用于以流水線方式完成一個(gè)乘法運(yùn)算和另一個(gè)乘法運(yùn)算的裝置的無(wú)線終端,其包括用于將該乘法運(yùn)算分成至少第一子運(yùn)算和第二子運(yùn)算的裝置,將每個(gè)所述第一和第二子運(yùn)算設(shè)置成在一個(gè)流水線級(jí)中執(zhí)行。本發(fā)明進(jìn)一步涉及一種用于以流水線方式完成一個(gè)乘法運(yùn)算和另一個(gè)乘法運(yùn)算的系統(tǒng),該系統(tǒng)包括用于將該乘法運(yùn)算分成至少第一子運(yùn)算和第二子運(yùn)算的裝置,將每個(gè)所述第一和第二子運(yùn)算設(shè)置成在一個(gè)流水線級(jí)中執(zhí)行。
背景技術(shù):
存在著許多其中需要乘法和/或相乘累加(MAC)運(yùn)算的應(yīng)用。作為一個(gè)非限制性的例子,如數(shù)字信號(hào)濾波應(yīng)用、視頻/圖像處理應(yīng)用等等這樣的許多信號(hào)處理應(yīng)用就是其中實(shí)現(xiàn)了實(shí)時(shí)乘法運(yùn)算的應(yīng)用。其中需要向量和/或矩陣運(yùn)算的其他應(yīng)用也利用了乘法和/或MAC運(yùn)算。通常將乘法運(yùn)算實(shí)現(xiàn)為求和及逐位移位運(yùn)算。由于兩個(gè)操作數(shù)間的一次乘法運(yùn)算需要許多次求和及移位運(yùn)算以計(jì)算乘法結(jié)果,因此這種乘法運(yùn)算是資源需求作業(yè)。
尤其是視頻/圖像處理算法是不得不實(shí)時(shí)實(shí)現(xiàn)的巨大量計(jì)算。因此,高速性能已經(jīng)成為發(fā)展用于不同視頻/圖像處理算法或者子作業(yè)的并行專門(mén)化結(jié)構(gòu)(加速器)中的推動(dòng)力。一個(gè)現(xiàn)有技術(shù)的視頻/圖像處理系統(tǒng)包括幾個(gè)這種加速器(如絕對(duì)差求和(SAD),余弦變換等等),其中每個(gè)由大量的硬件元件組成,然而,隨著移動(dòng)通信系統(tǒng)的發(fā)展,該影響系統(tǒng)成本的硬件領(lǐng)域以及功率/能量消耗成為了與高速性能同等重要的性能。對(duì)于滿足所有這些準(zhǔn)則的一種方法是進(jìn)一步現(xiàn)代化數(shù)字信號(hào)處理器(DSP)并降低專用加速器的數(shù)目。雖然在這個(gè)領(lǐng)域存在著一些改進(jìn),但是所開(kāi)發(fā)的系統(tǒng)仍然不能總是滿足高速及功率消耗的需要。
用于視頻及圖像處理及其他信號(hào)處理作業(yè)的現(xiàn)有技術(shù)體系通常以傳統(tǒng)乘法器結(jié)構(gòu)為基礎(chǔ)。已經(jīng)開(kāi)發(fā)出了用于實(shí)現(xiàn)乘法和/或相乘累加運(yùn)算的許多乘法方法以及相當(dāng)多種類的設(shè)備。在下文中,僅考慮兩個(gè)操作數(shù)(被乘數(shù)及乘數(shù))均未知的情況的乘法方法及通用乘法器結(jié)構(gòu)、存在于二進(jìn)制補(bǔ)碼運(yùn)算的兩個(gè)定點(diǎn)帶符號(hào)整數(shù)乘法以及所謂的以T為基數(shù)的(radix-T)方法。
分別地將n位(包括符號(hào))乘數(shù)a的二進(jìn)制補(bǔ)碼表示描述成a~=an-1an-2···a1a0,]]>以及將m位(包括符號(hào))被乘數(shù)x的補(bǔ)碼表示表示成x~=xm-1xm-2···x1x0.]]>a和 之間的關(guān)系(以及x和 之間的類似關(guān)系)如下a=-an-12n-1+Σr=0n-2ar2r,x=-xm-12m-1+Σl=0m-2xl2l.···(1)]]>在radix-T并行乘法方法中,根據(jù)以下公式而獲得乘積y=a·x的二進(jìn)制補(bǔ)碼y~=Σr=0nradix-T-1(Arx)2rtradix-T···(2)]]>在以下兩個(gè)主要步驟中步驟1.產(chǎn)生部分乘積(PP)Ar·x,r=0,...,nradix-T-1以便等式(2)有效。
步驟2.并行相加所有的部分乘積,將第r個(gè)部分乘積Ar·x,r=0,...,nradix-T-1預(yù)先向左移位rtradix-T個(gè)位置。
radix-T MAC單元以類似的方式進(jìn)行運(yùn)算,不同之處在于在步驟2將另一個(gè)數(shù)(累加項(xiàng))與部分乘積加在一起。
現(xiàn)在更詳細(xì)地考慮步驟1。取決于怎樣定義和獲得數(shù)字Ar·x,r=0,...,nradix-T-1可以導(dǎo)出不同的乘法方法。接著,事實(shí)上由乘數(shù)a的表示而指定數(shù)字Ar·x,r=0,...,nradix-T-1的選擇。最簡(jiǎn)單的乘法方法是radix-2方法,其利用了等式(1)左側(cè)給出的a的基本二進(jìn)制補(bǔ)碼表示。在這個(gè)情況中,通過(guò)下述公式而獲得乘積的二進(jìn)制補(bǔ)碼y~=Σr=0nradix-2-1(Arx)2rtradix-2=Σr=0n-2(arx)2r-(an-1x)2n-1,···(3)]]>即,nradix-2=n,以及由Ar=ar,其中r=0,...,n-2以及An-1=-an-1,其中r=n-1而定義了部分乘積Ar·x,r=0,...,n-1??衫贸藬?shù) 和被乘數(shù) 的每個(gè)二進(jìn)制補(bǔ)碼位之間的兩輸入端AND門(mén)陣列而簡(jiǎn)單地(并且通常地)形成這些部分乘積。在第二步的累加之前Ar·x,r=0,...,n-1的值乘以2r(即向左移動(dòng)r位)。應(yīng)當(dāng)注意的是在這個(gè)方法中,與其他部分乘積不同的方式來(lái)處理有時(shí)也稱作是校正因數(shù)的該部分乘積An-1·x。
在另一個(gè)radix-2乘法方法中,根據(jù)將該乘數(shù)的二進(jìn)制補(bǔ)碼位 作Booth重編碼成冗余帶符號(hào)數(shù)字,由此避免了部分乘積的不均勻性?,F(xiàn)在由下述公式而給出該乘積y~=Σr=0nradix-2-1(Arx)2r=Σr=0n-1(-ar+ar-1)x2r,a-1=0···(4)]]>即如前所述,nradix-2=n,但是部分乘積Ar·x,r=0,...,n-1現(xiàn)在全部由Ar=-ar+ar-1而定義。與前述方法類似,在第二步將其相加之前將Ar·x,r=0,...,n-1的值乘以2r。在這個(gè)方案中,在0,±x之間選擇部分乘積。這些值(0和x)中的兩個(gè)是可容易地利用的,而得到-x需要對(duì) 的位求反并加1。通常,在其中對(duì)部分乘積進(jìn)行求和的步驟2中完成加1。
不管是否采用Booth重編碼或非編碼方法,在radix-2乘法方法中共有nradix-2=n個(gè)部分乘積要被求和。為了降低部分乘積的數(shù)目并因此而降低第二級(jí)的延遲(累加部分乘積),已經(jīng)開(kāi)發(fā)了基于改進(jìn)Booth算法(MBA)的radix-4方法。MBA可能是最普及的乘法方法,并且正在被廣泛地研究和最佳化。在MBA中通過(guò)nradix-4=n/2個(gè)部分乘積的和y~=Σr=0nradix-4-1(Arx)22r=Σr=0n/2-1([-2a2r+1+a2r+a2r-1]x)22r,···(5)]]>a-1=0而獲得乘積的二進(jìn)制補(bǔ)碼,其中根據(jù)乘數(shù) 的二進(jìn)制補(bǔ)碼表示的三個(gè)連續(xù)位a2r+1、a2r、a2r-1(a-1=0)而選定Ar∈{-2,-1,0,1,2},r=0,1,...,n/2-1的值。在步驟2相加之前用22r來(lái)乘以該部分乘積(即硬件向左移動(dòng)2r位)Ar·x,r=0,...,n/2-1。
為了簡(jiǎn)化以下公式,在其中存在象n/k這樣的項(xiàng)的每種情況中,假定n是k的整數(shù)倍。由于可根據(jù)任意數(shù)目的位(重復(fù)最高有效位)而對(duì)二進(jìn)制補(bǔ)碼數(shù)求補(bǔ)碼,因而這是一個(gè)有效的假定。
圖1呈現(xiàn)了通常的改進(jìn)Booth算法101。有n/2個(gè)Booth編-解碼行,其中每行包含一個(gè)Booth編碼器102和m+1個(gè)Booth解碼器103,所述編碼器和解碼器可以兩個(gè)為一組。每個(gè)Booth編碼器102分析乘數(shù) 的二進(jìn)制補(bǔ)碼的三個(gè)連續(xù)位,包括一位重疊,并向相應(yīng)的行解碼器103輸出q個(gè)信號(hào)。在一些最近的現(xiàn)有技術(shù)設(shè)計(jì)中,q的值=3。根據(jù)這q個(gè)信號(hào),解碼器行在其輸入端形成具有被乘數(shù)的位 的部分乘積(Arx)∈{0,±x,±2x}。由于是通過(guò)硬件移位形成了2x,因而x的非負(fù)倍數(shù)可容易地獲得。通過(guò)將x的相應(yīng)正倍數(shù)的位求反并接著加1而形成x的負(fù)倍數(shù),這通常在步驟2中完成。例如,美國(guó)專利US6173304描述了一種實(shí)現(xiàn)Booth編碼器和解碼器的這種系統(tǒng)。在radix-2方法中可以比在改進(jìn)Booth算法中更容易得到部分乘積,但是當(dāng)采用改進(jìn)Booth算法時(shí)將部分乘積的數(shù)目減小到n/2其導(dǎo)致了在速度性能、面積及功率消耗中的顯著優(yōu)勢(shì)。
為了進(jìn)一步減小部分乘積的數(shù)目,將Booth編碼進(jìn)一步擴(kuò)展到多位(以任意T為基數(shù))重編碼?,F(xiàn)在給出該乘積的通用方程
y~=Σr=0nradix-T-1(Arx)2rt=Σr=0n/t-1([-atr+t-12t-1+Σi=0t-2atr+i2i+atr-1]x)2tr···(6)]]>a-1=0,T=2t=2tradix-T.]]>即,存在著nradix-T=n/t個(gè)部分乘積(T=2t)并且根據(jù)來(lái)自可能的部分乘積Ax(A的范圍在-2t-1到2t-1之間)列表中的乘數(shù) 的t+1個(gè)連續(xù)位而選擇每個(gè)部分乘積。可通過(guò)兩個(gè)(對(duì)于T=8,16)或更多個(gè)(T>16)2的x次冪的加法,以及可能地通過(guò)將位求反并加1而相對(duì)容易地形成每個(gè)可能的部分乘積(步驟2)。例如,在radix-8重編碼的情況中,可能的部分乘積的列表是0,±x,±2x,±3x,±4x。除3x可通過(guò)一次加法3x=x+2x而獲得之外這個(gè)列表中的所有非負(fù)倍數(shù)均可容易的得到。如前所述,可通過(guò)求反加1的方法而得到負(fù)的倍數(shù)。在radix-16重編碼的情況中,可能的部分乘積的列表是0,±x,±2x,±3x,...,±8x,所有這些均可通過(guò)實(shí)現(xiàn)三個(gè)獨(dú)立的加法/減法以便得到3x=x+2x,5x=x+4x,7x=-x+8x而可以得到??赏ㄟ^(guò)將3x向左移一位而得到可能的部分乘積6x。然而,對(duì)于更高基數(shù)的情況,一些可能的部分乘積(如11x和13x)不能在一次加法/減法中得到。
圖2呈現(xiàn)了現(xiàn)有技術(shù)的radix-T(T≥8)多位Booth重編碼(基數(shù)高于4)乘法器的通用結(jié)構(gòu)201。這個(gè)結(jié)構(gòu)包括用于計(jì)算可能的部分乘積的列表0,±x,±2x,...,±Tx的加法器陣列202、用于根據(jù)乘數(shù)位而選擇n/t個(gè)部分乘積的選擇模塊203、和用于將所選擇的部分乘積求和的求和模塊204。最后加法器205從由求和模塊204中所產(chǎn)生的和S以及進(jìn)位C項(xiàng)而形成乘積 典型的現(xiàn)有技術(shù)基數(shù)高于4乘法器的加法器陣列包括與包含在可能的部分乘積列表中的x的正奇數(shù)倍數(shù)一樣多的加法器(在T=8的情況中是1,在T=16的情況中是3等等)。通常,由于形成該可能的部分乘積列表是這種乘法器相當(dāng)費(fèi)時(shí)間的部分,因而采用快速-超前進(jìn)位(CLA)加法器。在專利US5875125中,提出了一種可用在radix-8乘法器中的專門(mén)的x+2x加法器。值得注意的是也提出了混合的radix-4/radix-8乘法器,例如在美國(guó)專利號(hào)4965762中,然而,其主要對(duì)其中串行產(chǎn)生并累加可能的部分乘積的迭代(非并行)乘法器有用。美國(guó)專利號(hào)5646877描述了一種乘法器結(jié)構(gòu),其中對(duì)于任意基數(shù)的可能的部分乘積均是作為加法器陣列內(nèi)3x及x移位方案的和或差而得到的,該陣列包括一個(gè)用于產(chǎn)生3x的x+2x加法器、兩個(gè)移位器和一個(gè)加法器/減法器。
典型現(xiàn)有技術(shù)以高于4為基數(shù)的乘法器的選擇模塊203包括n/t個(gè)radix-T Booth編碼器和相等數(shù)目的解碼器行。根據(jù)由該解碼器行所形成的相應(yīng)部分乘積,每個(gè)編碼器分析乘數(shù)的相應(yīng)(t+1)個(gè)字節(jié)組并輸出多個(gè)控制信號(hào)。例如,在專利US6240438中給出了對(duì)如何將radix-TBooth編碼器和解碼器擴(kuò)展到更高的基數(shù)的評(píng)述。
下面,將更詳細(xì)地考慮該部分乘積的相加,即步驟2。大部分并行乘法器/MAC單元結(jié)構(gòu)采用由壓縮陣列組成,該壓縮陣列后跟用于將步驟1(見(jiàn)圖1和2)所形成的部分乘積相加的快速加法器(最后加法器)。該壓縮陣列將nradix-T個(gè)部分乘積行減小成相應(yīng)于用最后加法器來(lái)相加的和S及進(jìn)位C項(xiàng)的兩行。該壓縮陣列通常不是由全加和半加加法器(一個(gè)-保存進(jìn)位加法器樹(shù)或Wallace樹(shù))就是4∶2壓縮器組成。最后加法器通常是快速-超前進(jìn)位加法器,其是根據(jù)壓縮陣列中不同位的延遲而仔細(xì)設(shè)計(jì)的。
如圖3a和3b所述,大體上存在兩種將乘法器結(jié)構(gòu)擴(kuò)展到MAC單元的方式。在第一種情況中(圖3a),將壓縮陣列301的兩個(gè)輸出(S和C項(xiàng))反饋到其輸入以便將當(dāng)前部分乘積值與當(dāng)前累加值的兩個(gè)加數(shù)相累加。然后將最終S和C項(xiàng)在最后加法器302內(nèi)相加。在第二種情況中(圖3b),將這些輸出送到反饋到另一壓縮陣列303,其輸出又反饋到它的輸入端。現(xiàn)在,將當(dāng)前乘積的S及C項(xiàng)累加到當(dāng)前累加值直到最后周期,這時(shí)在最后加法器302內(nèi)將最終S及C項(xiàng)相加。在第一種情況中整個(gè)壓縮陣列的深度(depth)(因此為總時(shí)延)可以更小,同時(shí)因此,在第二種情況中寬度、面積和功率消耗可以更小。
作為高基數(shù)乘法器的概述,值得注意的是基數(shù)越高,步驟1(產(chǎn)生部分乘積)的復(fù)雜性越高,但是步驟2(將部分乘積相加)的復(fù)雜性越低?!案哂?的基數(shù)”乘法方法沒(méi)有得到流行,或許是由于必需具有包括加法器陣列及選擇模塊的部分乘積發(fā)生器,其消耗的相當(dāng)?shù)臅r(shí)間和面積。通常,認(rèn)為以4為基數(shù)的MBA是現(xiàn)有技術(shù)最佳并行乘法方法并且其用于許多產(chǎn)業(yè)上的乘法器中。
本發(fā)明的主要目的是強(qiáng)化一些乘法器/MAC單元特征,這些特征從視頻和圖像處理角度出發(fā)是所期望的但在現(xiàn)有技術(shù)解決辦法中是空白的或不充分的。首先,考慮最流行的radix-4 Booth重編碼乘法器/MAC方法。作為這種方法的一個(gè)通用缺陷,它比更高基數(shù)方法更耗電。另一個(gè)通用缺陷是,即使與radix-2乘法相比部分乘積的數(shù)目減小為一半,仍然可利用更高基數(shù)而使其減小。也就是說(shuō),這個(gè)方法的復(fù)雜性主要集中于步驟2(將部分乘積相加)。當(dāng)流水作業(yè)radix-4Booth重編碼乘法器/MAC結(jié)構(gòu)時(shí),通常將部分乘積產(chǎn)生模塊認(rèn)為是第一流水線級(jí),然而其純平衡于(即更快于)其他流水線級(jí)。
考慮“基數(shù)高于4”乘法器,已經(jīng)示出了當(dāng)僅考慮到該乘法運(yùn)算的實(shí)現(xiàn)時(shí),就面積和時(shí)間判據(jù)而言這些乘法器的不同實(shí)現(xiàn)方式與radix-4乘法器相比表現(xiàn)為有競(jìng)爭(zhēng)力,同時(shí)就功率消耗方面也勝過(guò)那些radix-4乘法器?!盎鶖?shù)高于4”方法的主要缺陷是部分乘積產(chǎn)生模塊必須具有一個(gè)加法器陣列。
Booth重編碼乘法器也具有與必須處理被乘數(shù)的負(fù)倍數(shù)以及符號(hào)擴(kuò)展有關(guān)的缺陷。更重要的是,“基數(shù)高于16”Booth重編碼乘法器需要一級(jí)以上的加法以產(chǎn)生可能的部分乘積。
因此,本發(fā)明的一個(gè)目的就是開(kāi)發(fā)不利用Booth重編碼的高基數(shù)乘法器。
如果要采用獨(dú)立的現(xiàn)有技術(shù)并行陣列或新提出的高基數(shù)乘法器/MAC單元來(lái)實(shí)現(xiàn)多個(gè)相應(yīng)運(yùn)算,則即使可以不影響總處理量而共享較快模塊,仍然需要較大的硅面積。
因此,本發(fā)明的另一個(gè)目的是開(kāi)發(fā)一組具有一些公共模塊的乘法器和/或MAC單元。
流水作業(yè)的現(xiàn)有技術(shù)乘法器和/或MAC單元的一個(gè)本質(zhì)缺陷在于流水線級(jí)之間的均衡性差。
發(fā)明內(nèi)容
和目的這里示出了兩張表。分別地,表1a呈現(xiàn)了現(xiàn)有技術(shù)將n位乘數(shù)和m位被乘數(shù)相乘的Booth重編碼radix-T乘法器/MAC單元中的不同模塊的各種特征,表1b呈現(xiàn)了將n位乘數(shù)和m位被乘數(shù)相乘的新非重編碼radix-T乘法器/MAC單元中的不同模塊的各種特征。表1c呈現(xiàn)了在表1a和1b中所使用的簡(jiǎn)稱。分析表1a和1b可以看出,對(duì)于大多數(shù)的n值和m值來(lái)說(shuō),在每種乘法器/MAC單元類型中每個(gè)乘法器的不同模塊的延遲都存在著本質(zhì)的區(qū)別。也就是說(shuō),這些乘法器的直接流水線的實(shí)現(xiàn)將受到流水線級(jí)之間的不良對(duì)稱的影響。設(shè)法在流水線級(jí)之間實(shí)現(xiàn)較佳對(duì)稱,人們可以通過(guò)在一個(gè)進(jìn)位串行傳送(carry-ripple)模塊內(nèi)設(shè)計(jì)一個(gè)具有不同數(shù)目的FA的超前進(jìn)位(CLA)加法器而靈活地提高第一和最后流水線級(jí)的處理量。這就是為什么表1a和1b中沒(méi)有顯示出這些模塊的延遲原因。在有些情況中,如n取小的數(shù)值,基數(shù)T較高,這可能意味著很小的進(jìn)位串行傳送模塊,以及由此的較大面積??傊?,利用CLA是加速這兩級(jí)的一種解決方案,雖然這種解決方案不是太有效。由于目前工藝電路的設(shè)計(jì)是通過(guò)使這些電路的內(nèi)部流水線不僅合理的方式來(lái)最佳化關(guān)鍵路徑而進(jìn)行的,因此對(duì)于中間兩個(gè)流水線級(jí)(SB和CA),情況是不同的。另外,在不同的n值下,對(duì)于現(xiàn)有技術(shù)乘法器/MAC單元結(jié)構(gòu)的每種類型(BR(T=8,16),NR1(T=4,8))來(lái)說(shuō),這些模塊的延遲之間的相對(duì)差異是很懸殊的。對(duì)于n較小而基數(shù)T較高(如T=16且n任意)的情況,選擇模塊比壓縮陣列更慢,而在其他情況中情形正相反。這意味著為一個(gè)或另一個(gè)模塊設(shè)計(jì)更快的電路并非解決這些級(jí)均衡性問(wèn)題的通用方案。所有這些使得很難得出一個(gè)以均衡性較好的流水線級(jí)使現(xiàn)有技術(shù)乘法器/MAC單元實(shí)現(xiàn)流水線作業(yè)的系統(tǒng)性方法。
表1a
表1b
表1c
本發(fā)明的目的是實(shí)現(xiàn)一種用于以并行流水作業(yè)方式進(jìn)行定點(diǎn)乘法運(yùn)算的改進(jìn)的計(jì)算結(jié)構(gòu)及方法,其中流水線級(jí)的均衡性較佳。
本發(fā)明基于利用并行乘法器或MAC單元來(lái)至少部分地以時(shí)間交錯(cuò)方式完成計(jì)算運(yùn)算的思想。簡(jiǎn)言之,通過(guò)利用這樣的流水線作業(yè),即,其中在不同程度并行性上并行每個(gè)流水線級(jí)以便將更高的并行性用于相對(duì)更慢的模塊,而從radix-T Booth重編碼(T=8,16)乘法器/MAC單元的現(xiàn)有技術(shù)結(jié)構(gòu)中或者從新的非重編碼乘法器/MAC單元結(jié)構(gòu)(其中T=4,8)中導(dǎo)出本發(fā)明的結(jié)構(gòu)。用這種方法,將高度的靈活性引入到了設(shè)計(jì)乘法器/MAC單元中。一個(gè)方面,與單個(gè)現(xiàn)有技術(shù)乘法器/MAC相比較,在硬件/功率開(kāi)銷增加最小的情況下允許實(shí)現(xiàn)較高的處理量。另一個(gè)方面,與具有一組獨(dú)立的現(xiàn)有技術(shù)乘法器/MAC單元相比,這導(dǎo)致了面積顯著的節(jié)省、流水線級(jí)間較佳的均衡性、以及由此的較佳地硬件利用及功率消耗。根據(jù)本發(fā)明的方法的另一個(gè)重要優(yōu)點(diǎn)在于無(wú)需增加輸入/輸出總線寬度即可獲得更大的并行性。
高基數(shù)乘法器/MAC單元結(jié)構(gòu)包括那些可將其獨(dú)立地用于完成其他有效運(yùn)算的模塊。這種模塊是加法器/減法器陣列或求和模塊。本發(fā)明的一個(gè)目的是要設(shè)計(jì)可重構(gòu)的高基數(shù)乘法器/MAC單元結(jié)構(gòu),可配置該結(jié)構(gòu)使其僅包括乘法器模塊的子集以便由同樣的設(shè)備支持乘法運(yùn)算的子運(yùn)算的實(shí)現(xiàn)。
確切地說(shuō),根據(jù)本發(fā)明的方法的主要特征在于在一個(gè)流水線級(jí)內(nèi)并行執(zhí)行包含在高基數(shù)乘法中的至少一個(gè)子運(yùn)算,其中在完成第一乘法運(yùn)算的相應(yīng)子運(yùn)算之前開(kāi)始第二乘法運(yùn)算的子運(yùn)算。根據(jù)本發(fā)明的設(shè)備的主要特征在于該設(shè)備進(jìn)一步包括用于在一個(gè)流水線級(jí)內(nèi)并行執(zhí)行包含在一個(gè)高基數(shù)乘法中的至少一個(gè)子運(yùn)算的裝置,以及用于在完成第一乘法運(yùn)算的相應(yīng)子運(yùn)算之前開(kāi)始第二乘法運(yùn)算的子運(yùn)算的裝置。根據(jù)本發(fā)明的無(wú)線終端的主要特征在于該無(wú)線終端進(jìn)一步包括用于在一個(gè)流水線級(jí)內(nèi)并行執(zhí)行包含在一個(gè)高基數(shù)乘法中的至少一個(gè)子運(yùn)算的裝置,以及用于在完成所述一個(gè)乘法運(yùn)算的相應(yīng)子運(yùn)算之前開(kāi)始所述另一個(gè)乘法運(yùn)算的子運(yùn)算的裝置。根據(jù)本發(fā)明的計(jì)算設(shè)備的主要特征在于該計(jì)算設(shè)備進(jìn)一步包括用于在一個(gè)流水線級(jí)內(nèi)并行執(zhí)行包含在一個(gè)高基數(shù)乘法中的至少一個(gè)子運(yùn)算的裝置,以及用于在完成所述一個(gè)乘法運(yùn)算的相應(yīng)子運(yùn)算之前開(kāi)始所述另一個(gè)乘法運(yùn)算的子運(yùn)算的裝置。根據(jù)本發(fā)明的系統(tǒng)的主要特征在于該系統(tǒng)進(jìn)一步包括用于在一個(gè)流水線級(jí)內(nèi)并行執(zhí)行包含在一個(gè)高基數(shù)乘法中的至少一個(gè)子運(yùn)算的裝置,以及用于在完成所述一個(gè)乘法運(yùn)算的相應(yīng)子運(yùn)算之前開(kāi)始所述另一個(gè)乘法運(yùn)算的子運(yùn)算的裝置。
與現(xiàn)有技術(shù)的解決方案相比較,本發(fā)明顯示出了顯著的優(yōu)點(diǎn)。通過(guò)利用根據(jù)本發(fā)明的方法,與現(xiàn)有技術(shù)方法和設(shè)備相比,可以更快地并且采用更少功率地執(zhí)行視頻/圖像處理環(huán)境中的乘法運(yùn)算。本發(fā)明對(duì)于實(shí)現(xiàn)多個(gè)乘法/MAC尤其有效。與例如具有獨(dú)立的乘法器陣列的情況相比,由于流水線級(jí)之間的均衡性更佳,因此,實(shí)現(xiàn)了面積及功率消耗上的顯著降低。高速性能(高處理量)是由于所用的流水線可靈活地平衡不同流水線級(jí)(乘法器模塊)的延遲以及將總體結(jié)構(gòu)的周期降低至最快模塊的延遲。與單個(gè)流水作業(yè)的現(xiàn)有技術(shù)(radix-4或更高)乘法器相比,用最小的面積增長(zhǎng)實(shí)現(xiàn)了處理量的提高而沒(méi)有增加輸入/輸出總線寬度。
附圖的簡(jiǎn)要描述在下文中,參考附圖將更詳細(xì)地描述本發(fā)明,其中圖1示出了現(xiàn)有技術(shù)radix-4 Booth重編碼乘法器的典型結(jié)構(gòu),圖2示出了radix-T Booth重編碼(T≥8)或非重編碼(T≥4)乘法器的通用結(jié)構(gòu),圖3a示出了并行radix-T MAC單元結(jié)構(gòu)內(nèi)的一個(gè)求和模塊的實(shí)施例,其中將該求和模塊實(shí)現(xiàn)為對(duì)于n/t個(gè)所選擇的PP和用于反饋和及進(jìn)位項(xiàng)的共用壓縮陣列,圖3b示出了并行radix-T MAC單元結(jié)構(gòu)內(nèi)的求和模塊的另一個(gè)實(shí)施例,其中求和模塊實(shí)現(xiàn)為一個(gè)拆分壓縮陣列,圖4示出了根據(jù)本發(fā)明的用于多個(gè)乘法/MAC運(yùn)算的設(shè)備的優(yōu)選實(shí)施例簡(jiǎn)化方框圖,圖5a是串行功能模塊的說(shuō)明,圖5b是根據(jù)本發(fā)明的延遲(交錯(cuò))并行性原理的多個(gè)類似并行功能模塊的說(shuō)明,圖6a顯示為圖5b的延遲并行功能模塊內(nèi)輸入寄存器的工作模式時(shí)序圖,圖6b顯示為圖5b的延遲并行功能模塊內(nèi)功能模塊工作模式的時(shí)序圖,圖6c顯示為圖5b的延遲并行功能模塊內(nèi)輸出多路復(fù)用器工作模式的時(shí)序圖,圖7示出了根據(jù)本發(fā)明的包含用于將被乘數(shù)求反的加法器的類型1 radix-8乘法器的優(yōu)選實(shí)施例,圖8示出了圖7中乘法器結(jié)構(gòu)內(nèi)SEL單元的示例性實(shí)施例,圖9示出了由對(duì)于m=13,n=16的情況下圖7中乘法器結(jié)構(gòu)的全加器和半加器組成的壓縮陣列,圖10示出了根據(jù)本發(fā)明優(yōu)選實(shí)施例的設(shè)備的簡(jiǎn)化方框圖,以及圖11示出了用于多個(gè)乘法/MAC運(yùn)算的根據(jù)本發(fā)明另一個(gè)實(shí)施例的可配置設(shè)備的通用結(jié)構(gòu)的簡(jiǎn)化方框圖。
發(fā)明的詳細(xì)說(shuō)明在下文中,將更詳細(xì)地描述本發(fā)明的優(yōu)選實(shí)施例。圖4顯示了根據(jù)本發(fā)明的設(shè)備的通用結(jié)構(gòu)。設(shè)備401包括一組不同的流水線級(jí)P1、P2、P3、P4。在這個(gè)實(shí)施例中,設(shè)備401包含四個(gè)流水線級(jí),但是顯然在本發(fā)明的范圍內(nèi),流水線級(jí)的數(shù)目可以不同于四。
作為一個(gè)非限制性的例子而在此處采用的本發(fā)明優(yōu)選實(shí)施例是一個(gè)用于實(shí)現(xiàn)一系列乘法yi=aixi,i=1,...,k或多個(gè)MAC運(yùn)算,即向量-向量?jī)?nèi)積s=Σi=1Kaixi]]>運(yùn)算的設(shè)備。該設(shè)備實(shí)際上作為一并行陣列(一組)高基數(shù)Booth重編碼或非重編碼并行乘法器或MAC單元而運(yùn)算,其中由該陣列的乘法器/MAC單元共享某些模塊。
流水線是一個(gè)提高用于實(shí)現(xiàn)如乘法和/或MAC這樣的多個(gè)類似運(yùn)算的系統(tǒng)處理量的常用方式。考慮現(xiàn)有技術(shù)radix-T Booth重編碼(T=8,16)或非重編碼(T=4,8)乘法器結(jié)構(gòu)(圖2)的典型流水線實(shí)現(xiàn),第一流水線級(jí)P1將是具有表1a中給出的s的s個(gè)加法器陣列,第二級(jí)P2將是選擇模塊,第三級(jí)P3將是壓縮陣列,最后幾級(jí)P4(其數(shù)量在不同的實(shí)現(xiàn)中不同)將構(gòu)成最后的加法器。
為了在一個(gè)乘法處理中應(yīng)用本發(fā)明,通過(guò)如下的修改公式(3)而導(dǎo)出了用于任意帶符號(hào)二進(jìn)制補(bǔ)碼整數(shù)的新的非重編碼基數(shù)高于四乘法的方法y~=Σr=0nradix-T-1(Arx)2rt=Σr=0n-1t-1([Σi=0t-1atr+i2i]x)2tr-(an-1x)2n-1,···(7)]]>其中T=2t或者通過(guò)如下的修改公式(3)y~=Σr=0n/t-2([Σi=0t-1atr+i2i]x)2tr+([-2t-1an-1+Σi=0t-2an-t+i2i]x)2n-t···(8)]]>如果采用公式(7),那么將有(n-1)/t+1個(gè)可能的部分乘積,其中前(n-1)/t個(gè)可能的部分乘積是被乘數(shù)的非負(fù)倍數(shù)Arx,r=0,1,...,n/t-1,其中Ar在0到2t-1之間變化,以及最后的可能的部分乘積是-an-1x。如果采用公式(8),那么將有n/t個(gè)可能的部分乘積Arx,r=0,1,...,n/t-1,其中對(duì)于前(n-1)/t個(gè)可能的部分乘積來(lái)說(shuō)Ar在0到2t-1之間變化,以及對(duì)于最后的可能的部分乘積來(lái)說(shuō)Ar在-2t-1到2t-1之間變化。在這個(gè)情況中,僅將前t+1個(gè)最高有效位進(jìn)行類Booth重編碼,而將其他位t個(gè)一組進(jìn)行分組?;诘仁?7)或(8)的乘法器將具有與圖2所示類似的結(jié)構(gòu),所不同的在于選擇模塊203和部分乘積的數(shù)目。由于沒(méi)有將乘法器編碼,可將選擇模塊簡(jiǎn)單地實(shí)現(xiàn)為乘法器陣列,以及如果采用公式(8),對(duì)于前t+1個(gè)最高有效位來(lái)說(shuō),僅需要一行Booth編碼/解碼器。由于幾乎所有可能的部分乘積都是乘數(shù)的非負(fù)倍數(shù),所以除了如果采用公式(8)時(shí)的1位以外,在求和模塊中不需要執(zhí)行任何的加1操作。這使選擇模塊更小并且有規(guī)則的利用更簡(jiǎn)單的互連網(wǎng)絡(luò)。
根據(jù)本發(fā)明的設(shè)備的優(yōu)選實(shí)施例包括了多個(gè)(一組)乘法器/MAC單元。該裝置的工作取決于幾個(gè)適當(dāng)選取的參數(shù),通過(guò)它們可以設(shè)計(jì)出具有較好均衡性的流水線級(jí)的設(shè)備。圖4示意性地顯示了所提出的各種radix-T Booth重編碼(T=8、16)或非重編碼(T=4、8)乘法器組的通用結(jié)構(gòu)。通常將根據(jù)本發(fā)明優(yōu)選實(shí)施例的一組乘法器/MAC單元的結(jié)構(gòu)描述成一個(gè)流水線設(shè)備401,其中第一流水線級(jí)P1包括多個(gè)(即p個(gè))s加法器陣列(AAs)402,并且所有的s加法器陣列(AAs)402共享相同的輸入線406。第二流水線級(jí)P2是多個(gè)(即q個(gè))選擇模塊(SB’s)403,第三級(jí)P3是多個(gè)(即u個(gè))壓縮陣列(CA’s)404,以及第四流水線級(jí)包括多個(gè)(即v個(gè))最后的超前進(jìn)位加法器(CLA’s)405。基本功能模塊(AA’s、SB’s、CA’s和CLA’s)事實(shí)上可與現(xiàn)有技術(shù)radix4、8、16 Booth重編碼乘法器和/或MAC單元或者新提出的radix8或16非重編碼乘法器/MAC單元的相應(yīng)類型中所用的相同。因而p=q=u=v=1的情況相當(dāng)于現(xiàn)有技術(shù)乘法器/MAC單元的情況。主要區(qū)別在于,在根據(jù)本發(fā)明設(shè)備的優(yōu)選實(shí)施例中,用多個(gè)不同數(shù)量的基本模塊替換現(xiàn)有技術(shù)結(jié)構(gòu)的每個(gè)基本模決。一個(gè)流水線級(jí)內(nèi)的模塊以下面描述的時(shí)間交錯(cuò)方式運(yùn)算,這樣,為了使它們大致彼此相等并且與所期望的操作步驟持續(xù)時(shí)間匹配,可以改變流水線級(jí)的處理量。
參考圖4、5a、5b,其中FB表示乘法器/MAC結(jié)構(gòu)的任一個(gè)基本功能模塊(AA、SB、CA、CLA),下面闡述多個(gè)功能模塊的時(shí)間交錯(cuò)運(yùn)算的原理。要將功能模塊FB要用于較大系統(tǒng)的流水線級(jí)中,并假定其具有DFB≈pTdes(但是DFB<pTdes)的預(yù)估延遲,其中Tdes是系統(tǒng)的期望運(yùn)算步驟持續(xù)時(shí)間。因此,為了使流水線級(jí)P1,...,P4以匹配于一個(gè)步驟持續(xù)時(shí)間的處理量工作,可用多個(gè)(w個(gè))功能模塊FB1,F(xiàn)B2,...,F(xiàn)Bw來(lái)替換該串行功能模塊,所述功能模塊在其輸入端406、407、408、409具有流水線寄存器(鎖存器)R1,...,Rw并且在其輸出端具有w∶1多路復(fù)用器410、411、412、413。參數(shù)w取決于所討論的流水線級(jí)。對(duì)于第一流水線級(jí)P1,參數(shù)w相當(dāng)于參數(shù)p,即存在p個(gè)流水線寄存器R1,...,Rp,并且第一流水線級(jí)的多路復(fù)用器410選擇p個(gè)輸入端中的一個(gè)到其輸出。對(duì)于第二流水線級(jí)P2,參數(shù)w相當(dāng)于參數(shù)q,即存在q個(gè)流水線寄存器R1,...,Rq,并且第二流水線級(jí)的多路復(fù)用器411選擇q個(gè)輸入端中的一個(gè)到其輸出。對(duì)于第三流水線級(jí)P3,參數(shù)w相當(dāng)于參數(shù)u,即存在u個(gè)流水線寄存器R1,...,Ru,并且第三流水線級(jí)的多路復(fù)用器412包含兩個(gè)多路復(fù)用器(未畫(huà)出),每個(gè)選擇u個(gè)輸入端中的一個(gè)到其輸出。對(duì)于第四流水線級(jí)P4,參數(shù)w相當(dāng)于參數(shù)v,即存在v個(gè)流水線寄存器R1,...,Rv并且,第四流水線級(jí)的多路復(fù)用器413選擇v個(gè)輸入端中的一個(gè)到其輸出414。流水線級(jí)P1、P2、P3、P4的共享輸入端406、407、408、409連接到w個(gè)流水線寄存器R1,...,Rw中的每一個(gè)。然而,在一個(gè)運(yùn)算步驟的時(shí)間偏移中,這些寄存器中的每一個(gè)在每w個(gè)運(yùn)算步驟中的一個(gè)中是開(kāi)啟的。這在圖6a中顯示成一個(gè)時(shí)序圖。用這種方法,在每個(gè)運(yùn)算步驟,由于在所考慮的流水線級(jí)內(nèi)的所有其他功能模塊的輸入寄存器是寫(xiě)關(guān)閉的,因而將輸入端I僅實(shí)際連接到一個(gè)功能模塊的輸入端而其他連接無(wú)效。在每w個(gè)運(yùn)算步驟的第一個(gè)步驟中打開(kāi)第一功能模塊FB1輸入端的寄存器R1,在每w個(gè)運(yùn)算步驟的第二個(gè)步驟中打開(kāi)第二功能模塊FB1輸入端的寄存器R1等等。通常,在運(yùn)算步驟t=1,2,...,K時(shí),輸入端I實(shí)際上僅連接到FB1的輸入端,其中f=(t-1)modw+1。因此,將輸入端I空間上共享但是在時(shí)域上分配于所考慮的流水線級(jí)的功能模塊FB1,F(xiàn)B2,...,F(xiàn)Bw之間。如在圖6b的時(shí)序圖中所顯示的那樣,在系統(tǒng)運(yùn)算期間,在運(yùn)算步驟t=1,2,...,K,送往該流水線級(jí)的輸入數(shù)據(jù)流的一個(gè)樣值Xt輸入到在該級(jí)被啟動(dòng)的功能模塊FBf,其中f=(t-1)modw+1。一旦該FBf在運(yùn)算步驟t+w-1,t=1,2,...,K的結(jié)束處完成其對(duì)Xt的運(yùn)算,功能模塊輸出端的該w∶1多路復(fù)用器410、411、412、413將在FBf中得到的結(jié)果傳送到下一運(yùn)算步驟t+w,t=1,2,...,K處的該級(jí)輸出端。由于這個(gè)原因,多路復(fù)用器410、411、412、413根據(jù)圖6c所示的循環(huán)modw規(guī)則而運(yùn)算。
將第一流水線級(jí)P1的輸出端連接到第二流水線級(jí)P2的輸入端。分別地,將第二流水線級(jí)P2的輸出端連接到第三流水線級(jí)P3的輸入端,以及將第三流水線級(jí)P3的輸出端連接到第四流水線級(jí)P4的輸入端。在根據(jù)本發(fā)明優(yōu)選實(shí)施例的設(shè)備中,最后一個(gè)流水線級(jí)即第四流水線級(jí)P4的輸出端連接到系統(tǒng)輸出端。
因此,通過(guò)將現(xiàn)有技術(shù)乘法器/MAC單元結(jié)構(gòu)的每個(gè)功能模塊替換成多個(gè)類似功能模塊以及通過(guò)利用時(shí)間交錯(cuò)運(yùn)算的原理,經(jīng)過(guò)適當(dāng)?shù)剡x擇每個(gè)流水線級(jí)內(nèi)模塊的數(shù)目(即參數(shù)p、q、u、v),可相對(duì)于預(yù)定的運(yùn)算步驟持續(xù)時(shí)間而言獲得流水線級(jí)較佳的均衡性。假定現(xiàn)有技術(shù)乘法器/MAC單元結(jié)構(gòu)內(nèi)四個(gè)流水線級(jí)的延遲分別是DAA,DSB,DCA,DCLA,并且系統(tǒng)的期望處理量是Ndes次乘法/MAC運(yùn)算/秒,則將期望運(yùn)算步驟持續(xù)時(shí)間選定為T(mén)des,以使得Tdes≤1/Ndes,并且將所提及的設(shè)計(jì)參數(shù)選擇為,其中符號(hào) 意思指上舍入到下一個(gè)整數(shù)值。
可將所提出的在時(shí)間Tdes下運(yùn)算的乘法器/MAC單元結(jié)構(gòu)的表面積估計(jì)為Sprop=pSAA+qSSB+uSCA+vSCLA+Soverhead其中SAA、SSB、SCA和SCLA是相應(yīng)模塊的面積,以及Soverhead是用于將多個(gè)功能模塊集成到每個(gè)流水線級(jí)中的互連及控制裝置的開(kāi)銷。
另一方面,在單個(gè)傳統(tǒng)的高基數(shù)流水線乘法器中,可將處理量定義為Npipe=1/Tpipe,其中Tpipe=max{DAA,DSB,DCA,DCLA}。即使Npipe≥Ndes,意味著單個(gè)流水線乘法器可以處理該作業(yè),但由于如表1中可見(jiàn)的那樣在DAA,DSB,DCA,DCLA之間的較大差異,該結(jié)構(gòu)將會(huì)受到各級(jí)間低均衡性的影響。該不良的均衡性導(dǎo)致低硬件利用以及因此導(dǎo)致功率消耗無(wú)效率。然而,例如在信號(hào)處理中,即使流水線化處理,也需要提供比單個(gè)乘法器高幾倍的處理量。這意味著在多數(shù)情況下,一個(gè)信號(hào)處理系統(tǒng)將不得不包括一陣列(一組) 個(gè)獨(dú)立的乘法器/MAC單元。顯然n=max{p,q,u,v}。因此,將傳統(tǒng)的乘法器/MAC單元陣列的總面積估計(jì)為Sconv=n(SAA+SSB+SCA+SCLA)+Soverhead比較Sprop和Sconv,可見(jiàn),與傳統(tǒng)的獨(dú)立乘法器/MAC單元陣列相比,根據(jù)本發(fā)明的結(jié)構(gòu)的面積明顯節(jié)省。本發(fā)明的優(yōu)點(diǎn)不僅可以在信號(hào)處理(例如圖像/視頻處理)中實(shí)現(xiàn)而且可以在其中需要實(shí)時(shí)乘法運(yùn)算的其他處理中實(shí)現(xiàn)。
因此,根據(jù)本發(fā)明優(yōu)選實(shí)施例的方法提供了流水線級(jí)P1到P4的較佳均衡性,并且能夠在最小地?cái)U(kuò)展面積的情況下提高單個(gè)高基數(shù)流水線乘法器/MAC單元的處理量。因?yàn)橛闪魉€級(jí)的較佳均衡性而實(shí)現(xiàn)的較佳的硬件利用,因此該結(jié)構(gòu)的處理量比面積增加的幅度更大。此外,應(yīng)當(dāng)注意的是,無(wú)需提高輸入/輸出總線寬度即可提高處理量,由于許多數(shù)字信號(hào)處理器提供相當(dāng)窄的總線寬度,因此這是關(guān)鍵性的。
圖7呈現(xiàn)了其中利用了本發(fā)明的該類型1非重編碼(即基于等式(7))radix-8乘法器結(jié)構(gòu)(NR1,T=8)的示范性實(shí)現(xiàn)。該乘法器701的運(yùn)算基于以下知識(shí)。
設(shè)a~=an-1an-2···a1a0]]>和x~=xm-1xm-2···x1x0]]>分別是n位(包括符號(hào)位)乘數(shù)a和m位(包括符號(hào)位)被乘數(shù)x的二進(jìn)制補(bǔ)碼表示。同樣設(shè)將乘數(shù)進(jìn)行符號(hào)擴(kuò)展以便n=3n′+1(n′是整數(shù))。因此,乘積y=a·x的(n+m)位(包括符號(hào)位)二進(jìn)制補(bǔ)碼表示可這樣獲得y~=Σr=0n′-1Y~r23r+2kX~]]>其中 Ar=a3r+2a3r+1a3r=22a3r+2+2a3r+1+a3r,r=0,...,n′-1,是部分乘積值,其從數(shù)字 k=min{n-1,m+2}的二進(jìn)制補(bǔ)碼表示的前m+2個(gè)最低有效位中形成,并且 是由以下公式給定的符號(hào)校正項(xiàng)
X~=(xm-1C(n)2m+2-k-an-1x2n-k)=xm-1C(n)2m+2-kifan-1=0xm-1C(n)2m+2-k-x2n-kifan-1=1]]>其中 應(yīng)當(dāng)注意的是,如果Ar≠0,則通過(guò)去掉由項(xiàng)項(xiàng)xm-1C(n)2m+2-k中所獲得的 的符號(hào)位而獲得 r=0,...,n′-1的值。然而,如果Ar=0,根據(jù)被乘數(shù)x的符號(hào)而應(yīng)當(dāng)使用負(fù)數(shù)(10...0)或正數(shù)(00...0)。
根據(jù)上述知識(shí),可以采用下列乘法的算法。
算法1將乘數(shù)a的二進(jìn)制補(bǔ)碼值a~=an-1an-2···a1a0(n=3n′+1)]]>和被乘數(shù)x的二進(jìn)制補(bǔ)碼值x~=xm-1xm-2···x1x0]]>作為算法1的輸入數(shù)據(jù)而提供。那么算法1的輸出將是乘積y=a·x的二進(jìn)制補(bǔ)碼值y~=ym+n-1ym+n-2···y1y0.]]>算法1包括以下步驟步驟1首先,形成可能的部分乘積3x~=2x~+x~,]]>5x~=4x~+x~]]>以及7x~=8x~-x~.]]>這可以分別由如加法器/減法器702b、702c、702d這樣的組合裝置來(lái)完成。同樣,例如是由第一加法器/減法器702a來(lái)形成符號(hào)校正項(xiàng)X^=xm-1C(n)2m+2-k-x2n-k]]>的二進(jìn)制補(bǔ)碼形式。 和 的值可以通過(guò)分別將 的值向左移一位、兩位和三位而獲得。 的值可以通過(guò)將 的值向左移一位而獲得。實(shí)質(zhì)上,在這一級(jí)獲得了任意三位非負(fù)數(shù)的被乘數(shù)x的所有可能的部分乘積值0, 和 在這一級(jí)獲得的每一個(gè)數(shù)都是一次加法或減法的結(jié)果,所述加法或減法的一個(gè)操作數(shù)是 而另一個(gè)操作數(shù)是向左移動(dòng)某些數(shù)目的位的 因而,可將這一級(jí)在一個(gè)運(yùn)算步驟中的四個(gè)并行加法器/減法器陣列702a、702b、702c、702d中實(shí)現(xiàn)。
步驟2因此,根據(jù)乘數(shù)的每一組三個(gè)連續(xù)位Ar=a3r+2a3r+1a3r,r=0,...,n′-1,從第1步所獲得的所有可能的部分乘積值列表0, 和 中選擇出n′個(gè)部分乘積Y~r=<Ar·x~>(m+2).]]>該選擇可由選擇裝置703b、703c、703d完成。同樣,如果an-1=0,那么將符號(hào)校正項(xiàng)的值設(shè)置為X~=xm-1C(n)2m+2-k,]]>否則(如果an-1=1)X~=X^,]]>其中 是在第1步中得到的。這可由第一選擇裝置703a來(lái)完成,其根據(jù)an的值而從其輸入X~=xm-1C(n)2m+2-k]]>和X~=X^]]>中選擇一個(gè)到輸出端。部分乘積 是通過(guò)去掉符號(hào)位而從 中所形成的(m+2)位數(shù)字,因此,它們總是與x的符號(hào)不相關(guān)的正數(shù)。
步驟3將n′個(gè)所選部分乘積 r=0,...,n′-1與 相加來(lái)定義乘積 如在壓縮陣列704a中執(zhí)行相加之前,將 的值乘以2r并將 的值乘以2k。這些乘法以圖7中選擇模塊703和求和模塊704之間的箭頭表示為移位運(yùn)算。根據(jù)本發(fā)明的乘法方法的步驟3總共要相加 個(gè)數(shù)(部分乘積行),而在Booth乘法方法中,取決于符號(hào)擴(kuò)展的方式,這個(gè)數(shù)是 或 另外,由于要將部分乘積值以及符號(hào)擴(kuò)展條件相對(duì)彼此移位3個(gè)位置,由此可將這些行中的一些合并。例如,000101和011000這兩行可以合并成下面一行011101。很容易看出,在合并后部分乘積行的總數(shù)是 由于所有的部分乘積 都是正數(shù)并且 是一個(gè)(m+n)位數(shù),因此在實(shí)現(xiàn)求和中不需要符號(hào)擴(kuò)展。形成及相加符號(hào)擴(kuò)展項(xiàng)值的另一種方式是可能的,然而其應(yīng)當(dāng)看作是算法1的較少改進(jìn)。顯然,如果將步驟3的結(jié)果與前面的結(jié)果相加,則可以容易地將所提出的乘法方法擴(kuò)展到乘法-累加(MAC)方法。
圖7中的乘法器701是建立在算法1的基礎(chǔ)上的。它包括用于從被乘數(shù) 中計(jì)算符號(hào)校正項(xiàng) 和該組可能的部分乘積 和 的加法器陣列702,用于根據(jù)乘數(shù) 的位形成該組部分乘積 r=0,...,n′-1以及項(xiàng) 的選擇模塊703,以及通過(guò)將選擇模塊703的輸出 和 相加而計(jì)算乘積 的求和模塊704,其中所述選擇模塊預(yù)先將 的值向左移3r個(gè)位置并將 的值向左移K個(gè)位置。
通過(guò)包含一個(gè)從整個(gè)求和模塊或壓縮陣列的輸出端到其輸入端的反饋可容易地將圖7的乘法器結(jié)構(gòu)擴(kuò)展成一個(gè)相乘-累加結(jié)構(gòu),以便將來(lái)自選擇模塊703的值的和與在前面的運(yùn)算步驟中得到的值累加。
圖7中乘法器結(jié)構(gòu)不同模塊可以不同方式實(shí)現(xiàn)。在下文中,假定被乘數(shù) 以具有可能移位的位并行方式輸入到加法器陣列702的四個(gè)加法器/減法器702a、702b、702c、702d中的每一個(gè)。第一加法器702a實(shí)現(xiàn)從常數(shù)xm-1C(n)2m+2-k中減去 得到 如果在求和模塊704中實(shí)現(xiàn)了將an的值相加,那么可用m個(gè)反相器代替這個(gè)加法器702a。第二和第三加法器702b及702c在其第二輸入端接收 并在其第一輸入端分別將 向左移動(dòng)一位和二位(也可考慮僅具有一個(gè)輸入端的加法器)。其結(jié)果分別是 和 類似地,第四加法器702d實(shí)現(xiàn)從 中減去 得到 加法器陣列702a、702b、702c和702d構(gòu)成了第一流水線級(jí)P1。
加法器陣列702的輸出輸入到選擇模塊703,在當(dāng)前實(shí)施例中其構(gòu)成了第二流水線級(jí)P2且包括一個(gè)(n+m-k)位2∶1多路復(fù)用器703以及n’個(gè)選擇單元(SEL)703b、703c、703d。多路復(fù)用器703a在其第一輸入端得到 并且在其第二輸入端得到xm-1C(n)2m+2-k,并且受an控制以便其將在其輸出端得到項(xiàng)X^=xm-1C(n)2m+2-k-x2n-k.]]>每個(gè)選擇單元703b、703c、703d在其輸入端得到0、 和 的值并且受乘數(shù) 的相應(yīng)三位控制。該輸出根據(jù)表3而形成表3 圖8呈現(xiàn)了一個(gè)可實(shí)現(xiàn)為選擇單元703b、703c、703d的電路的非限制性例子。該電路包括8選1多路復(fù)用器,它的一些輸入是通過(guò)將一些其他輸入的位移位而形成的。通常,選擇單元703b、703c、703可以是根據(jù)表3而工作的任一種電路。
根據(jù)本發(fā)明的乘法器結(jié)構(gòu)當(dāng)前實(shí)施例的求和模塊704由一個(gè)后面跟著加法器705(以下稱作最后加法器)的壓縮陣列(CA)704a組成。求和模塊704構(gòu)成該結(jié)構(gòu)的第三流水線級(jí)P3及第四流水線級(jí)P4。壓縮陣列704a將該n′+1個(gè)部分乘積行減少到兩行。它可以從3∶2比率全加器(FA)、半加器(HA),和/或4∶2比率壓縮器中構(gòu)造。各種構(gòu)造用于本實(shí)施例中的壓縮陣列和最后加法器的技術(shù)是現(xiàn)有技術(shù)中已知的。然而,應(yīng)當(dāng)注意的是,要在求和模塊中相加的行數(shù)比現(xiàn)有技術(shù)radix-4 Booth重編碼乘法器中的小。相應(yīng)地,壓縮陣列內(nèi)的級(jí)數(shù)以及由此的其延遲和尺寸都顯著降低。例如,在13位被乘數(shù)(m=13)和16位乘數(shù)(n=16)的情況中,當(dāng)利用radix-8方法替換radix-4方法來(lái)實(shí)現(xiàn)乘法器和MAC單元時(shí),可使要相加的行數(shù)分別從9降低到6以及從11降到8。圖9描述了對(duì)于這種情況中的全加器和半加器組成的可能的壓縮陣列的例子。在所考慮的例子中,分別與目前工藝的radix-4 Booth乘法器和MAC單元相比較,級(jí)數(shù)(延遲)分別從4降到3(從8t降到6t,t是NAND門(mén)延遲)以及從5降到4(從10t降到8t)。當(dāng)利用radix-8方法替換radix-4方法時(shí),在13×16乘法器的情況中全加器(FA)和半加器(HA)的數(shù)目從72和14降到36和13。
表4
表5
表5(續(xù))
表4呈現(xiàn)了估計(jì)時(shí)間特性的對(duì)比,表5呈現(xiàn)的估計(jì)硬件資源以及門(mén)數(shù)目將根據(jù)本發(fā)明優(yōu)選實(shí)施例的類型1非重編碼radix-8乘法器及MAC單元結(jié)構(gòu)(所提出乘法器)與現(xiàn)有技術(shù)中的Booth乘法器和BoothMAC單元結(jié)構(gòu)相比較,比較的情形是13位(m=13)被乘數(shù)和16位(n=16)乘數(shù),并且用MAC單元累加K=32次乘法。在生成這兩張表時(shí)都假定在第一流水線級(jí)中使用了標(biāo)準(zhǔn)的進(jìn)位串行傳送加法器以及將流水線加法器用作最后加法器(具有表4所示級(jí)數(shù))。如所見(jiàn)到的,radix-8乘法器壓縮陣列的延遲(6t)比在radix-4 Booth乘法器的情況中(8t)更小。然而,如果僅采用一個(gè)加法器陣列,那么由于運(yùn)算步驟持續(xù)時(shí)間由第一流水線級(jí)的延遲(24t)來(lái)決定,因此總延遲(864t)比在radix-4Booth乘法器中時(shí)(320t)要大得多。顯然,流水線級(jí)是純均衡的。同時(shí),從表5中可見(jiàn),由于該選擇模塊,radix-8乘法器總的門(mén)數(shù)目(1630G)比radix-4 Booth乘法器(1225G)更大。
另一方面,當(dāng)在該結(jié)構(gòu)中包括更多加法器陣列時(shí),可以使radix-8乘法器延遲減小的幅度超過(guò)門(mén)數(shù)目增加的幅度。當(dāng)包括p=4個(gè)加法器陣列時(shí),實(shí)現(xiàn)了流水線級(jí)之間的較佳均衡,并且總延遲(258t)變得比在p=1加法器陣列的情況中小3.34倍(但是幾乎比較大的K小了4倍)。應(yīng)當(dāng)注意的是門(mén)數(shù)目?jī)H增大了2750/1630=1.67倍。在MAC單元的情況中,對(duì)于意味著利用了六個(gè)加法器陣列及兩個(gè)壓縮陣列的p=6,q=1,v=2,u=4情況,實(shí)現(xiàn)了級(jí)間的最佳均衡。在這個(gè)情況中,與p=q=v=u=1的情況相比,在門(mén)數(shù)目增大2.65倍的代價(jià)下實(shí)現(xiàn)了快約5.54倍的性能。
根據(jù)本發(fā)明的結(jié)構(gòu)可用在許多不同的系統(tǒng)和設(shè)備中。有益地,其可用于視頻編碼/解碼系統(tǒng)中以執(zhí)行許多資源需求型計(jì)算運(yùn)算??筛鶕?jù)系統(tǒng)的專門(mén)需要而選擇參數(shù)p,q,u,v,以便得到每個(gè)流水線級(jí)P1,...,P4的最佳延遲。
本發(fā)明可例如是表示為包含不同流水線級(jí)P1,...,P4的一個(gè)獨(dú)立單元。在每個(gè)流水線級(jí)內(nèi)有必要的功能單元,其數(shù)目取決于所討論的應(yīng)用。還可以將本發(fā)明包含在一個(gè)數(shù)字信號(hào)處理器(DSP)中、在微處理器(MPU)中、在專用集成電路(ASIC)中等等。
接下來(lái),將詳細(xì)描述根據(jù)本發(fā)明的另一個(gè)優(yōu)選實(shí)施例。圖11示出了根據(jù)本發(fā)明的設(shè)備的這個(gè)實(shí)施例的通用結(jié)構(gòu)。主要區(qū)別在于這個(gè)設(shè)備是可配置的,這意味著其可以包括主要模塊(流水線級(jí))的不同的子集。這是通過(guò)在第一流水線級(jí)P1、第三流水線級(jí)P3和第四流水線級(jí)P4的輸入端包括一個(gè)或多個(gè)諸如多路復(fù)用器21、22、23這樣的選擇裝置而實(shí)現(xiàn)的。該多路復(fù)用器21、22、23有益地是2∶1多路復(fù)用器。其分別由信號(hào)c1,c2和c3來(lái)控制。該結(jié)構(gòu)也包含一個(gè)由第一控制信號(hào)c1以及由第二控制信號(hào)c2和第三控制信號(hào)c3的OR組合(c2∨c3)來(lái)控制的輸出選擇器24。該輸出選擇器24從第一流水線級(jí)P1的輸出端選擇數(shù)據(jù)或者從連接到該結(jié)構(gòu)輸出總線26的最后流水線級(jí)P4的輸出端選擇數(shù)據(jù)。多路復(fù)用器21、22、23的第一輸入端連接到該結(jié)構(gòu)輸入總線25的相應(yīng)線上,以及將多路復(fù)用器21、22、23的第二輸入端連接以便如果激活第二輸入端,那么該結(jié)構(gòu)如同一個(gè)乘法/MAC運(yùn)算設(shè)備來(lái)工作。因此,對(duì)于不同組控制信號(hào)c1,c2和c3來(lái)說(shuō)該結(jié)構(gòu)的不同配置是可能的。配置對(duì)這些信號(hào)依賴關(guān)系如下。
當(dāng)將所有的控制信號(hào)c1,c2,c3都設(shè)置為邏輯1狀態(tài),即c1=c2=c3=1時(shí),該結(jié)構(gòu)起乘法/MAC運(yùn)算設(shè)備的作用。在第一控制信號(hào)c1是邏輯0而其他兩個(gè)控制信號(hào)c2,c3是邏輯1狀態(tài),即c1=0;c2=c3=1的情形中時(shí),該結(jié)構(gòu)起sp加法器/減法器陣列的作用。僅激活第一流水線級(jí)P1(即加法器陣列2)而其他流水線級(jí)空閑。第三種選擇是將第一控制信號(hào)c1設(shè)置到邏輯1狀態(tài)而第二控制信號(hào)c2和第三控制信號(hào)c3設(shè)置到邏輯0狀態(tài)(c1=1;c2=c3=0)。這意味著該結(jié)構(gòu)起累加器的作用。僅壓縮陣列404和最后加法器405工作而加法器402和選擇模塊403空閑。在第四種選擇中,將第一控制信號(hào)c1和第二控制信號(hào)c2都設(shè)置成邏輯1狀態(tài),而將第三控制信號(hào)c3設(shè)置成邏輯0狀態(tài)(c1=c2=1;c3=0)。在這個(gè)情形中該結(jié)構(gòu)起多個(gè)寬精度快速加法器的作用。而在另一個(gè)選擇中,當(dāng)c1=c2=c3=0時(shí),該結(jié)構(gòu)同時(shí)起一個(gè)sp加法器/減法器陣列的作用和累加器的作用。顯然,上述選擇裝置22、23、24以及其結(jié)構(gòu)/工作模式對(duì)控制信號(hào)c1,c2,c3狀態(tài)的依賴關(guān)系僅是一種可能的選擇,而且在本發(fā)明的范圍內(nèi)也可施加其他選擇。這也適用于本說(shuō)明書(shū)以下所描述的其他控制信號(hào)。
在圖11的結(jié)構(gòu)中,存在兩個(gè)其他控制信號(hào)c4和c5,其向該結(jié)構(gòu)中增加了多功能性而沒(méi)有對(duì)其重配置。第四控制信號(hào)c4激活(如果例如c4=1)或不激活(如果例如c4=0)在第三流水線級(jí)P3內(nèi)壓縮陣列404的輸入端和輸出之間的反饋環(huán)路。因此,如果c1=c2=c3=1,c4=0,則該結(jié)構(gòu)作為一個(gè)乘法器而工作,以及如果c1=c2=c3=c4=1,則其作為MAC單元而工作。第五控制信號(hào)c5(其可能是1、2或3位信號(hào))通過(guò)允許(c5的相應(yīng)位例如是邏輯1)或停止(c5的相應(yīng)位例如是邏輯0)全加器模塊405之間的進(jìn)位傳送而控制第一流水線級(jí)P1內(nèi)的加法器/減法器的精度。用這種方法,包含用于m位輸入的sp加法器/減法器的多個(gè)加法器陣列也作為多個(gè)用于(m/2)位輸入的2sp加法器/減法器或用于(m/4)位輸入的4sp加法器/減法器等而工作。選擇模塊403、壓縮陣列404以及最后加法器405也可稍作修改并且由同一個(gè)信號(hào)c4控制,從而實(shí)現(xiàn)不同精度下的乘法/MAC運(yùn)算。
通過(guò)利用一個(gè)或多個(gè)處理器、邏輯電路和存儲(chǔ)器等,可將本發(fā)明的結(jié)構(gòu)實(shí)現(xiàn)成例如是一個(gè)集成電路。
圖10描述了一個(gè)根據(jù)本發(fā)明優(yōu)選實(shí)施例的設(shè)備10。它包括用于控制設(shè)備10工作的控制單元11。該設(shè)備也包括微控制單元12,其包含一個(gè)乘法器或一個(gè)乘法累加單元13(MAC)或者一個(gè)根據(jù)本發(fā)明優(yōu)選實(shí)施例的可重配置設(shè)備。該設(shè)備的用戶界面14包括顯示裝置15、音頻裝置15、鍵盤(pán)17以及如攝像機(jī)18。該設(shè)備10包含如移動(dòng)通信裝置這樣的通信裝置19以與通信網(wǎng)絡(luò)(未顯示)進(jìn)行通信并與同樣的另一個(gè)設(shè)備交換信息。存儲(chǔ)裝置20用于存儲(chǔ)不同種類的數(shù)據(jù)和諸如用于控制單元11的運(yùn)算命令之類的程序。
該設(shè)備可以例如是一個(gè)無(wú)線終端、計(jì)算設(shè)備等。
本發(fā)明不僅限于以上描述的實(shí)施例,而是其可以在所附權(quán)利要求的范圍內(nèi)進(jìn)行改進(jìn)。
權(quán)利要求
1.一種用于以流水線方式執(zhí)行一個(gè)乘法運(yùn)算和另一個(gè)乘法運(yùn)算的方法,其中在完成所述一個(gè)乘法運(yùn)算之前開(kāi)始所述另一個(gè)乘法運(yùn)算,將所述乘法運(yùn)算分成至少第一子運(yùn)算和第二子運(yùn)算,以及在一個(gè)流水線級(jí)中執(zhí)行每個(gè)所述第一和第二子運(yùn)算,其特征在于在一個(gè)流水線級(jí)中并行執(zhí)行包含在高基數(shù)乘法中的至少一個(gè)子運(yùn)算,其中在完成第一乘法運(yùn)算的相應(yīng)子運(yùn)算之前開(kāi)始第二乘法運(yùn)算的一個(gè)子運(yùn)算。
2.根據(jù)權(quán)利要求1的方法,其特征在于以時(shí)間交錯(cuò)方式執(zhí)行至少一個(gè)所述子運(yùn)算,其中將所述至少一個(gè)子運(yùn)算進(jìn)一步分成部分子運(yùn)算,以便在不同的時(shí)間啟動(dòng)每一個(gè)部分子運(yùn)算。
3.根據(jù)權(quán)利要求1或2的方法,其特征在于流水線級(jí)(P1,...,P4)之間的數(shù)據(jù)路由是可配置的。
4.根據(jù)權(quán)利要求1、2或3的方法,其特征在于在至少兩個(gè)流水線級(jí)(P1,...,P4)中執(zhí)行每個(gè)所述乘法運(yùn)算,其中在不同的流水線級(jí)中執(zhí)行至少兩個(gè)子運(yùn)算。
5.根據(jù)權(quán)利要求1到4中任一個(gè)的方法,其特征在于在第一操作數(shù)和第二操作數(shù)之間執(zhí)行所述一個(gè)乘法運(yùn)算和另一個(gè)乘法運(yùn)算。
6.根據(jù)權(quán)利要求5的方法,其特征在于在至少三個(gè)流水線級(jí)中執(zhí)行該乘法運(yùn)算,其中將第一操作數(shù)輸入到第一流水線級(jí),在其中形成第一操作數(shù)的一組部分乘積,將第二操作數(shù)輸入到第二流水線級(jí)以完成從所述第一流水線級(jí)中形成的該組部分乘積中選擇至少一個(gè)部分乘積,以及將所選擇的部分乘積在第三流水線級(jí)中進(jìn)行組合以形成所述第一操作數(shù)和第二操作數(shù)之間乘法運(yùn)算的和(S)及進(jìn)位(C)項(xiàng)。
7.根據(jù)權(quán)利要求6的方法,其特征在于在項(xiàng)第四流水線級(jí)中執(zhí)行一個(gè)加法運(yùn)算,其中將所述和及進(jìn)位項(xiàng)組合以形成乘法運(yùn)算結(jié)果。
8.根據(jù)權(quán)利要求7的方法,其特征在于有幾個(gè)數(shù)據(jù)部分被立即,在一個(gè)或多個(gè)運(yùn)算步驟中執(zhí)行乘法,定義運(yùn)算步驟持續(xù)時(shí)間,以及定義流水線級(jí)的延遲,其中為每個(gè)所述流水線級(jí)定義交錯(cuò)級(jí)別。
9.根據(jù)權(quán)利要求8的方法,其特征在于定義交錯(cuò)級(jí)別以設(shè)置每個(gè)流水線級(jí)的延遲盡可能相等,并小于預(yù)定運(yùn)算步驟持續(xù)時(shí)間。
10.根據(jù)權(quán)利要求9的方法,其特征在于通過(guò)設(shè)置要在每個(gè)流水線級(jí)內(nèi)立即處理的所述數(shù)據(jù)部分的數(shù)目而將流水線級(jí)的延遲設(shè)置成與預(yù)定運(yùn)算步驟持續(xù)時(shí)間相對(duì)應(yīng)。
11.根據(jù)權(quán)利要求8、9或10的方法,其特征在于將預(yù)定運(yùn)算步驟持續(xù)時(shí)間定義為T(mén)des秒,其中每個(gè)流水線級(jí)內(nèi)所述部分子運(yùn)算的數(shù)目選擇如下-第一流水線級(jí)的部分子運(yùn)算數(shù)目 -第二流水線級(jí)的部分子運(yùn)算數(shù)目 -第三流水線級(jí)的部分子運(yùn)算數(shù)目 以及第四流水線級(jí)的部分子運(yùn)算數(shù)目 其中,DAA是第一流水線級(jí)的延遲,DSB是第二流水線級(jí)的延遲,DCA是第三流水線級(jí)的延遲,DCLA是第四流水線級(jí)的延遲。
12.根據(jù)權(quán)利要求5到11中任一個(gè)的方法,其特征在于利用任意帶符號(hào)二進(jìn)制補(bǔ)碼整數(shù)的非重編碼基數(shù)高于四的乘法方法來(lái)完成根據(jù)以下等式的在所述第一操作數(shù)(a)和第二操作數(shù)(x)之間的乘法運(yùn)算5---y~=Σr=0nradix-T-1(Ar·x)2rt=Σr=0n-1t-1([Σi=0t-1atr+i2i]x)2tr-(an-1x)2n-1,ory~=Σr=0n/t-2([Σi=0t-1atr+i2i]x)2tr+([-2t-1an-1+Σi=0t-2an-t+i2i]x)2n-t]]>其中T=2t。
13.根據(jù)權(quán)利要求1到12中任一個(gè)的方法,其特征在于將其用于視頻信息的處理。
14.一種用于以流水線方式執(zhí)行一個(gè)乘法運(yùn)算和另一個(gè)乘法運(yùn)算的設(shè)備,該設(shè)備包括用于將乘法運(yùn)算分成至少第一和第二子運(yùn)算的裝置(P1,P2,P3,P4),并且將每個(gè)所述第一和第二子運(yùn)算設(shè)置成在一個(gè)流水線級(jí)內(nèi)執(zhí)行,其特征在于該設(shè)備進(jìn)一步包括用于在一個(gè)流水線級(jí)中并行執(zhí)行包含在高基數(shù)乘法中的至少一個(gè)子運(yùn)算的裝置(402、403、404、405),以及用于在完成所述一個(gè)乘法運(yùn)算的相應(yīng)子運(yùn)算之前開(kāi)始另一個(gè)乘法運(yùn)算的一個(gè)子運(yùn)算的裝置。
15.根據(jù)權(quán)利要求14的設(shè)備,其特征在于它包括用于將至少一個(gè)子運(yùn)算分成部分子運(yùn)算以在不同的時(shí)間啟動(dòng)每個(gè)部分子運(yùn)算的裝置(R1,...,Rp)。
16.根據(jù)權(quán)利要求14或15的設(shè)備,其特征在于它包括用于在流水線級(jí)(P1,...,P4)之間可選擇數(shù)據(jù)路由的至少一個(gè)多路復(fù)用器(410,411,412,413)。
17.一種根據(jù)權(quán)利要求14、15或16的設(shè)備,其特征在于它包括用于以流水線方式執(zhí)行每個(gè)所述乘法運(yùn)算的至少兩個(gè)流水線級(jí)(P1,...,P4),其中將至少兩個(gè)子運(yùn)算設(shè)置成在不同的流水線級(jí)中執(zhí)行。
18.根據(jù)權(quán)利要求14到17中任一個(gè)的設(shè)備,其特征在于將所述一個(gè)乘法運(yùn)算和另一個(gè)乘法運(yùn)算設(shè)置成在第一操作數(shù)和第二操作數(shù)之間執(zhí)行,以及該設(shè)備包括用于以流水線方式執(zhí)行每個(gè)所述乘法運(yùn)算的至少第一(P1)、第二(P2)和第三流水線級(jí)(P3),用于將第一操作數(shù)輸入到第一流水線級(jí)的裝置,用于將第二操作數(shù)輸入到第二流水線級(jí)的裝置,該第一流水線級(jí)包括用于形成第一操作數(shù)的一組部分乘積的裝置,該第二流水線級(jí)包括用于根據(jù)第二操作數(shù)從所述第一流水線級(jí)中所形成的該組部分乘積中選擇至少一個(gè)部分乘積的選擇器,以及第三流水線級(jí)包括組合器以組合所選部分乘積來(lái)形成所述第一和第二操作數(shù)之間的乘法運(yùn)算的和(S)及項(xiàng)(C)。
19.根據(jù)權(quán)利要求18的設(shè)備,其特征在于它進(jìn)一步包括第四流水線級(jí),其包括加法器以在所述和以及進(jìn)位項(xiàng)之間執(zhí)行加法運(yùn)算以形成乘法運(yùn)算的結(jié)果。
20.根據(jù)權(quán)利要求19的設(shè)備,其特征在于至少一個(gè)流水線級(jí)包括用于將要處理的數(shù)據(jù)分成部分子運(yùn)算以立即處理該數(shù)據(jù)的幾個(gè)數(shù)據(jù)部分,其中所述至少一個(gè)流水線級(jí)包括每個(gè)數(shù)據(jù)部分的數(shù)據(jù)處理模塊以大致同時(shí)處理該流水線級(jí)的每個(gè)數(shù)據(jù)部分。
21.根據(jù)權(quán)利要求20的設(shè)備,其特征在于定義每個(gè)流水線級(jí)中數(shù)據(jù)處理模塊的數(shù)目以便要在流水線級(jí)內(nèi)處理的數(shù)據(jù)的處理時(shí)間在每個(gè)流水線級(jí)中大致相同。
22.根據(jù)權(quán)利要求20或21的設(shè)備,其特征在于將處理時(shí)間定義為T(mén)des秒,其中每個(gè)流水線級(jí)內(nèi)所述數(shù)據(jù)處理模塊的數(shù)目如下-第一流水線級(jí)的部分子運(yùn)算數(shù)目 -第二流水線級(jí)的部分子運(yùn)算數(shù)目 -第三流水線級(jí)的部分子運(yùn)算數(shù)目 以及第四流水線級(jí)的部分子運(yùn)算數(shù)目 其中,DAA是第一流水線級(jí)內(nèi)數(shù)據(jù)處理模塊的處理時(shí)間,DSB是第二流水線級(jí)內(nèi)數(shù)據(jù)處理模塊的處理時(shí)間,DCA是第三流水線級(jí)內(nèi)數(shù)據(jù)處理模塊的處理時(shí)間,DCLA是第四流水線級(jí)內(nèi)數(shù)據(jù)處理模塊的處理時(shí)間。
23.根據(jù)權(quán)利要求14到22中任一個(gè)的設(shè)備,其特征在于它是一個(gè)視頻處理設(shè)備。
24.根據(jù)權(quán)利要求14到23的設(shè)備,其特征在于它是一個(gè)集成電路。
25.一種包含用于以流水線方式執(zhí)行一個(gè)乘法運(yùn)算和另一個(gè)乘法運(yùn)算的裝置的無(wú)線終端,其包括用于將乘法運(yùn)算分成至少第一和第二子運(yùn)算的裝置(P1,P2,P3,P4),并且將每個(gè)所述第一和第二子運(yùn)算設(shè)置成在一個(gè)流水線級(jí)內(nèi)執(zhí)行,其特征在于該無(wú)線終端進(jìn)一步包括用于在一個(gè)流水線級(jí)中并行執(zhí)行包含高基數(shù)乘法中的至少一個(gè)子運(yùn)算的裝置(402、403、404、405),以及用于在完成所述一個(gè)乘法運(yùn)算的相應(yīng)子運(yùn)算之前開(kāi)始另一個(gè)乘法運(yùn)算的一個(gè)子運(yùn)算的裝置。
26.一種包含用于以流水線方式執(zhí)行一個(gè)乘法運(yùn)算和另一個(gè)乘法運(yùn)算的裝置的計(jì)算設(shè)備,其包括用于將乘法運(yùn)算分成至少第一和第二子運(yùn)算的裝置(P1,P2,P3,P4),并且將每個(gè)所述第一和第二子運(yùn)算設(shè)置成在一個(gè)流水線級(jí)內(nèi)執(zhí)行,其特征在于該計(jì)算設(shè)備進(jìn)一步包括用于在一個(gè)流水線級(jí)中并行執(zhí)行包含高基數(shù)乘法中的至少一個(gè)子運(yùn)算的裝置(402、403、404、405),以及用于在完成所述一個(gè)乘法運(yùn)算的相應(yīng)子運(yùn)算之前開(kāi)始另一個(gè)乘法運(yùn)算的一個(gè)子運(yùn)算的裝置。
27.一種用于以流水線方式執(zhí)行一個(gè)乘法運(yùn)算和另一個(gè)乘法運(yùn)算的系統(tǒng),該系統(tǒng)包括用于將乘法運(yùn)算分成至少第一和第二子運(yùn)算的裝置(P1,P2,P3,P4),并且將每個(gè)所述第一和第二子運(yùn)算設(shè)置成在一個(gè)流水線級(jí)內(nèi)執(zhí)行,其特征在于該設(shè)備進(jìn)一步包括用于在一個(gè)流水線級(jí)中并行執(zhí)行包含高基數(shù)乘法中的至少一個(gè)子運(yùn)算的裝置(402、403、404、405),以及用于在完成所述一個(gè)乘法運(yùn)算的相應(yīng)子運(yùn)算之前開(kāi)始另一個(gè)乘法運(yùn)算的一個(gè)子運(yùn)算的裝置。
全文摘要
本發(fā)明涉及一種用于在第一操作數(shù)和第二操作數(shù)之間執(zhí)行乘法運(yùn)算的方法。在該方法中將該乘法運(yùn)算分成兩個(gè)子運(yùn)算。以時(shí)間交錯(cuò)方式執(zhí)行至少一個(gè)所述子運(yùn)算,其中將所述至少一個(gè)子運(yùn)算進(jìn)一步分成部分子運(yùn)算以便在不同的時(shí)間啟動(dòng)所述部分子運(yùn)算。
文檔編號(hào)G06F7/52GK1735857SQ200380108338
公開(kāi)日2006年2月15日 申請(qǐng)日期2003年11月5日 優(yōu)先權(quán)日2002年11月6日
發(fā)明者D·格沃爾基安, A·勞尼埃寧, P·利烏哈 申請(qǐng)人:諾基亞有限公司