TW200945062A - Polynomial data processing operation - Google Patents

Polynomial data processing operation Download PDF

Info

Publication number
TW200945062A
TW200945062A TW098106215A TW98106215A TW200945062A TW 200945062 A TW200945062 A TW 200945062A TW 098106215 A TW098106215 A TW 098106215A TW 98106215 A TW98106215 A TW 98106215A TW 200945062 A TW200945062 A TW 200945062A
Authority
TW
Taiwan
Prior art keywords
polynomial
value
register
bit
instruction
Prior art date
Application number
TW098106215A
Other languages
English (en)
Inventor
Dominic Hugo Symes
Daniel Kershaw
Martinus Cornelis Wezelenburg
Original Assignee
Advanced Risc Mach Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Advanced Risc Mach Ltd filed Critical Advanced Risc Mach Ltd
Publication of TW200945062A publication Critical patent/TW200945062A/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/3001Arithmetic instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/72Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
    • G06F7/724Finite field arithmetic
    • G06F7/726Inversion; Reciprocal calculation; Division of elements of a finite field

Landscapes

  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Complex Calculations (AREA)
  • Executing Machine-Instructions (AREA)
  • Error Detection And Correction (AREA)
  • Semiconductor Integrated Circuits (AREA)

Description

200945062 六、發明說明: 【發明所屬之技術領域】 本發明是有關於資料處理系統。並且本發明特別是有 關提供對於多項式資料處理作業之支援的資料處理系 統。 【先前技術】 ❹ ❹ 已知在資料處理系統中提供—些對於多項式算術的支 援。例如’已知可提供對於肖Reeds〇1〇m〇n編碼或「棚 圓曲線加密」4目關聯之多項式算術的支援。提供此項支 援的一已知資料處理系統即為由Texas⑻㈣邮咖公司 按TMS3 2GC64x所生產的數位信號處理器。這些數位产 號處理器可提供一指令以執行下列作業: 一 ° a=b*c mod p (其中 h 或 ίο & - ^甲b為32位兀而c為9位元),並! 其中P被存持於一特疾的 行殊的32位兀*暫存器内(GPLY/ 或 gplyb) 已关形式之多項式指令可產獲一多項式乘法的餘 局部’提供對於ReedSGlG_ ^碼的良好支援。然此 不適合於其他形式的多項式資料處理,像是與信號擾 或傳輸數碼計算作業相關聯者^ ’、可紅號擾攪或產生傳輸數碼之目的提供特;
該指令解碼器回應於一多項式除法指令以產生一或 更夕控制信號,此等信號可控制該處理電路俾產生至少 200945062 目的硬體。此特殊目的硬體可為按一能夠按高速執行必 要計算作業之形式所提供,然缺點在於為此一專屬功能 需耗用顯著的電路資源’同時相當地不具彈性且不適於 重用及/或修改。 【發明内容】 自一態樣而觀之,本發明提供—種用於資料處理的設 備,其中含有: 一指令解碼器,此者回應於一程式指令以產生一或更 多控制信號; 一暫存器庫集,此者具有複數個暫存器;以及 處理電路,此者係經耦接於該指令解碼器和該暫存器 庫集,並且回應於該等一或更多控制信號,對經儲存在 =暫存器庫集内《一或更多資料值執行一對應於該程式 指令的資料處理作業;其令 商數值,此商數值表示一對於一分子多項式除以一分 母夕項式之二7L素領域上的多項式除法之商數多項式, 該^母多項式係- ^欠多項式,由β,Ν必的和所 給疋,其中C(N-U至C〇為經儲存在該暫存器庫集之一暫存 器内的個別位元,而同時〜=1並且不是儲存在該暫存器 5 200945062 本技術提供一種可程式化資料處理設備’此者具有像 是一指令解碼器、一暫存器庫集及處理電路的一般目的 構件,而額外地提供有一多項式除法指令的功能性,此 功能性可至少產生一表示一獲自一多項式除法之商數多 項式的商數值。此外,該分母多項式係經儲存在該暫存 器庫集的一暫存器内,其形式係該多項式之最高次項的 係數被固定為「1」,且為假定如此而無需儲存在一暫存 ❹ 器内。如此讓該分母多項式能夠具有一高於用以儲存該 分母值之位元寬度的階次,藉此供以更有效率地使用該 暫存器庫集之暫存器中的位元空間來表示該多項式分除 的結果’而更能隨即地符合可能結果的最大位元寬度。 儲存該分母多項式之係數的暫存器可為一 N位元暫存 器。 所操縱之多項式雖可按各種方式以藉由經儲存在該等 暫存器内的數值所表示’然藉由將對於不同項的係數儲 ® 存在經儲存於一暫存器内之數值的個別位元位置處來表 示該等多項式確為便易。 該等係數可按不同次序而儲存於經存持在該暫存器之 内的數值裡’像是按照最低次項為將其係數儲存在最顯 著位元位置處’朝向最高次項而其係數為儲存在最小顯 著位元位置處’或是與此方式相反(即如類似於小末尾或 大末尾儲存)。 該分子多項式比起該分母多項式經常會具有較高次, 且因而簡便具體實施例是以一經儲存在該暫存器庫集裡 6 200945062 的兩個Ν位元暫存器,或是當在該暫存器庫集裡提供較 寬的暫存器(即如累加器暫存器)時以一個2Ν位元暫存 器’内的2Ν位元分子數值來表示該分子多項式。 該多項式除法指令亦可產生一餘數值,此值表示一獲 自於該多項式除法的餘數多項式,以及表示該商數多項 式的商數值》該商數多項式雖適用於產生經擾碼信號、 傳輸數碼等等’然該餘數多項式於其他情況下亦可適 Ο
用’並因此若二者皆產生自該多項式除法指令則可為簡 便。 該餘數值及該商數值可為便易地儲存在該暫存器庫集 的個別Ν位元暫存器之内。 當所使用之暫存器庫集含有複數個由除該多項式除法 指令以外的程式指令所使用之一般目的純量暫存器時, 可改善本項技術之實作的效率性。 當合併於前述之多項式除法指令而另外提供一多項式 乘法指令時,可強化併入該多項式除法指令之資料處理 系統的-錢用'11以及針對各種函數重用肖系統的能 力。 該多項式除法指令雖經常被要求為按一純量形式,然 在一些具體實施例裡亦可能希嗲棘‘ J此布里按如一向量指令以提供 該多項式除法指令’且該分舟怒估总 茨刀母數值係一純量數值,原因 在於該分母數值通常並不舍噸黎沖_ _ 不會頻繁改變’同時需施用於分 子數值的長向量序列,囍以姦斗愈 猎以產生商數值的向量序列。 自另一態樣而觀之,本發明摆祉 ^ 尽發明楗供一種用於資料處理的 7 200945062 方法,包含下列步驟: 解碼一程式指令以產生—或更多控制信號: 回應於該等-或更多控制信號,對一或更多經儲存在 -具有複數個暫存器之暫存器庫集内的資料數值執行一 對應於該程式指令的資料處理作業;其中 ❹ 該解碼係回應於-多項式除法指令以產卜或更多 控制信號’此等信號可控制至少一商數值的產生作業, 此商數值表示-對於—分子多項式除以—分母多項式之 二元素領域上的多項式除法之商數多項式,該分母多項 式係-.N次多項式,由eixi·,N咖的和所給定,其中 —至。。為_存在該暫存器庫集之—暫存器内的個別 4 7G巾同時eN==1並且不是儲存在該暫存器之内。 將能瞭解本發明之一進一步態樣提供電腦程式,此等 電腦程式併入前述多項式除法指令以根據本揭技術進行 硬體控制》 自後載之本發明示範性㈣實施例的詳細說明,且併 同於隨附圖式而閱讀,將即能顯知本發明的該 目的、特性與優點。 八 【實施方式】 第1圖說明_嘗組老怖 一#掩# < 資枓處理設備2,此者係按一經耦接於 口己隐體6之處rm 〇» 入8… 理器4的形式。該記憶體6儲存程式指 ^ 疋用以執行信號擾攪的程式指令,以及待予處 8 200945062 理之資料數值’像是構成一待予攪擾和傳送之串流的資 料數值10。 該處理器4含有一暫存器庫集12,此者是由多個 元暫存器(即如32位元暫存器)以及(選擇性地)一些21^位 元暫存器14所構成,該等暫存器係經供置用以作為與多 個累加指令相關聯的累加器暫存器。含有一乘法器16、 一移位器18及一加法器20之處理構件可回應於沿一指 鲁 令管線24前進的程式指令’在當自該記憶體6擷取該指 令時’在由一指令解碼器22所產生之控制信號的控制下 執行處理作業《該處理器4係一具有一純量暫存器庫集 12、14之一般目的處理器,此者可用以回應於自該記憶 體ό所擷取的程式指令而執行一般目的之資料處理作 業’像疋正常邏輯和算術作業。由該指令解碼器22所產 生之控制信號可組態設定該資料處理構件16、18、2〇俾 執行所欲的資料處理作業。 〇 在該處理器4中所另提供者係一多項式除法電路26, 此者回應於由該指令解碼器22所產生之控制信號以對 自該記憶體6擷取(透過暫存器12、14)的資料數值進行 多項式除法。後文中將進一步說明該等多項式除法作業 及多項式除法指令。 第2圖略圖說明一多項式除法指令DiVL.Pn的語法。 在該語法DIVL.Pn中(及後文所述程式碼内的divl_pn), η」為該作業的寬度(即如8.、16或32),並且可小於該 暫存器的寬度「Ν」。下列範例中是假設Ν==η,然將能瞭 200945062 解本揭技術亦適用於當N知時(即如N=32且n==8、“或 32)。該多項式除法指令會利用三個暫存器以持存其輸入 運算70。在此範例中,這些暫存器為該暫存器庫集U之 内的N位元暫存器。該分子數值代表一分子多項式且 經儲存在暫存器⑽及Γ1之中。該分子數值因而為一 2N 位7L數值。分母數值代表該分母多項式,且經儲存在暫 存器r2之内。該分母數值代表該分母多項式而假定該 分母多項式是以其具有係數「1」的最高次項為起始,並 因此該分母數值僅需表示該等後隨於該最高次項的係 數。這可讓該分母多項式能夠納入較該暫存器rl之寬度 多一的最大項數。此係一項優點,原因在於自此一多項 式除法所獲得之餘數值將具有一小於該分母數值為一的 位元長度,且從而當該暫存器r2a及其中儲存有該餘數 值之暫存器(r4)具有相同的寬度時,能夠自然地適配於該 暫存器的大小而不致浪費暫存器位元空間。因此,在3 2 ❹位元暫存器的情況下,該分母可具有33項,而該餘值則 可具有32項。 即如可自第2圖所見’該多項式除法指令DlVL.Pn將 一表示該商數多項式的商數值送返至暫存器r3内,並將 一表示一餘數多項式的餘數值送返至暫存器以内。在所 述語法中’將能觀察到’除具有由經儲存於該暫存器r2 内之分母數值的位元所標定之係數的項以外,該分母多 項式係經沿展以·一最尚次項X 。該分子多項式係採如其 高次局部項為由經儲存在暫存器rl之内的係數所標定 200945062 (錯乘上 ,叩一厂叩該分子多項 式之低次局部則是由具有自該暫存 飞仔器Γ〇所取得之係數的 項所構成。 將能看㈣等所予操縱之乡料的階:欠係由該變數^ 而按此—般語法所表示。將能瞭解這可採取各種不同數 值’同時該等所予操縱之多項式可根據資料處 為例如8、16或32次。然其他數值❹亦為可能。 一種在N=32之情況下檢閱該多項式除法指令的方 為這可提供一等同於下歹|JC帛式碼的結果: " 爲㈣’内1,”2; f〇r(i=0;i<32;i++) C = r»31; r = r«l; if(C)
Γ==ΓΛ1; } } q = (q«l) I c; *Χ3 = n* return r (: 2xJ<<32)+x〇) div((l«32)+x2) */ , ((xl«32)+x〇) m〇(i ((1«32)+χ2) */ 第3圖略圖說明一範例多項式除法作業。
的情沉γ , 承仕此JV 可獲致一具有達五個項的分母多項式,以 達八個項认、 Λ ^ ^ 3 的为子多項式。在所述範例裡,該分母多項 X項兩者的係數為零。從而,該分母多項式為 200945062 + X2+1。儲存在暫存器r2之内的分母多項式為「〇1〇1」, 並且在其最顯著末端延伸一數值「L以提供對於該分母 多項式的係數,即如假設該分母多項式之内的最高次項 t是具有係數1」。熟諳本項技術領域之人士將能瞭 解此-假設可能會要求將該分母多項式排準(aiign_t) 於一任何分子多項式内的相關排準’藉以令此假設為正 確。然分母多項式經常為㈣定數值,且因而該分母多
項式的此—排準在正常情況下對於每-計算作業而言並 非必要。此外’該分子多項式通常為一資料串流,並因 而在該資料串流内之排準在正常情況下可藉由一適當的 開始點所達成。 該多項式除法指令的動作類似於一長除法指令。在一 二,素領域上的多項式算術中(亦即項的係數可為「〇」 ^」)力法及減法等同於一斥OR函數。乘法等同於 ^ 運算。這些操作是對於具有相同階次的項所執 行。、在所述範例裡,獲自於該多項式除法指令的商數多 項式為Χ + χ2 + x」’並且這是由「1110」所表示。而 、夕項式為Γ1」,同時這是由一餘數值「0001」所表 示0 入第4圖略圖說明一用以實作一階次4之多項式除法指 _ 、路像疋可由第i圖的多項式除法電路26所提供 者。即如可見,用以回應於該多項式除法指令而實作該 多項式除法操作之電路包含-含有and閘器及驗閘 器的排置。對於這些閘器的輸入為分子數值[n7:n。]及分 12 200945062 母數值[l:P〇]。 、、=4圖的電路是由該指令解碼器22回應於一多項式除 : 而產生之控制信號所控制,而該電路係經啟動所 運用’同時該等分子數值及分母數值係自該暫存器庫集 12讀出並予供應至第4圖電路内的輸入。此外,該商數 值[q3:q〇]及該餘數值[㈣]係類似地自帛4圖電路的輸出 it予儲存至該暫存器庫集12中的暫存器内。在 ❹ &範例中對該暫存器庫集12提供有兩個寫人缚,藉以將 該除數值及該餘數值兩者寫入於其内。 , 將能瞭解第4圖電路係用於計算具有四階次的多項式 除法。然此電路的常規延伸可提供用於具有較高階次1 多項式除法的多項式除法指令作業,同時在實作上可藉 由適當的信號數值多工處理以對於該等具有不同階次的 除法重用相同電路,即如本項技術領域之人士所熟請者。 底下給定一暫存器傳送語言(RTL)範例,此者可定義用 © 以執行-具32、16或8次之多項式除法的電路。 >H Polynomial divider // Divider Ex stage //------------------------------------- always @ (posedge elk) if (cmdjiv—en) begin d_din_h_ex <= din a sz· d_poly_ex <= din_b_sh; end ~ // Common terms 13 200945062 > assign d_i = d_din_h_ex;> assign d_p = d_poly_ex; ❹ > assign d_p—29 = = d_p[30]Ad_p[31]; > assign d_p_28: = d_p[29]^d_p[31]; > assign d_p_27 = = d_p[28]-(d_p[30]|dj)[31]); > assign d_p_26 = d_pP7] Λ (d_p[31] & ~(d_p[29]八 d_pP〇])); > assign d_p 25 = =d_p[26] Λ d_p[29] Λ (d_j>[31] & d_p[28]) ^ (d_p[31] >1 > |dj)[30]); > // Divider - 1st 8-bits > assign d_o[31] = d_i[31]; > assign d_o[30] =d i[30]A > (d_i[31]&d_p[31]); > assign d_o[29] =d i[29]A > (d_i[30]&d_p[31]K > (d_i[31]&d_p_29); > assign d一。[28] =d i[28]A > (d_i[31]&d_p_28)八 > (d i[30] & d_p 29)A > (ά_ΐ[29]&<1_ρΓ31]); > assign d_o[27] = d_i[27]- > (d_i[28]&dj,[31])A > (d_ip9]&d」>_29)八 > (d_i[30]&d_p_28)A > (d_i[31]&d_p_27); > assign d_o[26] = <UP6]a > (d_i[27]&d_p[31]r > (d i[28] & d_p 29)Λ > (d i[29] & d_p 28)Λ > (d i[30] & d_p 27)Λ > (d i[31]&d_p 26); > assign d_o[25] =d_i[25] Λ > (d_i[26]&djD[31]K > (d i[27] & d_p 29)Λ > (d_i[28]&d_p_28)A > (d ip9] & d_p 27)Λ > (d i[30] & d_p 26)Λ > (d_i[31] & (djpP6] a d_j>[29] Λ (〇[31] & > d_p[28]) Λ (d_p[31] | d_p[30])>); assign d_o[24] = d_i[24] Λ > (d_i[25]&d_p[31])^ > (d_i[26]&d_p_29)八 > (d i[27] & d_p 28) Λ > (d i[28] & d_p 27) Λ > (d i[29] & d_p 26) Λ > (d i[30] & (d_p[26] Λ d_p[29]Λ (d_p[31] & > d_p[28]) a (dj)[31]丨 d_p[30])))Λ (d_pi] & > d_p[25]) Λ (d_i[31] & d_p[31] & d_p[27]) ^ > (d_i[31]&dj[30]&d_j)[29]r > (d_i[31]&d_p[31]); > assign dpp_31; ={ { l{l'bO}},({'ARlDPU INT WIDTH{d o[31]}} & > djpoly ex), {31{l'b0}} }; assigndpp 30 = { { 2{l'b0}}, > ({'ARiDPU_INT_WIDTH{d_o[30]}} & d_poly_ex), {30{l'b0}} }; assign 200945062 > dpp 29 = { { 3{l'b0}}, ({'ARlDPU_INT_WIDTH{d_o[29]}} & dj5〇ly_ex), > {29{1Τ>0}} }; assigndpp_28 = { { 4{l*b0}}, > ({'ARlDPU_INT_WIDTil{d_〇p8]}} & d_poly_ex),{28{l*b0}} }; assign > dpp 27 = { { 5{l'b0}}, ({'AR1DPU INT WIDTOid 〇[27]}} & d_poly ex), > {27{l'b0}} }; assign dpp_26 = { { 6(11)0}}, > ({'ARlDPU_INT_WIDfH{d_o[26]}} & d_poly_ex), {26{l'b0}> }; assign > dpp_25 =1 { 7{l'b0}}, > ({'ARlDPU_INT_WIDTH{d_o[25]}} & d_poly_ex), > {25{Π>0}} }; assign dpp_24 = { { 8{1^0}}, > ({'ARlDPU_INT_wibTH{d_o[24]}} &d_poly_ex), {24{l'b0}} }; assign >dp_24 =(({d_i, {32{rb0}}} Adpp_31)Adpp_28)^((dpp_30^dpp_29) > Λ dpp_27) Λ (dpp_26 Λ dpp_25) Λ dpp_24; > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > ❹ // Divider - 2nd 8-bits assign d_o[23] = dp_24[23+32]; assign d_o[22] = dp_24[22+32] Λ _ ~(dp_24[23+32] & d__p[31]); assign d_o[21] = dpj4pi+52] Λ _ ~(dp_24[22+32] & d_p[31]) Λ
(dp_24[23+32] & d_p_29); assign d_o[20] = dp_24[20+32] A ~ ~(dp_24[23+32] & d_p_28)Λ (dp_24[22+32] & d_p_29) Λ (dp_24[21+32] & d_pf31]); assign d_o[19] = dp_24[19+32] Λ ~ ~(dp_24[20+32] & d_p[31]) Λ (dp_24pi+32] & d_p_29)Λ (dp_24[22+32] & d_p_28)Λ (dp_24[23+32] & d_p_27); assign d_o[18] = dp_i4[18+$2] Λ ~ ~(dp_24[19+32] & d_p[31])Λ (dp一24[20+32] & d_p_29) Λ (dp_24i21+32j & d_p:28)Λ (dp_24[22+32] & d_p_27) Λ (dp_24p3+32] & d_p=26); assign d_o[17] = dp_24[T7+32] Λ (dp_24[18+32] & d_ppi]) Λ (dp_24[19+32] & d丄29) Λ (dp_24p〇+32] & d_p_28) Λ (dp_24[21+32] & d_p_27) Λ (dp_24[22+32] & d_p_26)八 (dp_24[23+32] & (d_p[26] Λ d_p[29] Λ (d_p[31] & d_pP8]) Λ (d_p|;31] I d_pP〇]))); assign d_o[16] = dp_24[16+32] Λ (dp_24[17+32] & d_p[31]) Λ (dp_24[18+32] & d_p_29) Λ (dp_24[19+32] & d_p_28) Λ (dp_24[20+32] & d_p_27)Λ (dp_24pi+32] & d_p_26) Λ (dp一24[22+32] & (d_i"[26] Λ d_p[29] Λ (d』[31] & d_p[28]) Λ (d_p[31] | d_p[30])))Λ (dp_24[23+32] & d_p[25])Λ (dp_24[23+32] & djp[31] & d_p[27]) Λ (dp_24[23+32] & d_p[30] & d_p[29]) Λ 15 200945062 > (dp_24[23+32] & d_p[31]); > assigndpp_23 = { { 9{l'b0}}, ({'ARlDPU_INT_WIDTH{d_o[23]}} & > d_poly_exX {23{l'b0}} }; assign dpp_22 = { {10{l'b0}}, > ({'ARl"bPU_INT_WIDTH{d_o[22]}} & d_poly_ex), {22{11?0}} }; assign > dpp 21 = { {11{1孓0}},({'A泛lDPU_INT_WIDiil{d_〇pi]}} & d_poly_ex), > {21{l'b0}} }; assign dpp_20 = { {12{l'b0}}, > ({'ARlDPU_INT_WIDTH{d_o[20]}} <fed_poly_ex), {20{l'b0}} }; assign > dpp 19 = { {13{l'b0}}, ({'ARlDPU_INT_WIDTH{d_o[19]}} & djj〇ly_ex), > {19{l'b0}} }; assigndpp_18 = { {14{l'b0}}, > ({'ARlDPU_INT_WIDfH{d_o[18]}} &d_poly_ex), {18{l'b0}} }; assign > dpp_17 = U15{rbO}}, > ({'ARlDPU_INT_WIDTH{d_o[17]}} & d_poly_ex), > {17{11?0}} }; assign dpp_16 = { {16{l'b0}}, > ({'ARlDPU_INT_wiDTH{d_o[16]}} &d_poly_ex), {16{l'b0}} }; assign >dp_16 = ((dpΛ 5pp_23)Λ dpp_20)八((dpp_22 Λ dpp_21)Λ dpp_l 9)Λ > (dpp_18 Λ dpp_17)Λ dpp_16; > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > // Divider Ex2 stage //Note that d_poly_ex is re-used in Ex2 (it must not change!) // REVISIT, merge Ex and Ex2 stages to reduce area always @ (posedge elk) if (cmd_div_ex) begin d_dinwl_ex2 <= din_b_sh; dp_ex2" <= {d_o[31:16],dp_16[47:0]}; end // Divider - 1 st 8-bits assign d_o[15] = dp_ex2[15+32]; assign d_o[14] == dp-ex2[14+32j Λ ~ ™(dp__ex2[15+32] & d_p[31]); assign d—o[13] = dp一ex2[13+$2] Λ 一 _(dp一ex2[14+32] & d_p[31])Λ (dp_ex2[15+32] & d_p_29); assign d_o[12] = dp_ex2[12+32] Λ _(dp_ex2[13+32] & d_p[31])Λ (dp_ex2[14+32j & d_p_29) Λ (dp二ex2[l5+32j & d_p=28); assign d_o[ll] = dp_ex2[ll+32] Λ ~ _(dp_ex2[12+32] & d_p[31])Λ (dp_ex2[13+32] & d_p_29) Λ (dp_ex2[14+32] & d_p_28)Λ (dp_ex2[15+32] & d_p_27); assign d_o[10] = dp_ex2[10+&2] Λ ~ _(dp_ex2[ll+32] & djp[31])Λ (dp_ex2[12+32] & (d_p[31] Λ d p[30])) (dp_ex2[13+32] & d_p_28) Λ (dp_ex2[14+32] & d_p_27)Λ (dp_ex2[15+32] & d_p_26); assign d_o[9] = dp_ex2[9+32] Λ 16 200945062 ❹ 參 (dp_ex2[10+32] & d_p[31]) (dp_ex2[ll+32] & (d_p[31] (dp_ex2[12+32] & dji_28)/ (dp_ex2[13+32] & d_p_27)' (dp=ex2[14+32] & d_p:26) / (dp_ex2[15+32] & (d_p[26] d_p[28]) Λ (d_p[31] I d_p[30]))); assign d_o[8]: (dp_ex2[ 9+32] & d_p[31])/ (dp_ex2[10+32] & (d_p[31] (dp_ex2[ll+32] & d_p_28) Λ (dp_ex2[12+32] & d_p_27) Λ (dp_ex2[13+32] & d_p:26) Λ (dp_ex2[14+32] & (d_p[26] Λ d_p[29] Λ (d_p[31] & d_pT28]) Λ (d_p[31] | d_p[30]))) Λ (dp_ex2[ 15+32] & d_p[25]) Λ (dp_ex2[15+32] & d_p巨 1] & d_p[27])八 (dp_ex2[15+32] & d_p[30] & d_p[29])Λ (dp_ex2[15+32] & d_p[31]); assign dpp_15 = { {17{l'b0}}, ({'ARlDPU_INT_WIDTH{d_o[15]}} & d_poly_ex), {15{l'b0}} }; assign dpp l4= { {18{1Τ?0}}, ({'ARiDPU_INT_WIDTH{d_o[14]}} & d_poly_ex), {14{l'b0}} }; assign ΦΡ_13 = { {19{l'b0}}, ({'ARlDPU_INT_WIDTH{d_o[13]}} &d_poly_ex), {13{l'b0}} }; assigndpp_12 = { {20{1Τ?0}}, ({'ARlDPU_INT_WIDfH{d_o[12]}} & d_poly_ex), {12{l'b0}} }; assign ΦΡ_11 = { {21{1ΐ)0}}9 ({'AR1DPU_INT WIDTH{d_o[ll]}} & d_poly_ex), {llTl'bO}}}; assigndpp_10 = {{22{l'b0}}, ({'ARlDPU_INT_WIDfH{d_o[10]}} &d_poly_ex), {10{l'b0}> }; assign dpp_9 = { {23{^0}},({ ARlDPU_INT_WIDTH{d_o[9 ]}} & d_poly_ex), { 9{l'b0}} }; assign dpp_8 = { {24{l'b0}}, ({'ARlDPU_INT_WIDTH{d_'0[8 ]}} & > d_poly_ex), { 8{l'b0}} }; assign dp_8 = ({{32{Π?0}}, d_din_l_ex2} > Λ dp_ex2)Λ ((dpp_15 Λ dpp_14)Λ dpp ll) Λ ((dpp_13 Λ dpp_12) Λ > dpp_10)Λ (dpp_9 Λ dpp_8); > > // Divider - 2nd 8-bits > assign d_o[7] = dp_8[7+32]; > assign d_o[6] = dp_8[6+32] Λ > _ ~ (dp_8[7+32]&d_p[31]); > assign d_o[5] = dp_8[5+32] Λ > 一 _ (dp_8[6+32]&d_p[31])A > (dp_8[7+32] & d_p_29); > assign d_o[4] = dp_8[4+32] Λ > 一一(dp_8[7+32] & d_p_28)Λ > (dp_8[6+32] & d_p_29)Λ > (dp_8[5+32]&d_pf31]); > assign d_o[3] = dp_8[3+32] Λ > ~ (dp_8[4+32] &d_p[31])A > (dp_8[5+32] & d_p_29)Λ > (dp_8[6+32] & d__p_28)Λ > (dp_8[7+32] & d_p__27); > assign d_o[2] = dp_8[2+32] Λ > ~ _ (dp_8[3+32]&d_p[31])A > (dp_8[4+32] & (djp[31] Λ d_p[30])) Λ > > > > > > > > > > > > > > > > > > > > > > > > > > > > > d』[30])) Λ
、d_p[29]A(d_p[31]& dp_ex2[8+32] Λ d』[30]))A 17 200945062 > (dp_8[5+32] & d_p_28)Λ > (dp_8[6+32] & d_p_27)Λ > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > (dp_8[7+32] & d_p_26); assign d_o[l] = dp_8[l+32] Λ (dp_8[2+32]&d_p[31])八 (dp_8[3+32] & (djp[3\] Λ d_p[30])) d_p[29] Λ (d_p[31] & =dp_8[0+32] Λ Λ_ρ[30]))Λ (dp_8[4+32] & d_p_28)Λ (dp_8[5+32] & d_p_27)Λ (dp_8[6+32] & d_p_26)Λ (dp_8[7+32] & (d__p[26] Λ d_pP8])八(d_j)[31] I d_p[30]))); assign d_o[0] ❹ (dp_8[l+32] & d_p[31])Λ (dp_8[2+32] & (d_p[31] Λ (dp_8[3+32] & d_p_28)Λ (dp_8[4+32] & d_p_27)Λ (dp_8[5+32] & d_p_26)Λ (dp_8[6+32] & (d_p[26] Λ d_p[29]八(d_p[31] & d_ii28]) Λ (d_ppi] I d_pP〇])))Λ (dp_8[7+32] & d_p[25])Λ (dp_8[7+32] & d_p[31] & d_p[27]) Λ (dp_8[7+32] & d_p[30] & d_p[29]) Λ (dp_8[7+32]&d_p[31]); assigndpp_7 = { {25(1^0}}, ({'ARlDPU_INT_WIDTH{d_o[7]}} & d_poly_ex), {7(1^0}} }; assigndpp_6 = { {26(1150}}, ({'ARiDPU_INT_WIDTH{d_o[6]}} & d_poly_ex), {6{Π?0}} }; assign dpp_5 = { {27{l'b0}}, ({'ARlDPU_INT_WIDTH{d_o[5]}} & d_poly_ex), {5{l'b0}} }; assign dpp_4= { {28{1Τ)0}}5 ({'ARlDPU_INT_WIDTH{d_o[4]}} &d_poly_ex), {4{1^0}} }; assign dpp_3 = { {29{l'b0}}, ({'ARTDPU_INT_WIDTH{d_o[3]}} &d_poly_ex), {3{l'b0}} }; assign dpp_2 = { {20{l'b0}}, ({'ARlDPU_INT_WIDTH{d_o[2]}} &d_poly_ex), {2{l'b0}} }; assign dpp_l = { {31{l'bO}},({'ARlDPU_INT_WIDTH{d_o[l]}} & djpoly ex), {1 {1'bO}} }; assign dpp_0 = { > {32{l'b0}}, ({'ARlDPU_INT_WIDTH{d_o[0]}} & d_poIy_ex)}; assign dp_0 > =((dp_8 Λ dpp一7)Λ dppj) Λ (7dpp_6 Λ dpp_5) Adpp_3)Λ (dpp_2 a > dpp_l) Λ dpp_0; > > > > > > > > > > > > > > //- // Divider Wr stage always @ (posedge elk) if (cmd—div_ex2) begin dout_wr <= {dp_ex2[63:48]? d_o[15:0], dp_0[31:0]}; end assign d_rout_wr - cmd_sizejwr[l] ?dout_wr[31:0]:( cmd_size_wr[0] ? { {16 {1 *b0} },dout一wr[31:16]}: —~ {{24{l'b0}}, dout_wr[31:24]}); > // Output 18 200945062 > //. > assign {dout, rout} > mout; cmd div ?{dout_wr[63:32], d_rout_wr}: 第5圖說明一可用於一向量多項式除法指令的語 法。此語法類似於第2圖中所示者,除儲存該分子數值 以及該等所獲除數值和餘數值的暫存器外是由向量暫存 器所取代外》該分母維持為一純量數值且經儲存在一純 ® 量暫存器内,即如將能瞭解對於長的分子數值序列而言 分母除數及分母數值經常是固定。此係一種與一用於對 多個待予傳ill之信冑資料_流進行平行處理的授擾器程 式相關聯之行為類型。該商數多項式及該商數值構成待 予傳送的資料,此資料具有比起原始分子數值更適合於 傳輸的特徵(即如在該分子數值内之一長固定位元數值 序列將會被轉化成該商數值内—更輯可料的替代性 φ 位元數值樣式)。本揭技術的多項式除法指令可產生一商 數值’並且良好地適用於此等為以攪擾一信號以供傳送 的攪擾器程式。 、 第6圖說明兩種可將一多項《之項的係數儲存在暫存 器内之方式。尤其’可將該最高次項的係數儲存在一儲 存表示該等多項式係數之數值的暫存㈣之最顯著位元 ,置或最小顯著位元位置。其他係數則是自此—相關選 定末端點所隨循。此為類似於按大末尾或小末尾之形 而错存在暫存器内的係數。 工 200945062 φ 本揭技術之多項式除法指令提供一種與一多項式乘法 指令的優點組合,而這亦可由相同的處理器4所支援。 在此情況下,可增置—類似於第1圖所 電路26的額外處理單元,藉此支援一多項式乘法=法 第7圖說明一可用於此-多項式乘法指令的語法。該第 多項式及„亥第一多項式是由經儲存在個別暫存器及 Γ1之内的數值所表示。所獲乘積多項式是由-經儲存在 暫存器r2之内的乘積數值所表示。該乘積多項式數值的 長度為該等第一及第二多項式的雙倍,且因此該暫存器 r2的長度為儲存表示該等第一及第二多項式之第一及第 二數值的暫存器之雙倍。實作上,該暫存^可為由一 兩個具標準長度之暫存器的組合所提供。或另者,該暫 存器庫集12可含有-或更多的雙倍寬度暫存器,像是第 1圖中所述的2N位元暫存器14。此等雙倍寬度暫存器通 常係經供置以運用於標準純量算術t的乘法累加指令, 且因此對於此類型的多項式乘法指令可予重用。這些雙 倍寬度暫存器亦可用以儲存針對先前所述之多項式除法 指令的分子數值。在此情況下,該雙倍寬度暫存器是將 第2圖所述之暫存器及rl代換成-儲存表示一單一 暫存器内之分子多項式所有係數之數值的單一雙倍寬度 暫存器。 一具有各種形式’包含擁有不同寬度之版本以及—併入 -累加之版本,的多項式除法指令之作業係如下列示範 性C程式碼所給^。此程式碼亦含有類似的多項式除法 20 200945062 指令表示。此一領域之從業者將能瞭解這些定義係該等 指令的動作,並且可用於產生相關電路以回應於一標定 該項作業的相關指令來執行此等作業。 /*_____________________________________________________________* * polynomial multiply long * _____________________________________________________________*/ poly8_t mull_p8(poly8_t x0? poly8_t xl5 poly8_t *x2) { ---#ifdef_OPTIMODE_
#pragma OUT x2 #pragma INTRINSIC #endif poly8_t q=x0, r=0; int C,i; for (i=0; i<8; i++) { C = r»7; r = r«l; if(q»7) { 1 = ^x1; } q = (q«l)|C; *x2 = q;/* (x0*xl) high 8 bits */ return r;/* (x0*xl) low 8 bits */ polyl6_t mull_pl6(polyl6_t xO, polyl6_t xl, polyl6_t *x2) { ---#ifdef_OPTIMODE_ #pragma OUT x2 #pragma INTRINSIC #endif polyl6_t q=x0, r=0; int C,i; for (i=0; i<16; i++) { C = r»15; r = r«l; if(q»15) { r = i^xl; 21 200945062 q = (q«l)|C; *x2 = q;/* (x0*xl) high 16 bits */ return r;/* (x0*xl) low 16 bits */ poly32_t mull_p32(poly32_t xO, poly32_t xl, poly32_t *x2) { ---#ifdef_OPTIMODE_ #pragma OUT x2 #pragma INTRINSIC #endif poly32_t q=xO, r=0; int C,i;
for (i=0; i<32; i科) { C = r»31; r = K<l; if(q»31) { } q = (q«l)|C; *x2 = q;/* (x0*xl) high 32 bits */ return r;/* (xO*xl) low 32 bits */ /*_____________________________________________________________* * polynomial multiply accumulate long * _____________________________________________________________*/ poly8_t mlal_p8(poly8_t xO, poly8_t xl, poly8_t x2, poly8_t x3, poly8_t *x4) { #ifdef_OPTIMODE_ #pragma OUT x4 #pragma ESiTRINSIC #endif poly8_t q=x2, r=0; int C,i; for (i=0; i<8; i++) { C = r»7; r = r«l; if(q»7) 22 200945062 r = 1^x3; } q = (q«l)|C; *x4 = qAxl;/* ((xl«8)+x0)+(x2*x3) high 8 bits */ return P^xO;/* ((xl«8)+x0)+(x2*x3) low 8 bits */ polyl6_t mlal_pl6(polyl6_t xO, polyl6_t xl, polyl6_t x2, polyl6_t x3, polyl6_t *x4) { 一 #ifdef—OPTIMODE— #pragma OUT x4 pragma INTRINSIC #endif
polyl6_t q=x2, r=0; int C,i; for (i=0; i<16; i++) { C = r»15; r = r«l; if(q»15) { r =作3; } q = (q«l)|C; *x4 = qAxl;/* ((xlcc^+xOXxSM) high 16 bits */ return P^xO;/* ((xl«16)+x0)+(x2*x3) low 16 bits */ poly32_t mlal_p32(poly32_t xO, poly32_t. xl, poly32_t x2, poly32_t x3, poly32_t *x4) { #ifdef—OPTIMODE— #pragma OUT x4 #pragma INTRINSIC #endif poly32_t q=x2, r=0; int C,i; for(i=0; i<32;i++) { C = r»31; r = r«l; if(q»31) { r = 1^x3; 23 200945062 q = (q«l)|C; } *x4 = qAxl;/* ((χ1«32)+χ0)+(χ2*χ3) high 32 bits */ return P^xO;/* ((xl«32)+x0)+(x2*x3) low 32 bits */ } /*_____________________________________________________________* * polynomial long divide * _____________________________________________________________*/ poly8_t divl_p8(poly8_t xO, poly8_t xl, poly8_t x2, poly8_t *x3) { ----#ifdef_OPTIMODE_ #pragma OUT x3 #pragma INTRINSIC #endif
poly8_t q=xO, r=xl, p=x2; int C,i; for (i=0; i<8; i++) { C = r»7; r = r«l; if(C) { } if(q»7) { r^l; } q = (q«l)jC; *x3 = q;/* ((xl«8)+x0) div ((l«8)+x2) */ return r;/* ((xl«8)+x0) mod ((l«8)+x2) */ polyl6_t divl_pl6(polyl6_t xO, polyl6_t xl, polyl6_t x2, polyl6_t *x3) { ----#ifdef_OPTIMODE_ #pragma OUT x3 #pragma INTRINSIC #endif polyl6_t q=x0, r=xl, p=x2; int C,i; for(i=0; i<16;i++) { C = r»15; r = r«l; 24 200945062 if(C) { r = 1^ } if(q»15) { r = rAl; } q = (q«l)|C; *x3 = q;/* ((xl«16)+x0) div ((l«16)+x2) */ return rj* ((xl«16)+x0) mod ((l«16)+x2) */ poly32_t divl_p32(poly32_t xO, poly32_t xl, poly32_t x2, poly32_t *x3)
{ ----#ifdef_OPTIMODE_ #pragma OUT x3 #pragma INTRINSIC #endif poly32_t q=x0, r=xl, p=x2; int C,i; for (i=0; i<32; i++) { C=r»31; r = r«l; if(C) { r = ^; } if(q»31) { } q = (q«l)|C; *x3 = q;/* ((xl«32)+x0) div ((l«32)+x2) */ return r;/* ((xl«32)+x0) mod ((l«32)+x2) */ 前揭技術雖係藉由執行一含有前述指令之原生指令序 列的硬體所運行,然將能瞭解在替代性具體實施例中, 可在一虛擬機器環境裡執行此等指令,其中該等指令對 於該虛擬機器為原生性,然該虛擬機器則是由運行於具 25 200945062 有不同原生指令集之硬體上的軟體所實作。該虛擬機器 環境可提供一完整版本的虛擬機器環境,此者模擬執行 一完整指令集’或是可為部份者,即如僅部份指令,其 中含有本揭技術之指令,是由該硬體所捕納且由該部份 虛擬機器所模擬。 更詳細地說’可按如對於該完整或部份虛擬機器的原 生指令以執行前述之重新排置指令,而該虛擬機器連同 其底層硬體平台一起組合操作俾提供前述的多項式處 理。 在此雖既已參照於隨附圖式以詳細描述本發明之示範 性具體實施例,然應瞭解本發明並不受限於該等精確具 體實施例,並且可由熟諳該項技藝之人士進行各種變化 與修改,而不致悖離如後載申請專利範圍所定義的本發 明範圍與精神。 【圖式簡單說明】 第_1圖略圖說明一其中合古拟^ τ含有對於一多項式除法指令之 支援的資料處理設備; 第2圖略圖說明一多項式除法指令的語法; 第3圖略圖說明一範例多項式除法作業; 第4圖略圖說明一用以回庵认 口應於一多項式除法指令俾執 行一多項式除法作業的電路; 第5圖說明一向量多項式昤 飞除去指令的範例語法; 26 200945062 第6圖說明兩種替代方式,其中可由一經儲存在一暫 存器之内的數值來表示一多項式;以及 第7圖略圖說明一多項式乘法指令的語法。 10 12 14 16 18 20 ❹ 22 24 26 【主要元件符號說明】 2 4 6 8 資料處理設備 處理器 記憶體 程式指令 資料數值 暫存器庫集 2N位元暫存器 乘法器 移位器 加法器 指令解碼器 指令管線 多項式除法電路 27

Claims (1)

  1. 200945062 七、申請專利範圍: 1. 一種用以處理資料的設備,其中包含: 一指令解碼器,此者回應於一程式指令以產生一或 更多控制信號; 一暫存器庫集,此者具有複數個暫存器;以及 • 處理電路’此者係經耦接於該指令解碼器和該暫存 器庫集,並且回應於該等一或更多控制信號,對經儲存 〇 在該暫存器庫集内之一或更多資料值執行一對應於該程 式指令的資料處理作業;其中 該指令解碼器回應於一多項式除法指令以產生一或 更多控制信號,此等控制信號可控制該處理電路俾產生 至少一商數值,此商數值表示一對於一分子多項式除以 一分母多項式之二元素領域上的多項式除法之商數多項 式,該分母多項式係一 N次多項式,由cy,的 和所給定,其中(:⑺…至Co為經儲存在該暫存器庫集之一 ® 冑存器内的個別位元’而同時Μ並且不是儲存在該暫 存器之内。 2.如申請專利範圍第1項所诫夕供甘▲ πW迷之汉備,其中該暫存器 係一 Ν位元暫存器。 3.如申請專利範圍第1項所、+· * # | , 喟所述之設備,其中該暫存器 庫集包含複數個Ν位元暫存器。 28 200945062 4.如中請專㈣圍第1項所述之設備,其卜多項式 係如下列之一者所表示: (I) 一數值,此者位於一 M位元暫存器内,而具有 一對於屬該Μ位元暫存器之位元k的項xk之係數q,其 中〇 ;以及 (II) 一數值,此者位於一 1^[位元暫存器内而具有 © 一對於屬該M位元暫存器之位元(M-D-k的項xk之係數 Ck ’ 其中k> 0。 5·如申請專利範圍第3項所述之設備,其中該分子多 項式係由一經儲存在該等複數個N位元暫存器其中兩者 之内的2N位元分子數值所表示。 6·如申請專利範圍第1項所述之設備,其中該分子多 ® 項式係由一經儲存在該等複數個暫存器之一 2N位元暫 存器内的2N位元分子數值所表示。 7.如申請專利範圍第1項所述之設備,其中該處理電 路是由該指令解碼器回應於該多項式除法指令而產生之 控制信號所控制’藉此產生一餘數值,而該餘數值表示 一獲自於該分子多項式除以該分母多項式之多項式除法 的餘數多項式。 29 200945062 8.如中請㈣範圍第7以述之設備,其巾該餘數值 係一經儲存在該等複數個暫存器之-N位元暫存器内的 N位元餘數值。 9.如巾請專利範圍第!項所述之設備,其中該商數值 係一經儲存在該等複數個暫存m位元暫存器内的 N位元商數值。 …如中請專利範圍第i項所述之設備,其中該多項式 除法程式碼的—部份,此擾攪器是由該設 備所執仃以供利用所產生之商數值來_ —待予傳送的 U.如中請專利範圍第1項所述之設備,其中該暫存器 :集包含複數個—般目的純量暫存器,其係由除該多項 • <除法指令以外的程式指令所運用。 以如中請專利範圍第1項所述之設備,其中該指令解 =係回應於—多項式乘法指令以產生—或更多控制伸 多,此等控制信號控制該處理電路以產生表示在一第— 項式乘以-第二多項式之二元素領域上對於一多項式 乘法之乘積多項式的至少—乘積數值。 " 13.如中請專利範圍第!項所述之設備,其中該多項式 ❹ 魯 200945062 除法扣令係一向量指令,而該分母數值係一純量數值, 並且該商數值及一分子數值表示屬向量數值的分子多項 式。 14· 種處理資料之方法,包含下列步驟: 解碼一程式指令以產生一或更多控制信號: 回應於該等一或更多控制信號,對一或更多經儲存 在具有複數個暫存器之暫存器庫集内的資料數值執行 對應於該程式指令的資料處理作業;其中 T解碼係回應於一多項式除法指令以產生一或更多 :制l號’此等控制信號可控制至少__商數值的產生作 :,此商數值表示一對於一分子多項式除以一分母多項 領域上的多項式除法之商數多項式,該分母 其/糸一 N次多項式,由W,N决〇的和所給定, 的㈣(r#e°為經儲存在該暫存器庫集之-暫存器内 内。①〜=1並且不是儲存在該暫存器之 15.如申請專利範圍第 係一 N位元暫存器。 14項所述之方法, 其中該暫存器 31 200945062 17. 如申請專利範圍第14項所述之方法,其中一多項式 係如下列之一者所表示: (i) 一數值,此者位於一 M位元暫存器内,而具有 一對於屬該Μ位元暫存器之位元k的項xk之係數^,其 中k> 〇 ;以及 (η) 一數值,此者位於一 Μ位元暫存器内,而具有 一對於屬該Μ位元暫存器之位元的項/之係數 ck,其中0。 ❹ 18. 如申請專利範圍第16項所述之方法,其中該分子多 項式係由一經儲存在該等複數個N位元暫存器其中兩者 之内的2N位元分子數值所表示。 19. 如申請專利範圍第14項所述之方法其中該分子多 項式係由一經儲存在該等複數個暫存器之一 2N位元暫 存器内的21^位元分子數值所表示。 9 20·如申請專利範圍第14項所述之方法,其中該等藉由 肖瑪該多$式除法指令所產生的控制信號控帝卜餘數值 的產生作業,該餘數值表示一獲自於該分子多項式除以 該分母多項式之多項式除法的餘數多項式。 21‘如申請專利範圍第2〇項所述之方法,其中該餘數值 係一經儲存在該等複數個暫存器之一 N位元暫存器内的 32 200945062 N位元餘數值。 22.如申請專利範圍第14項所述之方法,其中該商數值 係-經儲存在該等複數個暫存器之—Μ元暫存器内的 Ν位元商數值。
    23.如申請專利範圍第14項所述之方法其中該多項式 除法指令係㈣H程柄的—部份,該擾㈣程式碼係 經執行以利用所產生之商數值來擾授—待予傳送的信 24. 如申請專利範圍帛14項所述之方法,其中該暫存器 庫集包含複數個一般目的純量暫存器,此等純量暫存器 是由除該多項式除法指令以外的程式指令所運用。 25. 如申請專利範圍帛14_述之方法,其 回應於-多項式乘法指令以產生-或更多控制信號,此 等控制信號控制表示在一第一多項式乘以一夕 一一 币一夕項式 之-兀素領域上對於一多項式乘法之乘積多項式的至少 一乘積數值之產生作業。 夕 26. 如申請專利範圍第14項所述之方法,其中該多項 除法指令係一向量指令,而該分母數值係一純量數值式 並且該商數值及一分子數值表示屬向量數值的分子 項 33 200945062
    式。 27. —種電腦程式產品,其中包含一電腦程式儲存媒 體,此者儲存一用以根據如申請專利範圍第14項所述之 方法控制一用於處理資料的設備之電腦程式。 34
TW098106215A 2008-03-26 2009-02-26 Polynomial data processing operation TW200945062A (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
GB0805491.8A GB2458665B (en) 2008-03-26 2008-03-26 Polynomial data processing operation

Publications (1)

Publication Number Publication Date
TW200945062A true TW200945062A (en) 2009-11-01

Family

ID=39386780

Family Applications (1)

Application Number Title Priority Date Filing Date
TW098106215A TW200945062A (en) 2008-03-26 2009-02-26 Polynomial data processing operation

Country Status (11)

Country Link
US (1) US8700688B2 (zh)
EP (1) EP2255279B1 (zh)
JP (1) JP5193358B2 (zh)
KR (1) KR20100139072A (zh)
CN (1) CN101981542B (zh)
AT (1) ATE521936T1 (zh)
GB (1) GB2458665B (zh)
IL (1) IL207633A0 (zh)
MY (1) MY158872A (zh)
TW (1) TW200945062A (zh)
WO (1) WO2009118500A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2458665B (en) * 2008-03-26 2012-03-07 Advanced Risc Mach Ltd Polynomial data processing operation
US8370705B1 (en) * 2009-09-23 2013-02-05 Nvidia Corporation System and method for calculating a checksum address while maintaining error correction information
GB2483902B (en) * 2010-09-24 2018-10-24 Advanced Risc Mach Ltd Vector floating point argument reduction
IL267998B2 (en) * 2017-02-23 2023-12-01 Advanced Risc Mach Ltd Element by vector operations in a data processing device

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2605769B1 (fr) * 1986-10-22 1988-12-09 Thomson Csf Operateur polynomial dans les corps de galois et processeur de traitement de signal numerique comportant un tel operateur
US5459681A (en) * 1993-12-20 1995-10-17 Motorola, Inc. Special functions arithmetic logic unit method and apparatus
US5602767A (en) * 1995-08-29 1997-02-11 Tcsi Corporation Galois field polynomial multiply/divide circuit and a digital signal processor incorporating same
US6009450A (en) * 1997-12-24 1999-12-28 Motorola, Inc. Finite field inverse circuit
CN1097882C (zh) * 1998-10-14 2003-01-01 三星电子株式会社 里德-索罗门解码器和解码方法
JP2000172520A (ja) * 1998-12-04 2000-06-23 Fujitsu Ltd ガロア体演算プロセッサ
IL127878A0 (en) * 1998-12-31 1999-10-28 L P K Information Integrity Lt Method and apparatus for the efficient execution of elliptic curve cryptographic operation
US6721771B1 (en) * 2000-08-28 2004-04-13 Sun Microsystems, Inc. Method for efficient modular polynomial division in finite fields f(2{circumflex over ( )}m)
US6662346B1 (en) * 2001-10-03 2003-12-09 Marvell International, Ltd. Method and apparatus for reducing power dissipation in finite field arithmetic circuits
US7346159B2 (en) * 2002-05-01 2008-03-18 Sun Microsystems, Inc. Generic modular multiplier using partial reduction
GB2389678A (en) * 2002-06-14 2003-12-17 Univ Sheffield Finite field processor reconfigurable for varying sizes of field.
US7313583B2 (en) * 2002-10-22 2007-12-25 Broadcom Corporation Galois field arithmetic unit for use within a processor
US7403964B2 (en) * 2002-10-22 2008-07-22 Broadcom Corporation Galois field multiplier array for use within a finite field arithmetic unit
US20040117601A1 (en) * 2002-12-12 2004-06-17 Spracklen Lawrence A General-purpose processor that can rapidly perform binary polynomial arithmetic operations
US7080348B2 (en) * 2003-06-27 2006-07-18 Agilent Technologies, Inc. Creating polynomial division logical devices
US7464128B1 (en) * 2004-03-12 2008-12-09 Altera Corporation Methods and apparatus for single stage Galois field operations
US7958436B2 (en) * 2005-12-23 2011-06-07 Intel Corporation Performing a cyclic redundancy checksum operation responsive to a user-level instruction
GB2458665B (en) * 2008-03-26 2012-03-07 Advanced Risc Mach Ltd Polynomial data processing operation

Also Published As

Publication number Publication date
EP2255279B1 (en) 2011-08-24
KR20100139072A (ko) 2010-12-31
IL207633A0 (en) 2010-12-30
EP2255279A1 (en) 2010-12-01
GB0805491D0 (en) 2008-04-30
US20090248780A1 (en) 2009-10-01
WO2009118500A1 (en) 2009-10-01
ATE521936T1 (de) 2011-09-15
GB2458665B (en) 2012-03-07
JP5193358B2 (ja) 2013-05-08
MY158872A (en) 2016-11-30
US8700688B2 (en) 2014-04-15
CN101981542A (zh) 2011-02-23
GB2458665A (en) 2009-09-30
JP2011517496A (ja) 2011-06-09
CN101981542B (zh) 2013-10-16

Similar Documents

Publication Publication Date Title
JP7039716B2 (ja) ポリシ実行処理のためのシステムおよび方法
TWI804200B (zh) 執行複數的熔合乘-加指令的系統與方法
CN108702286B (zh) 抗功率侧信道攻击的高级加密标准加速器处理器
RU2637463C2 (ru) Команда и логика для обеспечения функциональных возможностей цикла защищенного хеширования с шифром
Warren Hacker's delight
US8185749B2 (en) System and method for revising boolean and arithmetic operations
US11327755B2 (en) Fine grained control flow enforcement to mitigate malicious call/jump oriented programming
CN103957100B (zh) 利用单指令在多种模式中执行aes加密或解密
Shterenberg et al. Analysis of using equivalent instructions at the hidden embedding of information into the executable files
JP2011096254A (ja) 乗累算演算を実行するための装置および方法
JP5607832B2 (ja) 汎用論理演算の方法および装置
US8495390B2 (en) System and method for data obfuscation based on discrete logarithm properties
US7370180B2 (en) Bit field extraction with sign or zero extend
CN107003845A (zh) 用于在掩码寄存器和向量寄存器之间可变地扩展的方法和装置
CN107003832A (zh) 用于执行大整数算术操作的方法和装置
TW200945062A (en) Polynomial data processing operation
CN107851016B (zh) 向量算术指令
US20100115232A1 (en) Large integer support in vector operations
TWI628595B (zh) 用以執行反離心操作之處理設備和非暫態機器可讀取媒體
US20090083350A1 (en) Shift-add based random number generation
Kiaei et al. Architecture support for bitslicing
JP2014182811A (ja) 短整数の乗算の数を減らすためのシステム、装置、および方法
KR101635856B1 (ko) 데이터 요소에 있는 비트들의 제로화를 위한 시스템, 장치, 및 방법
US20090106540A1 (en) Apparatus and method for remanipulating instructions
Saarinen SNEIK on Microcontrollers: AVR, ARMv7-M, and RISC-V with Custom Instructions