TWI439928B - 可組態執行單元,操作其之方法,以及電腦程式產品及其指令集 - Google Patents
可組態執行單元,操作其之方法,以及電腦程式產品及其指令集 Download PDFInfo
- Publication number
- TWI439928B TWI439928B TW095116018A TW95116018A TWI439928B TW I439928 B TWI439928 B TW I439928B TW 095116018 A TW095116018 A TW 095116018A TW 95116018 A TW95116018 A TW 95116018A TW I439928 B TWI439928 B TW I439928B
- Authority
- TW
- Taiwan
- Prior art keywords
- configurable
- instruction
- execution unit
- sub
- configuration information
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 21
- 238000004590 computer program Methods 0.000 title claims description 4
- 230000006870 function Effects 0.000 claims description 21
- 230000004044 response Effects 0.000 claims description 19
- 230000003068 static effect Effects 0.000 claims description 8
- 230000008569 process Effects 0.000 claims description 4
- 238000011144 upstream manufacturing Methods 0.000 claims description 3
- 230000010365 information processing Effects 0.000 claims 1
- 230000006399 behavior Effects 0.000 description 13
- 238000004422 calculation algorithm Methods 0.000 description 11
- 239000013598 vector Substances 0.000 description 11
- 238000004364 calculation method Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 6
- 238000001914 filtration Methods 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 101100083853 Homo sapiens POU2F3 gene Proteins 0.000 description 1
- 101100058850 Oryza sativa subsp. japonica CYP78A11 gene Proteins 0.000 description 1
- 101100352374 Oryza sativa subsp. japonica PLA3 gene Proteins 0.000 description 1
- 101150059175 PLA1 gene Proteins 0.000 description 1
- 102100026466 POU domain, class 2, transcription factor 3 Human genes 0.000 description 1
- 102100026918 Phospholipase A2 Human genes 0.000 description 1
- 101710096328 Phospholipase A2 Proteins 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000003542 behavioural effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000007620 mathematical function Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7867—Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30036—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30181—Instruction operation extension or modification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units
- G06F9/3893—Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator
- G06F9/3895—Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator for complex operations, e.g. multidimensional or interleaved address generators, macros
- G06F9/3897—Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator for complex operations, e.g. multidimensional or interleaved address generators, macros with adaptable data path
Description
本發明係關於具有可組態執行單元之電腦處理器、用於操作如此之電腦處理器及執行單元的方法以及利用電腦指令組之電腦程式產品。
某些電腦處理器係受到限制,此係因為具有在製造時,在其有效處理某些演算法內不同型式資料處理計算的能力上以及其實施所選擇的不同演算法之能力上固定的一個指令組,該選擇的不同演算法係選自舉例而言,迴積(convolution)、快速傅利葉轉換、Trellis/Viterbi計算、相關性(correlation)、有限脈衝響應濾波及類似演算法。特別是,已知的電腦處理器係不支援在多位元運算元值上運算之軟體客製化之實施,舉例而言,如此之指令係對於4位元或更多位元或電腦字元(典型為16、32或64位元)之等級之運算元起作用。已知的電腦處理器係不能夠為了回應於形成該處理指令組一部分之個別軟體客製化處理器指令,而有效地實施牽涉到一連串較簡單的客製化運算之複雜的軟體客製化運算。本發明之實施例係尋求提供改進的電腦處理器及操作電腦處理器及類似物之方法。
根據本發明之一個觀點,其係提供一種可組態執行單元,其係包含複數個運算子,其係能夠在處理多位元運算元值之等級下被一個指令動態組構。該可組態執行單元係包含:一或多個動態可組態運算子模組,該一或多個模組係可連接成接收一個指令中指示之輸入運算元;及一個可程式查閱表,其係可連接成接收自一個指令之一個運算碼部分決定而來的動態組態資訊,且能夠產生界定該可組態運算子模組之功能及/或行為的一個態樣之運算組態設定,以回應於該指令中之動態組態資訊。
於較佳實施例中,該可程式查閱表係包含一個可程式邏輯陣列。更佳的情況為,該可程式查閱表係包含串接的可程式邏輯陣列。
於所揭示的實施例中,該可組態執行單元係包含一個可組態切換結構,其係具有至少一部分由偽靜態控制資訊所界定之連結。再者,該可組態切換結構係可以包含一個可組態輸入互連裝置及一個可組態輸出互連裝置之一或多個,該可組態輸入互連裝置係連接至該可組態運算子之上游,且該可組態輸出互連裝置係連接至該可組態運算子之下游。較佳實施例係具有兩者。
在設置可組態輸入互連裝置之情況下,一或多個可組態運算子模組輸出端係可以連接至該可組態輸入互連裝置。
較佳的情況為,至少一個可組態運算子模組係硬接線,以支援一個預定的運算種類,且係可被運算子組態設定動態組構,以調整整體運算種類內運算子功能及/或行為。許多不同的運算子功能係可以根據意欲應用而被提供。較佳的實施例係傾向於包含一個具有可組態移位及/或排列功能的模組。又更佳的情況為,某些實施例係包含能夠保存中間結果的儲存運算子。
典型地,一或多個可組態構件係包含偽靜態控制資訊,其係與攜帶該動態組態資訊之指令無關而被提供。如此之偽靜態控制資訊係可以舉例而言,藉由組態設定指令或由至所關注的構件之直接資料轉移而被建立。
於大部分的實施例中,一或多個動態組態運算子係可以藉由一個資料處理指令內所提供的組態資訊而組構。然而,於此所揭示之原則係亦可以應用於其他型式的指令。
較佳的可組態執行單元係包含複數個動態可組態運算子,其係可藉由一個資料處理指令內所提供之組態資訊而組構,其中,於使用時,一個根據該組態資訊之運算子組態係對於該資料處理運算內所指示之運算元作用。
於其他實施例中或者額外地,一或多個動態可組態運算子係可藉由一個資料處理指令內所提供的組態資訊而組構,其中,於使用時,一個根據該組態資訊之運算子組態係對於一個後續指令內所指示之運算元作用。
較佳的執行單元係被配置,以為了回應一個單一指令而能夠在輸出結果到一個在該可組態執行路徑或單元外的儲存器(例如,一個暫存器檔案)之前,對於一個運算元實施兩個或更多個循序且可選擇組態的運算。於較佳的可組態執行單元之中,一或多個可組態運算子模組係支援單指令多資料(SIMD)運算。
典型地,於一或多個下列運算子種類之運算子係被提供:乘法、算術邏輯、儲存、移位及/或排列。然而,任何數量或型式之運算子係可以使用。
於根據本發明之實施例中,“可程式查閱表”一詞係應該被解釋範圍廣大為包含任何能夠提供選自舉例而言下列之一或多個之運算子組態設定之裝置:一個進位輸入(carry-in)訊號;一個多工器選擇;一個可轉讓輸入;一個溢流設定;及其他適合的運算子輸入,以回應於一個指令內之資訊。
再者,該可程式查閱表係可以有用地接收一或多個由動態可組態運算子模組而來的輸入。以此方式,自該些運算子而來的輸出係能夠至少一部分界定至該些運算子之組態輸入,以使用於後續週期中。
典型地,雖然非為排他地,自該動態可組態運算子模組而來至該可程式查閱表之輸入係選自下列之一或多個:一個溢流指示;一個先進先出全訊號;一個算術比較的布林結果;及運算子的其他適合的輸出。
於某些實施例中,該可程式查閱表係可以被視為包含偽靜態控制資訊,其係可由一個指令中所攜帶的組態資訊事先設定及選擇。
根據本發明之另一個觀點,其係提供一種操作可組態執行單元之方法,該可組態執行單元係包含複數個運算子,其係能夠在處理多位元運算元值之等級下被一個指令動態組構,該方法係包含:解碼一個包含在一個運算碼中之組態資訊的指令;根據一個可程式查閱表,對於至少一個可組態運算子轉換該組態資訊成為運算子組態設定;提供該運算子組態設定成為至少一個可組態運算子,使得該運算子之功能及/或行為的一個態樣係在一個指令接著一個指令之基礎下,可以選擇地被調整。
較佳的方法係允許一串列兩個或更多個運算串列實施,以回應於一個單一指令。可替代的是或者更可能額外地,兩個或更多個運算係可以平行實施,以回應於該指令。
較佳的實施例係便利串列及平行運算的組合被實施,以回應於一個單一指令。以此方式,軟體客製化指令係能夠導致運算元流經實施整個相當複雜計算為相互關連運算組之鏈結的運算子網路,以回應於一個單一指令。
再者,在複數個串列及/或平行運算被實施以回應於該指令之情況下,中間的結果係可以在運算之間或在自該可組態執行單元輸出至一個結果儲存器之前,被保存於一個儲存運算子之中。
此外,在複數個串列及/或平行運算被實施以回應於該指令之情況下,中間的結果係可以在運算之間或在自該可組態執行單元輸出至一個結果儲存器之前,被移位或排列。
根據本發明之另一個觀點,本發明係提供一種電腦程式產品,其係包含用於實施任一個上述方法之程式碼裝置。
根據本發明之另一個觀點,本發明係提供一種指令,其係包含:一個運算碼部分,其係定義一個型式之資料處理運算,該型式係包含用於設定一個可組態執行單元的一或多個運算子之一個組態的動態組態資訊;一個組態資訊域,其係含有運算子組態資訊;及至少一個指示一個使用於該資料處理運算之運算元之域。
根據本發明之另一個觀點,其係提供一種電腦處理單元,其係包含一個可組態執行單元,該可組態執行單元係可選擇與一個固定執行單元組合。較佳的情況為,該些執行單元之一或多個係能夠單指令多資料處理。
本發明之額外的優點及新穎的特色一部分係敘述於下列說明書之中,且一部分在檢查下列揭示內容時對於熟習本項技術者而言為顯明的或者可以由實施本發明而學到。
第1圖之處理器100係可以為一個電腦系統的一部分,於該電腦系統中,該處理器係藉由一個通訊匯流排而連接至一個主記憶體及週邊裝置。如此之處理器系統係可以支援於一個廣泛種類的裝置及應用內之範圍的週邊裝置,如同熟習本項技術者將體認。
該處理器100係具有一個指令記憶體102、一個指令擷取及解碼電路110、一個暫存檔案112、一個載入/儲存單元118、一個預定數量的固定執行單元120及一個預定數量的可組態執行單元126。
該指令記憶體102係藉由一個指令匯流排108及一個位址匯流排109而連接至該指令擷取及解碼電路110。該指令擷取及解碼電路110係進一步藉由一個位址匯流排111而連接至該暫存檔案112,且藉由控制匯流排系統113而連接至該載入/儲存單元118、該固定執行單元120及該可組態執行單元126。該控制匯流排113係使用於舉例而言,攜帶自指令解碼而來的運算組態資訊至該載入/儲存單元118、該固定執行單元120及該可組態執行單元126之相關輸入端。一個運算元匯流排系統115係根據該解碼出的指令,提供自該暫存檔案而來的運算元給該載入/儲存單元118、該固定執行單元120及該可組態執行單元126。
該載入/儲存單元118係具有至121及自122該資料記憶體104而來的連結,且係能夠輸出結果給一個結果匯流排128,該結果匯流排128亦提供接收該固定執行單元120及該可組態執行單元126之輸出。該結果匯流排128係反饋回該暫存檔案112的一個輸入端。
於此實施例中,該處理器100係支援固定及可組態執行單元內的單指令多資料(Single Instruction Multiple Data,SIMD)處理。於其他實施例中,僅該固定及可組態執行單元之一個或無任一個支援單指令多資料處理係可能的。
於該指令擷取及解碼電路110內的控制電路係大致上負責請求、接收及解碼自該指令記憶體102而來的一連串指令,且根據該些指令而控制該處理器的許多不同的元素。典型的指令係包含載入/儲存運算、控制功能運算、資料處理運算及/或由許多不同的功能單元所實施的特定運算。
載入/儲存指令係使用於存取該資料記憶體104內的資料,且於該資料記憶體104及該暫存檔案112之間移動資料,其中,該資料係駐存於緊接對其實施之運算之前及之後。諸如分路之控制功能運算係可以整個操作於該指令解碼及擷取單元110,舉例而言,以實施該連串的被擷取指令,或者可以牽涉到該固定及可組態執行單元之一或多個在該處理器之設定的計算。資料處理運算係使用於演算法之實施,且類似地,係可以牽涉到固定及/或可組態執行單元,如同將於下文予以更詳細敘述。
第2圖係為一個示範性執行單元126的內部構件的示範性圖式。參照第2圖,該可組態執行單元126係包含一個可程式查閱表210、一個可組態運算子級230、一個輸入縱橫互連器240及一個輸出縱橫互連器250。
該可程式查閱表210及該互連器240、250係可以在其係根據可被特殊目的指令預設之偽靜態控制資訊之之方式下被組構,然而,其係不可在一個週期接著週期之基礎下被資料處理指令所自我動態組構。此可預設控制資訊係於此被稱為偽靜態控制資訊(Pseudo Static Control Information,PSCI),且係由第2圖上之參考符號249所指示。該偽靜態控制資訊249係以對於熟習本項技術者而言為顯明的方式敘述該可程式查閱表210及該些縱橫互連器240、250之功能及行為的態樣。
該可組態運算子級230係包含運算子模組202-208組,每一個係設計成實施一個不同種類的運算。該些運算子模組係由自該輸入縱橫互連器而來的運算元輸入匯流排242所提供。於此示範性實施例中,其係提供乘法運算子202、算術邏輯單元運算子204、儲存運算子206及移位/排列運算子208。一個熟習本項技術者將體認,運算子之數量及功能將根據該處理器的意欲應用及/或意欲目的而定。該些運算子模組202-208之一個選擇或全部可動態地藉由於此所敘述之方式組構係可能的。
該些運算子模組202-208係硬接線達到的程度為:使其在被設計以實施之操作上為有效率的,然而同時係具有許多不同的控制輸入,其係允許於實施多位元值之操作的性能的行為之等級上的可組態性。此係支援行為上的變異及/或每一個被設定成實施之運算的等級內運算子模組之型式。舉例而言,一個加法單元係可以支援減法以及加法(算術之整體等級內不同型式之運算或函數),其係可以支援許多不同種類的單指令多資料向量資料型式以及標量型式(多樣化的行為),且其係可以支援許多種類的四捨五入模式及/或溢流行為(可選擇的行為)。
於較佳實施例中,至運算子202-208及運算子級230上的許多不同元件之互連的控制輸入係可組態到達允許期望的演算法種類有效的實施之程度,特別是向量演算法,其之範例係包含迴積(convolution)、快速傅利葉轉換、Trellis/Viterbi計算、相關性(correlation)、有限脈衝響應濾波及其他演算法。此種程度係實際上容易由具有適合的技術工程人員所建立,其亦知道一個指令組所需之資料處理功能的範圍,以根據如此之演算法以及一個處理器之控制功能而支援相關的計算。
該運算子級230的運算子係以指令為基礎(“動態地”)對於一個指令上為動態可組態的,使得一個含有組態資訊(例如,一個資料處理指令)之指令係能夠藉由提供該組態資訊成為當其之運算元係操作時被施加的控制設定,而選擇地改變運算子的功能(運算型式)及/或行為。可替代地,該指令組係可以被設計成使得於一個指令內的組態資訊係組構當處理自一個後續指令(例如,一個後續資料處理運算)而來的運算元時所施加的運算子功能及/或行為。
用於自可程式查閱表210推導出之運算子的控制輸入279係提供給運算子級,舉例而言,以提供控制輸入以控制運算子204-208之功能及/或行為。這些控制輸入之範例係包含進位輸入(carry-in)訊號;多工器選擇;可轉讓(negotiable)輸入;溢流行為控制設定。自運算子級230內運算子模組202-208而來的控制輸出281係能夠被輸出至該可程式查閱表210,且藉此係可以接著參與定義控制輸入設定279。控制輸出281之範例係包含溢流指示、先進先出全訊號及算術比較的布林結果。
實際上,於一個資料處理指令內的運算組態資訊277係被解碼,且提供給該可程式查閱表210。此組態資訊277以及控制資訊281係被該可程式查閱表210轉換成為用於該運算子級之對應控制輸入279,且提供給該運算子級230。由該可程式查閱表210所實施之轉換功能係由偽靜態控制資訊249所決定,其係接著可以被較早的控制指令所設定。
於較佳實施例中,該可程式查閱表210係可以本身被視為由根據於一個資料處理指令內運算子組態資訊可選擇出的偽靜態控制資訊而定。因此,該可程式查閱表210係能夠產生回應於動態組態資訊277(自一個指令推導而來)之至運算子之輸入,或者自該些運算子281而來的控制輸出,或PSCI 249,或者至該可程式查閱表210之這些輸入的任何組合。因此,對於偽靜態控制資訊而言,係不需要直接被輸入至該運算子級230,雖然於某些環境下,此係令人期望的。
參照第2A圖,該可程式查閱表210係能夠被實施為一種對於熟習本項技術者而言為眾所周知之型式的可程式邏輯陣列(PLA),如示於第2B圖。於第2B圖之情況下,PLA1係轉換自該指令而來的組態位元277成為一個第一中間碼,PLA2係轉換該些運算子之控制輸出281成為一個第二中間碼,且PLA3係結合該第一及第二中間碼,以產生一組用於該些運算子之控制輸入279。如此之串接的配置係可能為令人期望的,因為其係可以需要比第2A圖之單一PLA為少的硬體。
於較佳實施例中,該些縱橫互連器240、250之連接以及在級230內運算子之間的互連係不可根據資料處理指令內控制資訊而動態組構。反而是,該些縱橫互連器240、250係藉由設定該PSCI、可能藉由上載或實施控制設定運算而事先組構運算。
輸入互連器240係提供用於複數個運算元模組202-208之每一個的運算元輸入。該輸入互連器240係能夠根據解碼過的資料處理指令而接收運算元224,且能夠透過反饋匯流排225接收自該些運算子202-204之輸出而來的結果值。
輸出互連器250係接收自該些運算子模組202-208而來的輸出,且提供可組態執行單元126之最終輸出結果290。藉由反饋匯流排225,該縱橫互連器240及可選擇地儲存運算子206以及簡單多重運算之串接及平行組合係能夠在提供該執行單元外的一個結果290之前,對於輸入運算元224執行複雜的運算,以回應於一個單一資料處理指令。這些有利型式之“深”執行運算在簡單條件下,於該些結果290被送出寫入至該暫存檔案112內一個結果暫存器之中之前,係可以被視為複數個(大致上3個或更多個)數學運算對於運算元或一組運算元循序實施之運算。於這些型式之深運算之中,該些儲存運算子206係能夠保存中間值,使得其係能夠在結果290被輸出之前,參與隨後的運算週期。此種型式之串接及/或平行運算係為新穎的。再者,建立為基本運算子的串接-平行組合的網路之設備係有利的。一個平行型式運算的範例係為一個範圍檢查:“及”(A>min,A<max),其中,該兩項比較計算係對於共同的運算元A平行實施。
熟習本項技術者將體認,第2圖之整個結構係能夠適當地管線化(pipelined),以致能複雜的多級運算達成,而不折衷減低處理器的速度。
因此,已經敘述於使用中該指令擷取及解碼電路110如何解碼資料處理指令及控制該處理器100的許多不同的要素,使得自該指令而來的組態資訊277係提供給該可程式查閱表210,且每一個運算元224係由該暫存檔案而來提供給該輸入互連器240。以此方式,自該指令而來的組態資訊277係透過該可程式查閱表210,選擇地及動態地修改該些運算子之一或多個的功能及/或行為之態樣。
因此,該可組態執行單元126係根據數個型式之控制。首先,係有例示於硬接線之有利等級中之靜態控制,以提供模組202-208的許多不同的運算子等級。第二,係具有偽靜態控制資訊(Pseudo Static Control Information,PSCI),其係駐存於舉例而言互連器240、250及可程式查閱表210之預定組態之中。如於上文所述,偽靜態控制資訊係被分配至某些可組態構件(舉例而言,查閱表210及互連器240、250),以在實施本身能夠以指令為基礎動態組構(調整組態)一個指令上的運算子之軟體客製化指令之前,決定執行單元200的功能及行為之態樣。此外,係具有動態控制資訊,其係能夠於一個週期接著週期之基礎被指令所提供。指令組係可以在製造之後被客製化,其前提為其係符合某些一般的協定,其係確保指令組保持與該處理器之操作相容。能夠事先動態地組構運算子及可組構的其他要素的後製作軟體客製化指令之組合係允許一廣泛範圍的處理及數學函數,且導致對於複雜演算法的確切解決方案。於此環境下,確切係被採用表示減少週期數量及電力需求。
該PSCI係可以藉由舉例而言下列方式而被分配,(i)直接自一個外部直接記憶體存取(DMA)埠上載,或者(ii)藉由實施特殊設計PSCI設定指令。根據該特殊設計PSCI設定指令,使用於計算PSCI設定之資料將進入該單元作為具有根據目的地位址之結果設定PSCI之運算元資料224。
包含於一個處理器指令的運算碼部分內的動態控制資訊277(包含運算元組態資訊)係使用於存取該可程式查閱表210。於較佳實施例中,該動態控制資訊係由該指令內的一個多重位元域所表示,且自該可程式查閱表210發出的設定係包含該整個執行單元230之控制輸入(設定)的一個延伸組。
於較佳實施例中,該運算子級230之許多不同的模組202-208係設定成處理資料處理運算,該些模組之至少一個輸入係為一個多重位元值,諸如一個向量或一個向量的一個要素(一個標量,scalar)。因此,該些較佳運算子模組202-208係於多重位元值上的運算之等級上為可組態的。舉例而言,一個輸入至一個資料處理運算之64位元向量係可以包含4個16位元標量運算元。於此,一個向量係可以被視為標量運算元的一個組合。因此,軟體可客製化向量算術係可以在複數個標量運算元上被達成,且典型地係需要某一數量之標量要素的排列。並非一個向量運算的所有運算元係需要為向量;舉例而言,一個向量運算係可以輸出一個為一個標量或向量的結果。
許多適合與本發明之實施例使用的指令格式係顯示於第3圖。於300中,係具有一個特別設計成實施舉例而言,構件210、240及/或250之一或多個之偽靜態控制設定運算的一個PSCI設定指令。該PSCI設定指令300係包含:一個第一運算碼部分302,其係指示其係為一種型式之PSCI設定指令;及一個第二運算碼部分303,其係指示與每一個意欲被組構的構件210、240、250相關的目的地。該指令304之剩餘部分係可以被使用於攜帶或指向意欲用於目的地的PSCI。
參照指令格式400,其係揭示一類資料處理指令,其係包含動態組態設定資訊,根據該資訊,一個參考係於該可程式查閱表210內被實施。該指令400係包含一個第一運算碼部分410,其係定義將被實施之資料處理運算,較佳的情況為包含該指令係為一種資料處理運算之指示,該指示係包含用於組構該可組態執行單元230的一或多個運算子之動態組態設定資訊。該指令400亦包含:一個第二運算碼部分415,其係指向該些結果將被傳送至之目的地位址;一個含有運算子組態資訊420之第三運算碼部分420;及一或多個使用於該資料處理運算之運算元430。可替代的是,該域430係可以包含指向暫存器內一或多個運算元之指引。熟習本項技術者將體認,於此所敘述之域的一或多個係可以在其他實施例中被結合或省略。
該運算子組態資訊420係被使用於存取該查閱表210,且係被轉換,以提供給運算子控制輸入設定279,如上文所述。
較佳實施例係能夠特別有效率地處理某些演算法內的不同型式之資料處理計算,舉例而言,演算法係包含迴積、快速傅利葉轉換、Trellis/Viterbi計算、相關性、有限脈衝響應濾波及其他演算法。再者,較佳的處理器係支援實施於多重位元運算元值上運算的軟體客製化指令,舉例而言,為對於4個或更多個位元的運算元或在電腦字元(典型地為16,32或64位元)之等級作用之指令。實施例係能夠因而有效率地實施複雜的軟體客製化運算成為客製化運算組(串列的及/或平行的),以回應於形成該處理器指令組之一部分的個別的軟體客製化處理器指令。
一個熟習本項技術者之讀者將體認到,雖然上文係已經敘述實施本發明之最佳模式為何及實施本發明之其他適合的模式,但是本發明係不應被限制為於較佳實施例之敘述內所揭示之特定裝置組態或方法的步驟。熟習本項技術者亦將認知,本發明係具有一個廣範圍的應用,這些實施例係認同不偏離本發明之發明觀念下廣泛範圍的修改。
舉例而言,運算子模組之任何態樣係可以動態組構。該可程式查閱表係可以為任何適合於轉換運算碼資訊成為運算子控制設定的構件。於其他實施例中,互連器240、250之一或多個係可以藉由一個指令內的控制資訊被動態組構或者某些運算子係藉由直接上載PSCI而可事先組構係可能的。
100‧‧‧處理器
102‧‧‧指令記憶體
104‧‧‧資料記憶體
110‧‧‧指令擷取及解碼電路
112‧‧‧暫存檔案
118‧‧‧載入/儲存單元
120‧‧‧固定執行單元
126‧‧‧可組態執行單元
108‧‧‧指令匯流排
109‧‧‧位址匯流排
111‧‧‧位址匯流排
113‧‧‧控制匯流排系統
115‧‧‧運算元匯流排系統
121‧‧‧至該資料記憶體
122‧‧‧自該資料記憶體而來
128‧‧‧結果匯流排
210‧‧‧可程式查閱表
230‧‧‧可組態運算子級
240‧‧‧輸入緃橫互連器
250‧‧‧輸出緃橫互連器
249‧‧‧偽靜態控制資訊
242‧‧‧運算元輸入匯流排
202‧‧‧乘法運算子
204‧‧‧算術邏輯單元運算子
206‧‧‧儲存運算子
208‧‧‧移位/排列運算子
279‧‧‧控制輸入
281‧‧‧控制輸出
277‧‧‧運算組態資訊
224‧‧‧運算元
225‧‧‧反饋匯流排
290‧‧‧最終輸出結果
300‧‧‧偽靜態控制資訊(PSCI)設定指令
302‧‧‧第一運算碼部分
303‧‧‧第二運算碼部分
304‧‧‧指令之剩餘部分
400‧‧‧指令格式
410‧‧‧第一運算碼部分
415‧‧‧第二運算碼部分
420‧‧‧運算子組態資訊
430‧‧‧運算元
為了對於本發明有較佳瞭解,且為了顯示相同的方式如何可以被實施,參照僅作為範例之後附圖式而予以敘述,其中:第1圖係為一個具體化本發明之一個電腦處理器的一個方塊圖;第2圖係為一個示意地顯示第1圖的電腦處理器之一個示範性可組態執行單元之方塊圖;第2A圖係為一個被實施為可程式邏輯陣列(PLA)的示範性可程式查閱表之方塊圖;第2B圖係為一個被實施為串接的PLA的示範性可程式查閱表之方塊圖;第3圖係示意地顯示適合與第1圖之該電腦系統一起使用之示範性指令格式。
126...可組態執行單元
202...乘法運算子
204...算術邏輯單元運算子
206...儲存運算子
208...移位/排列運算子
210...可程式查閱表
224...運算元
225...反饋匯流排
230...可組態運算子級
240...輸入縱橫互連器
242...運算元輸入匯流排
249...偽靜態控制資訊
250...輸出縱橫互連器
277...運算組態資訊
279...控制輸入
281...控制輸出
290...最終輸出結果
Claims (22)
- 一種可組態執行單元,其係包含:複數個運算子模組,其係能夠在處理多位元運算元值之等級下被一個指令動態組構,該運算子模組或每一個運算子模組係可連接成接收一個資料處理指令中指示之輸入運算元,其中至少一個可組態運算子模組係硬接線以支援一個預定的運算種類,且係可被運算子組態設定動態組構以調整整體運算種類內運算子功能及/或行為;一個可程式查閱表,其係實施當作一個可程式邏輯陣列,且係可連接成接收:(i)自該資料處理指令之一個運算碼部分決定而來的動態組態資訊,該可程式邏輯陣列包含偽靜態控制資訊,其係與攜帶該動態組態資訊之資料處理指令無關而被提供,且該可程式邏輯陣列係進一步可連接成接收(ii)一或多個由該些運算子模組而來的控制輸出,且係可操作成將該動態組態資訊以及該(些)控制輸出轉換成界定該可組態運算子模組之功能及/或行為的一個態樣之運算組態設定,以便在一個指令接著一個指令之基礎下動態地組構該些運算子模組;以及一個可組態切換結構,其係被連接以提供該些輸入運算元到該些運算子模組,且具有至少一部分由偽靜態控制資訊所界定之連結,該靜態控制資訊係與攜帶該動態組態資訊之資料處理指令無關而被提供。
- 如申請專利範圍第1項之可組態執行單元,其中, 該可程式查閱表係包含串接的可程式邏輯陣列。
- 如申請專利範圍第1項之可組態執行單元,其中,該可組態切換結構係包含下列之一或多個:一個連接至該些可組態運算子模組之上游的可組態輸入互連裝置,及一個連接至該可組態運算子模組之下游的可組態輸出互連裝置。
- 如申請專利範圍第3項之可組態執行單元,其中,該可組態切換結構係包含一個可組態輸入互連裝置及一個可組態輸出互連裝置,該可組態輸入互連裝置係連接至該可組態運算子模組之上游,且該可組態輸出互連裝置係連接至該可組態運算子模組之下游。
- 如申請專利範圍第4項之可組態執行單元,其中,一或多個可組態運算子模組之一或多個輸出端係連接至該可組態輸入互連裝置。
- 如申請專利範圍第1項之可組態執行單元,其中,該些可組態運算子模組係包含一個具有可組態移位及/或排列功能的模組。
- 如申請專利範圍第1項之可組態執行單元,其中該偽靜態控制資訊係藉由組態設定指令而被建立。
- 如申請專利範圍第1項之可組態執行單元,其係包含一或多個動態可組態運算子,其中,於使用時,一個根據該組態資訊之運算子組態係對於該資料處理運算內所指示之運算元作用。
- 如申請專利範圍第1項之可組態執行單元,其係 包含一或多個動態可組態運算子,其中,於使用時,一個根據該組態資訊之運算子組態係對於一個後續指令內所指示之運算元作用。
- 如申請專利範圍第1項之可組態執行單元,其係能夠在輸出結果之前回應一個對於一個運算元實施兩個或更多個循序且可選擇組態的運算的單一指令。
- 如申請專利範圍第1項之可組態執行單元,其中,一或多個該可組態運算子模組係支援單指令多資料(SIMD)運算。
- 如申請專利範圍第1項之可組態執行單元,其係包含於一或多個下列運算子種類之運算子:乘法、算術邏輯、儲存、移位及/或排列。
- 如申請專利範圍第1項之可組態執行單元,其中,該可程式查閱表係產生選自下列之一或多個之運算子組態設定:一個進位輸入訊號;一個多工器選擇;一個可轉讓輸入;一個溢流設定;及其他適合的運算子輸入。
- 如申請專利範圍第1項之可組態執行單元,其中,自該動態可組態運算子模組而來至該可程式查閱表之輸入係包含選自下列之一或多個:一個溢流指示;一個先進先出全訊號;一個算術比較的布林結果;及運算子的其他適合的輸出。
- 一種操作可組態執行單元之方法,該可組態執行單元係包含複數個運算子模組,其係能夠在處理多位元運算元值之等級下被一個指令動態組構,該方法係包含: 將指示一個輸入運算元且包含在一個運算碼中之組態資訊的一個資料處理指令予以解碼;將來自該些運算子模組的一或多個控制輸出和該組態資訊供應到一個可程式查閱表,該可程式查閱表係對於至少一個可組態運算子將該組態資訊以及該(些)控制輸出轉換成運算子組態設定,其中該可程式查閱表係實施當作一個可程式邏輯陣列,且包含偽靜態控制資訊,其係與攜帶動態組態資訊之指令無關而被提供;提供該運算子組態設定成為至少一個可組態運算子,使得該運算子之功能及/或行為的一個態樣係在一個指令接著一個指令之基礎下,可以選擇地被調整;以及藉由該偽靜態控制資訊來界定被連接以提供該輸入運算元至該些運算子模組之一可組態切換結構的連結,該靜態控制資訊係與攜帶該動態組態資訊之指令無關而被提供。
- 如申請專利範圍第15項之方法,其中,一串列兩個或更多個運算係串列實施,以回應於該指令。
- 如申請專利範圍第15項之方法,其中,兩個或更多個運算係可以平行實施,以回應於該指令。
- 如申請專利範圍第15項之方法,其中,串列及平行運算的組合被實施,以回應於該指令。
- 如申請專利範圍第15項之方法,其中,複數個串列及/或平行運算被實施以回應於該指令,且至少一個中間的結果係在運算之間或在自該可組態執行單元輸出 至一個結果儲存器之前,被保存於一個儲存運算子之中。
- 如申請專利範圍第15項之方法,其中,複數個串列及/或平行運算被實施以回應於該指令,且一個中間的結果係在運算之間或在自該可組態執行單元輸出至一個結果儲存器之前,被移位或排列。
- 一種電腦程式產品,其係包含程式碼構件以便被一個電腦執行,用於實施申請專利範圍第15至20項中任一項之方法。
- 一種用於一個電腦處理器之指令集,該電腦處理器包括一個可組態執行單元,該指令集包括:一資料處理指令,其具有一個運算碼部分,該運算碼部分係定義一個型式之資料處理運算,該型式係包含用於設定一個可組態執行單元的一或多個運算子之一個組態的動態組態資訊;一個組態資訊域,其係含有運算子組態資訊;及至少一個指示一個使用於該資料處理運算之運算元之域;及一個設定指令,其係用於將偽靜態控制資訊分配至該處理器之構件。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/122,385 US8966223B2 (en) | 2005-05-05 | 2005-05-05 | Apparatus and method for configurable processing |
Publications (2)
Publication Number | Publication Date |
---|---|
TW200707280A TW200707280A (en) | 2007-02-16 |
TWI439928B true TWI439928B (zh) | 2014-06-01 |
Family
ID=36659717
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW095116018A TWI439928B (zh) | 2005-05-05 | 2006-05-05 | 可組態執行單元,操作其之方法,以及電腦程式產品及其指令集 |
Country Status (10)
Country | Link |
---|---|
US (2) | US8966223B2 (zh) |
EP (1) | EP1877896B1 (zh) |
JP (1) | JP4806009B2 (zh) |
KR (1) | KR20080015836A (zh) |
CN (1) | CN101218560B (zh) |
AT (1) | ATE504037T1 (zh) |
CA (1) | CA2606558A1 (zh) |
DE (1) | DE602006021000D1 (zh) |
TW (1) | TWI439928B (zh) |
WO (1) | WO2006117562A1 (zh) |
Families Citing this family (37)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007193435A (ja) * | 2006-01-17 | 2007-08-02 | Matsushita Electric Ind Co Ltd | 情報処理端末、プログラム |
US8099583B2 (en) * | 2006-08-23 | 2012-01-17 | Axis Semiconductor, Inc. | Method of and apparatus and architecture for real time signal processing by switch-controlled programmable processor configuring and flexible pipeline and parallel processing |
US8276120B2 (en) * | 2007-10-30 | 2012-09-25 | Coreworks, S.A. | Reconfigurable coprocessor architecture template for nested loops and programming tool |
GB0721429D0 (en) | 2007-10-31 | 2007-12-12 | Icera Inc | Processing signals in a wireless communications environment |
GB0721427D0 (en) | 2007-10-31 | 2007-12-12 | Icera Inc | Processing signals in a wireless newtwork |
GB2454914B (en) | 2007-11-22 | 2012-07-25 | Icera Inc | Clock control |
GB2459733B (en) | 2008-04-30 | 2012-12-19 | Icera Inc | Clock configuration |
GB2459939B (en) | 2008-05-16 | 2012-02-15 | Icera Inc | Fetching descriptors in a multiple context DMA engine |
US8078833B2 (en) * | 2008-05-29 | 2011-12-13 | Axis Semiconductor, Inc. | Microprocessor with highly configurable pipeline and executional unit internal hierarchal structures, optimizable for different types of computational functions |
US8181003B2 (en) * | 2008-05-29 | 2012-05-15 | Axis Semiconductor, Inc. | Instruction set design, control and communication in programmable microprocessor cores and the like |
CN101630305B (zh) * | 2008-07-16 | 2011-05-11 | 中国人民解放军信息工程大学 | 高效能计算机中可重构部件的柔性管理方法 |
GB0818918D0 (en) | 2008-10-15 | 2008-11-19 | Icera Inc | Boot algorithm |
US9170816B2 (en) | 2009-01-15 | 2015-10-27 | Altair Semiconductor Ltd. | Enhancing processing efficiency in large instruction width processors |
GB2466982B (en) | 2009-01-16 | 2013-07-17 | Nvidia Technology Uk Ltd | DMA Engine |
GB2467760B (en) | 2009-02-12 | 2013-05-22 | Icera Inc | Method for generating transmitter power amplifier ramp profiles from a single reference ramp pattern |
GB0910850D0 (en) | 2009-06-23 | 2009-08-05 | Icera Inc | Processing signals in a wireless network |
JP5785357B2 (ja) * | 2009-06-25 | 2015-09-30 | スパンション エルエルシー | リコンフィグ演算装置を備えるコンピュータシステムおよびリコンフィグ演算装置 |
CN102043755B (zh) * | 2009-10-22 | 2012-12-05 | 财团法人工业技术研究院 | 可重组态处理装置及其系统 |
GB2483225B (en) | 2010-08-27 | 2018-07-11 | Nvidia Tech Uk Limited | Improved processor architecture |
KR20120134549A (ko) | 2011-06-02 | 2012-12-12 | 삼성전자주식회사 | Simd 프로세서를 이용한 병렬 연산 처리 장치 및 방법 |
US10255228B2 (en) * | 2011-12-06 | 2019-04-09 | Nvidia Corporation | System and method for performing shaped memory access operations |
US9558006B2 (en) * | 2012-12-20 | 2017-01-31 | Intel Corporation | Continuous automatic tuning of code regions |
US11768689B2 (en) | 2013-08-08 | 2023-09-26 | Movidius Limited | Apparatus, systems, and methods for low power computational imaging |
US10001993B2 (en) | 2013-08-08 | 2018-06-19 | Linear Algebra Technologies Limited | Variable-length instruction buffer management |
US10019260B2 (en) * | 2013-09-20 | 2018-07-10 | Via Alliance Semiconductor Co., Ltd | Fingerprint units comparing stored static fingerprints with dynamically generated fingerprints and reconfiguring processor settings upon a fingerprint match |
KR102259406B1 (ko) * | 2014-07-30 | 2021-06-03 | 모비디어스 리미티드 | 명령어 사전인출을 위한 방법 및 장치 |
EP3125109B1 (en) * | 2015-07-31 | 2019-02-20 | ARM Limited | Vector length querying instruction |
US10860322B2 (en) * | 2015-10-30 | 2020-12-08 | Arm Limited | Modifying behavior of a data processing unit using rewritable behavior mappings of instructions |
US9977677B2 (en) * | 2016-04-07 | 2018-05-22 | International Business Machines Corporation | Execution slice with supplemental instruction port for an instruction using a source operand from another instruction port |
US9734126B1 (en) | 2016-10-10 | 2017-08-15 | International Business Machines Corporation | Post-silicon configurable instruction behavior based on input operands |
US10963265B2 (en) * | 2017-04-21 | 2021-03-30 | Micron Technology, Inc. | Apparatus and method to switch configurable logic units |
US10409615B2 (en) * | 2017-06-19 | 2019-09-10 | The Regents Of The University Of Michigan | Configurable arithmetic unit |
JP7032647B2 (ja) * | 2018-04-17 | 2022-03-09 | 富士通株式会社 | 演算処理装置及び演算処理装置の制御方法 |
US10565036B1 (en) | 2019-02-14 | 2020-02-18 | Axis Semiconductor, Inc. | Method of synchronizing host and coprocessor operations via FIFO communication |
US11500644B2 (en) * | 2020-05-15 | 2022-11-15 | Alibaba Group Holding Limited | Custom instruction implemented finite state machine engines for extensible processors |
CN112783614A (zh) * | 2021-01-20 | 2021-05-11 | 北京百度网讯科技有限公司 | 对象处理方法、装置、设备、存储介质以及程序产品 |
EP4080354A1 (en) * | 2021-04-23 | 2022-10-26 | Nxp B.V. | Processor and instruction set |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5361373A (en) | 1992-12-11 | 1994-11-01 | Gilson Kent L | Integrated circuit computing device comprising a dynamically configurable gate array having a microprocessor and reconfigurable instruction execution means and method therefor |
US5600845A (en) * | 1994-07-27 | 1997-02-04 | Metalithic Systems Incorporated | Integrated circuit computing device comprising a dynamically configurable gate array having a microprocessor and reconfigurable instruction execution means and method therefor |
US6052773A (en) * | 1995-02-10 | 2000-04-18 | Massachusetts Institute Of Technology | DPGA-coupled microprocessors |
US5794062A (en) * | 1995-04-17 | 1998-08-11 | Ricoh Company Ltd. | System and method for dynamically reconfigurable computing using a processing unit having changeable internal hardware organization |
US5784636A (en) * | 1996-05-28 | 1998-07-21 | National Semiconductor Corporation | Reconfigurable computer architecture for use in signal processing applications |
US6023742A (en) * | 1996-07-18 | 2000-02-08 | University Of Washington | Reconfigurable computing architecture for providing pipelined data paths |
US6023564A (en) * | 1996-07-19 | 2000-02-08 | Xilinx, Inc. | Data processing system using a flash reconfigurable logic device as a dynamic execution unit for a sequence of instructions |
JPH118547A (ja) | 1997-06-17 | 1999-01-12 | Fuji Xerox Co Ltd | 再構成可能演算装置 |
US6339819B1 (en) * | 1997-12-17 | 2002-01-15 | Src Computers, Inc. | Multiprocessor with each processor element accessing operands in loaded input buffer and forwarding results to FIFO output buffer |
US6226735B1 (en) * | 1998-05-08 | 2001-05-01 | Broadcom | Method and apparatus for configuring arbitrary sized data paths comprising multiple context processing elements |
US6092174A (en) * | 1998-06-01 | 2000-07-18 | Context, Inc. | Dynamically reconfigurable distributed integrated circuit processor and method |
US6961084B1 (en) * | 1999-10-07 | 2005-11-01 | Ess Technology, Inc. | Programmable image transform processor |
US6255849B1 (en) * | 2000-02-04 | 2001-07-03 | Xilinx, Inc. | On-chip self-modification for PLDs |
KR100457040B1 (ko) * | 2000-06-21 | 2004-11-10 | 패러데이 테크놀로지 코퍼레이션 | 곱셈 누산 명령을 이용한 데이터 처리 장치 및 방법 |
DE60144022D1 (de) * | 2000-11-06 | 2011-03-24 | Broadcom Corp | Umkonfigurierbares verarbeitungssystem und -verfahren |
US20070067380A2 (en) * | 2001-12-06 | 2007-03-22 | The University Of Georgia Research Foundation | Floating Point Intensive Reconfigurable Computing System for Iterative Applications |
WO2003081454A2 (de) * | 2002-03-21 | 2003-10-02 | Pact Xpp Technologies Ag | Verfahren und vorrichtung zur datenverarbeitung |
US7200735B2 (en) | 2002-04-10 | 2007-04-03 | Tensilica, Inc. | High-performance hybrid processor with configurable execution units |
WO2004010320A2 (en) * | 2002-07-23 | 2004-01-29 | Gatechance Technologies, Inc. | Pipelined reconfigurable dynamic instruciton set processor |
WO2004010286A2 (en) | 2002-07-23 | 2004-01-29 | Gatechange Technologies, Inc. | Self-configuring processing element |
AU2003286131A1 (en) * | 2002-08-07 | 2004-03-19 | Pact Xpp Technologies Ag | Method and device for processing data |
US20040122887A1 (en) | 2002-12-20 | 2004-06-24 | Macy William W. | Efficient multiplication of small matrices using SIMD registers |
US7149996B1 (en) * | 2003-07-11 | 2006-12-12 | Xilinx, Inc. | Reconfigurable multi-stage crossbar |
JP2006065788A (ja) * | 2004-08-30 | 2006-03-09 | Sanyo Electric Co Ltd | リコンフィギュラブル回路を備えた処理装置 |
-
2005
- 2005-05-05 US US11/122,385 patent/US8966223B2/en active Active
-
2006
- 2006-05-04 WO PCT/GB2006/001629 patent/WO2006117562A1/en active Application Filing
- 2006-05-04 KR KR1020077028459A patent/KR20080015836A/ko not_active Application Discontinuation
- 2006-05-04 AT AT06727002T patent/ATE504037T1/de not_active IP Right Cessation
- 2006-05-04 JP JP2008509504A patent/JP4806009B2/ja not_active Expired - Fee Related
- 2006-05-04 DE DE602006021000T patent/DE602006021000D1/de active Active
- 2006-05-04 EP EP06727002A patent/EP1877896B1/en active Active
- 2006-05-04 CA CA002606558A patent/CA2606558A1/en not_active Abandoned
- 2006-05-04 CN CN2006800245248A patent/CN101218560B/zh active Active
- 2006-05-05 TW TW095116018A patent/TWI439928B/zh active
-
2011
- 2011-03-11 US US13/045,708 patent/US8671268B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
JP4806009B2 (ja) | 2011-11-02 |
US8671268B2 (en) | 2014-03-11 |
CN101218560A (zh) | 2008-07-09 |
EP1877896A1 (en) | 2008-01-16 |
EP1877896B1 (en) | 2011-03-30 |
US20110161640A1 (en) | 2011-06-30 |
US8966223B2 (en) | 2015-02-24 |
US20060253689A1 (en) | 2006-11-09 |
KR20080015836A (ko) | 2008-02-20 |
JP2008541216A (ja) | 2008-11-20 |
ATE504037T1 (de) | 2011-04-15 |
CN101218560B (zh) | 2012-06-06 |
WO2006117562A1 (en) | 2006-11-09 |
DE602006021000D1 (de) | 2011-05-12 |
CA2606558A1 (en) | 2006-11-09 |
TW200707280A (en) | 2007-02-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI439928B (zh) | 可組態執行單元,操作其之方法,以及電腦程式產品及其指令集 | |
US8443170B2 (en) | Apparatus and method for performing SIMD multiply-accumulate operations | |
US20030023830A1 (en) | Method and system for encoding instructions for a VLIW that reduces instruction memory requirements | |
US7350054B2 (en) | Processor having array of processing elements whose individual operations and mutual connections are variable | |
US20090077154A1 (en) | Microprocessor | |
JP4885422B2 (ja) | ガロア拡大体線形変換器 | |
GB2395811A (en) | Reconfigurable integrated circuit | |
JP2011096254A (ja) | 乗累算演算を実行するための装置および方法 | |
JP2006519548A (ja) | プログラム可能な論理セルのアレイをもつ電子回路 | |
WO2006136764A1 (en) | A data processing apparatus and method for accelerating execution of subgraphs | |
US6754689B2 (en) | Method and apparatus for performing subtraction in redundant form arithmetic | |
JPH11212786A (ja) | レジスタベースデータ処理のためのデータパスおよび方法 | |
US6317770B1 (en) | High speed digital signal processor | |
JP3479385B2 (ja) | 情報処理装置 | |
EP2851786A1 (en) | Instruction class for digital signal processors | |
EP3125109B1 (en) | Vector length querying instruction | |
JP2005508554A (ja) | データ操作を利用したデータの計算と処理方法、及び、その装置 | |
CN113485751A (zh) | 执行伽罗瓦域乘法的方法、运算单元和电子装置 | |
EP2751672A1 (en) | Vector execution unit for digital signal processor | |
KR100821918B1 (ko) | 데이터 경로의 재구성이 가능한 디지털 신호 처리기 | |
JP2001092658A (ja) | データ処理回路及びデータ処理装置 | |
JP2008003663A (ja) | データ処理装置、データ処理方法 | |
KR100737802B1 (ko) | 모듈형 디지털 신호 프로세서 블록 및 이를 이용한시스템-온-칩 | |
CN117032801A (zh) | 可用于sha256的指令执行方法、设备、数据处理系统及芯片 | |
Thirer et al. | Parallel Processing for a DSP Application using FPGA |