專利名稱:高速數(shù)字處理器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及信息處理系統(tǒng),尤其涉及高速進行除法和開平方計算的處理器。
在許多信息處理系統(tǒng)中,如在計算機、信號處理器和過程控制器中,高速算術(shù)計算是關(guān)鍵設(shè)計指標(biāo)。這些系統(tǒng)越來越依賴于采用高度并行設(shè)計的大規(guī)模集成電路來提供高速計算。雖然使用并行技術(shù)進行乘法計算的裝置(器件)很多,但實現(xiàn)除法和開平方功能的裝置(器件)通常都是串行的、因此運行速度較低。
除法和開平方計算,和加法、減法或乘法不同,它是一種重復(fù)迭代過程。實現(xiàn)除法或開平方功能的裝置或線路需要較多步驟或時鐘周期來獲得商數(shù)或平方根值。實現(xiàn)除法和開平方功能所采用的技術(shù)對信息處理系統(tǒng)的執(zhí)行時間和精度有很大的影響。對除法和開平方一般使用一種收斂算法。
在除法中,收斂算法把被除數(shù)和除數(shù)作為分?jǐn)?shù)來處理。如果用除數(shù)的某個函數(shù)重復(fù)地乘被除數(shù)(即分式的分母)而迫使分母的極限值為1,那么用同樣的函數(shù)來重復(fù)地乘被除數(shù),就會迫使被除數(shù)的極限值趨于商值。在開平方計算中,要開平方的某個數(shù)作為分子分母相同的分式來處理。通過某函數(shù)重復(fù)地乘該分式迫使分母的極限值為1而分子的極限值為平方根值。
在信息處理系統(tǒng)中,除法和開平方能通過采用高速乘法器和可進行收斂算法的其它線路一起來完成。一種典型的收斂算法需要重復(fù)乘法步驟以產(chǎn)生結(jié)果。因此、已有技術(shù)的高速乘法器對于每個收斂算法周期至少需要三個時鐘周期。因此除法和開平方計算與其他算術(shù)運算相比需要較長的時間。
由于需要越來越快速的信息處理系統(tǒng),所以相應(yīng)地需要提供一種能高速進行除法和開平方計算的處理器。
本發(fā)明提供了一種基本上可以排除或克服上述實現(xiàn)高速除法和開平方計算的缺點和問題的處理器。在本發(fā)明的一實施例中,所提供的高速數(shù)字處理器能在四個時鐘周期中完成除法、在六個時鐘周期中完成開平方計算。
本發(fā)明的處理器有乘法器電路,它用于計算兩數(shù)相乘的積。所提供的邏輯電路用于將乘法器配置成第一陣列和第二陣列。乘法器的第一和第二陣列用于計算乘積。所提供的操作數(shù)發(fā)送電路(operandroutingcircuitry)用于將一組操作數(shù)導(dǎo)向第一陣列、而將其它操作數(shù)導(dǎo)向第二陣列。還提供有寄存器,它按規(guī)定的次數(shù)或重復(fù)選代次數(shù)將乘積返回操作數(shù)發(fā)送電路。最后,所設(shè)置的加法器電路,在預(yù)定的重復(fù)操作次數(shù)之后,組合乘積以產(chǎn)生最終結(jié)果。
具有可以配置成單個或兩個陣列的乘法器的處理器的技術(shù)優(yōu)點是利用收斂算法能實現(xiàn)除法和開平方的計算。乘法器的兩個陣列允許除法計算或開平方計算以并行方式完成,所需要的時鐘周期較少,因此算述運算的速度高得多。
在本發(fā)明的第二實施例中,按照本發(fā)明的處理器能完成多個算術(shù)運算功能(functions)。該處理器包含譯碼電路,該譯碼電路用于先確定執(zhí)行多個算術(shù)運算功能中的哪一個功能。然后該譯碼電路發(fā)送一與所選定的算術(shù)運算功能相對應(yīng)的控制信號。設(shè)有乘法器電路,用于計算兩數(shù)的乘積。邏輯電路響應(yīng)控制信號,當(dāng)要進行除法或開平方計算時,將乘法器電路配置成第一陣列和第二陣列。該第一和第二陣列各自獨立地計算乘積。所設(shè)置的操作數(shù)發(fā)送電路(operandroutingcircuitry)也響應(yīng)譯碼電路的控制信號,以便按照控制信號將一組操作數(shù)導(dǎo)入第一陣列,將其它操作數(shù)導(dǎo)入第二陣列。還設(shè)有加法器電路、它組合乘積產(chǎn)生計算結(jié)果。所設(shè)開關(guān)電路,用于響應(yīng)控制信號、將乘積導(dǎo)入最后的加法器電路。該開關(guān)電路根據(jù)控制信號能對進入的乘積進行調(diào)整(對準(zhǔn))或使其為零。
具有能夠構(gòu)成單個陣列或雙陣列的乘法器的處理器的另一優(yōu)點是一個乘法器能完成不同的計算。在通常的乘法計算中,該乘法器用于單陣列模式,而對于除法或開平方計算、該乘法器就構(gòu)成雙陣列模式。所提供的能在兩種模式之間進行選擇的譯碼電路能最佳地使用這單一的乘法器。
為了更完整地理解本發(fā)明及其優(yōu)點,請參閱下面結(jié)合附圖所作的描述,其中
圖1表示本發(fā)明的處理器結(jié)構(gòu)。
圖2是本發(fā)明中所使用的乘法器電路的功能框圖。
本發(fā)明的處理器使用兩種收斂算法一種用于完成除法計算,另一種用于開平方計算。在除法中,X÷Y=Q,這里X是被除數(shù),Y是除數(shù),而Q是商。此式也可以寫成X/Y=Q的形式。在除法算法的第一步中,X和Y兩者都用一個選定的能迫使Y逼近1的種子值S(SeedvalueS)相乘。第一步之后,X*S=Q,Y*S=G。下一步用函數(shù)F乘Q和G,這里F=2-G.F*Q的結(jié)果替代原有的Q值,F(xiàn)*G的結(jié)果替代原有的G值。最后一步是重復(fù)執(zhí)行一預(yù)定的次數(shù),使F*G逼近1而F*Q逼近X/Y的商值。
在平方根計算中,一個數(shù)A的平方根是根R*R=A。在一種計算數(shù)A的平方根值R的收斂算法中,等式寫成A/A的形式。在收斂算法的第一步中,分子位置上的A用種子值(Seedvalue)S相乘,而分母位置上的A由同一種子值S乘兩次,結(jié)果A*S=Q,A*S*S=G。下一步中,Q由函數(shù)F相乘,這里F=(3-G)/2,而G由該F函數(shù)乘兩次。結(jié)果F*Q取代原來的Q,結(jié)果F*F*G取代原有的G。最后步驟是重復(fù)預(yù)定的次數(shù),使F*Q逼近根值、而F*F*G逼近1。
參看圖1,譯碼器12接收來自邏輯單元(未畫出)的指令,以確定要由處理器執(zhí)行的數(shù)值計算,如乘法、除法或開平方計算。響應(yīng)這些指令,譯碼器12在其輸出端14上發(fā)送一控制信號CS,對每個不同類型的計算有不同的控制信號。控制信號CS被送到操作數(shù)發(fā)送電路16、邏輯電路18、開關(guān)電路20和種子數(shù)發(fā)生器(seedgenerator)28。該控制信號指令電路執(zhí)行規(guī)定的計算,如乘法、除法或開平方。通常這些指令由存儲著程序的計算機或其它本技術(shù)領(lǐng)域中那些技術(shù)人員周知的裝置來產(chǎn)生。
操作數(shù)發(fā)送電路16在輸入線22和24上接收操作數(shù)N和D,在輸入線26上接收來自種子數(shù)發(fā)生器的種子值S,并且將它們發(fā)送到與乘法器38相連的適當(dāng)?shù)妮敵鼍€上。操作數(shù)發(fā)送電路16將操作數(shù)N和種子值S送到輸出線30和32上,將操作數(shù)D和種子值S送到輸出線34和36上。操作數(shù)N代表分式的分子,而操作數(shù)D表示分式的分母。行將對之進行計算的數(shù),按照本技術(shù)領(lǐng)域中那些技術(shù)人員所熟知的方法,將其規(guī)范化,且形成N/D的分式形式。
乘法器38的邏輯電路18接收來自譯碼器12的控制信號CS,在信號要求做除法或開平方計算時,邏輯電路將乘法器38配置成圖中標(biāo)以L和R的兩個陣列。操作數(shù)發(fā)送電路16將操作數(shù)N和種子值S送到L陣列,將操作數(shù)D和種子值S送到R陣列。L陣列的輸出沿著線40送到開關(guān)電路20,而乘法器38的R陣列的輸出沿著線40送到開關(guān)電路20。
開關(guān)電路20響應(yīng)來自譯碼器12的控制信號CS,按照所要執(zhí)行的計算類型,將乘法器陣列L和R的輸出沿著預(yù)定的通道引出。在通過乘法器38一預(yù)定次數(shù)之后,開關(guān)電路20將乘法器38的陣列L和R的輸出引入加法器44。加法器44的輸出按照本技術(shù)領(lǐng)域中熟知的方式送入舍入電路(roundercircuitry)46,以執(zhí)行舍入操作。
與開關(guān)電路20相聯(lián)的是Q寄存器48和G寄存器50。該Q和G寄存器通過開關(guān)電路20接收來自乘法器38的中間結(jié)果,并且將這些中間結(jié)果返饋入操作數(shù)發(fā)送電路16。所設(shè)置的與每個Q和G寄存器相聯(lián)的舍入電路(Roundingcircuitry)增加計算結(jié)果的精度。Q舍入器52接收來自Q寄存器48的輸出,執(zhí)行舍入功能且把結(jié)果沿線54送入操作數(shù)發(fā)送電路16。G舍入寄存器56接收來自G寄存器50的輸出,執(zhí)行舍入功能且把輸出沿著線58送入操作數(shù)發(fā)送電路16。
與G寄存器50相連的還有F寄存器60和F產(chǎn)生器62。這些寄存器在開平方的某些步驟期間被使用,在后面將加以更詳細(xì)的解釋。
現(xiàn)在參看圖2,本發(fā)明中所使用的乘法器電路將加以詳細(xì)說明。本技術(shù)領(lǐng)域中的都知道,乘法能使用一個加法器樹(anaddertree)來執(zhí)行。加法器樹的結(jié)構(gòu)是眾所周知的。一種這樣的器件在共同待批的申請No.149,779中有所描述,該申請由本申請的受讓人共同占有。本發(fā)明用將乘法器配置為兩個分開的陣列修改了申請No.149,779中所描述的乘法器。
操作數(shù)發(fā)送電路100把操作數(shù)N(現(xiàn)在是被乘數(shù))引到總線102。操作數(shù)D(現(xiàn)在是被乘數(shù)D)送到總線104。種子值S由操作數(shù)發(fā)送電路100送到總線106。種子值S現(xiàn)在稱作為乘數(shù)S??偩€102被連接到部分乘積產(chǎn)生器108A-D的滿精度口(fullprecisionports),而總線104被連到第二組部分乘積產(chǎn)生器110A-D的滿精度口。總線106被連到該兩組部分積產(chǎn)生器108A-D和110A-D的半精度口。
部分積產(chǎn)生器108A和B被連到第一級加法器112A。部分積產(chǎn)生器108C和D被連到第一級加法器112D。部分積產(chǎn)生器110A和B被連到第一級加法器114A。部分積產(chǎn)生器110C和D被連到第一級加法器114B。第一級加法器成對連接到第二級加法器116A和B。第一級加法器112A和B的輸出被連接到第二級加法器116A的輸入,而第一級加法器114A和B的輸出被連接到第二級加法器116B的輸入。第二級加法器116A和B的輸出送到開關(guān)電路118最后送到加法器120。
兩陣列乘法器,如所描述的那樣,能配置成乘一對數(shù)或乘兩對數(shù)。在一對數(shù)的模式中,乘法器38構(gòu)成一單一的陣列,N值和D值相等,乘法器以申請No.149,779中所述方式工作。在兩對數(shù)模式中,乘法器38分成兩個陣列,以并行方式執(zhí)行操作。
現(xiàn)在來描述按本發(fā)明所構(gòu)成的裝置的操作。對于每種操作、表明所執(zhí)行計算的類型的控制信號CS由譯碼器12產(chǎn)生。在本實施例中,有分別表示乘、除和開平方的三種控制信號。響應(yīng)所接收的控制信號,操作數(shù)發(fā)送電路16、邏輯電路18和開關(guān)電路20決定數(shù)據(jù)通道和經(jīng)乘法器38的重復(fù)選代計算(iterations)的次數(shù)。
乘法時鐘周期O操作數(shù)N和D進入乘法器38。線30到36用于操作數(shù)發(fā)送電路16將乘法器操作數(shù)送入乘法器38的L陣列和R陣列中的四個口。操作數(shù)N送到乘法器38的L陣列的滿精度口,而操作數(shù)D送到乘法器38的R陣列的半精度口。N和D的乘積經(jīng)開關(guān)電路20傳送到加法器44。
時鐘周期1加法器44中的數(shù)被加到舍入電路46,以本技術(shù)領(lǐng)域中那些技術(shù)人員所周知的方法進行舍入。在該時鐘周期中,操作數(shù)發(fā)送電路16和乘法器38已空下來可以進行其他操作。
除法時鐘周期O操作數(shù)N和D進入處理器的操作數(shù)發(fā)送電路16。種子值S從種子產(chǎn)生器28檢索到,這種子產(chǎn)生器可以是一張查找表,使用一部分D作為索引。來自譯碼器12的控制信號CS指令操作數(shù)發(fā)送電路16和乘法器38產(chǎn)生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保持兩陣列模式的配置以產(chǎn)生Q和F的乘積及G和F的乘積,這里,在兩乘法中,F(xiàn)都通過總線106連到半精度口。G和F的乘積回送到G寄存器50,而Q和F的乘積回送到Q寄存器48。
時鐘周期2在時鐘周期1的末端,由存儲在G寄存器50中的值計算出F。乘法器38重新配置成單一陣列模式以產(chǎn)生Q和F的乘積。
F和Q的乘積經(jīng)開關(guān)電路20送到加法器44。加法器44的輸出送到舍入電路46。儲存在舍入電路46中的數(shù)是商的估算值,它將在下一個時鐘周期中進行舍入。
時鐘周期3舍入電路中的數(shù)按本技術(shù)中那些技術(shù)人員周知的方式進行舍入。在該時鐘周期中,操作數(shù)發(fā)送電路16和乘法器38已空下來可進行另一操作。
開平方時鐘周期O操作數(shù)N和D進入處理器的操作數(shù)發(fā)送電路16。種子值S從種子產(chǎn)生器28檢索到,該種子產(chǎn)生器可以是一張查找表,使用D的一部分作為索引。乘法器38配置成兩個陣列以產(chǎn)生N和S的部分積及D和S的部分積。N通過總線102加到陣列L的滿精度口,而D通過總線104送到陣列R的滿精度口。S值被送到總線106的半精度口。計算結(jié)果經(jīng)開關(guān)電路20傳送,在該時鐘周期的末端,N的S的乘積存儲在Q寄存器48中,而D和S的乘積存儲在G寄存器中。
時鐘周期1Q寄存器48中的值,在此時鐘周期期間不修改。乘法器38重新配置成為單一陣列以對G寄存器中的G值和種子值S進行操作。S和G的乘積回送到G寄存器50。
時鐘周期2在時鐘周期1的終端,F(xiàn)用G寄存器50中的存儲值進行計算。乘法器38的重新配置成兩個陣列以產(chǎn)生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保持單一陣列模式以產(chǎn)生Q和F的乘積。F和Q的乘積經(jīng)開關(guān)電路20傳送到加法器44。加法器44的輸出被送到舍入電路46。
時鐘周期5舍入電路46中的數(shù)按照本技術(shù)中技術(shù)人員周知的方法進行舍入。在此時鐘周期中,操作數(shù)發(fā)送電路16和乘法器38已空下來,可開始另一個操作。
由前面的描述,本技術(shù)領(lǐng)域中的技術(shù)人員可以看出本發(fā)明所提供的、帶有一個單一乘法器的數(shù)字處理器,可以配置成單級或雙級模式工作。使用這種雙陣列乘法器進行除法和開平方計算時比已有技術(shù)具有較高的并行度和較高的速度。雖然本發(fā)明是就較佳實施例作具體揭示和描述的,但本技術(shù)領(lǐng)域中的技術(shù)人員可以理解根據(jù)本發(fā)明所作的揭示,熟悉本技術(shù)領(lǐng)域的人員可以作出種種形式上和細(xì)節(jié)上的變化,但這些變化仍都落在本發(fā)明的精神實質(zhì)和范圍之內(nèi)。
權(quán)利要求
1.一種執(zhí)行多個算術(shù)計算功能的處理器,包含用于計算兩個或多個數(shù)的乘積的乘法電路;用于將所述乘法器重新配置成第一陣列和第二陣列的邏輯電路,其中所述第一和第二陣列計算乘積;用于將一組數(shù)導(dǎo)入所述第一陣列和將另一組數(shù)導(dǎo)入所述第二陣列的操作數(shù)發(fā)送電路;用于將所述的乘積以預(yù)定的迭代次數(shù)引入所述操作數(shù)發(fā)送電路的寄存器;在所述預(yù)定的迭代次數(shù)之后、組合所述的乘積以產(chǎn)生計算結(jié)果的加法器。
2.如權(quán)利要求1所述的處理器,其特征在于所述乘法器是一個加法器樹。
3.如權(quán)利要求1所述的處理器,其特征在于進一步包含用于產(chǎn)生種子值數(shù)并將所述種子值數(shù)送到所述操作數(shù)發(fā)送電路的電路。
4.如權(quán)利要求1所述的處理器,其特征在于所述寄存器具有累加中間計算結(jié)果的中間存儲電路。
5.如權(quán)利要求1所述的處理器,其特征在于所述迭代次數(shù)由算法確定。
6.如權(quán)利要求1所述處理器,其特征在于進一步包含與所述加法器電路相連接、用于舍入所述計算結(jié)果的舍入電路。
7.如權(quán)利要求1所述處理器,其特征在于所執(zhí)行的算術(shù)運算功能之一是除法。
8.如權(quán)利要求1所述處理器,其特征在于所執(zhí)行的算術(shù)運算功能之一是開平方。
9.一種執(zhí)行多種算術(shù)運算功能的處理器,包含用于確定執(zhí)行哪一種算術(shù)運算功能并發(fā)送指明所要執(zhí)行的算術(shù)運算功能的控制信號的譯碼電路;用于計算兩個或多個數(shù)的乘積的乘法電路;響應(yīng)所述控制信號以將所述乘法器重新配置成第一陣列和第二陣列的邏輯電路,其中所述第一和第二陣列計算各自的乘積;操作數(shù)發(fā)送電路,該電路響應(yīng)所述控制信號,按照所述控制信號將一組數(shù)送到所述第一陣列、將另一組數(shù)送到所述第二陣列;將所述乘積以預(yù)定的迭代次數(shù)送到所述操作數(shù)發(fā)送電路;用于組合所述乘積以形成計算結(jié)果的加法器電路;和開關(guān)電路,該電路響應(yīng)所述控制信號,按照所述控制信號將乘積送入所述加法器電路。
10.如權(quán)利要求9所述的處理器,其特征在于所述乘法器是一個加法器樹。
11.如權(quán)利要求9所述的處理器,其特征在于進一步包含用于產(chǎn)生種子值數(shù)并將所述種子值數(shù)送入所述操作數(shù)發(fā)送電路的產(chǎn)生器電路。
12.如權(quán)利要求9所述的處理器,其特征在于所述寄存器具有用于累加中間計算結(jié)果的中間存儲電路。
13.如權(quán)利要求11所述處理器,其特征在于所述產(chǎn)生器電路包含隨機存取存儲器。
14.如權(quán)利要求9所述處理器,其特征在于進一步包含與所述加法器電路相連接并對所述計算結(jié)果進行舍入的舍入電路。
15.如權(quán)利要求9所述處理器,其特征在于所執(zhí)行的算術(shù)運算功能之一是除法。
16.如權(quán)利要求9所述處理器,其特征在于所執(zhí)行的算術(shù)運算功能之一是開平方。
17.一種執(zhí)行算術(shù)運算功能的方法,其步驟包含將用于計算兩個或多個數(shù)乘積的乘法器重新配置成第一陣列和第二陣列;將第一組數(shù)導(dǎo)入所述第一陣列,將第二組數(shù)導(dǎo)入所述第二陣列;在所述第一陣列中計算所述第一組數(shù)的乘積,在所述第二陣列中計算所述第二組數(shù)的乘積;將所述乘積以預(yù)定的迭代次數(shù)回送入所述乘法器;和在所述預(yù)定的迭代次數(shù)之后將所述乘積組合起來產(chǎn)生計算結(jié)果。
18.如權(quán)利要求17所述的方法,其特征在于進一步包含步驟確定多個算術(shù)運算功能的哪一個被執(zhí)行。
19.如權(quán)利要求18所述方法,其特征在于進一步包含步驟將代表所要執(zhí)行的算術(shù)運算功能的控制信號送到所述乘法器。
20.如權(quán)利要求17所述的方法,其特征在于進一步包含步驟產(chǎn)生種子值數(shù)且將該種子值數(shù)送到所述乘法器。
全文摘要
使用接收操作數(shù)N、操作數(shù)D和種子值(seed-value)S并把這些操作數(shù)和種子值傳送到乘法器(38)的一種操作數(shù)發(fā)送電路(16),來執(zhí)行除法和開平方計算。一個單一的乘法器(38)可以配置成兩個陣列以計算N和S及D和S的部分積。根據(jù)收斂算法,乘法器(38)的計算結(jié)果經(jīng)開關(guān)電路(20)或寄存器(48)(50)被送到操作數(shù)發(fā)送電路(16)或加法器(44)。最后的計算結(jié)果被舍入。
文檔編號G06F7/57GK1047152SQ90102438
公開日1990年11月21日 申請日期1990年4月24日 優(yōu)先權(quán)日1989年4月26日
發(fā)明者唐納德·E·施泰斯, 瑪麗亞·B·伊珀娜, 亨利·M·達利 申請人:德克薩斯儀器股份有限公司