TWI533210B - 串流資料處理器 - Google Patents
串流資料處理器 Download PDFInfo
- Publication number
- TWI533210B TWI533210B TW102133996A TW102133996A TWI533210B TW I533210 B TWI533210 B TW I533210B TW 102133996 A TW102133996 A TW 102133996A TW 102133996 A TW102133996 A TW 102133996A TW I533210 B TWI533210 B TW I533210B
- Authority
- TW
- Taiwan
- Prior art keywords
- data
- stream
- processing
- streaming
- memory
- Prior art date
Links
- 238000012545 processing Methods 0.000 claims description 115
- 230000015654 memory Effects 0.000 claims description 85
- 230000006870 function Effects 0.000 claims description 52
- 238000010586 diagram Methods 0.000 description 18
- 238000000034 method Methods 0.000 description 17
- 230000008569 process Effects 0.000 description 12
- 238000013459 approach Methods 0.000 description 11
- 239000013598 vector Substances 0.000 description 11
- 230000008901 benefit Effects 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 5
- 238000012546 transfer Methods 0.000 description 5
- 238000001914 filtration Methods 0.000 description 3
- 239000011159 matrix material Substances 0.000 description 3
- 230000000903 blocking effect Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000006798 recombination Effects 0.000 description 1
- 238000005215 recombination Methods 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000010561 standard procedure Methods 0.000 description 1
- 230000009466 transformation 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/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
- G06F15/8007—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors single instruction multiple data [SIMD] multiprocessors
- G06F15/8015—One dimensional arrays, e.g. rings, linear arrays, buses
-
- 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 or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3851—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Advance Control (AREA)
- Information Transfer Systems (AREA)
Description
本發明與運算系統中的資料處理器相關,尤其相關於利用串流資料處理器為無線通訊系統中之數位基頻積體電路提高彈性、縮減晶片面積、降低耗電量的技術相關。
為行動電話提供基頻晶片之半導體公司必須面對的挑戰眾多,諸如晶片尺寸、能源效率、效能、上市時間、支援多種無線存取模式,以及不斷演進的規格。由於專用硬體能提供最佳的晶片尺寸及功率,在過去被廣泛使用。近年來的趨勢之一則是採用以軟體無線電(software-defined radio,SDR)為基礎的方案,以期縮短上市時間。產品需求與時俱進、變化快速。先期產品通常著重彈性,而後期產品通常較重視晶片尺寸及能源效率。因此在實務上,需要一個能銜接先期產品和後期產品之轉型的資料處理器。
軟體無線電系統係指利用嵌入式系統之軟體來實現的無線通訊系統。軟體無線電的觀念並不新穎,而數位電子技術的快速發展使過去許多不可行的構想得以實現。用來實現軟體無線電的技術包含:粗粒可重組陣列(coarse grain reconfigurable array,CGRA)、數位信號處理器(DSP),以及可重組運算平台(RCP)。
具有高處理功率及高彈性的CGRA包含多個可重組資料處理單元(rDPU)與一個可重組通訊結構,其可重組性的層級為字組(word)或運
算元(operand)(可參考2005年T.J.Todman等人發表的「Reconfigurable computing:architectures and design methods」)。CGRA可採用數百個或僅少量的rDPU;該等rDPU可相同或不同。各rDPU被賦予不同的任務,其能力可低如最小運算邏輯單元(arithmetic logic unit,ALU)或緩衝器,亦可高如完整的處理器。在不同應用中,CGRA的可重組性可大不相同。CGRA的問題在於難以實現用以將高階C語言映射至一平台的軟體工具。軟體設計師必須深入瞭解該平台,始能寫出適合CGRA的特定軟體。
DSP的歷史悠久,通常被用於實現GSM基頻接收器。DSP被最佳化為適於處理大量資料,而非執行控制碼。DSP係藉由平行演算法來達到高資料處理量。適用於嵌入式系統的DSP架構有:實現指令平行化之超長指令字集(very long instruction word,VLIW)、實現資料平行化之單一指令多重資料(single instruction multiple data,SIMD)、實現任務平行化及管道式(pipelining)執行指令之多工作線(multithreading)。
在超長指令字集(VLIW)架構中,提供至多個功能單元的多個指令係平行送出。最直接的VLIW架構允許資料載入、運算及資料儲存同時發生。此外,亦有允許多個運算邏輯單元(ALU)同時獨立運作的實現方式。所有的相關性皆由編譯器靜態處理,不需要偵測及處理相關性的專用硬體。這種做法使得VLIW架構尤其適用於嵌入式方案。然而,從程式碼大小的角度看,VLIW架構之資料平行化的效率相當低。即使相同的運算被多次執行,各功能單元仍各自需要個別指令。
程式碼大小對嵌入式系統至關重要,而單一指令多重資料(SIMD)架構是可解決此問題的一種方案。在SIMD架構中,相同的指令被施
於一資料向量的不同元素上。處理器處理的是一個向量檔案,而非一暫存器檔案。該等向量通常相當短;向量暫存器的寬度在64到512位元之間,對應於四個到三十二個十六位元的向量元素。長資料向量必須被分割為多個較短的向量。
根據阿姆達爾定律(Almdahl’s law),將子任務加速之有效性是有上限的。要突破此上限的方法便是利用指令平行化。超長指令字集(VLIW)架構常被用於控制一純量(scalar)單元、一單一指令多重資料(SIMD)單元與一位址產生單元。
多工作線(multithreading)意指平行執行多個獨立的軟體任務並且分時共享(time-sharing)處理器核心。由於分時處理會增加負荷,這種做法在嵌入式系統中幫助不大。軟體無線電方案通常必須在嚴格的時限內完成多種任務,是否同時進行多個任務相對而言並不重要。然而,多工作線可被用於採用閒置的功能單元。VLIW架構能藉此被最佳化。另一種實現多工作線的方式是允許不同的任務佔據管道式指令中的不同階段。
可重組運算平台(RCp)結合了一個或多個傳統處理器與一個或多個可重組處理單元(可參考2002年G.Estrin於IEEE Annals of the History of Computing,vol.24,no.4,pp.3-9發表的「Reconfigurable computer origins:The UCLA fixed-plus-variable(F+V)structure computer」)。
加速一系統最直接的方法是透過複製(duplication),將一任務分割為多個平行執行的子任務。然而這種做法相當昂貴,且加速成效受限於該等子任務的相關性。
另一方面,可重組架構允許個別子功能的加速。因為重複使
用的關係,額外的硬體成本有限。由於各子任務仍是平行執行,這種做法的一大優點是各子任務間的相關性並不重要。然而,阿姆達爾定律對於可達到的整體速度增進仍設有上限。
可重組運算平台(RCP)架構的整體數據機處理包含一系列的運算核心(例如傅利葉轉換、解調、解碼)。一運算核心通常包含處理一組資料的一個緊密迴圈(tight loop)。這些核心之間資料傳輸的相當少。待處理事件被分割為兩個任務:一個任務是執行該運算核心(理想上是由能有效執行該運算核心的可重組硬體完成),另一個任務則是重新配置硬體並為核心的運作排程(由傳統處理器來實現)。
連接可重組硬體至處理器的方式有四種基本選擇:透過外部、處理器匯流排、共處理器、暫存器檔案(可參考Henrik Svensson於2008年出版的書籍「Reconfigurable Architectures for Embedded Systems」)。
最合適的連結方式與可重組硬體的粒狀性(granularity)有關。若係以場效可規劃閘極陣列(field-programmable gate array,FPGA)來實現可重組硬體,且不需直接存取處理器記憶體,則可採用外部連結。若可重組硬體實現了整個核心,且資料可透過直接記憶體存取(DMA)被傳輸至處理器記憶體或自處理器記憶體輸出,處理器匯流排也是一種選項。或者,可重組硬體可為能直接存取處理器快取記憶體之一共處理器。此外,可重組硬體亦可為處理器之一功能單元,直接處理暫存器檔案。
專用硬體的好處之一是其運算位元寬度可針對特定應用被最佳化。這種做法能將邏輯晶片和記憶體的尺寸最小化。軟體無線電方案通常限於利用8、16、32、64位元的運算,未必能完全實際處理需求。因此,
相較於專用硬體,軟體無線電方案的額外運算較多、晶片尺寸及記憶體利用效率較差。
對行動裝置來說,晶片尺寸及能源效率至關重要。對以處理器為基礎的方案來說,這直接相關於程式碼大小及運算寬度。用以實現軟體無線電方案的先前技術所採用之處理器係使用元素運算、短向量及標準運算寬度。藉由利用高階運算、資料串流運算及特製運算寬度,串流資料處理器(SDP)方案增進了晶片尺寸及能源效率。一資料串流是具有任意長度之一資料取樣序列。高階運算及資料串流運算會降低指令數量。特製運算寬度則會降低資料記憶大小體及處理功能。
串流資料處理器之處理對象為資料串流,且能依任意順序存取資料串流元素。這種做法能有效率地實現多種高階功能,例如解擾、排序及矩陣運算。加擾是一種將錯誤平均分散於大資料封包中的標準技術,常用於電信標準中的多個層級。相對應地,接收端之數位基頻必須進行解擾。由於需要以多重疊代的混洗(shuffle)程序來處理大資料封包,解擾難以有效率地實現在處理短向量的處理器上。然而,串流資料處理器能於單一路徑有效率地將大資料封包解擾。
由於可直接轉移至專用硬體,且一旦已知基本處理功能便可在開發演算法時便開始準備,以串流資料處理器為基礎的架構能提供快速的上市時間。在開發演算法時,可同時開發處理元素及功能的專用硬體。初期平台中的功能之排列組合可保持為可程式化的。一旦演算法已確定,就能在較具晶片尺寸及能源效率的專用硬體上進行排列組合。這種做法使得開發處理引擎時能更有彈性、更適用目標應用。
本發明的實施例係採用複數個串流資料處理器來實現有彈性的運算系統。該運算系統能在不耗費大量電力和晶片面積的情況下處理大量資料。本發明的應用領域之一是無線通訊系統中的數位基頻積體電路。
為了結合專用硬體的優點和傳統軟體無線電的優點,複數個串流資料處理器中的每一個串流資料處理器各自被分割為一個或多個串流處理單元(SPU)及一個串流控制單元(SCU)。SPU係以專用硬體實現處理功能,因此在晶片尺寸及能源效率方面是有效率的。該等運算的位元寬度可針對特定應用被最佳化。與SPU相關之資料記憶體的大小相當於利用專用硬體實現整個基頻電路時的記憶體大小。相較於傳統軟體無線電方案,這種串流資料處理器方案在晶片尺寸方面更有效率。
SCU會將處理功能排序。有多種不同的SCU實現選擇,範圍涵蓋具有彈性的傳統軟體無線電方案至晶片尺寸有效率的專用硬體方案。有彈性的軟體定義SCU可被選擇,以最小化產品的上市時間。以專用硬體為基礎的SCU則可用於後續版本的產品中,以最小化晶片尺寸。
各個串流資料處理器可自外部或內部來源(例如其他串流資料處理器或專用硬體)接收一個或多個輸入資料串流。該等資料串流能包含需要被處理的數位資料信號,或是對應於處理過程中的運算。輸出資料串流可被寫入串流資料處理器的資料記憶體,或是透過資料介面輸出至外部或內部接收器。
該等輸入資料介面及輸出資料介面是有彈性的,在接收資料串流時能允許連結至專用硬體或另一SPU,包含連結資料FIFO模組、資料緩
衝器(包含直接記憶體存取或仲裁後記憶體存取),或是任意上述連結間的時間多工。
各串流資料處理器中的SPU包含一個或多個處理元素,各處理元素又包含一個或多個處理功能電路,用以接收一個或多個輸入資料串流。該等資料串流可為自資料記憶體讀取的運算資料,或是自外部輸入介面接收的資料。處理元素的輸出可被傳遞至外部資料輸出介面,或是透過硬體仲裁器提供至資料記憶體。硬體仲裁器利用仲裁方案,使多個資料串流得共享記憶體存取。處理功能的範例包含傅利葉轉換/反向傅利葉轉換、向量及矩陣運算、排序及過濾功能。
於一實施例中,各資料串流可被分散至所有的資料記憶體。透過合適的位址解碼方案,SCU不需要知道記憶體的總數量。於另一實施例中,各資料串流被分別儲存至不同的資料記憶體。在這個情況下,SCU必須知道記憶體的總數量。
SCU將組態資料提供給SPU。一種SCU方案是利用一專用微處理器來配置一個或多個SPU。一組態暫存器區塊被用做一雙重緩衝器,以於SPU依某種組態運作時先準備好下一種組態,藉此最小化SPU閒置時間。以微處理器做為組態控制器的一個優點是SPU及微處理器能共享資料記憶體,以減少資料傳輸負荷。
另一個SCU方案則是利用有限狀態機(FSM)自先進先出單元讀取組態序列。該先進先出單元係由一較高階處理器(例如DSP)更新。有限狀態機亦可自唯讀記憶體讀取組態序列並將該等序列施加於SPU。另一種選擇是直接透過設計於專用硬體或可重組硬體中的有限狀態機產生組態序列
程序。
串流資料處理器的處理對象為:自外部來源傳遞至串流資料處理器的串流、自串流資料處理器傳遞至外部接收器的串流、內部區塊與串流資料處理器間的串流。RVG(Ready/Valid/Go)介面被用以於發送器和接收器間傳遞串流。所有的接收器已就緒且所有的發送器輸出資料皆為正確時,才能進行傳輸。RVG介面提供了一種連接同步區塊的彈性方法。
以軟體無線電為基礎的方案提供了快速的上市時間。專用硬體設計通常具有最佳晶片尺寸及能源效率。先前技術中並於整合這兩種方案的方式。本發明利用以複數個串流資料處理器為基礎之一運算系統解決問題。各串流資料處理器各自被分割為以專用硬體實現的SPU及可配置之SCU。用於處理資料的SPU在晶片尺寸及能源方面是有效率的。SCU的不同實現選擇在彈性及晶片尺寸及能源效率的取捨間提供了選擇。
關於本發明的優點與精神可以藉由以下發明詳述及所附圖式得到進一步的瞭解。
110‧‧‧天線
120‧‧‧射頻模組
130‧‧‧數位基頻模組
140‧‧‧實體層處理單元
150‧‧‧數位信號處理單元
160‧‧‧微控制器單元
210(0)~210(L-1)‧‧‧串流資料處理模組
220‧‧‧連結模組
230‧‧‧傳輸埠介面
310‧‧‧串流資料處理器
320、325‧‧‧專用硬體輸入電路
330、335‧‧‧專用硬體輸出電路
410‧‧‧串流處理單元
420‧‧‧記憶體
430‧‧‧串流控制單元
440‧‧‧SCU方案
450‧‧‧專用硬體方案
460‧‧‧可重組硬體方案
470‧‧‧記憶體存取路徑
441‧‧‧微處理器
442、443‧‧‧有限狀態機
444‧‧‧組態暫存器
510(0)~510(N-1)‧‧‧處理元素
520、550‧‧‧多工器
540‧‧‧輸入資料介面
560‧‧‧輸出資料介面
570(0)~570(M-1)‧‧‧硬體仲裁器
580(0)~580(M-1)‧‧‧資料記憶體
910、920‧‧‧資料串流
810(0)~810(W-1)‧‧‧處理功能
820(0)~820(U-1)‧‧‧讀取區塊
830(0)~830(V-1)‧‧‧寫入區塊
840‧‧‧多工器
圖一呈現典型數位基頻方案的簡易功能方塊圖。
圖二繪示了實體層處理單元的一種實施例之功能方塊圖。
圖三為串流資料處理模組之功能方塊圖。
圖四(A)顯示了串流資料處理器的簡易功能方塊圖。
圖四(B)~圖四(E)係用以說明不同的實施例中的串流控制單元方案之簡易功能方塊圖。
圖五(A)係繪示串流處理器單元的一種功能方塊圖範例。
圖五(B)及圖五(C)呈現了兩種可能的實施例,來說明如何將不同的資料串流映射至資料記憶體。
圖六呈現了RVG介面的簡易功能方塊圖。
圖七呈現了RVG介面的典型時序圖。
圖八為處理元素之功能方塊圖。
使用者無線裝置中的數位基頻部份負責處理實體層(PHY)所需之數位信號。圖一呈現一個根據本發明設置的數位基頻方案的簡易功能方塊圖。使用者裝置中的天線110及射頻模組120係用以處理射頻資料傳送及接收,包含將基頻信號升頻至傳輸頻率,以及將收到的信號降頻為基頻信號。數位資料處理是由數位基頻模組130負責,其中包含實體層處理單元140、數位信號處理(DSP)單元150,以及微控制器(MCU)單元160。MCU單元160係用以控制數位基頻的功能,DSP單元150則是用以進一步處理實體層未處理的信號。
數位基頻處理必須根據需要的程序類型被最佳化,以達到低成本及低功耗。為了符合這些需求,實體層必須為模組化、可縮放且可擴充的,也就是將多個模組組合為一特定實體層,以涵蓋所需功能,並且可依據需要加入新的模組。
圖二繪示了實體層處理單元140的一種實施例之功能方塊圖,其中包含複數個串流資料處理模組210(0)~210(L-1)及一連結模組220,用以為串流資料處理模組210(0)~210(L-1)傳遞輸入資料串流Rx及輸出資料串
流Tx。連結模組220也被用以在串流資料處理模組210(0)~210(L-1)間傳遞資料串流。頂層組態介面(傳輸埠介面230)係由一較高階處理器(例如圖一中的DSP單元150或MCU單元160)使用,以對串流資料處理模組210(0)~210(L-1)進行配置。
圖三為串流資料處理模組210之功能方塊圖,其中包含一串流資料處理器310,一個或多個專用硬體輸入電路(320、325)及一個或多個專用硬體輸出電路(330、335)。接收輸入的專用硬體320、325可具備過濾或快速傅利葉轉換功能;提供輸出的專用硬體330、335可具備編碼、解碼、解調或介面功能。實務上,輸入及輸出的資料串流亦可為直接在串流資料處理器310與外部電路之間傳遞。
圖四(A)顯示了串流資料處理器310的簡易功能方塊圖。串流資料處理器310的核心是串流處理單元(SPU)410。記憶體420和串流控制單元(SCU)430係用以協助SPU 410;SCU 430將組態資料提供至SPU 410。SPU 410的組態可根據不同的SCU方案440、450及460改變,容後詳述。
如圖四(B)所示,SCU方案440是指利用一專用微處理器441來配置一個或多個SPU。於一實施例中,可利用記憶體420來實現微處理器的記憶體,供微處理器441(透過記憶體存取路徑470)和SPU 410存取。由於運算係儲存於該記憶體中,可由微處理器441或SPU 410執行運算,不需要任何資料傳輸的額外負擔(overhead)。因此,微處理器441亦能負擔SPU 410未提供的處理功能。圖四(B)~圖四(E)中繪示的組態暫存器444可為一雙重緩衝器(double buffer),以利準備SPU 410的下一個組態。這種做法可最小化SPU 410於連續運作間的閒置時間。
於另一實施例中,SCU方案440可不使用專用微處理器。如圖四(C)所示,一種彈性方案為利用連接至大指令先進先出(FIFO)單元的有限狀態機(FSM)442來讀取一連串的組態。一連串的組態可被預先決定或即時產生,並由較高階處理器(例如DSP 150或MCU 160)依固定時間間隔填入FIFO單元。
圖四(D)呈現了SCU方案440的另一種實施例。此方案利用連接唯讀記憶體(ROM)的有限狀態機(FSM)443讀取一連串的組態,並將該等組態施加於SPU 410。以專用硬體實現的有限狀態機可依序配置運算並選擇需要的暫存器。
其他SCU方案可為:使用以專用硬體450或可重組硬體460設計的有限狀態機來提供所有的組態連續運作。利用有限狀態機的方案皆需要由SPU 410來執行所有的處理功能。
圖四(E)呈現了SCU方案440之另一實施例,其中之SCU方案440平行使用前述微處理器441、有限狀態機442、有限狀態機443、專用硬體450及可重組硬體460的組合。其中一種範例是使用多個專用硬體有限狀態機450處理平行任務、以專用微處理器441為其他任務提供彈性,並利用配合大指令FIFO的有限狀態機442來處理較高階處理器安排的任務。實務上,必須採用合適的仲裁方案來安排該等SPU的組態。
藉由安排一連串的處理元素運作,SCU 430可執行演算法。SCU 430亦能同時執行多個不同的演算法並於其間共用SPU 410的處理能力。各演算法可被視為一個任務,且可能與其他任務相關。SCU 430可利用多工作業來配置同時進行的處理元素運作。用於處理元素配置的仲裁方案
可令多個任務共享處理元素資源。FIFO可被用於實現任務間通訊。
SPU所處理之串流的資料位元寬度可依應用而設計。這種做法可最小化SPU 410及相關記憶體420的晶片尺寸。
圖五(A)係繪示SPU 410的一種功能方塊圖範例。此SPU 410包含一個或多個處理元素510(0)~510(N-1),各自接收一個或多個輸入資料串流。該等輸入資料串流是由多工器(Mux)520自記憶體420中之資料記憶體580(0)~580(M-1)或是一個或多個外部輸入資料介面540選擇的運算資料。處理元素510提供的一個或多個輸出資料串流被傳遞至多工器550,且隨後被寫入資料記憶體580或輸出至一個或多個外部輸出資料介面560。對於資料記憶體580(0)~580(M-1)的存取是由硬體仲裁器570(0)~570(M-1)控制。
各硬體仲裁器570採用一仲裁方案,以於同時流入或流出的資料串流間共用記憶體580(0)~580(M-1)的存取。
輸入資料係由多工器排程並傳遞至該等處理元素中的一個接受處理。多工器亦針對將送入資料記憶體580(0)~580(M-1)的資料排程。某些處理元素可提供繞路模式,以允許將資料直接傳輸至資料記憶體。
各處理元素510一次能執行一種功能,且係由SCU 430獨立設定。不同的處理元素能獨立運作、平行運作,亦能共用相同的資料記憶體580。
圖五(B)及圖五(C)呈現了兩種可能的實施例,來說明如何將不同的資料串流映射至資料記憶體580(0)~580(M-1)。在圖五(B)的實施例中,各資料串流910被分散為橫跨所有的資料記憶體。在圖五(C)的實施例中,各資料串流920被提供至單一資料記憶體。在這個情況下,SPU及微處
理器必須知道記憶體的總數量。
實務上,有多種為串流資料分派記憶體位址空間的方式,以使資料串流910之分配跨越多個資料記憶體580。各記憶體位址(MemAddr)加上記憶體指標(MemIdx=0,1,M-1)被映射為「資料串流位址空間」中的一個位址(DSAddr)。一種可能性是令DSAddr=MemAddr*M+MemIdx。在這個情況下,位址解碼需要除以M;若M為2的次方數,除法可被大幅簡化。SPU及微處理器之處理對象可為「資料串流位址空間」,且無須得知記憶體的實際數量。SPU處理的資料流量通常會隨著M增加,然而這種改良會與採用的處理功能相關。該等讀取Rd及寫入Wr區塊能透過硬體仲裁器同時存取該記憶體。各仲裁器係對應於一記憶體且採用一種仲裁方案(例如循環制仲裁)。資料記憶體的數量為微處理器、Rd區塊、Wr區塊及處理功能所知。記憶體的數量不會影響功能,只影響資料量。
在各資料串流920各自儲存於單一記憶體580的情況下,必須注意記憶體位置,以避免阻塞。由於每次只能存取一個資料串流,若位於相同的記憶體中的不同的資料串流被同時要求存取,便可能會發生阻塞情況。阻塞情況限制了系統的資料處理量。
若一專用微處理器被用以配置一SPU,則可直接自該微處理器及SPU存取運算。由於C語言中的運算指標可被直接用以配置SPU,這種做法簡化了為該微處理器編寫的C語言。這也表示了資料處理可直接由微處理器及SPU執行,省去在多個處理器間傳輸資料的負擔。該微處理器可負責SPU未涵蓋的處理功能。該微處理器透過記憶體存取路徑470進行的存取之權限高於SPU的存取權限。當該微處理器存取資料記憶體時,該等SPU記憶
體仲裁器被停用。
該外部輸入資料介面及外部輸出資料介面為有彈性的,且允許專用硬體或另一SPU連結輸入資料串流,包含連結資料FIFO模組、資料緩衝器(包含直接記憶體存取或仲裁後記憶體存取),或是任意上述連結間的時間多工。
該串流資料處理器之處理對象為串流。串流係自外部來源傳遞至串流資料處理器、自串流資料處理器傳遞至外部接受器,且於串流資料處理器中的內部區塊間傳遞。RVG(Ready/Valid/Go)介面被用於所有外部及內部介面,以自作為傳送器之一區塊將串流傳遞至作為接收器之另一區塊。
圖六呈現了RVG介面的簡易功能方塊圖,用以說明多個接收器及多個傳送器可如何連接。圖七呈現了RVG介面的典型時序圖。只有當所有接收器皆已就緒且所有待送輸出資料為正確時,才能進行傳輸。RVG介面提供了一種連接同步區塊的彈性方法。該介面支援連續的單一週期傳輸。Rdy、Val、Go為必須的控制信號。
發送器提供一輸出Data、一正確輸出信號Val,並讀取一輸入信號Go。當有新資料時,發送器啟動正確輸出信號Val,且於輸入信號Go被啟動時提供該新資料。輸出Data必須保持穩定且正確輸出信號Val必須保持為啟動,直到輸入信號Go被啟動。
接收器提供一輸出信號Rdy,並讀取一輸入Data及一輸入信號Go。準備好接收新資料時,接收器啟動輸出信號Rdy,並於輸入信號Go為啟動時取樣資料。輸出信號Rdy必須被保持為啟動,直到輸入信號Go被啟動。接收器及發
送器在輸入信號Go及Rdy/Val輸出間不能有組合路徑。
連接該等資料埠及產生信號Go使接收器及發送器能傳輸資料。信號Go可藉由透過邏輯及閘結合信號Val和信號Rdy來產生。
圖八為處理元素510之功能方塊圖。該處理元素包含一個或多個處理功能810(0)~810(W-1)、多個讀取(Rd)區塊820(0)~820(U-1)、多個寫入(Wr)區塊830(0)~830(V-1),以及多個多工器840。每個處理功能具有一個或多個用以輸入資料串流的埠,及一個或多個用以輸出資料串流的埠。各處理功能並不知道資料串流是否在記憶體中。可提供相對位址串流給Rd及Wr區塊,供其決定串流資料元素的順序。Rd及Wr區塊將一個可配置的起始位址與一相對位址串流相加,以產生一絕對位址串流。Rd區塊隨後輸出該絕對位址串流至資料記憶體。Rd區塊自記憶體讀取資料,並將資料串流提供給該等處理功能。Wr區塊自該等處理功能接收一資料串流與一相對位址串流。Wr區塊隨後輸出一絕對位址串流至該資料記憶體並將資料寫入該記憶體。該等資料處理功能及Rd/Wr區塊係透過該處理元素組態介面被配置。
某些處理功能可能只需要非常簡單的位址產生。Rd/Wr區塊可直接產生絕對位址,略過相對位址介面。
若未被平行使用,處理功能不同的輸入資料埠能共用Rd區塊及Wr區塊。對一處理元素來說,Rd/Wr區塊及處理功能間的連結通常是固定的。
SCU提供了一獨立組態、一獨立同步致能及一共同觸發給各Rd區塊820、Wr區塊830及處理功能810。在被致能並觸發後,各區塊便開始被分配到的工作。若一區塊被禁能,則該觸發無效。在將被分配到的工作
完成後,各區塊發布一完成旗標。一旦所有處於致能狀態的區塊皆發布該完成旗標,SCU會提供新的配置。若某一程序的結果並非下一個程序的輸入,兩個程序之間的間隔時間可被縮短。當該等Wr區塊繼續在傳輸前一個程序的最後幾個輸出取樣時,該等Rd區塊便可被觸發,進入下一個程序。
Rd區塊820自該記憶體或一外部輸入資料埠讀取資料,並將一資料串流提供至一處理功能。Rd區塊並未分辨有標記或無標記、實數或複數資料。不同的處理功能可以不同的方式解譯資料串流。Rd區塊中的位址產生被配置為具有一起始位址及一位址產生模式。Rd區塊在程序的一開始先取樣起始位址,並且隨後根據位址產生模式,在每次存取後調整該位址。支援的模式包含:增加或減少、相對的(由處理功能提供一相對位址)、固定的(相同的位址被重覆讀取)及被禁能的(當一資料串流係透過外部輸入資料介面提供)。
Wr區塊830自一處理功能接收一資料串流,並將該資料寫入該記憶體或外部輸出資料埠。Wr區塊中的位址產生被配置為具有一起始位址及一位址產生模式。Wr區塊在程序的一開始先取樣起始位址,並且隨後根據位址產生模式,在每次存取後調整該位址。支援的模式包含:增加、減少、相對及固定。
各硬體仲裁器570協調了同時發生的資料串流間之記憶體存取。每個週期中只能發生一次記憶體存取。一般而言,只會有某些同時發生的資料串流在每個週期都需要存取。Rd區塊及Wr區塊為位址串流及資料串流提供緩衝效果。此做法能緩和流入系統的資料流並減少記憶體仲裁造成的資料量限制。
處理功能通常不儲存各程序之間的狀態資訊。處理功能的典型範例為FFT/IFFT、向量及矩陣運算、排序及過濾。
各處理功能具有一同步致能及一觸發輸入埠。當致能信號為‘0’時,處理功能被停止,且觸發輸入信號為無效的。當致能信號為‘1’且觸發輸入信號中出現脈衝時,處理功能開始運作。
處理功能讀取一個或多個輸入資料串流。各資料串流係透過一個獨立的RVG介面提供且連接至一個獨立的Rd區塊。若資料總是同時被呼叫,資料串流的‘Ready’及‘Go’控制信號可結合。
針對各輸入資料串流,處理功能可提供一個獨立的相對讀取位址。由於記憶體仲裁會造成延遲,Rd區塊會在相對讀取位址的數個週期之後才提供資料。處理方式為針對位址及資料採用多個獨立的RVG介面。多數處理功能不需要產生相對位址,除非處理功能需要依Rd區塊未支援的特定次序讀取輸入資料。
該處理功能產生一個或多個輸出資料串流。各資料串流係透過一獨立的RVG介面被提供,且被連接至一獨立的Wr區塊。輸出資料和選擇性的相對位址係透過一RVG介面同時提供。多數處理功能不需要產生相對位址,除非處理功能需要依Wr區塊未支援的特定次序寫入輸入資料。
SPU能緩衝FIFO中的外部輸入資料,FIFO的大小為可配置的,且只要FIFO未完全滿載便會產生新位址。該完全滿載狀態為可配置的。此方案允許單一循環資料傳輸,雖然發送器在讀取位址及供應資料的時間點之間可能會有延遲。一種範例是一資料緩衝器加上受仲裁的記憶體。
藉由以上較佳具體實施例之詳述,係希望能更加清楚描述本
發明之特徵與精神,而並非以上述所揭露的較佳具體實施例來對本發明之範疇加以限制。相反地,其目的是希望能涵蓋各種改變及具相等性的安排於本發明所欲申請之專利範圍的範疇內。
230‧‧‧傳輸埠介面
310‧‧‧串流資料處理器
410‧‧‧串流處理單元
420‧‧‧記憶體
430‧‧‧串流控制單元
440‧‧‧SCU方案
450‧‧‧專用硬體方案
460‧‧‧可重組硬體方案
470‧‧‧記憶體存取路徑
Claims (10)
- 一種串流資料處理器,包含:一個或多個串流輸入介面;一個或多個串流輸出介面;一個或多個記憶體;一個或多個串流處理單元,用以執行複數個資料處理程序;以及一串流控制單元,用以排列該複數個資料處理程序;其中該串流控制單元包含:一個或多個處理元素組態介面,連接該一個或多個串流處理單元;一個或多個頂層組態介面,連接至少一較高階處理器;以及一有限狀態機,用以藉由排列該複數個資料處理程序以執行一任務;該串流處理單元包含:一個或多個記憶體介面,各自包含一記憶體仲裁單元;一個或多個處理元素,用以執行該複數個資料處理程序,各處理元素對應於一處理元素組態介面;一串流輸入多工器;以及一串流輸出多工器。
- 如申請專利範圍第1項所述之串流資料處理器,其中該串流控制單元包含:一個或多個處理元素組態介面,連接該一個或多個串流處理單元;一個或多個頂層組態介面,連接至少一高階處理器;以及複數個有限狀態機,被配置用來執行複數個獨立任務。
- 如申請專利範圍第1項所述之串流資料處理器,其中該串流控制單元包含: 一個或多個處理元素組態介面,連接該一個或多個串流處理單元;一個或多個頂層組態介面,連接至少一高階處理器;以及一組態暫存器,接收一專用微處理器提供之複數個組態序列。
- 如申請專利範圍第1項所述之串流資料處理器,其中該串流控制單元包含:一個或多個處理元素組態介面,連接該一個或多個串流處理單元;一個或多個頂層組態介面,連接至少一高階處理器;以及一組態暫存器,接收一有限狀態機提供之一輸出,該有限狀態機所連接之一先進先出單元儲存有被定期更新之複數個組態序列。
- 如申請專利範圍第1項所述之串流資料處理器,其中該串流控制單元包含:一個或多個處理元素組態介面,連接該一個或多個串流處理單元;一個或多個頂層組態介面,連接至少一高階處理器;以及一組態暫存器,接收一有限狀態機提供之一輸出,該有限狀態機所連接之一唯讀記憶體中儲存有被預先決定之複數個組態序列。
- 如申請專利範圍第1項所述之串流資料處理器,其中各記憶體仲裁單元係用以仲裁同時發生之複數個資料串流所要求之複數個記憶體存取,同時發生之該複數個資料串流流入或流出該等相關記憶體,其中該串流輸入多工器安排一個或多個同時發生的該複數資料串流自該一個或多個串流輸入介面及自該一個或多個記憶體仲裁單元傳遞至該一個或多個處理元素,並且隨後自該一個或多個處理元素傳遞至該一個或多個串流輸出介面及至該一個或多個記憶體仲裁單元。
- 如申請專利範圍第1項所述之串流資料處理器,其中各處理元素包含:一個或多個處理功能,用以執行多個資料串流程序; 一個或多個讀取區塊,用以藉由執行一連串的讀取程序,產生多個處理功能輸入資料串流;以及一個或多個寫入區塊,用以藉由執行一連串的寫入程序,產生多個處理功能輸出資料串流。
- 如申請專利範圍第7項所述之串流資料處理器,其中各處理功能包含:一個或多個串流輸入資料介面;一個或多個串流輸出介面;以及一可配置之串流程序。
- 如申請專利範圍第8項所述之串流資料處理器,其中各輸入串流介面及輸出串流介面分別包含一相對位址串流介面,各相對位址串流介面具有一相對位址產生器。
- 如申請專利範圍第1項所述之串流資料處理器,其中各記憶體具有一位元寬度,該位元寬度係針對該串流資料處理器設計。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP12190919.6A EP2728491A1 (en) | 2012-10-31 | 2012-10-31 | Stream Data Processor |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201416973A TW201416973A (zh) | 2014-05-01 |
TWI533210B true TWI533210B (zh) | 2016-05-11 |
Family
ID=47148629
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW102133996A TWI533210B (zh) | 2012-10-31 | 2013-09-18 | 串流資料處理器 |
Country Status (3)
Country | Link |
---|---|
EP (1) | EP2728491A1 (zh) |
CN (1) | CN103793340B (zh) |
TW (1) | TWI533210B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI735199B (zh) * | 2020-04-08 | 2021-08-01 | 慧榮科技股份有限公司 | 實體層的資料串流切割裝置及方法 |
TWI758770B (zh) * | 2019-07-08 | 2022-03-21 | 美商聖巴諾瓦系統公司 | 靜止可重組態的資料處理器 |
TWI818274B (zh) * | 2020-04-08 | 2023-10-11 | 慧榮科技股份有限公司 | 實體層的資料串流切割裝置及方法 |
US11829759B2 (en) | 2020-04-08 | 2023-11-28 | Silicon Motion, Inc. | Apparatus and method for segmenting a data stream of a physical layer |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3001307B1 (en) * | 2014-09-25 | 2019-11-13 | Intel Corporation | Bit shuffle processors, methods, systems, and instructions |
GB2545718A (en) | 2015-12-23 | 2017-06-28 | Nordic Semiconductor Asa | Radio transceivers |
TWI708149B (zh) * | 2018-11-28 | 2020-10-21 | 聚晶半導體股份有限公司 | 介面傳輸模組以及信號傳輸方法 |
CN111106849B (zh) * | 2019-12-27 | 2021-10-19 | 中科南京移动通信与计算创新研究院 | 一种信号处理装置及信号处理方法 |
TWI761008B (zh) * | 2020-12-30 | 2022-04-11 | 新唐科技股份有限公司 | 可編程串列輸入輸出控制器、操作系統及方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3808394B2 (ja) * | 2002-04-02 | 2006-08-09 | 松下電器産業株式会社 | ストリームデータ処理装置、ストリームデータ処理方法、プログラム、及び、媒体 |
CA2494579C (en) * | 2002-08-24 | 2009-12-22 | Cisco Technology, Inc. | Packet processing engine |
EP1675014B1 (en) * | 2004-12-22 | 2009-09-09 | NEC Electronics Corporation | Data stream processor and information processing apparatus |
US7305649B2 (en) * | 2005-04-20 | 2007-12-04 | Motorola, Inc. | Automatic generation of a streaming processor circuit |
JP2006338538A (ja) * | 2005-06-03 | 2006-12-14 | Nec Electronics Corp | ストリームプロセッサ |
-
2012
- 2012-10-31 EP EP12190919.6A patent/EP2728491A1/en not_active Withdrawn
-
2013
- 2013-09-18 TW TW102133996A patent/TWI533210B/zh not_active IP Right Cessation
- 2013-10-10 CN CN201310470623.0A patent/CN103793340B/zh not_active Expired - Fee Related
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI758770B (zh) * | 2019-07-08 | 2022-03-21 | 美商聖巴諾瓦系統公司 | 靜止可重組態的資料處理器 |
TWI735199B (zh) * | 2020-04-08 | 2021-08-01 | 慧榮科技股份有限公司 | 實體層的資料串流切割裝置及方法 |
TWI818274B (zh) * | 2020-04-08 | 2023-10-11 | 慧榮科技股份有限公司 | 實體層的資料串流切割裝置及方法 |
US11829759B2 (en) | 2020-04-08 | 2023-11-28 | Silicon Motion, Inc. | Apparatus and method for segmenting a data stream of a physical layer |
Also Published As
Publication number | Publication date |
---|---|
EP2728491A1 (en) | 2014-05-07 |
CN103793340A (zh) | 2014-05-14 |
CN103793340B (zh) | 2017-03-01 |
TW201416973A (zh) | 2014-05-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI533210B (zh) | 串流資料處理器 | |
US20240045810A1 (en) | Method and Apparatus for Vector Sorting using Vector Permutation Logic | |
EP3726389B1 (en) | Apparatuses, methods, and systems for memory interface circuit allocation in a configurable spatial accelerator | |
CN114238204B (zh) | 可重构并行处理 | |
US10564980B2 (en) | Apparatus, methods, and systems for conditional queues in a configurable spatial accelerator | |
US10387319B2 (en) | Processors, methods, and systems for a configurable spatial accelerator with memory system performance, power reduction, and atomics support features | |
US8024553B2 (en) | Data exchange and communication between execution units in a parallel processor | |
US10445451B2 (en) | Processors, methods, and systems for a configurable spatial accelerator with performance, correctness, and power reduction features | |
US10515046B2 (en) | Processors, methods, and systems with a configurable spatial accelerator | |
US10469397B2 (en) | Processors and methods with configurable network-based dataflow operator circuits | |
EP3343388A1 (en) | Processors, methods, and systems with a configurable spatial accelerator | |
JP5762440B2 (ja) | 高効率の埋め込み型均一マルチコアプラットフォーム用のタイルベースのプロセッサアーキテクチャーモデル | |
EP3719654A1 (en) | Apparatuses, methods, and systems for operations in a configurable spatial accelerator | |
US20190004878A1 (en) | Processors, methods, and systems for a configurable spatial accelerator with security, power reduction, and performace features | |
US20190095383A1 (en) | Processors, methods, and systems for debugging a configurable spatial accelerator | |
US10678724B1 (en) | Apparatuses, methods, and systems for in-network storage in a configurable spatial accelerator | |
US9448967B2 (en) | Stream data processor | |
US11037050B2 (en) | Apparatuses, methods, and systems for memory interface circuit arbitration in a configurable spatial accelerator | |
EP3757814A1 (en) | Apparatuses, methods, and systems for time-multiplexing in a configurable spatial accelerator | |
US20210200540A1 (en) | Apparatuses, methods, and systems for fused operations in a configurable spatial accelerator | |
Ren et al. | Swift: A computationally-intensive dsp architecture for communication applications | |
JP2004503872A (ja) | 共同利用コンピュータシステム | |
Odendahl et al. | A next generation digital signal processor for European space missions | |
Ren et al. | A VLIW DSP for communication applications | |
Sousa et al. | Reconfigurable buffer structures for coarse-grained reconfigurable arrays |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |