專利名稱:數(shù)字信號處理裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明是關(guān)于一種處理數(shù)字信號的裝置,而且特別是關(guān)于一種用于進行快速傅立葉轉(zhuǎn)換等運算的數(shù)字信號處理裝置。
背景技術(shù):
正交頻分復(fù)用(Orthogonal Frequency Division Multiplexing,OFDM)技術(shù)往往被使用于有線與無線通訊系統(tǒng)(例如ADSL、VDSL、IEEE 802.11a、HIPERLAN/2、DAB以及DVB-T)。進行快速傅立葉轉(zhuǎn)換(Fast Fourier Transformation,F(xiàn)FT)與反快速傅立葉轉(zhuǎn)換(Inverse FastFourier Transformation,IFFT)等運算的處理單元即為正交頻分復(fù)用技術(shù)中的一重要功能模塊。由于FFT/IFFT運算量非常大(例如DVB-T通訊系統(tǒng)需進行8192點FFT運算),因此通常適于硬件實現(xiàn)。
傳統(tǒng)的固定基數(shù)(Fixed-Radix)或變換基數(shù)(Split-Radix)的快速傅立葉轉(zhuǎn)換算法(Algorithm)推導(dǎo),使得快速傅立葉轉(zhuǎn)換能夠快速而有效地以硬件來實現(xiàn)。其中變換基數(shù)快速傅立葉轉(zhuǎn)換為常用算法中擁有最小的運算復(fù)雜度,可惜的是,變換基數(shù)快速傅立葉轉(zhuǎn)換算法的信號處理流程圖(Signal Flow Graph,SFG)會呈現(xiàn)L型(L-Shape)規(guī)則狀,這使它在數(shù)字信號處理架構(gòu)的實現(xiàn)上比起有固定蝴蝶運算(Butterfly Operation)架構(gòu)的固定基數(shù)快速傅立葉轉(zhuǎn)換還來得不易。因此,雖然有較大的運算復(fù)雜度,但固定基數(shù)快速傅立葉轉(zhuǎn)換目前仍廣泛為大眾采用。其數(shù)字信號處理架構(gòu)包括有管道架構(gòu)(Pipeline)與單一處理單元架構(gòu)兩種類型,其中管道架構(gòu)可以讓輸入輸出資料源源不斷地進出,其控制信號較為簡單,在速度上也領(lǐng)先于單一處理單元架構(gòu)。但是,管道架構(gòu)比單一處理單元架構(gòu)需要更多的硬件,因此增加了生產(chǎn)成本。反觀之,單一處理單元架構(gòu)的優(yōu)點與特色則是電路面積小、所需的內(nèi)存也最少,但也因此伴隨較復(fù)雜的控制信號,例如需搭配該單一處理單元的蝴蝶運算的內(nèi)存地址產(chǎn)生器,藉此控制資料的寫入與讀出動作,以利單一處理單元來執(zhí)行完整的快速傅立葉轉(zhuǎn)換。
圖1A是說明16點快速傅立葉轉(zhuǎn)換的信號處理流程圖。圖1B是說明一般單一處理單元的架構(gòu)。請同時參照圖1A與圖1B,信號處理流程圖的左邊是要進行快速傅立葉轉(zhuǎn)換運算的原始資料(在此以16點為例),右邊則是完成快速傅立葉轉(zhuǎn)換運算的目的資料。圖中“”表示進行復(fù)數(shù)加法,“”表示進行復(fù)數(shù)乘法。進行快速傅立葉轉(zhuǎn)換運算的原始資料需事先存放在內(nèi)存110中。在進行第一步驟S1時,處理單元120按順序自內(nèi)存110中讀取資料對[x(0)、x(8)]、[x(1)、x(9)]、[x(2)、x(10)]、…、[x(7)、x(15)]以分別進行一次蝴蝶運算(含加法、減法與乘法運算),并且將每次運算結(jié)果寫回內(nèi)存110。等到第一步驟(step)S1完成時,處理單元120開始進行第二步驟,亦即按順序自內(nèi)存110中讀取第一步驟S1運算結(jié)果的資料對[x(0)、x(4)]、…、[x(3)、x(7)][x(8)、x(12)]、…、[x(11)、x(15)]以分別進行一次蝴蝶運算,并且將每次運算結(jié)果寫回內(nèi)存110。以此類推,以繼續(xù)完成步驟S3與S4。因此即可以單一處理單元完成16點快速傅立葉轉(zhuǎn)換運算。同樣的方法可以類推至任意長度的快速傅立葉轉(zhuǎn)換運算。
當(dāng)所設(shè)計的快速傅立葉轉(zhuǎn)換模塊須支持不同長度運算以滿足多種通訊系統(tǒng)標(biāo)準(zhǔn)時,例如在802.11a系統(tǒng)需64點快速傅立葉轉(zhuǎn)換運算,而在802.16系統(tǒng)則需64~4096點快速傅立葉轉(zhuǎn)換運算,如此一來,該快速傅立葉轉(zhuǎn)換模塊必須提供長度可擴充的功能,透過實時控制執(zhí)行在標(biāo)準(zhǔn)所限定的時間內(nèi)(Latency-Specified)所需的快速傅立葉或反快速傅立葉轉(zhuǎn)換運算。從硬件設(shè)計的觀點來看,單一處理單元架構(gòu)比管道架構(gòu)更能用來設(shè)計一可重配置(Re-Configurable)數(shù)字信號處理架構(gòu)。
第一已知技術(shù)「Design and implementation of a scalable fast Fourier transformcore」(ASIC,2002.Proceedings.2002 IEEE Asia-Pacific Conference on,6-8 Aug.2002)一文中揭露一種以二個基數(shù)-2的快速傅立葉轉(zhuǎn)換處理單元與回授路徑的數(shù)字信號處理架構(gòu),如圖2A所示。圖2B是說明圖2A的內(nèi)存中存放資料的方法,系利用一無沖突內(nèi)存尋址技術(shù)(Conflict FreeMemory Addressing)來作內(nèi)存內(nèi)資料的尋址,以64點快速傅立葉轉(zhuǎn)換為例,圖中號碼表示進行快速傅立葉轉(zhuǎn)換的信號處理流程圖的原始資料位置。請同時參照圖2A與圖2B,欲進行快速傅立葉轉(zhuǎn)換運算的原始資料很巧妙地安排存放于記憶庫RAM-A~RAM-D中,使得在每一步驟所需的資料恰可從記憶庫RAM-A~RAM-D同時存取而不會造成資料沖突(Conflict)的情形發(fā)生。
若以64點快速傅立葉轉(zhuǎn)換運算為例,在階段(stage)1中,地址產(chǎn)生器230產(chǎn)生出00、04、08、12的尋址信號給內(nèi)存210。因此基數(shù)-4的處理單元220可以從記憶庫RAM-A~RAM-D中分別讀取第00、16、32、48個數(shù)字資料,并提供給處理單元220內(nèi)部二個基數(shù)-2的蝴蝶運算處理單元進行第一步驟的蝴蝶運算,然后將運算結(jié)果回授后繼續(xù)進行第二步驟的蝴蝶運算。進行完兩個步驟的蝴蝶運算后,才將運算結(jié)果分別寫回記憶庫RAM-A~RAM-D中的原來位置(In-place)。重復(fù)上述操作,處理單元220從記憶庫RAM-A~RAM-D中依序讀取[49、01、17、33]、[34、50、02、18]、…、[47、63、15、31]數(shù)字資料,并將資料順序回旋為
、
、…、[15、31、47、63],然后才提供給其內(nèi)部二個蝴蝶運算處理單元進行第一步驟與第二步驟的蝴蝶運算。每次進行完兩個步驟的蝴蝶運算后,即將運算結(jié)果分別寫回記憶庫RAM-A~RAM-D中的原來位置。
然后進行階段2,重復(fù)進行類似上述的操作,處理單元220從記憶庫RAM-A~RAM-D中依序讀取
、…、
、[28、16、20、24]、…、[19、23、27、31]、[40、44、32、36]、…、[47、35、39、43]、[52、56、60、48]、…、[59、63、51、55]數(shù)字資料,并將資料順序回旋為
、…、
、[16、20、24、28]、…、[19、23、27、31]、[32、36、40、44]、…、[35、39、43、47]、[48、52、56、60]、…、[51、55、59、63],然后才提供給其內(nèi)部二個蝴蝶運算處理單元進行第三步驟與第四步驟的蝴蝶運算。每次進行完兩個步驟的蝴蝶運算后,即將運算結(jié)果分別寫回記憶庫RAM-A~RAM-D中的原來位置。
最后進行階段3,重復(fù)進行類似上述的操作,處理單元220從記憶庫RAM-A~RAM-D中依序讀取
、
、…、[62、63、60、61]數(shù)字資料,并將資料順序回旋為
、
、…、[60、61、62、63],然后才提供給其內(nèi)部二個蝴蝶運算處理單元進行第五步驟與第六步驟的蝴蝶運算。每次進行完兩個步驟的蝴蝶運算后,即將運算結(jié)果分別寫回記憶庫RAM-A~RAM-D中的原來位置。至此即完成64點快速傅立葉轉(zhuǎn)換運算。
第二已知技術(shù)「A low-power,high performance,1024-point FFT processor」(IEEE J.Solid State Circuits,vol.34,pp.380-387,Mar.1999)一文中將高速緩存加入快速傅立葉轉(zhuǎn)換處理單元與主存儲器之間,如圖3所示。主存儲器310存放著欲進行快速傅立葉轉(zhuǎn)換運算的原始資料。高速緩存包括第0組高速緩存(快取0A與快取0B)以及第1組高速緩存(快取1A與快取1B)。在此假設(shè)第0組與第1組高速緩存各自具有8筆數(shù)據(jù)的存放空間,因此可以視處理單元320為基數(shù)-8的處理單元。當(dāng)?shù)?組高速緩存已經(jīng)從主存儲器310加載8筆數(shù)字資料(快取0A與快取0B各4筆),并依序?qū)⒑\算所需的數(shù)據(jù)對提供給處理單元320時,第1組高速緩存開始從主存儲器310加載接下來8筆數(shù)字資料(快取1A與快取1B各4筆)。待第1組高速緩存開始依序?qū)⒑\算所需的數(shù)據(jù)對提供給處理單元320時,第0組高速緩存立即將先前的運算結(jié)果寫回主存儲器310的對應(yīng)地址,并且從主存儲器310加載接下來8筆數(shù)字資料。
第三已知技術(shù)「A dynamic scaling FFT processor for DVB-T applications」(IEEEJ.Solid-State Circuits,vol.39,pp.2005-2013,Nov.2004)一文中揭露一種更加節(jié)省高速緩存的數(shù)字信號處理裝置,如圖4所示。圖4中,處理單元420是進行基數(shù)-8蝴蝶運算的處理器,因此對應(yīng)地,主存儲器410具有8個記憶庫,并且高速緩存430為具有8×8個記憶單元的快取矩陣。圖5是說明64點快速傅立葉轉(zhuǎn)換運算且基數(shù)-8的信號處理流程圖。于圖5中,每一個基數(shù)-8的蝴蝶運算(例如圖中圓圈500即表示一個基數(shù)-8的蝴蝶運算)可以視為進行三個步驟(step)的基數(shù)-2蝴蝶運算。此一數(shù)字信號處理裝置中,高速緩存430每次從主存儲器410讀取64筆數(shù)據(jù),此64筆數(shù)據(jù)會依序由列的方向?qū)懭敫咚倬彺?30。填滿完畢后,接下來分8次,每次經(jīng)由總線BUS,自高速緩存的列的方向提供8筆數(shù)據(jù)給處理單元420進行基數(shù)-8的蝴蝶運算,并經(jīng)由總線BUS以運算結(jié)果更新高速緩存430,此即為圖5中的第1級(stage 1)運算。然后進行第2級(stage 2)運算,高速緩存430再將其中更新過的64筆資料以行方向的順序分8次輸出,每次經(jīng)由總線BUS提供8筆資料給處理單元420進行基數(shù)-8的蝴蝶運算,然后將運算結(jié)果經(jīng)由總線BUS與標(biāo)準(zhǔn)化單元(normalized unit)440寫回主存儲器410。因此,處理單元420與高速緩存430可以視為一個基數(shù)-64蝴蝶運算的處理器。
圖6A是說明高速緩存430中8×8個記憶單元的快取矩陣存放資料的順序。圖中每一個圓圈表示一個記憶單元,而圓圈中的號碼則表示信號處理流程圖中輸入資料的次序。請同時參照圖5與圖6A,當(dāng)處理單元420在進行第1級運算時,高速緩存430逐列(column)輸出數(shù)據(jù)給處理單元420。例如,高速緩存430輸出第1列(即第0~7筆數(shù)據(jù))給處理單元420,以便進行圓圈500的基數(shù)-8蝴蝶運算,以此類推。處理單元420每完成一次基數(shù)-8蝴蝶運算后,即將運算結(jié)果寫回高速緩存430的相對應(yīng)位置,以更新高速緩存430所儲存的數(shù)據(jù)。
圖6B是說明處理單元420在進行第2級運算時,高速緩存430的快取矩陣輸出資料的順序。當(dāng)處理單元420在進行第2級運算時,高速緩存430逐行(row)輸出數(shù)據(jù)給處理單元420。例如,高速緩存430輸出第1行(即第0、8、16、24、32、40、48、56筆數(shù)據(jù))給處理單元420以便進行第2級運算中第1個基數(shù)-8蝴蝶運算,運算完畢后,處理單元420即將此行的運算結(jié)果透過總線BUS經(jīng)由標(biāo)準(zhǔn)化單元440寫回主存儲器410,然后高速緩存430輸出第2行(即第1、9、17、25、33、41、49、57筆數(shù)據(jù))給處理單元420以便進行第2級運算中第2個基數(shù)-8蝴蝶運算,以此類推。
當(dāng)欲處理高點數(shù)的快速傅立葉轉(zhuǎn)換時,每次會將快速傅立葉轉(zhuǎn)換的信號處理流程圖區(qū)分成多組以64點為單位的資料區(qū)塊,處理程序分成三種組態(tài),主存儲器寫入高速緩存,高速緩存與處理單元做資料的蝴蝶運算,以及處理單元將運算結(jié)果寫回主存儲器。當(dāng)主存儲器透過總線BUS將數(shù)據(jù)寫入高速緩存時,偶數(shù)編號區(qū)塊一律由高速緩存的行方向依序?qū)懭?,共?次(row1,row2,…row8),每次寫8筆資料,而奇數(shù)編號區(qū)塊一律由高速緩存的列方向依序?qū)懭?,共?次(column1,column2,…column8),每次寫8筆資料。接下來,高速緩存與處理單元透過總線BUS交換數(shù)據(jù)作兩級(2 stages,即row operation與columnoperation)運算,對偶數(shù)編號區(qū)塊資料而言,會先依序處理列方向蝴蝶運算(column1,column2,…column8)再接下去完成行方向蝴蝶運算(row1,row2,…row8),對奇數(shù)編號區(qū)塊資料而言則先依序處理行方向蝴蝶運算(row1,row2,…row8),之后再完成列方向蝴蝶運算(column1,column2,…column8)。同樣地,當(dāng)完成第二級的蝴蝶運算后,處理單元即將偶數(shù)編號區(qū)塊的行方向運算結(jié)果透過總線BUS依序?qū)懟刂鞔鎯ζ鳎慨?dāng)某行結(jié)果寫回主存儲器完畢后,主存儲器即可同時將下一個奇數(shù)區(qū)塊中的8筆數(shù)據(jù)寫入該行的高速緩存,直至高速緩存被新的奇數(shù)數(shù)據(jù)區(qū)塊填滿。而對奇數(shù)編號區(qū)塊而言,處理單元則將列方向運算結(jié)果透過總線BUS依序?qū)懟刂鞔鎯ζ?,每?dāng)某列結(jié)果寫回主存儲器完畢后,主存儲器即可同時將下一個偶數(shù)區(qū)塊中的8筆數(shù)據(jù)數(shù)據(jù)寫入該列的高速緩存,直至高速緩存被新的偶數(shù)數(shù)據(jù)區(qū)塊填滿。實際運算時亦可將偶數(shù)編號區(qū)塊資料與奇數(shù)編號區(qū)塊資料的行與列處理方向與上述相反。
綜上所述,已知技術(shù)至少存在下述缺點在上述第一已知技術(shù)中,由于其架構(gòu)沒有高速緩存,因此處理單元必須對主存儲器進行繁復(fù)的數(shù)據(jù)存取操作。對主存儲器進行頻繁的存取將導(dǎo)致效能的降低,并增加功率損耗。
在上述第二已知技術(shù)中,藉由加入高速緩存,可降低處理單元與主存儲器間的數(shù)據(jù)存取次數(shù),因而減少功率消耗,而使用兩組高速緩存更可增加數(shù)據(jù)處理的平行度,但是付出的代價是占據(jù)較多的電路面積、增加制造成本。另外,以乒乓式切換操作二組高速緩存將需要較復(fù)雜的控制機制。
在上述第三已知技術(shù)中,主存儲器藉由行方向或是列方向?qū)^(qū)塊數(shù)據(jù)寫入高速緩存,處理單元并對該高速緩存的數(shù)據(jù)做兩級(2 stages)的交替運算,之后將區(qū)塊運算結(jié)果由列或是行方向?qū)懟刂鞔鎯ζ?,因為重?fù)利用區(qū)塊資料蝴蝶運算特性,所以只需一組高速緩存,其功率的消耗會少于第二已知技術(shù)。由于處理單元420、高速緩存430與標(biāo)準(zhǔn)化單元440全部耦接至同一組總線BUS,因此將導(dǎo)致其實體制作時的繞線(routing)復(fù)雜度大幅增加,相對的亦增加了制造成本。再者,由于幾乎其所有的構(gòu)件都共同耦接至同一組總線BUS,因此需要更復(fù)雜的控制機制來管理總線BUS。
發(fā)明內(nèi)容
本發(fā)明的目的就是提供一種數(shù)字信號處理裝置,以較簡單的控制機制、單組高速緩存來進行基數(shù)-R的數(shù)字信號處理。
本發(fā)明的再一目的是提供另外一種數(shù)字信號處理裝置的結(jié)構(gòu),以實現(xiàn)上述諸目的。
本發(fā)明的又一目的是提供另外一種數(shù)字信號處理裝置的結(jié)構(gòu),除上述諸目的外,更使處理單元于完成運算后,直接將運算結(jié)果寫回主存儲器而不經(jīng)由高速緩存,以提升操作效率。
本發(fā)明的另一目的是提供另外一種數(shù)字信號處理裝置的結(jié)構(gòu),以更簡化的構(gòu)件實現(xiàn)上述諸目的。
基于上述及其它目的,本發(fā)明提出一種數(shù)字信號處理裝置,其包括一主存儲器、一處理單元、一高速緩存(cache)以及一回旋緩沖(rotate-buffer)單元。主存儲器至少具有R個記憶庫,用以儲存代表該數(shù)字信號的多個資料,其中R為整數(shù)。處理單元系為將數(shù)據(jù)運算處理的處理器。高速緩存耦接于主存儲器與處理單元之間。高速緩存至少具有R×R個記憶單元,用以儲存主存儲器中的部分資料,以提供處理單元運算所需的資料,以及暫存該處理單元的運算結(jié)果?;匦彌_單元耦接于主存儲器與高速緩存之間,用以緩沖各記憶庫所輸出的數(shù)據(jù)并作回旋位移,以輸出至高速緩存;以及緩沖部分記憶單元所輸出的資料并作回旋位移,以分別寫回至對應(yīng)的記憶庫。
從另一觀點來看,本發(fā)明提出一種數(shù)字信號處理裝置,包括一主存儲器、一處理單元、一高速緩存、一第一回旋緩沖器以及一第三回旋緩沖器。主存儲器至少具有R個記憶庫,用以儲存代表該數(shù)字信號的多個資料,其中R為整數(shù)。處理單元系為將數(shù)據(jù)運算處理的處理器。高速緩存耦接于主存儲器與處理單元之間。高速緩存至少具有R×R個記憶單元,用以儲存主存儲器中的部分資料,以提供處理單元運算所需的資料,以及暫存處理單元的運算結(jié)果。第一回旋緩沖器耦接于主存儲器與高速緩存之間,用以緩沖各記憶庫所輸出的數(shù)據(jù)并作回旋位移,以輸出至高速緩存。第三回旋緩沖器耦接于主存儲器與高速緩存之間,以及耦接于處理單元與高速緩存之間。第三回旋緩沖器緩沖部分記憶單元所輸出的資料并作回旋位移,以分別寫回至對應(yīng)的記憶庫。另外第三回旋緩沖器暫存高速緩存的輸出以提供處理單元運算所需的數(shù)據(jù)。第三回旋緩沖器更暫存處理單元的運算結(jié)果以寫回至高速緩存中對應(yīng)的位置。
本發(fā)明再提出一種數(shù)字信號處理裝置,包括一主存儲器、一處理單元、一高速緩存、一第一回旋緩沖器以及一第四回旋緩沖器。主存儲器至少具有R個記憶庫,用以儲存代表數(shù)字信號的多個資料,其中R為整數(shù)。處理單元系為將數(shù)據(jù)運算處理的處理器。高速緩存耦接于主存儲器與處理單元之間。高速緩存至少具有R×R個記憶單元,用以儲存主存儲器中的部分資料以提供處理單元運算所需的資料,以及暫存處理單元的運算結(jié)果。第一回旋緩沖器耦接于主存儲器與高速緩存之間,用以緩沖各記憶庫所輸出的數(shù)據(jù)并作回旋位移,以輸出至高速緩存。第四回旋緩沖器耦接于主存儲器與處理單元之間,用以緩沖處理單元所輸出的運算結(jié)果并作回旋位移,以分別寫回至對應(yīng)的記憶庫。
本發(fā)明另提出一種數(shù)字信號處理裝置,包括一主存儲器、一處理單元、一高速緩存以及一回旋緩沖單元。主存儲器至少具有R個記憶庫,用以儲存代表數(shù)字信號的多個資料,其中R為整數(shù)。處理單元系為將數(shù)據(jù)運算處理的處理器。高速緩存耦接于主存儲器與處理單元之間。高速緩存至少具有R×R個記憶單元,用以儲存該主存儲器中的部分資料,以提供該處理單元運算所需的數(shù)據(jù)。高速緩存暫存處理單元的運算結(jié)果,以及將儲存于各記憶單元的資料寫回至對應(yīng)的記憶庫。回旋緩沖單元耦接于處理單元與高速緩存之間,用以緩沖部分記憶單元所輸出的資料并作回旋位移,以提供處理單元運算所需的數(shù)據(jù)。回旋緩沖單元更用以緩沖處理單元所輸出的運算結(jié)果并作回旋位移,以分別寫回至對應(yīng)的記憶單元。
本發(fā)明的數(shù)字信號處理裝置由于采用適用于基數(shù)-R的快速傅立葉轉(zhuǎn)換處理單元、R×R快取、R個記憶庫的算法,并配置回旋緩沖單元于處理單元與高速緩存之間、高速緩存與主存儲器之間及/或主存儲器與處理單元之間,因此可以適于進行長度可變的快速傅立葉轉(zhuǎn)換運算,具有較低的計算復(fù)雜度,且其執(zhí)行時間可適于各種通訊標(biāo)準(zhǔn)的要求。另外,本發(fā)明因使用回旋緩沖單元,因此降低了在實體制作時的繞線(routing)復(fù)雜度。除此的外,本發(fā)明更具有低功率消耗、高效率與節(jié)省存儲元件等優(yōu)點。
為讓本發(fā)明的上述和其它目的、特征和優(yōu)點能更明顯易懂,下文特舉優(yōu)選實施例,并配合所附圖式,作詳細說明如下。
附圖簡要說明圖1A是說明16點快速傅立葉轉(zhuǎn)換的信號處理流程圖。
圖1B是說明一般單一處理單元的架構(gòu)。
圖2A是說明已知以二個基數(shù)-2的快速傅立葉轉(zhuǎn)換處理單元與回授路徑所構(gòu)成的數(shù)字信號處理架構(gòu)。
圖2B是說明圖2A的內(nèi)存中存放資料的方法。
圖3是說明已知具有高速緩存的數(shù)字信號處理架構(gòu)。
圖4是說明一種以基數(shù)-8的快速傅立葉轉(zhuǎn)換處理單元與高速緩存的數(shù)字信號處理裝置。
圖5是說明64點快速傅立葉轉(zhuǎn)換且基數(shù)-8蝴蝶運算的信號處理流程圖。
圖6A是說明圖4的高速緩存中8×8個記憶單元的快取矩陣存放資料的順序。
圖6B是說明圖4的處理單元在進行第2級運算時,高速緩存的快取矩陣輸出資料的順序。
圖7是依照本發(fā)明說明一種數(shù)字信號處理裝置的實施范例。
圖7A是依照本發(fā)明說明主存儲器、高速緩存與處理單元之間在時間上的操作順序。
圖8是說明圖7中記憶庫的數(shù)據(jù)結(jié)構(gòu)。
圖9A是依照本發(fā)明說明一種需進行8192點FFT運算的DVB-T通訊系統(tǒng)的實施例。
圖9B是依照本發(fā)明的實施例說明圖9A的信號處理流程圖。
圖9C~9E是依照本發(fā)明以另一方式說明進行8192、2048、4096點快速傅立葉轉(zhuǎn)換運算的信號處理流程圖(SFG)。
圖10~13是依照本發(fā)明說明數(shù)字信號處理裝置的其它實施例。
具體實施例方式
圖7是依照本發(fā)明說明一種數(shù)字信號處理裝置的實施例。請參照圖7,數(shù)字信號處理裝置700包括主存儲器710、處理單元720、高速緩存(cache)730、回旋緩沖單元740以及數(shù)據(jù)緩沖器750。為方便說明本發(fā)明,于本實施例中是假設(shè)處理單元720是進行基數(shù)-8快速傅立葉轉(zhuǎn)換運算的處理器,因此主存儲器應(yīng)至少具有8個記憶庫MB1~MB8,用以儲存代表數(shù)字信號的多個資料。實施本發(fā)明者當(dāng)可依照本發(fā)明的精神與下述諸實施例的教示,而類推至基數(shù)-R(R為整數(shù))的數(shù)字信號處理。
于本實施例中,記憶庫MB1~MB8可以是單埠內(nèi)存。亦可以使用雙端口內(nèi)存實施記憶庫MB1~MB8。其中,記憶庫MB1~MB8中資料的配置方法不拘,熟習(xí)此技術(shù)者可視其需要而任意安排其數(shù)據(jù)結(jié)構(gòu)。于本實施例中將使用前述第一已知技術(shù)中所揭露配置資料的方法(其配置結(jié)果如圖8所示),而詳細步驟將不在此贅述。
首先說明主存儲器710、高速緩存730與處理單元720之間在時間上的操作順序,如圖7A所示,共可分成三種組態(tài)組態(tài)1、組態(tài)2、組態(tài)3。其中組態(tài)1表示主存儲器710將數(shù)據(jù)依序輸出至高速緩存730的行方向或是列方向,組態(tài)2表示高速緩存730與處理單元720之間的數(shù)據(jù)存取,而組態(tài)3則表示高速緩存730將完成運算后的數(shù)據(jù)依列的方向或是行的方向依序存回主存儲器710,而高速緩存730每寫回一組列數(shù)據(jù)或是行資料至主存儲器后,此時主存儲器便可同時搬下一個資料區(qū)塊的8筆數(shù)據(jù)覆蓋該列或是該行的高速緩存,直至高速緩存被新的數(shù)據(jù)區(qū)塊填滿。此操作系用以增加數(shù)據(jù)處理的平行度,所以基本上在某段時間內(nèi),組態(tài)1與組態(tài)3會有操作上的時間重疊,以下的段落為了說明上的方便,省略此重疊敘述,而以組態(tài)會依序進行說明本發(fā)明實施例的操作原理。
圖8是說明圖7中記憶庫MB1~MB8的數(shù)據(jù)結(jié)構(gòu)。圖中號碼表示進行快速傅立葉轉(zhuǎn)換的信號處理流程圖(Signal Flow Graph,SFG)的原始資料位置。其中包含了點數(shù)小于等于128點的快數(shù)傅立葉轉(zhuǎn)換的資料排列方式,欲進行快速傅立葉轉(zhuǎn)換運算的原始資料很巧妙地安排存放于記憶庫MB1~MB8中,使得在每次讀取所需資料時,其恰可同時從記憶庫MB1~MB8讀出而不會有資料沖突(Conflict)的情形發(fā)生。
由于資料在記憶庫中是采用第一已知技術(shù)所揭露的回旋排列方式,圖7中加入的回旋緩沖器741會將主存儲器寫入高速緩存的數(shù)據(jù)做反回旋排列,與回旋緩沖器742將高速緩存存回主存儲器的運算結(jié)果做回旋排列,如此可簡化處理單元720中的蝴蝶運算控制方式、地址產(chǎn)生方式、轉(zhuǎn)動系數(shù)產(chǎn)生方式與整個控制機制。此外藉由加入回旋緩沖器741與742,可將繞線復(fù)雜度集中在回旋緩沖器與高速緩存之間,于是主存儲器710、高速緩存730與處理單元720間便不需透過總線BUS來連接所有的相關(guān)組件。
請繼續(xù)參照圖7,回旋緩沖單元740耦接于主存儲器710與高速緩存730之間,用以緩沖記憶庫MB1~MB8所輸出的數(shù)據(jù)并作回旋位移以輸出至高速緩存730,以及用以緩沖高速緩存730中部分記憶單元所輸出的資料并作回旋位移以分別寫回至對應(yīng)的記憶庫MB1~MB8。于本實施例中,回旋緩沖單元740包括第一回旋緩沖器741與第二回旋緩沖器742。第一回旋緩沖器741耦接于主存儲器710與高速緩存730之間,用以進行組態(tài)1,亦即緩沖記憶庫MB1~MB8所輸出的數(shù)據(jù)并作回旋位移,以輸出至高速緩存730。第二回旋緩沖器742耦接于主存儲器710與高速緩存730之間,用以進行組態(tài)3,亦即緩沖高速緩存730中部分記憶單元所輸出的資料并作回旋位移,以分別寫回至對應(yīng)的記憶庫MB1~MB8中。其中,第一回旋緩沖器741與第二回旋緩沖器742系將數(shù)據(jù)向左或向右做位置回旋位移。
高速緩存耦接于主存儲器710與處理單元720之間。由于本實施例中R被設(shè)定為8,因此高速緩存720至少應(yīng)具有8×8個記憶單元,以便儲存主存儲器710的部分資料,以提供處理單元720運算所需的資料,以及暫存處理單元720的運算結(jié)果。高速緩存720的各記憶單元中數(shù)據(jù)的配置方法不拘,熟習(xí)此技術(shù)者可視其需要而安排其數(shù)據(jù)結(jié)構(gòu)。于本實施例中將使用前述第三已知技術(shù)中所揭露高速緩存的配置資料方法(其配置結(jié)果可參照圖6A所示)。
例如,請同時參照圖7、圖8與圖6A,藉由控制單元724的控制以及地址產(chǎn)生器723的尋址,高速緩存730經(jīng)由回旋緩沖器741而分別從記憶庫MB1~MB8讀取地址0的資料0、1、…、7,并且依序存放在高速緩存730第1列(column)的記憶單元中。接下來,回旋緩沖器741再分別從記憶庫MB1~MB8讀取下一組(地址1)資料15、8、9、…、14,然后將資料順序回旋位移為8、9、…、14、15并輸出給高速緩存730。高速緩存730即可將所接收的數(shù)據(jù)8、9、…、14、15依序存放在其第2列的記憶單元中。以此類推,直至高速緩存730中64個記憶單元全部備妥資料,而完成組態(tài)1的操作。
數(shù)據(jù)緩沖器750耦接于處理單元720與高速緩存730之間,用以緩沖高速緩存730的輸出以提供處理單元720運算所需的資料,以及緩沖處理單元720的運算結(jié)果以寫回至高速緩存730中對應(yīng)的位置。熟習(xí)此技術(shù)者可以視需要而省去資料緩沖器750,使得處理單元720直接耦接至高速緩存730。
由于本實施例中處理單元720是基數(shù)-8快速傅立葉轉(zhuǎn)換運算的處理器,因此處理單元720中運算單元721配置有4個進行基數(shù)-2快速傅立葉轉(zhuǎn)換運算的蝴蝶運算單元BU1~BU4。藉由透過轉(zhuǎn)動系數(shù)產(chǎn)生器(twiddle factor generator)722的控制,運算單元721即可對所接收的8筆數(shù)據(jù)進行三步驟(3-steps)的蝴蝶運算,即完成基數(shù)-23快速傅立葉轉(zhuǎn)換運算(其信號處理流程圖可參照圖5所示)。
例如,請同時參照圖7、圖5、圖6A與圖6B,當(dāng)處理單元720在進行第1級運算時,高速緩存730逐列輸出數(shù)據(jù)給處理單元720。例如,高速緩存730輸出第1列(即第0~7筆數(shù)據(jù))給處理單元720,以便進行基數(shù)-8的蝴蝶運算,以此類推。處理單元720每完成一次基數(shù)-8蝴蝶運算后,即將運算結(jié)果寫回高速緩存730的相對應(yīng)位置,以更新高速緩存730所儲存的數(shù)據(jù)。然后,當(dāng)處理單元720在進行第2級運算時,高速緩存730逐行(row)輸出數(shù)據(jù)給處理單元720(可以參照圖6B)。例如,高速緩存730輸出第1行(即第0、8、16、24、32、40、48、56筆數(shù)據(jù))給處理單元720以便進行第2級運算中第1個基數(shù)-8蝴蝶運算,然后高速緩存730輸出第2行(即第1、9、17、25、33、41、49、57筆數(shù)據(jù))給處理單元720以便進行第2級運算中第2個基數(shù)-8蝴蝶運算,以此類推,而完成組態(tài)2的操作。
因此,每從主存儲器710中讀取64筆數(shù)據(jù)并存放于高速緩存730,處理單元720即可依照上述的操作方法而完成64點快速傅立葉轉(zhuǎn)換運算。當(dāng)處理單元720完成64點快速傅立葉轉(zhuǎn)換運算后,即將高速緩存730所存的計算結(jié)果寫回主存儲器710,而完成組態(tài)3的操作。然后重復(fù)進行組態(tài)1的操作,亦即再從主存儲器710讀出另外一組(64筆)數(shù)據(jù)并存放于高速緩存730,處理單元720即可重復(fù)上述的操作方法而完成另一次64點快速傅立葉轉(zhuǎn)換運算。
若欲計算的資料點數(shù)越多(例如DVB-T通訊系統(tǒng)需進行8192點FFT運算),則本實施例數(shù)字信號處理裝置700效能的提升越顯著。
圖9A是依照本發(fā)明說明一種需進行8192點快速傅立葉轉(zhuǎn)換運算的DVB-T通訊系統(tǒng)的實施例。圖9B是依照本發(fā)明的實施例說明圖9A的信號處理流程圖。欲進行快速傅立葉轉(zhuǎn)換運算的8192點資料被拆分為2組資料(各為4096點)910與920,各自處理完成后,最后以基數(shù)-2的蝴蝶運算進行合并。
請同時參照圖7、圖9A與圖9B,系可利用一組數(shù)字信號處理裝置700來實現(xiàn)圖9A的8192點的快速傅立葉轉(zhuǎn)換。依照本發(fā)明的實施例,其信號處理流程圖可畫分成第一與第二階段的256個64點的資料區(qū)塊SFG1-1~SFG2-128與第三階段的基數(shù)-2蝴蝶運算合并SFG3。首先數(shù)字信號處理裝置700依序進行64點的蝴蝶運算SFG1-1~SFG1-128,接下來繼續(xù)完成區(qū)塊資料SFG2-1~SFG2-128。最后第三階段的數(shù)據(jù)處理,并不需透過高速緩存730,而直接于主存儲器710與處理單元720間存取,亦即主存儲器710直接搬8筆數(shù)據(jù)到處理單元720,利用四個蝴蝶運算單元BU1~BU4做一步驟的蝴蝶運算,之后將這8筆運算結(jié)果直接寫回內(nèi)存710的原來位置,接下來再搬另外8筆數(shù)據(jù)做類似的處理。完成此基數(shù)-2的蝴蝶運算合并后,即完成整個8192點的快速傅立葉轉(zhuǎn)換運算。
圖9C是依照本發(fā)明以另一方式實現(xiàn)8192點快速傅立葉轉(zhuǎn)換運算的信號處理流程圖(SFG)。其中方塊0~127分別表示利用數(shù)字信號處理裝置700進行64點的蝴蝶運算SFG1-1~SFG1-128,方塊128~255分別表示進行蝴蝶運算SFG2-1~SFG2-128,而方塊256~383分別表示進行蝴蝶運算SFG3-1~SFG3-128。在運算時的順序應(yīng)該為先處理第一階段(方塊0~127),之后再處理第二階段(方塊128~255),最后再來處理第三階段(方塊256~383)。方塊0~255中分別會進行第1級與第2級的蝴蝶運算(即對高速緩存730的行與列進行運算),而每一級中則包含第1步驟、第2步驟與第3步驟的蝴蝶運算,如圖9C所示。方塊256~383的處理則不同于圖9B,主存儲器亦透過高速緩存730與處理單元720做蝴蝶運算,亦即先從主存儲器710搬64筆資料依列的順序依序?qū)懭敫咚倬彺?30,接下來從高速緩存730依列的順序依序讀取到處理單元720只做第1級運算,而此第1級運算只包含第1步驟蝴蝶運算,運算完畢之后,把高速緩存730的64筆資料依列的順序依序?qū)懟貎?nèi)存710的原來位置。接下來再搬另外64筆資料做類似的操作,以上的操作對于偶數(shù)或是奇數(shù)編號區(qū)塊其處理方式皆相同。
圖9E是依照本發(fā)明說明進行4096點快速傅立葉轉(zhuǎn)換運算的信號處理流程圖(SFG)。其中方塊0~63與方塊64~127分別表示利用數(shù)字信號處理裝置700進行的64點的蝴蝶運算SFG1-1~SFG1-64與SFG2-1~SFG2-64,在運算時的順序為先處理第一階段(方塊0~63),之后再處理第二階段(方塊64~127)。圖9D則是依照本發(fā)明說明進行2048點快速傅立葉轉(zhuǎn)換運算的信號處理流程圖(SFG)。其中方塊0~31與32~63分別表示利用數(shù)字信號處理裝置700進行的64點的蝴蝶運算SFG1-1~SFG1-32與SFG2-1~SFG2-32。在運算時的順序為先處理第一階段(方塊0~31),之后再處理第二階段(方塊32~63),其中蝴蝶運算SFG1-1~SFG1-32與前述實施例相似,故不在此贅述,而SFG2-1~SFG2-32的第一級操作與SFG1-1~SFG1-32的第一級操作相同,但其第二級運算只需進行兩步驟的蝴蝶運算。
綜上所述,依照本發(fā)明進行2048、4096、8192點快速傅立葉轉(zhuǎn)換運算的操作匯整于表1。
表1是說明2048、4096、8192點快速傅立葉轉(zhuǎn)換的操作表
相較于上述第一已知技術(shù),本實施例因具有高速緩存,因此可以大幅降低對主存儲器進行的資料存取次數(shù),進而提升效能。相較于上述第二已知技術(shù),本實施例可以只使用單一組高速緩存,因此可以簡化控制機制、減少功率消耗、節(jié)省電路面積、并降低制造成本。相較于上述第三已知技術(shù),本實施例因處理單元、高速緩存與主存儲器之間不存在共同的總線,因此可以大幅減少實體制作時的繞線(routing)復(fù)雜度,亦簡化了控制機制,相對地降低了制造成本。
以下再舉一實施例,以便于清楚說明本發(fā)明。圖10是依照本發(fā)明說明另一種數(shù)字信號處理裝置的實施例。請參照圖10,數(shù)字信號處理裝置1000包括主存儲器1010、處理單元1020、高速緩存1030、第一回旋緩沖器1040以及第三回旋緩沖器1050。主存儲器1010至少具有R個記憶庫,用以儲存代表數(shù)字信號的多個資料,其中R為整數(shù)(在此R例如等于8)。在此,處理單元1020與主存儲器1010分別相似于圖7的處理單元720與主存儲器710,因此不再贅述。
高速緩存1030耦接于主存儲器1010與處理單元1020之間。高速緩存1030至少具有R×R個記憶單元,用以儲存主存儲器1010中的部分資料以提供處理單元1020運算所需的資料,以及暫存處理單元1020的運算結(jié)果?;匦彌_器1040耦接于主存儲器1010與高速緩存1030之間,用以緩沖主存儲器1010的各記憶庫所輸出的數(shù)據(jù)并作回旋位移,以輸出至高速緩存1030?;匦彌_器1040的操作可以參照圖7中回旋緩沖器741的說明。
回旋緩沖器1050耦接于主存儲器1010與高速緩存1030之間,以及耦接于處理單元1020與高速緩存1030之間?;匦彌_器1050緩沖高速緩存1030的部分記憶單元所輸出的資料并作回旋位移以分別寫回至主存儲器1010中對應(yīng)的記憶庫?;匦彌_器1050更暫存高速緩存1030的輸出以提供處理單元1020運算所需的資料,以及暫存處理單元1020的運算結(jié)果以寫回至高速緩存1030中對應(yīng)的位置?;匦彌_器1050的操作可以參照圖7中回旋緩沖器742與資料緩沖器750的說明。
圖11是依照本發(fā)明說明另一種數(shù)字信號處理裝置的實施例。請參照圖11,數(shù)字信號處理裝置1100包括主存儲器1110、處理單元1120、高速緩存1130、第一回旋緩沖器1140、數(shù)據(jù)緩沖器1150以及第四回旋緩沖器1160。于本實施例中,主存儲器1110、處理單元1120、高速緩存1130、第一回旋緩沖器1140以及數(shù)據(jù)緩沖器1150譬如分別與圖7中主存儲器710、處理單元720、高速緩存730、回旋緩沖器741與資料緩沖器750相似,因此其相同部分不在此贅述。
處理單元1120在完成第1級運算后即將其運算結(jié)果經(jīng)由資料緩沖器1150寫回高速緩存1130中。當(dāng)處理單元1120在第2級運算時,每完成一個基數(shù)-8蝴蝶運算后,即將運算結(jié)果送至回旋緩沖器1160,而不再寫回高速緩存1130。
回旋緩沖器1160耦接于主存儲器1110與處理單元1120之間。回旋緩沖器1160緩沖處理單元1120所輸出的運算結(jié)果并作回旋位移(其回旋操作相似于圖7的回旋緩沖器742),以分別寫回至主存儲器1110中對應(yīng)的記憶庫。
圖12是依照本發(fā)明說明一種數(shù)字信號處理裝置的另一實施例。請參照圖12,數(shù)字信號處理裝置1200包括主存儲器1210、處理單元1220、高速緩存1230以及回旋緩沖單元1240。其中,主存儲器1210、處理單元1220以及高速緩存1230譬如分別與圖7中主存儲器710、處理單元720與高速緩存730相似,因此其相同部分不在此贅述。
于本實施例中,高速緩存1230的數(shù)據(jù)結(jié)構(gòu)并不同于前述諸實施例。高速緩存1230與主存儲器1210之間并沒有回旋緩沖器,因此儲存于高速緩存1230中的資料順序是相依于主存儲器1210所輸出資料的順序。
回旋緩沖單元1240耦接于處理單元1220與高速緩存1230之間。由于高速緩存1230輸出R筆數(shù)據(jù)的順序尚未回旋,因此需藉由回旋緩沖單元1240緩沖高速緩存1230的部分記憶單元所輸出的R筆資料并作回旋位移而調(diào)整為正確順序后,才輸出提供處理單元1220運算所需的數(shù)據(jù)。處理單元1220完成運算后,將R筆運算結(jié)果輸出至回旋緩沖單元1240。回旋緩沖單元1240將處理單元1220輸出的R筆運算結(jié)果調(diào)整為原先順序后,輸出至高速緩存1230對應(yīng)的記憶單元以更新其數(shù)據(jù)。待處理單元1220完成R×R點快速傅立葉轉(zhuǎn)換運算的第1級運算與第2級運算后,高速緩存1230即將其中所存的R×R點運算結(jié)果寫回主存儲器1210。
圖13是依照本發(fā)明說明一種數(shù)字信號處理裝置的另一實施例。請參照圖13,數(shù)字信號處理裝置1300包括主存儲器1310、處理單元1320、高速緩存1330以及回旋緩沖單元1340。其中,主存儲器1310、處理單元1320、高速緩存1330以及回旋緩沖單元1340譬如分別與圖12中主存儲器1210、處理單元1220、高速緩存1230以及回旋緩沖單元1240相似,因此其相同部分不在此贅述。
其中,處理單元1320更耦接至主存儲器1310。如前一實施例所述,處理單元1320在完成第1級運算后即將其運算結(jié)果經(jīng)由回旋緩沖單元1340寫回高速緩存1330中。當(dāng)處理單元1320在進行第2級運算時,處理單元1320每完成一個基數(shù)-8蝴蝶運算后,即將運算結(jié)果直接寫回至主存儲器1310中對應(yīng)的記憶庫,而不再寫回高速緩存1330。
綜上所述,由于在本發(fā)明的數(shù)字信號處理裝置采用適用于基數(shù)-R的快速傅立葉轉(zhuǎn)換處理單元、R×R快取、R個記憶庫的算法,并配置回旋緩沖單元于處理單元與高速緩存之間、高速緩存與主存儲器之間及/或主存儲器與處理單元之間,因此可以適于進行長度可變的快速傅立葉轉(zhuǎn)換運算,具有較低的計算復(fù)雜度,且其執(zhí)行時間可適于各種通訊標(biāo)準(zhǔn)的要求。另外,本發(fā)明因使用回旋緩沖單元,因此降低了在實體制作時的繞線(routing)復(fù)雜度。除此之外,本發(fā)明更具有低功率消耗、高效率與節(jié)省存儲元件等優(yōu)點。
雖然本發(fā)明已以較佳實施例公開如上,但其并非用以限定本發(fā)明,任何熟悉此技術(shù)者,在不脫離本發(fā)明的精神和范圍內(nèi),當(dāng)可作些許的變動與修改,因此本發(fā)明的保護范圍應(yīng)以本申請的權(quán)利要求所界定的范圍為準(zhǔn)。
權(quán)利要求
1.一種數(shù)字信號處理裝置,包括一主存儲器,至少具有R個記憶庫,用以儲存代表該數(shù)字信號的多個資料,其中R為整數(shù);一處理單元,系為將數(shù)據(jù)運算處理的處理器;一高速緩存,耦接于該主存儲器與該處理單元之間,該高速緩存至少具有R×R個記憶單元,用以儲存該主存儲器中的部分資料以提供該處理單元運算所需的資料,以及暫存該處理單元的運算結(jié)果;以及一回旋緩沖單元,耦接于該主存儲器與該高速緩存之間,用以緩沖該些記憶庫所輸出的數(shù)據(jù)并作回旋位移以輸出至該高速緩存,以及用以緩沖部分該些記憶單元所輸出的資料并作回旋位移以分別寫回至對應(yīng)的該些記憶庫。
2.如權(quán)利要求1所述的數(shù)字信號處理裝置,其中更包括一數(shù)據(jù)緩沖器,耦接于該處理單元與該高速緩存之間,用以暫存該高速緩存的輸出以提供該處理單元運算所需的資料,以及暫存該處理單元的運算結(jié)果以寫回至該高速緩存中對應(yīng)的位置。
3.如權(quán)利要求1所述的數(shù)字信號處理裝置,其中該些記憶庫分別為單端口內(nèi)存與雙埠內(nèi)存二者之一。
4.如權(quán)利要求1所述的數(shù)字信號處理裝置,其中該處理單元為一基數(shù)-R的處理器。
5.如權(quán)利要求1所述的數(shù)字信號處理裝置,其中該回旋緩沖單元包括一第一回旋緩沖器,耦接于該主存儲器與該高速緩存之間,用以緩沖該些記憶庫所輸出的數(shù)據(jù)并作回旋位移,以輸出至該高速緩存;以及一第二回旋緩沖器,耦接于該主存儲器與該高速緩存之間,用以緩沖部分該些記憶單元所輸出的資料并作回旋位移,以分別寫回至對應(yīng)的該些記憶庫。
6.如權(quán)利要求5所述的數(shù)字信號處理裝置,其中該第一回旋緩沖器與該第二回旋緩沖器系將數(shù)據(jù)向左或向右做位置回旋位移。
7.如權(quán)利要求1所述的數(shù)字信號處理裝置,其中該處理單元更直接耦接至該主存儲器,以便當(dāng)該處理單元進行基數(shù)-2的蝴蝶運算時,使該處理單元不需經(jīng)過該高速緩存而直接存取該主存儲器。
8.一種數(shù)字信號處理裝置,包括一主存儲器,至少具有R個記憶庫,用以儲存代表該數(shù)字信號的多個資料,其中R為整數(shù);一處理單元,系為將數(shù)據(jù)運算處理的處理器;一高速緩存,耦接于該主存儲器與該處理單元之間,該高速緩存至少具有R×R個記憶單元,用以儲存該主存儲器中的部分資料以提供該處理單元運算所需的資料,以及暫存該處理單元的運算結(jié)果;一第一回旋緩沖器,耦接于該主存儲器與該高速緩存之間,用以緩沖該些記憶庫所輸出的數(shù)據(jù)并作回旋位移,以輸出至該高速緩存;以及一第三回旋緩沖器,耦接于該主存儲器與該高速緩存之間,以及耦接于該處理單元與該高速緩存之間,用以緩沖該高速緩存中部分該些記憶單元所輸出的資料并作回旋位移以分別寫回至對應(yīng)的該些記憶庫,用以暫存該高速緩存的輸出以提供該處理單元運算所需的數(shù)據(jù),以及用以暫存該處理單元的運算結(jié)果以寫回至該高速緩存中對應(yīng)的位置。
9.如權(quán)利要求8所述的數(shù)字信號處理裝置,其中該些記憶庫分別為單端口內(nèi)存與雙埠內(nèi)存二者的一。
10.如權(quán)利要求8所述的數(shù)字信號處理裝置,其中該處理單元為一基數(shù)-R的處理器。
11.如權(quán)利要求8所述的數(shù)字信號處理裝置,其中該第一回旋緩沖器與該第三回旋緩沖器系將數(shù)據(jù)向左或右做位置回旋位移。
12.一種數(shù)字信號處理裝置,包括一主存儲器,至少具有R個記憶庫,用以儲存代表該數(shù)字信號的多個資料,其中R為整數(shù);一處理單元,系為將數(shù)據(jù)運算處理的處理器;一高速緩存,耦接于該主存儲器與該處理單元之間,該高速緩存至少具有R×R個記憶單元,用以儲存該主存儲器中的部分資料以提供該處理單元運算所需的資料,以及暫存該處理單元的運算結(jié)果;一第一回旋緩沖器,耦接于該主存儲器與該高速緩存之間,用以緩沖該些記憶庫所輸出的數(shù)據(jù)并作回旋位移,以輸出至該高速緩存;以及一第四回旋緩沖器,耦接于該主存儲器與該處理單元之間,用以緩沖該處理單元所輸出的運算結(jié)果并作回旋位移,以分別寫回至對應(yīng)的該些記憶庫。
13.如權(quán)利要求12所述的數(shù)字信號處理裝置,其中更包括一數(shù)據(jù)緩沖器,耦接于該處理單元與該高速緩存之間,用以暫存該高速緩存的輸出以提供該處理單元運算所需的資料,以及暫存該處理單元的運算結(jié)果以寫回至該高速緩存中對應(yīng)的位置。
14.如權(quán)利要求12所述的數(shù)字信號處理裝置,其中該些記憶庫分別為單端口內(nèi)存與雙埠內(nèi)存二者的一。
15.如權(quán)利要求12所述的數(shù)字信號處理裝置,其中該處理單元為一基數(shù)-R的處理器。
16.如權(quán)利要求12所述的數(shù)字信號處理裝置,其中該第一回旋緩沖器與該第四回旋緩沖器系將數(shù)據(jù)向左或右做位置回旋位移。
17.一種數(shù)字信號處理裝置,包括一主存儲器,至少具有R個記憶庫,用以儲存代表該數(shù)字信號的多個資料,其中R為整數(shù);一處理單元,系為將數(shù)據(jù)運算處理的處理器;一高速緩存,耦接于該主存儲器與該處理單元之間,該高速緩存至少具有R×R個記憶單元,用以儲存該主存儲器中的部分資料以提供該處理單元運算所需的資料,暫存該處理單元的運算結(jié)果,以及將儲存于該些記憶單元的數(shù)據(jù)寫回至對應(yīng)的該些記憶庫;以及一回旋緩沖單元,耦接于該處理單元與該高速緩存之間,用以緩沖部分該些記憶單元所輸出的資料并作回旋位移以提供該處理單元運算所需的數(shù)據(jù),以及用以緩沖該處理單元所輸出的運算結(jié)果并作回旋位移以分別寫回至對應(yīng)的部分該些記憶單元。
18.如權(quán)利要求17所述的數(shù)字信號處理裝置,其中該些記憶庫分別為單端口內(nèi)存與雙埠內(nèi)存二者的一。
19.如權(quán)利要求17所述的數(shù)字信號處理裝置,其中該處理單元為一基數(shù)-R的處理器。
20.如權(quán)利要求17所述的數(shù)字信號處理裝置,其中該回旋緩沖單元系將數(shù)據(jù)向左或右做位置回旋位移。
21.如權(quán)利要求17所述的數(shù)字信號處理裝置,其中該處理單元更耦接至該主存儲器,用以將該處理單元所輸出的運算結(jié)果分別寫回至對應(yīng)的該些記憶庫。
全文摘要
一種數(shù)字信號處理裝置,其包括主存儲器、處理單元、高速緩存以及回旋緩沖單元(rotate-buffer)。主存儲器至少具有R個記憶庫以儲存代表該數(shù)字信號的多個資料。高速緩存耦接于主存儲器與處理單元之間。高速緩存至少具有R×R個記憶單元,用以儲存主存儲器中的部分資料,以提供處理單元運算所需的資料,以及暫存該處理單元的運算結(jié)果。回旋緩沖單元耦接于主存儲器與高速緩存之間,用以緩沖各記憶庫所輸出的數(shù)據(jù)并作回旋位移,以輸出至高速緩存;以及緩沖部分記憶單元所輸出的資料并作回旋位移,以分別寫回至對應(yīng)的記憶庫。
文檔編號H04L27/26GK1959666SQ20051011725
公開日2007年5月9日 申請日期2005年10月31日 優(yōu)先權(quán)日2005年10月31日
發(fā)明者賴宏吉, 蕭雅心 申請人:凌陽科技股份有限公司