專利名稱:同時執(zhí)行計(jì)算及復(fù)制程序的處理器及方法
技術(shù)領(lǐng)域:
本發(fā)明系相關(guān)于處理器,特別是相關(guān)于具有長數(shù)計(jì)算單元的處理器,正如,舉例而言,密碼應(yīng)用所需要的。
背景技術(shù):
DE 3631992 C2系揭示一種方法,其中,模數(shù)乘法(modularmultiplication)系可以經(jīng)由利用一增加先行(multiplicationlook-ahead)方法以及一縮減先行(reduction look-ahead)方法的Z/NZ而加以加速,在DE 3631992 C2中所敘述的該方法系亦被稱之為ZDN方法,并且,系將以圖4作為參考而進(jìn)行更詳細(xì)的敘述,在演算式的一起始步驟900之后,全盤變量(global variables)M,C,以及N系會加以起始,其系為計(jì)算下列模數(shù)乘法的目的Z=C*M mod NM系被稱之為乘數(shù),而同時,C系被稱之為被乘數(shù),再者,Z系為該模數(shù)乘法的結(jié)果,而N即為該模數(shù)。
接下來,不同的局部變量(local variables)系會加以起始,但其系將不進(jìn)行詳細(xì)的敘述,接著,系會應(yīng)用到兩種先行方法,在增加先行方法GEN_MULT_LA中,利用不同之先行規(guī)則,一增進(jìn)移位數(shù)值(multiplication shift value)sZ以及一增進(jìn)先行參數(shù)a系會加以計(jì)算(910),因此,該Z寄存器的當(dāng)前內(nèi)容即會遭遇到一向左移位sZ個數(shù)字的操作(930)。
基本上,平行于此,一縮減先行方法GEN_Mod_LA(930)系會加以執(zhí)行,以計(jì)算一縮減移位數(shù)值sN,以及一縮減參數(shù)b,在一步驟940中,該模數(shù)寄存器的當(dāng)前內(nèi)容,亦即,N,系會接著移位sN個數(shù)字,以產(chǎn)生一已移位模數(shù)數(shù)值N’,而該ZDN方法之主要三個操作數(shù)的操作則是在一步驟950中加以執(zhí)行,藉此,中間結(jié)果Z’系會被增加至該被乘數(shù)C,其系被乘上該增進(jìn)先行參數(shù)a,以及增加至該已移位模數(shù)N’,其系會于步驟920之后,被乘上該縮減先行參數(shù)b,根據(jù)目前的狀況,該等先行參數(shù)a以及b系可以具有一數(shù)值+1、0、或-1。
一個例子系為,該增進(jìn)先行參數(shù)a系為+1,以及該縮減先行參數(shù)b系為-1,因此,該被乘數(shù)C即會被增加至一已移位中間結(jié)果Z’,以及該已移位模數(shù)N’亦會被檢去相同的數(shù)值,尤其,當(dāng)該增進(jìn)先行方法系允許多于一預(yù)先設(shè)定數(shù)量之個別向左移位的時候,亦即,當(dāng)sZ系大于亦被稱之為K之最大sZ可允許數(shù)值時,a將會具有一相等于0的數(shù)值,而對a系為0,以及Z’由于先前之模數(shù)縮減,亦即,該已移位模數(shù)的該先前減法,而仍然為相當(dāng)小、并且系特別小于該已移位模數(shù)N’的例子而言,則沒有縮減需要舉行,因此,該參數(shù)b系會等于0。
該等步驟910至950系會一直加以執(zhí)行,直到該被乘數(shù)之任何數(shù)字皆已加以操作為止,亦即,直到m等于0為止,以及亦直到一參數(shù)n相等于0為止,此即表示,無論該已移位模數(shù)N’是否仍然大于該原先的模數(shù)N、或者若是不管該被乘數(shù)之任何數(shù)字皆已經(jīng)加以操作的事實(shí)的時候,則更進(jìn)一步的縮減步驟即必須藉由將該模數(shù)減去Z而加以執(zhí)行。
最后,其系會加以決定,Z是否小于0,而若是答案系為是時,則該模數(shù)N即必須要被增加至Z,以獲得一最終縮減,也因此可以獲得該模數(shù)乘法的最終正確結(jié)果Z,在一步驟960中,該模數(shù)乘法系利用一ZDN方法而加以終止。
然后,在步驟910中,藉由該增進(jìn)先行演算式而加以計(jì)算的該增進(jìn)移位數(shù)值sZ以及該增進(jìn)參數(shù)a則是會藉由該乘數(shù)之拓樸,以及藉由在DE 3631992 C2中所敘述之該已應(yīng)用之先行規(guī)則而加以獲得。
而該等縮減移位數(shù)值sN以及該縮減參數(shù)b,則是藉由該Z寄存器之該當(dāng)前內(nèi)容與一N之2/3倍的數(shù)值之間的一比較而加以決定,正如亦已在DE 3631992 C2中所敘述的一樣,而該ZDN方法即是以此比較作為基礎(chǔ)而加以命名(ZDN=三分之二的N)。
該ZDN方法,正如在圖4中所舉例說明的,系會將該模數(shù)乘法回歸至一三操作數(shù)加法(圖4中的區(qū)塊950),其中,為了增加該計(jì)算時間效率,該增進(jìn)先行方法以及與其一起的該縮減先行方法系亦可以加以使用,而相較于用于Z/NZ的蒙哥馬利縮減(Montgomeryreduction),藉由在3范圍中之一因子的一計(jì)算時間優(yōu)勢系可以加以達(dá)成。
為了執(zhí)行圖4之方塊950中的該三個操作數(shù)加法,舉例而言,在圖3A中所舉例說明的該計(jì)算單元系可以加以使用,在圖3A中所顯示的該計(jì)算單元系包括一第一部分計(jì)算單元30a,以及一第二部分計(jì)算單元30b,且該等部分計(jì)算單元30a、30b則是由位在彼此頂部之上的位片劃分(bit-slices)所構(gòu)成,而典型地,其系所有皆相同地加以執(zhí)行,該第一計(jì)算單元30a之該最上層位片劃分的一進(jìn)位輸出(carryoutput)系會經(jīng)由一配置轉(zhuǎn)換開關(guān)(configuration switch)32、經(jīng)由一進(jìn)位輸出線31,而被連接至該第二部分計(jì)算單元30b的一最不重要位片劃分,若是該配置轉(zhuǎn)換開關(guān)32系加以關(guān)閉的時候,亦即,該第一部分計(jì)算單元30a之該最上層位片劃分的該進(jìn)位輸出系被饋送進(jìn)入該第二部分計(jì)算單元30b之一最不重要位片劃分的一進(jìn)入輸入的時候,則圖3A之該計(jì)算單元配置系會作用為一完整計(jì)算單元,而其長度系會相等于該第一部份計(jì)算單元30a之位片劃分的數(shù)量,加上該第二部分計(jì)算單元30b之位片劃分的數(shù)量。
在此,需要注意的是,在圖3A中,該兩個部分計(jì)算單元30a、30b的該配置系可以對應(yīng)于在一集成電路上之該等位片劃分的幾何配置,而每一個位片劃分系皆會相同地加以建立,正如在第三圖中所顯示的一樣,特別地是,每一個位片劃分系會包括一用于儲存該被乘數(shù)C的寄存器位置Ci,一用于儲存該模數(shù)N之該等相對應(yīng)位之一模數(shù)儲存器的寄存器位置,一用于儲存該中間結(jié)果Z之該相對應(yīng)位i的儲存器位置,以及兩個輔助寄存器CR1以及CR2,其中,當(dāng)一個位片劃分正在進(jìn)行考慮時,每一個儲存器系會藉由該相對應(yīng)順序之位i而加以代表,最后,每一個位片劃分系亦會包括一算數(shù)單元AUi,其系會包括一進(jìn)位輸入(carry input),以獲得來自較低層級的一進(jìn)位,以及包括一進(jìn)位輸出(carry output),以輸出一進(jìn)位至下一個層級,而該進(jìn)位輸入系亦被稱之為進(jìn)位入(carry-in),以及該進(jìn)位輸出系亦被稱之為進(jìn)位出(carry-out),因此,該線路31系,一方面,為該第一部份計(jì)算部分30a之該最重要位的該進(jìn)位輸出,以及,另一方面,為該第二部分計(jì)算單元30b之該最不重要位片劃分的該進(jìn)入輸出。
因此,藉由將圖3B中所顯示之該等位片劃分至于彼此之頂部之上,舉例而言,具有多于2.048個位片劃分的一長數(shù)計(jì)算單元系會起始,其中,該長數(shù)計(jì)算單元系會包括該等寄存器C,N,Z,CR1,以及CR2,而該等寄存器則是分別地皆大于2.048位長。
因此,顯示在圖3A中之該長數(shù)計(jì)算單元系能夠快速地執(zhí)行顯示在方塊950中的該三個操作數(shù)加法,而對,舉例而言,可以被使用作為在一智能卡中之一密碼輔助處理器(crypto-coprocessor)的一多功能處理器而言,其系亦應(yīng)該能夠?yàn)榱孙@著較短的數(shù)而執(zhí)行一RSA計(jì)算、或一橢圓曲線密碼計(jì)算的需求乃是存在的,因此,一具有1.024位之碼長度的一RSA計(jì)算所具有的安全性,系會比一具有2.048位的RSA計(jì)算為低,然而,在該安全性為1.024位即令人滿意的例子中,顯示于圖3A中的該計(jì)算單元則亦應(yīng)該可以有效地加以應(yīng)用,因此,為了這個目的,該配置轉(zhuǎn)換開關(guān)32系會加以提供,以中斷該進(jìn)位路徑31,而在根據(jù)該完整長度之計(jì)算單元的此例子中,兩個部分計(jì)算單元30a、30b(不過,其系亦可以獨(dú)立地討論),舉例而言,系會造成平行地執(zhí)行可以在一密碼演算式中平行地加以配置的計(jì)算,因而藉此達(dá)成兩個平行1.024位計(jì)算系可以利用該計(jì)算單元而加以執(zhí)行。
通常,一演算式系會需要該等寄存器C,N,Z,CR1,以及CR2之內(nèi)容自一個部分計(jì)算單元30a被復(fù)制至另一個部分計(jì)算單元30b、或是其它方式的循環(huán),所以,為了這個目的,一內(nèi)部總線33系會加以提供,以為了該第一部份計(jì)算單元30a的每一個位片劃分而將一連接線路提供至該另一部份計(jì)算單元之該相對應(yīng)順序的該位片劃分,因此,在該第一部份計(jì)算單元30a中之一寄存器的該完整內(nèi)容系可以利用一快速的方式而被寫入該第二部分計(jì)算單元30b之一寄存器之中,因此,在一循環(huán)中,舉例而言,在該部分計(jì)算單元30a之一寄存器中之一1.024位的數(shù)系可以被寫入該部分計(jì)算單元30b的一寄存器中,此外,更進(jìn)一步地,一具有寬度n的數(shù)據(jù)總線(34)系亦會加以提供,其中,該數(shù)據(jù)總線之該寬度n系會小于在一部分計(jì)算單元30a、或30b中之位片劃分的該數(shù)量,以及,特別地,乃是遠(yuǎn)小于,例如,僅包括8個位,然而,該數(shù)據(jù)總線34系會加以執(zhí)行,以使得能夠經(jīng)由多任務(wù)器35a、35b而接入任何的位片劃分,以及,特別地,部分計(jì)算單元30a、30b兩者之該等位片劃分的任何寄存器。
因此,即利用一小的數(shù)的例子,來舉例說明,一方面,該內(nèi)部總線33,以及,另一方面,用于一數(shù)據(jù)傳遞之該數(shù)據(jù)總線34,的重要性。其中,其系假設(shè),每一個部分計(jì)算單元30a、30b系包括1.024的位片劃分,若是一部份計(jì)算網(wǎng)絡(luò)的寄存器數(shù)據(jù)系經(jīng)由該數(shù)據(jù)總線34而加以寫入該另一部份計(jì)算網(wǎng)絡(luò)的一寄存器時,則此將會需要128個循環(huán),當(dāng)然,這是無法接受的,尤其是當(dāng)一簡單的負(fù)載指令(load)、一儲存指令(store)、或一寄存器交換指令(exchange)將會需要一無限長之時間的時候,因此,該內(nèi)部總線33系會加以提供,而透過該總線,該等1.024個位即可以在一個循環(huán)中,自一計(jì)算單元被傳輸進(jìn)入另一個。
因此,顯示在圖3A中的該計(jì)算單元系會有助于一具有完整長度之計(jì)算單元、或是可獨(dú)立于彼此之外而操作之兩個平行的部分計(jì)算單元,其中,更進(jìn)一步地,在該兩個部分計(jì)算網(wǎng)絡(luò)30a以及30b之間的一更快速寄存器交換系亦會成為可能。
特別地是,藉由該橢圓曲線密碼使用法,該等碼長度系會顯著地較短,并且,會落在,舉例而言,130個位的范圍之中,若是其系假設(shè)該第一部份計(jì)算網(wǎng)絡(luò)30a系作用為一橢圓曲線密碼計(jì)算單元,以及同時該第二部份計(jì)算網(wǎng)絡(luò)30b系作用為一橢圓曲線密碼計(jì)算單元時,則,舉例而言,僅會需要該最上層的130個位片劃分,其中,該第一部份計(jì)算單元30a的此活性部分系藉由在圖3A中36a而加以標(biāo)示,而同時,該第二部份計(jì)算單元30b的該活性部分則是藉由36b而加以標(biāo)示,而該兩個部分計(jì)算單元的剩余部分,亦即,分別位在該位片劃分、或是該位片劃分k下方的該等位片劃分,則不需要,再者,當(dāng)其系假設(shè),舉例而言,一整體部分計(jì)算單元系包括1.024個位以及僅需要該最上層的130個位時,則每一個部分計(jì)算單元之該寄存器位置的87%系會維持為未使用,特別地是,在與芯片卡的集成電路一起使用時,其系特別不利的是,當(dāng)在該芯片卡上之記憶資源系由于緊實(shí)之區(qū)域限制而不管如何皆非常受限的時候。
因此,其系可理解的是,釋放該第一部份計(jì)算單元30a的整體剩余,以作為一寄存器,雖然該等位片劃分的該等算術(shù)裝置并不需要,以及釋放該第二部分計(jì)算單元30b的該整體剩余,以作為一寄存器,雖然在此,同樣地,該等算術(shù)裝置并不需要,則在此例子中,自該第一部份計(jì)算單元之一寄存器到達(dá)該第二部分計(jì)算單元之一寄存器的一快速寄存器復(fù)制將會經(jīng)由該內(nèi)部總線連接33而成為可能。
換言之,使得與類似,舉例而言,該橢圓曲線使用密碼法(ECC),之較短碼一起使用的密碼演算式系通常會具有它們乃會需要一大量之操作數(shù)的特征。
因此,其系會有需要將該部分計(jì)算單元30a以及同時該第二計(jì)算單元30b兩者的非活化區(qū)域分別地劃分成為更進(jìn)一步的單元,以定義額外的寄存器,而這些額外的寄存器則是藉由標(biāo)示為37a,37b、或38a,38b之該等位片劃分次堆棧(substaple)而加以實(shí)現(xiàn),根據(jù)圖3A,其系可以看出,在該等新定義之寄存器37a以及38a之間系沒有可能有一寬帶數(shù)據(jù)交換的機(jī)會,同時,舉例而言,在該第一部份計(jì)算單元30a之該寄存器38a以及該第二計(jì)算單元30a之該寄存器38a之間,系沒有寬帶數(shù)據(jù)交換的可能,如此的寄存器系可以經(jīng)由該數(shù)據(jù)總線34而僅與彼此溝通,不過,其系特別不利的是,該數(shù)據(jù)總線34系為窄帶的,作為一個例子,當(dāng),舉例而言,該寄存器38a系為130的位寬,以及該寄存器37b系亦為130個位寬的時候,自該寄存器38a至該寄存器37a之經(jīng)由該數(shù)據(jù)總線34的一數(shù)據(jù)交換將會需要17個循環(huán),而此將會由于時間的因素而為無法忍受,再者,若是該等寄存器38a以及37b系大于130個位的話,則在這些寄存器之間經(jīng)由該數(shù)據(jù)總線34之一數(shù)據(jù)交換的循環(huán)數(shù)量將會據(jù)此而增加。
因此,該等部分計(jì)算單元之該等非活性區(qū)域的更進(jìn)一步分隔,即會由于效能的因素而被排除、或是即會在該寄存器分隔若是無論如何皆加以執(zhí)行時,導(dǎo)致以此方式建立之一處理器之執(zhí)行特征的一實(shí)質(zhì)降低,換言之,其系無法、或很難接受由于該受限的記憶位置限制而留下大量的寄存器記憶區(qū)域?yàn)槲词褂谩?br>
本發(fā)明的一個目的即在于提供一較佳寄存器使用的概念。
而此目的則是可以藉由一種根據(jù)權(quán)利要求1之處理器、或藉由一種根據(jù)權(quán)利要求10之用于同時執(zhí)行一計(jì)算以及一復(fù)制程序之方法,而加以達(dá)成。
發(fā)明內(nèi)容
本發(fā)明作為基礎(chǔ)之發(fā)現(xiàn)系為,特別是,藉由一模數(shù)、或一非模數(shù)乘法,以及亦藉由其它在數(shù)個計(jì)算循環(huán)中之計(jì)算,至少一操作數(shù),在該乘法例子中的該乘數(shù),系不總是在每一個計(jì)算循環(huán)中皆需要完整的長度,而是僅需要部分,因此,對一計(jì)算而言,并不需要儲存在一來源寄存器中之該部分需要操作數(shù)的全部,而是在每一個計(jì)算循環(huán)之中,僅此操作數(shù)的某一部份是需要的,并且,系會被饋送至一計(jì)算單元,因此,根據(jù)本發(fā)明,該無論如何負(fù)載自該來源寄存器并饋送至該計(jì)算單元之操作數(shù)的一部份系已經(jīng)額外地加以寫入一目的寄存器之中,而由于此系與該等計(jì)算循環(huán)平行地加以執(zhí)行,因此,在所有用于一計(jì)算之計(jì)算循環(huán)的一執(zhí)行之后,不僅該計(jì)算會加以執(zhí)行,該部分進(jìn)行負(fù)載之操作數(shù)的一完整復(fù)制亦也會在該目的寄存器中再次地被發(fā)現(xiàn)。
因此,根據(jù)本發(fā)明,平行于一計(jì)算,同樣地,來自該來源寄存器而進(jìn)入該目的寄存器的一復(fù)制系會部分地在數(shù)個計(jì)算循環(huán)中執(zhí)行,所以,該復(fù)制指令系會于時間上平行于該計(jì)算指令,藉此,用于該復(fù)制指令其本身的平行執(zhí)行即不需要額外的機(jī)械循環(huán),而該復(fù)制指令也因此不需要會超過用于執(zhí)行無論如何系為需要之該循環(huán)計(jì)算之時間之外的額外時間。
本發(fā)明的一個優(yōu)點(diǎn)是,除了該復(fù)制指令其本身并不需要時間之外,在該計(jì)算之后的該復(fù)制程序,類似,舉例而言,一乘法,系可以加以隱藏,并且因此可以不被功率變量分析(power profileanalysis)所發(fā)現(xiàn)等,藉此,透過該計(jì)算以及該該復(fù)制的平行運(yùn)作,一增加安全性的標(biāo)準(zhǔn)即可以達(dá)成。
本發(fā)明的一另一優(yōu)點(diǎn)系為,如此可以部分進(jìn)行處理,類似,例如,在一乘法中的該乘數(shù),的操作數(shù)系可以在不需要依額外之時間努力的情形下,并且經(jīng)由一通常不具有一大寬度,例如,僅為8位寬,的數(shù)據(jù)總線,而被復(fù)制進(jìn)入任何連接至該數(shù)據(jù)總線的目的寄存器,且系獨(dú)立于該目的寄存器有多長、或者一分開之復(fù)制系會需要有多少之機(jī)械循環(huán)的事實(shí)之外。
特別地是,在許多具有許多乘數(shù)之乘法系會加以執(zhí)行的橢圓曲線使用密碼法中,同樣地,不具有一寬帶數(shù)據(jù)連接至其它計(jì)算單元寄存器的計(jì)算單元寄存器系可以被用于儲存長操作數(shù),因此,在不需要一執(zhí)行損失的情形下,用于這些部分待處理操作數(shù)的一理想寄存器應(yīng)用即可以達(dá)成。若是對如此之部分待處理操作數(shù)而言,僅有計(jì)算單元寄存器系額外地需要時,則同樣地,在一些如此之寄存器之間所可能出現(xiàn)的寬帶數(shù)據(jù)連接系亦可以被關(guān)閉,以最小化該計(jì)算單元的該當(dāng)前消耗,而盡管關(guān)閉了該寬帶數(shù)據(jù)連接,但透過本發(fā)明之經(jīng)由該窄帶數(shù)據(jù)總線的同時計(jì)算以及復(fù)制,一理想的寄存器利用一樣可以達(dá)成,因此,即可以省略額外之用于橢圓曲線使用密碼法的提供,而其系再次地所具有之優(yōu)點(diǎn)是,特別是長數(shù)計(jì)算單元系對于具有強(qiáng)烈變化碼長度之不同應(yīng)用而言,為可理想地使用,以及對于相對應(yīng)的工作而言則為可調(diào)整。
接下來,本發(fā)明的較佳實(shí)施例系會以所附圖式作為參考而進(jìn)行更詳盡的解釋,其中圖1其系顯示根據(jù)本發(fā)明之一處理器的一方塊圖;圖2其系顯示根據(jù)本發(fā)明之一方法的一流程圖;圖3A其系顯示本發(fā)明之概念可加以應(yīng)用之一可配置長數(shù)(longnumber)計(jì)算單元;圖3B其系顯示一位片劃分(bit-slice)的一詳細(xì)舉例說明;以及圖4其系顯示一已知之用于模數(shù)計(jì)算、且同時使用一增進(jìn)先行方法以及一縮減先行方法的ZDN方法。
具體實(shí)施例方式
圖1系顯示根據(jù)本發(fā)明的一處理器,其系具有一來源寄存器(source register)、一目的寄存器12,一計(jì)算單元14,一處理器控制器16,以及一具有一n位之?dāng)?shù)據(jù)寬度的數(shù)據(jù)總線18,典型地,該數(shù)據(jù)總線18之該數(shù)據(jù)寬度n系會于實(shí)質(zhì)上小于該來源寄存器10、或是該目的寄存器12、或是該計(jì)算單元14之位劃分(bit-slice)之?dāng)?shù)量,的長度,并且,系因此介于,例如,8至32個位之間。
該數(shù)據(jù)總線18系會被連接至該來源寄存器10以及該計(jì)算單元14兩者,以及亦會被連接至該目的寄存器12。
該計(jì)算單元14系加以施行,以執(zhí)行用于該來源寄存器內(nèi)容的一計(jì)算,其中,該計(jì)算系亦可以在數(shù)個計(jì)算循環(huán)之中執(zhí)行,以及其中,在每一個循環(huán)之中,僅有該來源寄存器內(nèi)的一部份,亦即,僅有儲存在該來源寄存器10中之該操作數(shù)之一可變尺寸的一部份系為可使用的。
該處理器控制器16系可以加以操作,而一方面,將此計(jì)算循環(huán)所需要的該來源寄存器內(nèi)容饋送至該計(jì)算單元14,以及,另一方面,根據(jù)本發(fā)明地,在一計(jì)算循環(huán)之前,經(jīng)由該數(shù)據(jù)總線18而饋送至該目的寄存器12,因此,在該等數(shù)個計(jì)算循環(huán)的執(zhí)行之后,一方面,該計(jì)算單元14系為包括該計(jì)算的結(jié)果,以及,另一方面,在該目的寄存器12之中系會出現(xiàn)該來源寄存器10的一完整復(fù)制,在此利用一增進(jìn)先行方法的乘法的例子之中,在一第一計(jì)算循環(huán)中,例如,該來源寄存器10之該乘數(shù)出現(xiàn)在其中的8個位系會被饋送至一計(jì)算單元14,以及特別地,饋送至具有一介于20至30個位之緩沖器,亦即,一小緩沖器,的一計(jì)算單元輔助裝置,其中,該計(jì)算單元輔助裝置系會檢驗(yàn)此部分的乘數(shù),亦即,該被供給位部分,以產(chǎn)生,一方面,用于該中間結(jié)果的移位數(shù)值,以及另一方面,用于該部分位的一增進(jìn)先行參數(shù),此外,利用已經(jīng)藉由該計(jì)算單元輔助裝置而加以決映之該已計(jì)算之移位數(shù)值以及該已計(jì)算的增進(jìn)先行參數(shù),一計(jì)算循環(huán)系接著會加以執(zhí)行,而其系通常會在一正常乘法的例子,于一二操作數(shù)加法之中加以執(zhí)行、或在一模式乘法的例子中,于一三操作數(shù)加法中加以執(zhí)行,例如,根據(jù)圖44之該方塊950中所顯示之該計(jì)算說明。
當(dāng)其系不知道在增進(jìn)先行方法的一開始有多少該乘數(shù)的位會同時被處理的時候,該計(jì)算單元輔助裝置系會包括一,例如,正如其已經(jīng)被執(zhí)行之16或24個位大的,緩沖寄存器,而其系首先會在該計(jì)算開始之前,藉由部分該乘數(shù)位而進(jìn)行負(fù)載,根據(jù)本發(fā)明,在該計(jì)算單元輔助裝置之該緩沖寄存器之部分中的此負(fù)載期間,該目的寄存器18系亦會同時地逐漸被敘述,若是,舉例而言,該來源寄存器的前8個位系被寫入該計(jì)算單元輔助裝置的該緩沖寄存器之中時,則此些8個位系亦會被寫入該目的寄存器的頂部8個寄存器記憶位置之中,再者,當(dāng)該來源寄存器的下8個位系接著被寫入該計(jì)算單元輔助裝置的該緩沖寄存器之中時,則這些其次的8個位系亦會被寫入該目的寄存器的該相對應(yīng)其次的8個位之中,有時,當(dāng)該計(jì)算單元輔助裝置之該輔助緩沖器的一滿載之緩沖程度已經(jīng)發(fā)送信號時,該計(jì)算單元14系將會開始一個循環(huán)一個循環(huán)地處理該乘法,因此,只要在該計(jì)算單元輔助裝置之該中間緩沖器的一關(guān)鍵緩沖程度一發(fā)送信號時,則該來源寄存器之位的下一個部分即會馬上被負(fù)載進(jìn)入此緩沖器之中,同時,該來源寄存器之該等位的此部分則亦會根據(jù)本發(fā)明地被負(fù)載進(jìn)入該目的寄存器之中。
根據(jù)前面的敘述,其系可以看出,該目的寄存器負(fù)載的執(zhí)行將沒有必要完全地與該等計(jì)算循環(huán)同步,但是,系會主要地與該計(jì)算單元輔助裝置之該中間緩沖器的該負(fù)載同步,若是一計(jì)算單元輔助裝置并不具有如此的一中間緩沖器時,亦即,若是舉例而言,總是有相同數(shù)量之該來源寄存器的位需要在每一個循環(huán)中加以計(jì)算時,則自該來源寄存器到達(dá)該目的寄存器的該復(fù)制程序系亦可以與該計(jì)算循環(huán)同步執(zhí)行。
在任何例子中,在數(shù)個計(jì)算循環(huán)后之該計(jì)算的一執(zhí)行之后,該來源寄存器10的完整內(nèi)容系必須經(jīng)由僅有n個位寬的該數(shù)據(jù)總線而被復(fù)制進(jìn)入該目的寄存器12。
接下來,本發(fā)明用于同時執(zhí)行一計(jì)算以及執(zhí)行一復(fù)制程序之方法的一流程圖系以圖2作為參考而加以舉例說明,此概念系開始于方塊20,接著,在一方塊21之中,其系會決定在該來源寄存器之中是否仍然有需要被供給至該計(jì)算單元14的數(shù)據(jù),然而,若是此問題之答案系為“是”時,則首先,該來源寄存器內(nèi)容的一部份系會于一方塊23a中被供給至該計(jì)算單元(圖1中之14),同時,該部分系亦會被寫入該目的寄存器(圖1中之12)之中,而平行于此,一、或數(shù)個計(jì)算循環(huán)系會藉由該計(jì)算單元而加以執(zhí)行(方塊23b),在該方塊23b中的該執(zhí)行系會同步于對該計(jì)算單元之該部分的饋送、或是不同步,在圖1所舉例說明之一中間緩沖器(圖1中之15)系出現(xiàn)在該計(jì)算單元之中,并且,特別地,出現(xiàn)在該計(jì)算單元的該輔助裝置之中,的該實(shí)施例中,一計(jì)算系會在部分平行,然而,不同步,于進(jìn)入該目的寄存器之該饋送以及該負(fù)載的數(shù)個計(jì)算循環(huán)中加以執(zhí)行。
在該等已供給位,以及實(shí)際上由于在一計(jì)算循環(huán)中之該計(jì)算單元14所造成之一乘數(shù)的該等真實(shí)“消耗”位,之間的去耦(decupling)系藉由該計(jì)算單元輔助裝置的該緩沖器而加以提供,其中,該等已供給位通常會被供給作為固定部分,以及該等真實(shí)“消耗”位則是并未于每個計(jì)算循環(huán)中固定,但是其系取決于該等乘數(shù)位的型態(tài),正如其系因先行演算式而聞名一樣,再者,當(dāng)用于該先行方法的該等乘數(shù)位系為較佳時,則事實(shí)上,系可以有8個乘數(shù)位在一計(jì)算循環(huán)中進(jìn)行處理,亦即,負(fù)載自該來源寄存器的一部份,然而,若是該等乘數(shù)位系會該先行方法而言系為不利時,則該例子系可以發(fā)生為,僅一、或兩個乘數(shù)位會被處理、或是會在一計(jì)算循環(huán)中“被消耗”,在此例子中,該來源寄存器內(nèi)容的該等部分系會被饋送進(jìn)入圖1該中間緩沖器15之中,而其則是會將該等乘數(shù)位的部分該負(fù)載,自在該等個別計(jì)算循環(huán)中之該等位的該“消耗”,去耦進(jìn)入在固定部分中所執(zhí)行的該計(jì)算單元,無論如何,該來源寄存器內(nèi)容的該部分負(fù)載系會在平行于連續(xù)計(jì)算循環(huán)中之該計(jì)算的執(zhí)行的連續(xù)步驟中執(zhí)行,其中,該等計(jì)算循環(huán)以及部分該負(fù)載系可以在某些例子中妥善的同步,然而,其將會是在該乘法會由于增進(jìn)先行演算式之該內(nèi)在不同步而為不同步的例子之中。
一乘法的例子之中,該來源寄存器系亦可以加以配置為外接至該計(jì)算單元14,然而,此并非完全地需要,當(dāng)然,該來源寄存器系亦可以是圖3B之該等寄存器38a、37a、37b、38b的其中之一,而這些則是亦可以應(yīng)用于該目的寄存器,同樣地,該目的寄存器也不需要必然地落在該計(jì)算單元的范圍之中,不過其中,此系為在一可配置計(jì)算單元之例子中最常見的情況,再者,在任何例子中,其系為必須的是,該來源寄存器以及該目的寄存器系經(jīng)由該數(shù)據(jù)總線34而加以連接至彼此。
特別地,對一兩個操作數(shù)之乘法的執(zhí)行而言,該乘數(shù)系會根據(jù)該數(shù)據(jù)總線34之該位寬度而部分地進(jìn)行讀取,以及經(jīng)由該數(shù)據(jù)總線而寫入亦被稱之為一控制器的該計(jì)算單元輔助裝置,在此,此部分系藉由該乘法演算式而進(jìn)行評估,而根據(jù)本發(fā)明,該已經(jīng)分別呈現(xiàn)在該數(shù)據(jù)總線34(圖3A)、或18(圖1)上之?dāng)?shù)值系會同時地被寫入任何其它的可變寄存器,此外,平行于該乘法,待掃瞄之該乘數(shù)系亦會被復(fù)制進(jìn)入另一個寄存器,藉此,用于部分處理操作數(shù)的長寄存器系會加以提供,以及系會完全地為可使用,不管它們僅可經(jīng)由一具有一小帶寬之總線而加以接入的事實(shí),其中,該復(fù)制程序系會在沒有依額外時間損失的情形下執(zhí)行,而僅需要花費(fèi)額外努力于在圖1之該處理器控制16上,以操作該目的寄存器12,因而使得其會將被供給至該數(shù)據(jù)總線18之該來源寄存器內(nèi)容部分儲存于相對應(yīng)的寄存器位置。
參考符號列表10 來源寄存器12 目的寄存器14 計(jì)算單元15 中間緩沖器16 處理器控制器18 數(shù)據(jù)總線20 開始21 所出現(xiàn)待處理之?dāng)?shù)據(jù)22 結(jié)束23a供給一部份至計(jì)算單元,以及將其寫入該目的寄存器23b執(zhí)行計(jì)算循環(huán)30a第一部份計(jì)算單元30b第二部份計(jì)算單元31 傳輸線33 寬帶內(nèi)部數(shù)據(jù)總線34 窄帶外接數(shù)據(jù)總線35a第一多任務(wù)器35b第二多任務(wù)器36a第一部分計(jì)算單元之已使用部分36b第一部分計(jì)算單元之已使用部分37a未使用部分之寄存器37b未使用部分之寄存器38a未使用部分之寄存器38b未使用部分之寄存器900ZDN演算式之起始910增進(jìn)先行演算式920中間結(jié)果移位930縮減先行演算式940模數(shù)移位950三操作數(shù)操作
960 ZDN演算式之終點(diǎn)
權(quán)利要求
1.一種處理器,包括一來源寄存器(10),其具有一來源寄存器內(nèi)容;一目的寄存器(12);一計(jì)算單元(12),用于利用該來源寄存器內(nèi)容而執(zhí)行一計(jì)算,其中,該計(jì)算可以于數(shù)個計(jì)算循環(huán)中執(zhí)行,以及其中在每一循環(huán)中,僅有該來源寄存器內(nèi)容的一部分為可使用的;一數(shù)據(jù)總線(18),其被連接至該來源寄存器(10),該目的寄存器(12),以及該計(jì)算單元(14);以及一處理器控制器(16),其可以于該計(jì)算期間操作,以便經(jīng)由該數(shù)據(jù)總線(18)將部分該來源寄存器內(nèi)容一方面供給至該計(jì)算單元,以及在另一方面供給至該目的寄存器(12),因而使得在該執(zhí)行數(shù)個計(jì)算循環(huán)之后,該來源寄存器內(nèi)容會被帶入該目的寄存器中。
2.根據(jù)權(quán)利要求1所述之處理器,其中,該來源寄存器(10)以及該目的寄存器(12)具有比該數(shù)據(jù)總線(18)的一數(shù)據(jù)寬度(n)為大的一寄存器長度。
3.根據(jù)權(quán)利要求1或2所述之處理器,其中,該計(jì)算單元(14)包括一些大于64位的位片劃分(bit-slices)。
4.根據(jù)前述權(quán)利要求其中之一所述之處理器,其中,該計(jì)算單元(14)包括一計(jì)算單元輔助裝置,而其具有一輔助緩沖器(15)以及一位片劃分堆棧(staple);以及其中,該處理器控制器(16)乃被執(zhí)行,以便在該中間緩沖器(15)接收到一負(fù)載控制信號時,利用該來源寄存器內(nèi)容的一新的部分來填滿該計(jì)算單元輔助裝置的該中間緩沖器(15);其中,該中間緩沖器(15)包括比該來源寄存器(10)、或是該目的寄存器(12)更小的一記憶容量。
5.根據(jù)前述權(quán)利要求其中之一所述之處理器,其中,該計(jì)算單元(14)包括形成一位片劃分堆棧的一些位片劃分,其中,一位片劃分包括一算術(shù)單元,以及一個來自一、或數(shù)個內(nèi)部計(jì)算單元寄存器的位,其中,一用于一中間結(jié)果(Z)的寄存器可以在每一個計(jì)算循環(huán)之中進(jìn)行更新。
6.根據(jù)權(quán)利要求5所述之處理器,其中,該計(jì)算單元(14)可建構(gòu)為僅使用那些位片劃分的一部份而執(zhí)行計(jì)算;以及其中,在該等未被使用于執(zhí)行該計(jì)算的位片劃分中之一、或數(shù)個內(nèi)部計(jì)算單元寄存器的該等位,會形成可以透過該數(shù)據(jù)總線而進(jìn)行接入的來源寄存器(37a、37b、38a、38b)。
7.根據(jù)前述權(quán)利要求其中之一所述之處理器,其中,該計(jì)算包括一被乘數(shù)以及一乘數(shù)的一乘法;其中,該乘數(shù)乃儲存于該可以透過該數(shù)據(jù)總線(18)而進(jìn)行接入的來源寄存器(10)中;其中,該被乘數(shù)乃儲存于一在該計(jì)算單元(14)中執(zhí)行的被乘數(shù)寄存器(C)之中;以及其中,在每一計(jì)算循環(huán)中,該乘數(shù)的一些位會藉由該計(jì)算單元而加以處理,以及其中,平行于該等乘數(shù)位的該處理,部分乘數(shù)位會被供給至該計(jì)算單元。
8.根據(jù)權(quán)利要求7所述之處理器,其中,在每一計(jì)算循環(huán)中的該中間結(jié)果寄存器可以藉由利用被供給至該計(jì)算單元之該乘數(shù)的該等位而進(jìn)行更新。
9.根據(jù)權(quán)利要求7或8所述之處理器,其中,該乘法為一以模數(shù)作為參考的模數(shù)乘法,其中,在該計(jì)算單元中所執(zhí)行的一模數(shù)寄存器會為了該模數(shù)而被設(shè)置。
10.一種同時執(zhí)行藉由利用儲存在一來源寄存器(10)中的一來源寄存器內(nèi)容的一計(jì)算單元的一計(jì)算,以及該來源寄存器內(nèi)容藉其而被復(fù)制至一目的寄存器(12)的一復(fù)制程序的方法,其中,該計(jì)算可以于數(shù)個計(jì)算循環(huán)中執(zhí)行,以及其中,在每一循環(huán)中,僅有該來源寄存器內(nèi)容的一個部分為可使用,該方法包括下列步驟在數(shù)個計(jì)算循環(huán)中的計(jì)算期間,將部分該來源寄存器內(nèi)容供給至該計(jì)算單元以執(zhí)行該數(shù)個計(jì)算循環(huán),以及將該部分來源寄存器內(nèi)容順序?qū)懭朐撃康募拇嫫?12)中,因而使得在執(zhí)行該計(jì)算之后,可以獲得該計(jì)算的結(jié)果,以及亦可以獲得在該目的寄存器(12)中的該來源寄存器內(nèi)容的一復(fù)制。
全文摘要
一種處理器,包括一來源寄存器(10),其具有一來源寄存器內(nèi)容,一目的寄存器(12),一計(jì)算單元(12),用于利用該來源寄存器內(nèi)容而執(zhí)行一計(jì)算,其中,該計(jì)算可以于數(shù)個計(jì)算循環(huán)中執(zhí)行,以及其中,在每一個循環(huán)中,僅有該來源寄存器內(nèi)容的一個部分為可使用的,一數(shù)據(jù)總線(18),其連接至該來源寄存器(10)、該目的寄存器(12)、以及該計(jì)算單元(14),以及一處理器控制器(16)。該處理器控制器可以在該計(jì)算期間操作,以便經(jīng)由該數(shù)據(jù)總線而將部分該來源寄存器內(nèi)容一方面供給至該計(jì)算單元,以及在另一方面供給至該目的寄存器(12),因而使得在該計(jì)算的一執(zhí)行之后,該來源寄存器內(nèi)容會被寫入該目的寄存器中,因此,其可以在不需要用于部分待處理之長操作數(shù)的額外機(jī)械循環(huán)的情形下,于該目的寄存器之中,經(jīng)由一受限的數(shù)據(jù)總線而獲得一來源寄存器的一寄存器復(fù)制。
文檔編號G06F9/308GK1659515SQ03813107
公開日2005年8月24日 申請日期2003年5月28日 優(yōu)先權(quán)日2002年6月6日
發(fā)明者A·埃貝, W·菲斯徹爾, N·詹斯森, H·塞德拉克, J·-P·塞費(fèi)特 申請人:因芬尼昂技術(shù)股份公司