TWI493453B - 提高精確度積和演算之微處理器及其視頻解碼裝置、其方法及其電腦程式產品 - Google Patents

提高精確度積和演算之微處理器及其視頻解碼裝置、其方法及其電腦程式產品 Download PDF

Info

Publication number
TWI493453B
TWI493453B TW099140470A TW99140470A TWI493453B TW I493453 B TWI493453 B TW I493453B TW 099140470 A TW099140470 A TW 099140470A TW 99140470 A TW99140470 A TW 99140470A TW I493453 B TWI493453 B TW I493453B
Authority
TW
Taiwan
Prior art keywords
register
cache
destination
bit
microprocessor
Prior art date
Application number
TW099140470A
Other languages
English (en)
Other versions
TW201118725A (en
Inventor
Martin Raubuch
Original Assignee
Racors Gmbh
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 Racors Gmbh filed Critical Racors Gmbh
Publication of TW201118725A publication Critical patent/TW201118725A/zh
Application granted granted Critical
Publication of TWI493453B publication Critical patent/TWI493453B/zh

Links

Classifications

    • 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/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/544Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
    • 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
    • G06F9/30014Arithmetic instructions with variable precision
    • 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/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/499Denomination or exception handling, e.g. rounding or overflow
    • 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/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/499Denomination or exception handling, e.g. rounding or overflow
    • G06F7/49942Significance control
    • 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/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/544Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
    • G06F7/5443Sum of products
    • 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
    • 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/30098Register arrangements
    • G06F9/30105Register structure
    • G06F9/30112Register structure comprising data of variable length
    • 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/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • G06F9/30138Extension of register space, e.g. register cache

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computing Systems (AREA)
  • Executing Machine-Instructions (AREA)

Description

提高精確度積和演算之微處理器及其視頻解碼裝置、其方法及其電腦程式產品
本發明原則上關於一些處理裝置,更明確地係,一微處理器、一種用於提高微處理器精確度積和(Sum-of-Product)演算之方法、及一視頻解碼裝置。
在數位信號處理應用上,最時常使用的功能之一為積和演算:
其中SoP代表積和;n為積數目,i為計數值,Si為一量化信號n樣本中的第i樣本;及Ci是n係數中的第i係數(例如濾波器或轉換係數)。
數位信號處理器(Digital Signal Processor,DSP)以一些標準微處理器具有快速與有效率積和演算的專屬指令。一非常普遍使用的指令為乘加算(Multiply-and-Accumulate,MAC)指令,此單指令結合內回路乘法與加法運算。
微處理器指令的運算元是以有限的位元數表示。限制是由微處理器硬體的暫存器寬度定義。對於整數運算元而言,此限制定義能夠表示的最大值範圍。在數位信號處理上,運算元係代表量化的類比信號,且運算元大 小限制係定義類比信號近似值的精確度或(換句話說)品質。
如一範例所示,通用的微處理器對於來源與目的運算元時常具有相同大小限制,藉由通用暫存器的寬度加以設定。例如,遵循目前精簡指令集電腦(Reduced Instruction Set Computer,RISC)觀念的微處理器架構具有一組大的同樣大小的通用暫存器,用於計算指令的來源與目的運算元。
利用n位元大小乘以兩整數值可產生無符號數值的2.n位元大小之乘積、與有符號數值的2.n-1位元大小之乘積。乘算指令的結果不可能完全適合於具有與來源暫存器相同大小的通用暫存器,此取決於來源運算元大小。藉由加算一連串積,積和演算可產生具有甚至比單積更多位元的結果運算元。例如,n=16、及Si與Ci為有符號16位元值的積和演算會產生2.16-1+4=35位元大小的乘積。
在許多通用微處理器指令集發現的一普通類型乘算指令包括將乘積的低位元儲存在目的暫存器。這類型乘算指令時常用來支援高階語言,但是非常不適於數位信號處理器計算。乘算指令與積和演算的結果會溢位。對於數位信號處理器計算而言,可使用儲存乘積高位元的「乘法高階運算(multiply-high operation)」指令。 「單乘算」指令的結果不能夠溢位。不過,因為丟棄乘積低位元,所以結果運算元的精確度會降低。
藉由逐漸增加閘密度及減少數位電路成本,一些現代通用微處理器提供快速乘法運算,且原則上亦用於典型在數位信號處理器上執行的應用。不過,由於目的暫存器的寬度,所以積和演算之精確度保持有限度。
數位信號處理器是一特殊類型微處理器。典型上,數位信號處理器包括延伸寬度的累加暫存器,避免損失單積與積和演算精確度。在通用控制與計算應用上,數位信號處理器的延伸寬度暫存器只提供些微的效益。此外,由於來源與目的運算元及暫存器的不規則暫存器大小與不同大小,使編程模型或暫存器集複雜化,且限制通用控制與計算程式的數位信號處理器效率(程式碼密度與效能)。
因此,一般的目微處理器不可能非常適合數位信號處理器應用且數位信號處理器不可能非常適合通用控制與計算應用。對於需要混合需求的應用而言,具有高效率與性能的微處理器架構較有效益。
不過,儘管精確度與暫存器大小問題的比較,通用微處理器可用於數位信號處理器演算法。
對於適合多數通用微處理器之一範例方法,來源運算元大小可選擇較小。藉由使用小的位元寬度大小的來源運算元,可避免積和演算結果溢位。例如,在視頻或圖形應用上,樣本典型為8至12位元值,係數為12至16位元值。視頻/圖形的積和演算長度n很小,在2至8的範圍內。例如,32位元暫存器的處理器可正確計算此類型的積和。不過,如果使用32.32位元乘法,資源效率較低,因為視頻/圖形應用典型輸出樣本擁有8位元精確度,且對於中間計算而言,16至20位元就足夠。
利用「乘法高階運算」指令是一些微處理器提供的另一範例方式,微處理器具有額外乘算指令將乘積的高位元儲存在目的暫存器。此觀念亦用於乘加算(MAC)指令。藉由此觀念,運算元可視為最高有效位元的小數點左邊的定點數。原則上,這是可用於數位信號處理器演算法的方式。對於小的運算元而言,資料路徑(乘法器、暫存器、算術邏輯單元(Arithmetic Logic Unit,ALU))可分成多個較小部分,以使單指令多數據(Single Instruction Multiple Data,SIMD)運算。不過,無論如何必須計算以獲得最高有效位元的乘積之最低有效位元會被丟棄,且對積和演算的精確度沒有幫助。
然而,另一方式係根據乘算/乘加算(MAC)目的運算元之兩串接通用暫存器,其可為許多數位信號處理器(DSP)演算法之典型解決方案。不過,可用的目的暫存 器數量可減半。
在US 2002/0178203 A1,顯示使用額外的專屬累加暫存器,而不是使用通用暫存器。微處理器的編程模型可包括一或多個專屬累加暫存器,供擴充精確度積和演算。若要利用擴充的精確度,可提供特別的乘算與乘加算指令,將一累加暫存器指定為目的暫存器。在積和序列結束,一單獨指令將累加器內容(典型具有選擇性移位、四捨五入與裁切)轉移至通用暫存器。不過,積和序列結束需額外的指令,使累加器內容轉移至通用暫存器。這會降低效能,尤其對短序列。處理器的編程模型會變得更複雜,且指令操作碼映射圖(OPcode Map)(即是指定執行運算的機械語言指令部分的映射圖)需要用於指定一累加器的乘算與MAC指令的額外空間。
本發明的一目的是要改善通用微處理器的精確度演算。
根據本發明,提供如文後申請專利範圍描述之一微處理器、一用於提高微處理器精確度積和演算之方法、及一視頻解碼裝置。附屬項係關於特定的具體實施例。本發明的這些及其他態樣係經由與下述具體實施例有關的範例予以揭示。
下述本發明的具體實施例可完全或至少部份使用所屬技術領域專業人士熟知的電子裝置實施。如果認為不需瞭解如下述根本的發明觀念,可省略細節。
請即參考圖1,其顯示根據本發明的一微處理器具體實施例範例。為了簡化描述與圖式,所屬技術領域專業人士熟知的其他像似ALU、載入/儲存單元等的單元將不會顯示。微處理器(10)包括:至少一通用暫存器(12),其配置係儲存及提供許多目的位元給一乘法單元(14);一控制單元(18),其調適成提供至少一「乘法高階(multiply-high,MULH)」指令(20)與一「乘法高階與加法(multiply-high-and-accumulate,MACH)」指令(22)給乘法單元。乘法單元(14)更配置成接收至少第一與第二來源運算元(24、26),每一者具有許多相關的來源位元、與超過目的位元數目的相關來源位元數目之總數;連接至一暫存器延伸快取(28)包括至少一快取項目,其係配置成儲存及提供許多精確度提高的位元;且調適成使結果運算元之目的部分儲存在通用暫存器(12)、及使結果運算元的精確度提高部分儲存在快取項。當接收「乘法高階(MULH)運算」指令(20)時,結果運算元會由「乘法高階運算」產生;且當接收「乘法高階與加法(MACH)運算」指令(22)時,則由「乘法高階與加法運算」產生。
沒有單獨的累加暫存器可使用。因此,呈現的系統 不可包括必要的專屬乘算/MACH指令,將一單獨的累加暫存器指定為目的暫存器,以節省指令操作碼空間及簡化指令解碼。
對於通用微處理器而言,指令集架構(Instruction Set Architecture,ISA)與編程模型保持簡單與規則,因此使高階語言編譯器的架構更容易,此亦幫助新的使用者很快熟悉架構,改善生產力。提供的微控制器係配置成快取額外功能的複雜。指令集架構與編程模型可不隨著額外暫存器或指令加以延伸。使用者不需擴充精確度數位信號處理器功能,且不需知道有關暫存器延伸快取及功能性是否存在。
提供的微處理器可為任何處理裝置。該處理裝置較佳是通用微處理器,例如一微處理器,包括用於來源與目的運算元的多個相同大小的通用暫存器。
積和演算的指令序列可從一MULH指令接著一系列MACH指令開始。隨著展露的觀念,延伸精確度可於積和指令序列達成,其係從「乘法高階運算」指令接著一系列MACH指令開始,全部使用相同目的暫存器(12)。積和序列結束不需要額外的指令將結果轉送給通用暫存器,因此改善效能。
結果運算元的目的部分可包括高位元,這些位元寫 在指定的通用目的暫存器(12)。結果運算元的精確度提高部分可為結果的低位元,且可儲存在暫存器延快取(28)的一快取項目。
乘法單元(14)可經由至少一輸入接收至少第一與第二來源運算元(24、26)。乘法單元(14)可包括一專屬的輸入,用於來源運算元之每一者。不過,利用相同輸入可連續提供來源運算元;或第一與第二來源運算元可為相同的來源運算元。此亦在所述系統的範疇內,一來源運算元具有固定常數值或乘法利用兩個以上來源運算元執行。
超過目的位元數目之相關來源位元數目之總數係大於目的位元數目之總數。
在圖1顯示的示範性具體實施例中,處理器部分包括一暫存器陣列(30),其具有例如32位元寬度的16個通用暫存器。提供的範例使用特定值,例如供通用暫存器寬度與通用暫存器的數量。本發明未限於這些特定值。暫存器陣列(30)的32位元讀取埠(34)連接至一乘法單元(14),包括暫存器延伸快取。乘法單元接收兩32位元來源運算元(24、26)。乘法單元(14)的32位元輸出埠(36)連接至暫存器陣列(30)的一32位元寫入埠(38)。控制單元(18)的4位元輸出埠係連接至乘法單元(14),並使MULH與MACH指令結果運算元的4位元目的 識別符(32)發信給乘法單元(14)。對於每個MULH/MACH運算,此4位元ID 32係定義在暫存器陣列(30)的16個通用暫存器(12)中,哪些暫存器係當做目的暫存器使用。控制單元(18)的第二輸出係連接至乘法單元(14),並發信是否執行MULH或MACH指令(20、22)。
一MULH指令(20)在顯示的範例執行時,乘法單元(14)可將結果運算元計算為來源運算元(24、26)的64位元乘積。目的部分(即是64位元乘積的32高位元)透過乘法單元(14)的輸出埠(36)輸出,且透過32位元寫入埠(38),寫入暫存器陣列(30)的指定32位元目的暫存器(12)。64位元乘積的32低位元係寫入暫存器延伸快取(28)的一快取項目。從控制單元(18)接收的目的暫存器的4位元ID可例如儲存在暫存器延伸快取(28),當做相同快取項目的標籤。
「乘法高階與加法(MACH)運算」包括利用至少第一與第二來源運算元(24、26)、及先前儲存在至少一通用暫存器(12)的前述目的部分與先前儲存在至少一快取項目的一對應前述精確度提高部分之串接,藉由從一「乘法高階(MULH)運算」產生的一中間結果運算元之總數,以產生結果運算元。當執行一MACH運算時,藉著將乘算的結果加至目的暫存器(12)的內容(包含高(或目的)位元)與快取項目(包含低(或精確度提高)位元)之串接,達成結果運算元的完全精確度。
當執行任何其他指令(除了控制與維護的指令以外)時,暫存器延伸快取(28)的內容不能改變。
相關來源位元數目之總數係等於目的位元與精確度提高位元數目之總數,因此快取項目組態成儲存所有精確度提高位元。在另一具體實施例中,相關來源位元數目之總數係超過目的位元與精確度提高位元數目之總數。較小寬度可切割暫存器延伸的一部分最低有效位元。此允許減少快取項目大小,因此節省電路佈局面積,同時符合預先定義的目標精確度需求。
不過,較大寬度亦在本發明的範疇內,且對於積和演算溢位的演算法很有用。利用MULH與MACH指令在累加步骤前執行額外右移,如此可避免溢位。例如,利用8位元右移與8位元加算,多達256乘積總數的暫存器延伸的最低有效位元不能夠溢位,且會以有關來源運算元的最大精確度計算。
而且,至少兩來源運算元沒有與目的暫存器相同的寬度。範例顯示來源運算元的最大寬度等於目的暫存器寬度之典型情況。兩來源運算元可從一暫存器、從記憶體接收、或可為常數及具有任何寬度、小於或大於目的暫存器。兩來源運算元可有或沒有相同寬度。
位元數目(即是在乘法器輸出的範例中使用的位元寬度)是用於無符號或混合符號乘算,其中乘積的寬度是輸入運算元寬度之總數。本發明未限於此寬度關係。
微處理器(10)包括複數個(30)通用暫存器(12),每個暫存器具有一暫存器識別符,而且其中控制單元(18)可調適成提供一目的識別符(32)(符合該等暫存器識別符之一)給乘法單元(14),該乘法單元調適成使目的部分儲存在由目的識別符(32)識別的通用暫存器(12)。複數個(30)通用暫存器可例如提供當做暫存器陣列使用。此允許選擇可用的通用暫存器。通用暫存器亦用於提供來源運算元給乘法單元。
而且,暫存器延伸快取(28)可包括複數個快取項目,每個可利用對應該等暫存器識別符之一的快取項目識別符加以識別(即是快取項目可使用識別符做籤條,例如目的暫存器的暫存器編號),而且其中乘法單元(14)調適成利用目的部分及由一快取項目提供的精確度提高部分產生結果運算元,該快取項目的快取項目識別符係符合目的識別符(32)。
如果識別符相同或彼此特別有關聯,一快取項目識別符可稱為對應至一特別暫存器識別符。
暫存器延伸快取(28)可包括通用暫存器(12)之每 一者的快取項目。不過,沒有可用的快取項目,且可動態指定快取項目識別符。此允許減少快取項目的數量,因此減少快取大小,例如對應至同時執行預期積和演算的最大或平均。
當在顯示的範例執行一MACH指令時,乘法單元(14)從暫存器陣列(30)的讀取埠(34)接收指定目的暫存器的32位元值。乘法單元可計算結果運算元,即是兩32位元來源運算元(24、26)的64位元乘積。
透過輸出信號(32),控制單元(18)提供的4位元目的ID可與暫存器延伸快取(28)的全部有效快取項目之目的ID相比較。
當執行一MACH指令時,可檢查暫存器延伸快取的符合性(具相同目的暫存器ID的項目)。在一快取符合的情況,乘算的完全精確度結果會加至目的通用暫存器(I2)(擁有高位元)與快取項目(擁有低位元)的串接。在顯示的範例中,在符合(符合發現的目的ID)的情況,結果運算元(即是64位元乘積)可加至來自符合暫存器延伸快取項目的32位元值(串接的低位元)與來自目的暫存器的32位元值(串接的高位元)的串接。結果的32低位元然後儲存在暫存器延伸快取(28)的符合項目。符合快取項目之目的ID可不改變。結果的32高位元可透過乘法單元(14)的輸出埠(36)輸出,及透過32位元寬 的寫入埠(38),寫入暫存器陣列(30)的32位元目的暫存器。
結果運算元的高位元(即是積加結果)儲存在對應的目的暫存器。低位元儲存在符合的快取項目。在錯誤(沒有發現符合ID)的情況,目的部分(即是在提供的範例,乘積的32高位元)可加至來自目的暫存器(12)的值,且32位元結果透過乘法單元(14)的輸出埠(36)輸出,及透過32位元寬的寫入埠(38),寫入暫存器陣列(30)的32位元目的暫存器(12)。因此,在一MACH運算的快取錯誤情況,結果運算元的目的部分(即是乘算結果的高位元)加至目的暫存器,然而丟棄低位元。
如果積和序列不被其他「乘法高階運算」指令(在第一者之後)中斷,單一快取項目係足夠。具有多個項目的暫存器延伸快取(28)可交錯多個積和序列的指令。
「乘法高階運算」可包括一「乘法高階與負運算」,且「乘法高階與加法運算(multiply-high-and-accumulate operation)」可包括一「乘法高階負與加法運算(multiply-high-negate-and-accumulate operation)」。使用「負」選項之兩變體可例如與數位信號處理器(DSP)演算法有關,其中樣本或常數可與「正」與「負」符號一起使用。具有兩指令變體可節省 額外的指令以獲得具有相對符號的值。
如圖1所示,乘法單元(14)可包括暫存器延伸快取(28)。此可節省單獨快取與連接線的電路佈局面積。不過,暫存器延伸快取可不包括乘法單元要在微處理器,此乘法單元可位於任何其他單元或亦為一獨立單元。
而且,「乘法高階運算」與「乘法高階與加法運算」可如同單指令多數據運算實施。許多微處理器可具有單指令多數據(Single Instruction Multiple Data,SIMD)指令,將資料路徑元素(像似暫存器、ALU、乘法器)分成多個小塊。此可增加視頻與圖形演算法的效能,其中例如16位元解析度係足夠。對於此處理器架構而言,每個方向(向量元件)的延伸暫存器可使用。具有32位元暫存器的處理器可藉由使用雙向SIMD指令提高雙倍效能。具有64位元暫存器的處理器可藉由使用四向SIMD指令提高四倍效能。
請即參考圖2,其顯示根據本發明的一微處理器(10)的乘法單元(14)示範性具體實施例。圖2顯示一乘法單元具有單項目暫存器延伸快取(28)的示範性實施。為了簡化說明與圖式,省略管線暫存器,只顯示關於本發明的輸入/輸出信號與資料路徑、以及乘法單元。類似圖1提供的範例,特定值係用於來源與目的運算元寬度(32位元)及用於目的ID的寬度(4位元處理作為來源與目 的運算元的16個通用暫存器)。不過,應明白,這些是範例值且可任意改變。
顯示的示範性乘法單元可包括兩32位元輸入信號(40、42),當做乘算的來源運算元。一第三32位元輸入信號(44)可為運算前的目的暫存器的值,可當做用於MACH運算的來源運算元使用。輸入信號(46)可為一控制信號,其可決定示範性乘法單元是否執行一MULH或一MACH運算。4位元輸入信號(48)可為目的ID。顯示的乘法單元可產生一32位元輸出值(50)。
在顯示的範例中,乘法單元包括下列元件:一32.32位元乘法器(52),計算一64位元乘積(66);一64位元加法器(54);一64位元、雙輸入多工器(56);一32位元、雙輸入多工器(58);一32位元暫存器(60),其可為延伸快取暫存器;一4位元暫存器(62);一4位元相同比較器(64)。在圖2顯示的範例中,示範性乘法單元的元件係以下列方式連接:乘法器(52)接收兩32位元輸入值(40、42)。加法器(54)接收乘法器(52)的輸出(66)與多工器(56)的輸出。加法器的64位元輸出(68)分成32高位元(50)與32低位元(70)。32高位元是乘法單元的輸出信號(50)。64位元、雙輸入多工器(56)是在第一輸入上接收一常數零值。第二64位元輸入係接收輸入信號(44),當做32高位元,且多工器(58)的輸出(72)當做32低位元。32位元暫存器(60)接收加法 器(54)輸出(68)的32低位元(70)。4位元暫存器(62)接收4位元輸入信號(48)。32位元、雙輸入多工器(58)接收暫存器(60)的32位元輸出,當做第一輸入,且一常數零值當做第二輸入。4位元相同比較器(64)接收4位元輸入值(48),當做第一輸入,且暫存器(62)的輸出當做第二輸入。比較器的輸出連接至多工器(58)的選擇輸入。控制輸入信號(46)連接至多工器(56)的選擇輸入、暫存器(62)的致能輸入、及暫存器(60)的第一致能輸入。
暫存器(60、62)只是示範性乘法單元的儲存元件,且儲存單快取項目的標籤與資料部分。其他元件可組合。一時脈信號(未在圖顯示)驅動時,兩暫存器只在運算結束時採用新值,且只有如果兩暫存器的致能輸入確立。暫存器(62)具有由控制輸入信號(46)驅動的一單致能輸入。暫存器(60)在「或(OR)」組態上具有兩致能輸入。如果控制輸入(46)確立、或如果比較器(64)的輸出指出輸入(48)與暫存器(62)的值相等,該暫存器會致能。
提供的示範性乘法單元可執行至少三種類型運算。三種類型運算的任一運算是受到控制輸入信號(46)與比較器電路(64)輸出的控制。
當執行一MULH指令時,類型1運算會執行。控制 輸入信號(46)選擇多工器(56)的常數零輸入,且運算結束時致能暫存器(60、62)更新。輸入值(44)被忽略(不需要)。比較器(64)的輸出被忽略(不需要)。加法器(54)將零加至乘法器(52)的64位元輸出(66)。加法器輸出(68)等於乘法器(52)的輸出(66)。輸出(50)是輸出(68)的32高位元,其等於乘法器輸出(66)的32高位元。運算結束時,加法器輸出(68)的32低位元(70)(等於乘法器輸出(66)的32低位元)會儲存在暫存器(60)。4位元目的ID(48)儲存在暫存器(62)。
當執行一MACH指令,且如果4位元輸入值(48)與4位元暫存器(62)的值不同(即是在一快取錯誤情況),類型2運算會執行。比較器(64)的輸出選擇多工器(58)的常數零輸入,且與控制輸入信號(46)共同使暫存器(60)的更新失能(兩致能輸入為非確立)。控制輸入信號(46)使暫存器(62)更新失能,及選擇多工器(56)的第二輸入,其為多工器(58)的輸入信號(44)與輸出(72)的串接。加法器(54)將32位元輸入信號(44)加至乘法器輸出(66)的32高位元。結果(68)的32高位元是輸出值(50)。
在提供的範例中,當執行一MACH指令,且如果4位元輸入值(48)等於4位元暫存器(62)的值(即是在一快取符合情況),類型3運算會執行。比較器(64)的輸出選擇多工器(58)的第一輸入,且多工器(58)的輸出 (72)變成暫存器(60)的值。比較器(64)的輸出在運算結束時亦致能暫存器(60)的更新。控制輸入信號(46)使暫存器(62)的更新失能,及選擇多工器(56)的第二輸入,其為輸入信號(44)與暫存器(60)的值形成多工器(58)輸出(72)的串接。加法器(54)將32位元輸入信號(44)(串接的高位元)與暫存器(60)的32位元值的64位元串接加上乘法器的64位元輸出(66)。結果(68)的32高位元是輸出值(50)。結果(68)的32低位元(70)會於運算結束時儲存在暫存器(60)。暫存器(62)的內容保持不變。
不需要類似例如快取項目之一有效旗號或一初始化程序的額外控制機構。
對於具有多個快取項目的暫存器延伸快取而言,除了延伸與ID暫存器之外,每個快取項目需要至少一有效旗號。一初始化程序在系統啟動時可能使所有項目無效。當執行一MULH指令時,各種不同機構知道如何選擇被覆寫的項目。
在一具體實施例中,暫存器延伸快取可能具有許多項目,且等於通用暫存器的數量。每個通用暫存器可能已指定一特別的延伸暫存器;不需要儲存目的ID,且類似在單項目情況,不需有效旗號。
提供的微處理器可配置成執行一逆離散餘弦轉換(Inverse Discrete Cosine Transform,IDCT)計算,例如8x8點IDCT。較佳係,精確度提高位元數目可選擇能有根據IEEE-1180-1990相容性測試精確度的逆離散餘弦轉換計算。
例如,由動態影像專家群(Moving Picture Experts Group)發行的一些視頻編碼解碼器(像似MPEG1、MPEG2與MPEG4-SP/ASP)採用供解碼處理的8x8點IDCT計算。在軟體視頻解碼器中,IDCT計算可具有高度分擔整個處理器負載。IEEE-1180-1990相容性測試指定例如用於MPEG視頻解碼的8x8點IDCT計算結果之最小精確度。不過,藉由16位元累加,IEEE-1180-1990符合IDCT輸出不能夠計算。若要符合,32位元暫存器的處理器全然不能使用SIMD指令,且具有64位元暫存器的處理器必須使用雙向SIMD指令。
如圖3所示,根據本發明的一視頻解碼裝置(74)的一示範性具體實施例包括如上述的一微處理器(10)。如一範例所示,根據本發明的微處理器(具有32位元暫存器)可使用雙向SIMD指令,且64位元的處理器可使用四向SIMD指令計算IEEE-1180-1990符合IDCT,而不需使用額外暫存器或更寬暫存器延伸一通用處理器的編程模型。
請即參考圖4,其顯示根據本發明用於精確度提高積和演算之方法的第一具體實施例流程圖範例。闡述的方法允許使描述微處理器的利益與特徵實施為用於提高微處理器精確度積和演算之方法的一部份。此亦參考圖5。
圖包括一開始狀態(76)與一結束狀態(78)。
該方法用於提高微處理器精確度積和演算,該微處理器包括:至少一通用暫存器,其配置成儲存及提供許多目的位元給一乘法單元;及一暫存器延伸快取,其包含至少一快取項目,其配置成儲存及提供許多精確度提高位元。該方法包括一些步驟:在步驟80,接收一乘法高階運算指令;在步驟82,接收至少第一與第二來源運算元,其每個具有許多相關來源位元及超過目的位元數目的許多相關來源位元之總數;在步驟84,利用至少第一與第二來源運算元,執行一「乘法高階運算」以產生一結果運算元;在步驟86,將結果運算元的目的部分儲存在通用暫存器、及將中間結果運算元的精確度提高部分儲存在快取項目;對於一「乘法高階與加法運算」序列的每個元件而言:在步驟90,接收一「乘法高階與加法運算」指令;在步驟92,接收至少第一與第二來源運算元;在步驟94,利用至少第一與第二來源運算元、及先前儲存在至少一通用暫存器的前述目的部分、與先前儲存在至少一快取項目的一對應前述精 確度提高部分之串接,藉著使用從一「乘法高階運算」產生的新結果運算元之總數執行一「乘法高階與加法運算」,以更新結果運算元;及在步驟96,將結果運算元的更新目的部分儲存在通用暫存器,及將結果運算元的更新精確度提高部分儲存在快取項目。
應該明白,當處理積和的不同元件時,一來源運算元會有不同值。MACH指令的接收序列係與前述MULH指令有關。一連串MACH指令的所有元件會執行步驟90、92、94、及96。如果沒有收到對應的MACH指令,此會結束。此外,應該明白,不需要有關積和序列長度的事前資訊(即是序列的元件數量),因此可避免例如引用專屬的命令。
該方法更適用於一微處理器,其包括複數個通用暫存器,每個具有一暫存器識別符,且該暫存器延伸快取包括複數個快取項目,每個可使用對應該等暫存器識別符之一的快取項目識別符加以識別。該方法更包括一些步驟:提供符合該等暫存器識別符之一的目的識別符給乘法單元;及利用目的部分、及一快取項目提供的精確度提高部分產生結果運算元,該快取項目具有符合該目的識別符的快取項目識別符。而且,在步驟86,儲存結果運算元的目的部分儲存在通用暫存器、及儲存中間結果運算元的精確度提高部分在快取項目,包括儲存目的部分在由目的識別符所識別的通用暫存器。
請即參考圖5,其顯示根據本發明用於精確度提高積和演算之方法的第二具體實施例流程圖範例。
圖包括一開始狀態100與一結束狀態102。
在顯示的範例中,使用一單項目暫存器延伸快取。在描述中,使用下列暫存器與可變名稱:
S0 來源運算元0
S1 來源運算元1
OPT 運算類型,一控制值定義是否執行一MULH或MACH運算
RA 暫存器陣列
RA[i] 暫存器陣列RA的第i暫存器
i 暫存器陣列RA的第i暫存器的索引
EXR 延伸暫存器
IDR ID暫存器
PD 來源運算元S0與S1的乘積或負乘積
PDL 乘積PD的低位元
PDH 乘積PD的高位元
CON EXR(低位元)與RA[i](高位元)的串接
SUM PD與CON之總數
SUML SUM的低位元
SUMH SUM的高位元
在步驟104,值S0、S1、i與OPT會被接收。在步驟106,來源運算元S0與S1的乘積或負乘積PD會計算。在步驟108,檢查OPT是否定義一MULH或一MACH運算。在MULH的情況,程序會繼續步驟110。在MACH的情況,程序會繼續步驟112。
在步驟110,暫存器陣列RA的第i暫存器RA[i]的索引i儲存在ID暫存器IDR。乘積PD的低位元PDL儲存在延伸暫存器EXR。乘積PD的高位元PDH儲存在暫存器陣列RA的第i暫存器RA[i]。在此步驟後,程序在步驟102結束。
在步驟112,暫存器陣列RA的第i暫存器RA[i]的值會被接收。在步驟114,檢查接收的索引i是否等於ID暫存器IDR的值。在接收的索引i不同於暫存器IDR值的情況,程序會繼續步驟116。在接收的索引i等於暫存器IDR值的情況,程序會繼續步驟118。
在步驟116,乘積PD的高位元PDH係加至暫存器陣列RA的第i暫存器RA[i]的值。結果儲存在相同的暫存器RA[i]。在此步驟後,顯示的程序在步驟102結束。
在步驟118,產生延伸暫存器EXR的值、與暫存器 陣列RA的第i暫存器RA[i]的串接CON,其中EXR是串接的低位元,且RA[i]是串接的高位元。
在步驟120,計算乘積PD與串接CON之總數SUM。由於EXR與RA[i]的串接,所以由PDL與EXR的加算所產生的進位係傳送至PDH與RA[i]之總數。
在步驟122,SUM的低位元SUML儲存在延伸暫存器EXR。SUM的高位元儲存在暫存器陣列RA的第i暫存器RA[i]。在此步驟後,程序在步驟102結束。
此外,當在一可編程裝置上執行時,一電腦程式產品可包括用於執行如上述方法步驟的程式碼部分。電腦程式可於至少暫時耦合至一資訊處理系統的電腦可讀媒體上提供。
應該明白,在邏輯組塊間的邊界只是說明,且其他具體實施例可使功能性分佈在不同的邏輯組塊之間。本發明並未限於硬體實施的實體裝置,但是亦可在利用程式碼操作、能夠執行一裝置想要功能的任何可編程裝置上實施。規格與圖式係闡述示範性具體實施例,且未將本發明侷限於顯示的範例。用詞「包括」並未解釋為排除出現在除了文後申請專利範圍提及這些以外的其他元件或步驟。
雖然本發明是從特殊結構、裝置及方法的觀點描述,但是所屬技術領域專業人士應瞭解,根據在此的描述,未僅限於此範例,且本發明的整個範疇是在文後申請專利範圍。
10‧‧‧微處理器
12‧‧‧通用暫存器
14‧‧‧乘法單元
18‧‧‧控制單元
20‧‧‧乘法高階指令
22‧‧‧乘法高階與加法指令
24‧‧‧第一來源運算元
26‧‧‧第二來源運算元
28‧‧‧暫存器延伸快取
30‧‧‧暫存器陣列
32‧‧‧目的識別符
34‧‧‧讀取埠
36‧‧‧輸出埠
38‧‧‧寫入埠
40‧‧‧32位元輸入信號
42‧‧‧32位元輸入信號
44‧‧‧32位元輸入信號
46‧‧‧控制輸入信號
48‧‧‧4位元輸入信號
50‧‧‧32位元輸出值
52‧‧‧32.32位元乘法器
54‧‧‧64位元加法器
56‧‧‧64位元、雙輸入多工器
58‧‧‧32位元、雙輸入多工器
60‧‧‧32位元暫存器
62‧‧‧4位元暫存器
64‧‧‧4位元相同比較器
66‧‧‧64位元輸出
68‧‧‧加法器輸出
70‧‧‧32低位元
72‧‧‧多工器輸出
在圖式中,相同的參考數字代表相同或類似元件。
圖1顯示根據本發明的一微處理器示範性具體實施例。
圖2顯示根據本發明的一微處理器乘法單元示範性具體實施例。
圖3顯示根據本發明的一視頻解碼裝置示範性具體實施例。
圖4顯示根據本發明之用於提高精確度積和演算之方法的第一具體實施例流程圖示範性。
圖5顯示根據本發明之用於提高精確度積和演算之方法的第二具體實施例流程圖示範性。
10‧‧‧微處理器
12‧‧‧通用暫存器
14‧‧‧乘法單元
18‧‧‧控制單元
20‧‧‧乘法高階指令
22‧‧‧乘法高階與加法指令
24‧‧‧第一來源運算元
26‧‧‧第二來源運算元
28‧‧‧暫存器延伸快取
30‧‧‧暫存器陣列
32‧‧‧目的識別符
34‧‧‧讀取埠
36‧‧‧輸出埠
38‧‧‧寫入埠

Claims (12)

  1. 一種提高精確度積和演算之微處理器,包括:一乘法單元;至少一通用暫存器,其配置成儲存及提供許多目的位元給該乘法單元;一控制單元,其調適成提供至少一乘法高階運算指令與一乘法高階與加法運算指令給該乘法單元;該乘法單元配置成接收至少第一與第二來源運算元,其每個具有許多相關來源位元、及超過該等目的位元數目的該等相關來源位元數目之總數;該乘法單元具有一暫存器延伸快取,包括至少一快取項目,其配置成儲存及提供精確度提高位元;及該乘法單元儲存包含一結果運算元之高位元的目的部分在該通用暫存器;及儲存包含該結果運算元之低位元的精確度提高部分在該快取項目;當接收該乘法高階運算指令時,該結果運算元是由一乘法高階運算產生,且當接收該乘法高階與加法運算指令時,則由一乘法高階與加法運算產生,其中該乘法高階與加法運算包括利用該至少第一與第二來源運算元、及先前儲存在該至少一通用暫存器的一前述目的部分與先前儲存在該至少一快取項目的一對應前述精確度提高部分之串接,藉由從該乘法高階運算產生的一中間結果運算元之總數,產生該結果運算元。
  2. 如申請專利範圍第1項所述之提高精確度積和演算之微處理器,其中該等相關來源位元數目之該總數係超過該等目的位元數目與該等精確度提高位元數目之總數。
  3. 如申請專利範圍第1項所述之提高精確度積和演算之微處理器,其包括複數個通用暫存器,其每個具有一暫存器識別符,而且其中該控制單元調適成提供符合該等暫存器識別符之一的目的識別符給該乘法單元,該乘法單元調適成儲存該目的部分在由該目的識別符所識別的該通用暫存器。
  4. 如申請專利範圍第3項所述之提高精確度積和演算之微處理器,其中該暫存器延伸快取包括該等複數個快取項目,每個係利用對應該等暫存器識別符之一的快取項目識別符加以識別,而且其中該乘法單元調適成利用該目的部分、與由一快取項目提供的精確度提高部分,產生該結果運算元,該快取項目具有符合該目的識別符之該快取項目識別符。
  5. 如申請專利範圍第1項所述之提高精確度積和演算之微處理器,其中該乘法高階運算包括一乘法高階與負運算,且該乘法高階與加法運算包括一乘法高階負與加法運算。
  6. 如申請專利範圍第1項所述之提高精確度積和 演算之微處理器,其中該乘法高階運算與該乘法高階與加法運算是以單指令多數據運算實施。
  7. 如申請專利範圍第1項所述之提高精確度積和演算之微處理器,其配置係執行反轉離散餘弦轉換計算。
  8. 如申請專利範圍第7項所述之微處理器,其中該精確度提高位元數目係選擇允許該反轉離散餘弦轉換計算具有根據IEEE-1180-1990相容性測試的精確度。
  9. 一種視頻解碼裝置,其包括如申請專利範圍先前任一項所述之提高精確度積和演算之微處理器。
  10. 一種用於微處理器提高精確度積和演算之方法,其包括:一乘法單元;至少一通用暫存器,其配置成儲存及提供目的位元給該乘法單元;該乘法單元具有一暫存器延伸快取,其包括至少一快取項目,其配置成儲存及提供精確度提高位元,該方法包括下列步驟:接收一乘法高階指令;接收至少第一與第二來源運算元,其每個具有許多相關來源位元、與超過該等目的位元數目的該等相關來源位元數目之總數;藉由利用該至少第一與第二來源運算元,執行一乘 法高階運算以產生一結果運算元;儲存包含該結果運算元之高位元的目的部分在該通用暫存器、及儲存包含該結果運算元之低位元的精確度提高部分在該快取項目;對於一乘法高階與加法運算序列的每個元件而言:接收一乘法高階與加法運算指令;接收該至少第一與第二來源運算元;利用該至少第一與第二來源運算元、及先前儲存在該至少一不屬於該乘法單元之通用暫存器的前述目的部分、與先前儲存在該至少一快取項目的對應前述精確度提高部分之串接,執行一乘法高階與加法運算以更新該結果運算元;及儲存該結果運算元的更新目的部分在該通用暫存器、及儲存該結果運算元的更新精確度提高部分在該快取項目。
  11. 如申請專利範圍第10項所述之方法,其中該微處理器包括複數個通用暫存器,其每個具有一暫存器識別符,而且該暫存器延伸快取包括該等複數個快取項目,每個係利用對應該等暫存器識別符之一的快取項目識別符加以識別;該方法包括下列步驟:提供符合該等暫存器識別符之一的目的識別符給該乘法單元;及利用該目的部分與由該快取項目提供的該精確度提高部分,產生該結果運算元,該快取項目具有符合該 目的識別符的該快取項目識別符;而且其中該步驟儲存包含該結果運算元之高位元的目的部分在該通用暫存器,及儲存包含該結果運算元之低位元的精確度提高部分在該快取項目,包括儲存該目的部分在由該目的識別符所識別的該通用暫存器。
  12. 一種電腦程式產品,其包括程式碼部分,用以當在一可編程裝置上執行時,執行如申請專利範圍第10或11項所述之方法步驟。
TW099140470A 2009-11-30 2010-11-24 提高精確度積和演算之微處理器及其視頻解碼裝置、其方法及其電腦程式產品 TWI493453B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/EP2009/008522 WO2011063824A1 (en) 2009-11-30 2009-11-30 Microprocessor and method for enhanced precision sum-of-products calculation on a microprocessor

Publications (2)

Publication Number Publication Date
TW201118725A TW201118725A (en) 2011-06-01
TWI493453B true TWI493453B (zh) 2015-07-21

Family

ID=41682359

Family Applications (1)

Application Number Title Priority Date Filing Date
TW099140470A TWI493453B (zh) 2009-11-30 2010-11-24 提高精確度積和演算之微處理器及其視頻解碼裝置、其方法及其電腦程式產品

Country Status (8)

Country Link
US (1) US9158539B2 (zh)
EP (1) EP2507701B1 (zh)
JP (1) JP5456167B2 (zh)
KR (1) KR101395260B1 (zh)
CN (1) CN102576302B (zh)
HK (1) HK1171843A1 (zh)
TW (1) TWI493453B (zh)
WO (1) WO2011063824A1 (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP4171031B1 (en) 2011-09-28 2024-06-12 Sun Patent Trust Image decoding apparatus, image encoding and decoding apparatus and computer-readable medium storing a bitstream
CN103268223B (zh) * 2013-04-26 2016-06-29 深圳中微电科技有限公司 在编译过程中改善乘加类指令执行性能的方法
CN108021528B (zh) * 2016-11-03 2020-03-13 中科寒武纪科技股份有限公司 Slam运算装置和方法
US10162633B2 (en) * 2017-04-24 2018-12-25 Arm Limited Shift instruction
CN111814093A (zh) * 2019-04-12 2020-10-23 杭州中天微系统有限公司 一种乘累加指令的处理方法和处理装置
US11275562B2 (en) * 2020-02-19 2022-03-15 Micron Technology, Inc. Bit string accumulation
US12072952B2 (en) * 2021-03-26 2024-08-27 Advanced Micro Devices, Inc. Data compressor for approximation of matrices for matrix multiply operations
CN113298245B (zh) * 2021-06-07 2022-11-29 中国科学院计算技术研究所 一种基于数据流架构的多精度神经网络计算装置以及方法
CN113506291B (zh) * 2021-07-29 2024-03-26 上海幻电信息科技有限公司 兼容性测试方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5764553A (en) * 1996-02-28 1998-06-09 Lsi Logic Corporation Generalized data processing path for performing transformation and quantization functions for video encoder systems
US20020116432A1 (en) * 2001-02-21 2002-08-22 Morten Strjbaek Extended precision accumulator
US20040267857A1 (en) * 2003-06-30 2004-12-30 Abel James C. SIMD integer multiply high with round and shift
TW200928793A (en) * 2007-12-26 2009-07-01 Ruei-Jau Chen Algorithm method capable of enhancing accuracy and computation speed of the computation of corrected sums of products (CSP) of computing hardware

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5579253A (en) * 1994-09-02 1996-11-26 Lee; Ruby B. Computer multiply instruction with a subresult selection option
JPH09186554A (ja) * 1995-12-28 1997-07-15 New Japan Radio Co Ltd ディジタルフィルタ
US5880983A (en) * 1996-03-25 1999-03-09 International Business Machines Corporation Floating point split multiply/add system which has infinite precision
JP3857614B2 (ja) * 2002-06-03 2006-12-13 松下電器産業株式会社 プロセッサ
US20040267854A1 (en) * 2003-06-26 2004-12-30 Towfique Haider Logarithmic and inverse logarithmic conversion system and method
JP2007072857A (ja) * 2005-09-08 2007-03-22 Oki Electric Ind Co Ltd 演算処理装置および情報処理装置
JP2008310693A (ja) * 2007-06-15 2008-12-25 Panasonic Corp 情報処理装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5764553A (en) * 1996-02-28 1998-06-09 Lsi Logic Corporation Generalized data processing path for performing transformation and quantization functions for video encoder systems
US20020116432A1 (en) * 2001-02-21 2002-08-22 Morten Strjbaek Extended precision accumulator
US20040267857A1 (en) * 2003-06-30 2004-12-30 Abel James C. SIMD integer multiply high with round and shift
TW200928793A (en) * 2007-12-26 2009-07-01 Ruei-Jau Chen Algorithm method capable of enhancing accuracy and computation speed of the computation of corrected sums of products (CSP) of computing hardware

Also Published As

Publication number Publication date
CN102576302B (zh) 2014-10-29
KR20120062890A (ko) 2012-06-14
CN102576302A (zh) 2012-07-11
EP2507701B1 (en) 2013-12-04
HK1171843A1 (zh) 2013-04-05
US20120198212A1 (en) 2012-08-02
WO2011063824A1 (en) 2011-06-03
JP5456167B2 (ja) 2014-03-26
TW201118725A (en) 2011-06-01
EP2507701A1 (en) 2012-10-10
KR101395260B1 (ko) 2014-05-15
US9158539B2 (en) 2015-10-13
JP2013508830A (ja) 2013-03-07

Similar Documents

Publication Publication Date Title
TWI493453B (zh) 提高精確度積和演算之微處理器及其視頻解碼裝置、其方法及其電腦程式產品
KR100597930B1 (ko) 라운드 및 시프트를 갖는 simd 정수 곱셈 하이
JP6615819B2 (ja) 単一命令でシフト・アンド・排他的論理和演算を行うシステム
KR100993998B1 (ko) 곱셈 기능을 수행하기 위한 방법 및 장치
KR101893814B1 (ko) 3 소스 피연산자 부동 소수점 가산 프로세서, 방법, 시스템, 및 명령어
CN107077415B (zh) 用于执行转换运算的装置和方法
EP3719639B1 (en) Systems and methods to perform floating-point addition with selected rounding
JP4697639B2 (ja) ドット積演算を行うための命令および論理
JP4869552B2 (ja) 符号乗算処理を実行する方法及び装置
US7917568B2 (en) X87 fused multiply-add instruction
US10768896B2 (en) Apparatus and method for processing fractional reciprocal operations
US9766886B2 (en) Instruction and logic to provide vector linear interpolation functionality
TW201643694A (zh) 用於移位和(shift-sum)乘法器的指令及邏輯
TWI773652B (zh) 在處理器中進行立即資料的收合之技術
CN111752605A (zh) 使用浮点乘法-累加结果的模糊-j位位置
US20190196790A1 (en) Apparatus and method for processing reciprocal square root operations
Sinha et al. CPU Architectures for Speech Processing

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees