TW201419837A - 用於數位信號處理之以瓦狀塊爲基礎的交插及解交插技術 - Google Patents

用於數位信號處理之以瓦狀塊爲基礎的交插及解交插技術 Download PDF

Info

Publication number
TW201419837A
TW201419837A TW102128080A TW102128080A TW201419837A TW 201419837 A TW201419837 A TW 201419837A TW 102128080 A TW102128080 A TW 102128080A TW 102128080 A TW102128080 A TW 102128080A TW 201419837 A TW201419837 A TW 201419837A
Authority
TW
Taiwan
Prior art keywords
memory
data items
sequence
dram
data
Prior art date
Application number
TW102128080A
Other languages
English (en)
Other versions
TWI604726B (zh
Inventor
Paul Murrin
Adrian John Anderson
Mohammed El-Hajjar
Original Assignee
Imagination Tech Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Imagination Tech Ltd filed Critical Imagination Tech Ltd
Publication of TW201419837A publication Critical patent/TW201419837A/zh
Application granted granted Critical
Publication of TWI604726B publication Critical patent/TWI604726B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0607Interleaved addressing
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/27Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes using interleaving techniques
    • H03M13/2703Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes using interleaving techniques the interleaver involving at least two directions
    • H03M13/2707Simple row-column interleaver, i.e. pure block interleaving
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/27Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes using interleaving techniques
    • H03M13/276Interleaving address generation
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6502Reduction of hardware complexity or efficient processing
    • H03M13/6505Memory efficient implementations

Abstract

本案描述列-行交插資料的以瓦狀塊為基礎的交插及解交插。在一個實例中,解交插被分為兩個記憶體轉移階段,第一轉移階段自一晶載記憶體至一DRAM,且第二轉移階段自該DRAM至一晶載記憶體。每一階段對資料的列-行交插區塊的一部分進行操作且對資料項重新排序,使得第二階段之輸出包含解交插資料。在第一階段中,根據記憶體讀取位址的一非線性序列自該晶載記憶體讀取資料項且將其寫入至該DRAM。在第二階段中,根據有效率地使用DRAM介面之線性位址序列之叢發自該DRAM讀取資料項且根據記憶體寫入位址的一非線性序列將其寫回至晶載記憶體。

Description

用於數位信號處理之以瓦狀塊為基礎的交插及解交插技術
本發明係有關於用於數位信號處理之以瓦狀塊為基礎的交插及解交插技術。
發明背景
數位信號處理用於廣泛多種應用中。許多此等應用在以下意義上係即時的:資料的處理存在時間限制,以使資料對終端使用者有意義或有用。此應用的實例係數位廣播串流,諸如數位電視及數位無線電。數位信號處理系統需要能夠足夠快地處理且解碼即時串流,以允許資料輸出與接收一樣快(不包括緩衝)。
數位信號處理系統除使用更多通用數位信號處理器之外還通常使用一或多個專用硬體周邊。硬體周邊係經設計來以快速及有效率的方式執行特定信號處理任務之處理區塊。例如,交插及解交插係通常使用硬體周邊對即時資料執行的操作。交插及解交插係需要大量記憶體的操作,且執行此操作的硬體周邊使用相關聯的專用記憶裝置來對資料重新排序。
然而,不同類型之即時資料的要求可顯著地不同。例如,全世界所使用之各種不同數位電視及無線電標準通常具有以不同方式結構化之即時資料,例如,針對編碼、交插、等化等使用不同類型或參數。若數位信號處理系統足夠靈活以用於不同標準,則用於交插/解交插之專用記憶裝置必須足夠大以應對具有最大記憶體需求的標準。結果,用於交插/解交插硬體周邊之記憶體經常未被充分利用。
記憶裝置的實例係DRAM(動態隨機存取記憶體)裝置。DRAM裝置按頁來組織其儲存內容,每頁的大小通常為幾千位元組。每個DRAM一次僅能使有限數目個頁(通常四個)打開,且需要許多附加項循環來打開頁以便取用資料。
以下描述的實施例不限於解決已知數位信號處理系統的劣勢中之任一個或全部之實行方案。
發明概要
提供此發明概述來以簡化形式引入在以下詳細描述中進一步描述的概念精選。此發明概述不意欲識別所主張之標的物的關鍵特徵或必需特徵,亦不意欲用來幫助確定所主張之標的物之範疇。
描述列-行交插資料的以瓦狀塊為基礎的交插及解交插。在一個實例中,解交插被分為兩個記憶體轉移階段,第一階段自晶載記憶體至DRAM,且第二階段自DRAM 至晶載記憶體。每一階段對資料的列-行交插區塊的一部分進行操作且對資料項重新排序,使得第二階段之輸出包含解交插資料。在第一階段中,根據記憶體讀取位址的非線性序列自晶載記憶體讀取資料項且將其寫入至DRAM。在第二階段中,根據有效率地使用DRAM介面之線性位址序列之叢發自DRAM讀取資料項且根據記憶體寫入位址的非線性序列將其寫回至晶載記憶體。
第一態樣提供一種數位信號處理系統單晶片(system-on-chip),該數位信號處理系統單晶片包含:第一記憶體,其儲存以第一序列來配置的多個資料項,每一資料項在第一記憶體上具有相關聯的記憶體位址,且多個資料項包含資料項區塊之子集;第二記憶體;以及轉移引擎,其耦接至第一記憶體及第二記憶體且包含埠,該埠接至動態隨機存取記憶體DRAM,其中該轉移引擎經組配來在第二記憶體轉移階段中將多個資料項自DRAM直接轉移至第二記憶體,且其中在第一記憶體轉移階段中,該轉移引擎經配置來根據記憶體讀取位址的預定非線性序列自第一記憶體讀取多個資料項且將多個資料項寫入至DRAM,且其中在第二記憶體轉移階段中,該轉移引擎經配置來根據線性位址序列之叢發自DRAM讀取多個資料項,線性位址序列之每一叢發具有基於DRAM介面叢發大小來選擇的長度,且根據記憶體寫入位址的預定非線性序列將多個資料項寫入至第二記憶體,使得多個資料項在第二記憶體上以第二序列來配置,第二序列不同於第一序列,且其中第一 序列及第二序列中之一者包含列-行交插資料。
第二個態樣提供一種在數位信號處理系統中對資料項區塊執行交插或解交插操作的方法,該方法包含:根據記憶體讀取位址的預定非線性序列自第一晶載記憶體讀取以第一序列儲存的第一多個資料項,其中第一多個資料項包含資料項區塊之子集;將第一多個資料項寫入至動態隨機存取記憶體DRAM;根據線性位址序列之叢發自DRAM讀取第一多個資料項,線性位址序列之每一叢發具有基於DRAM介面叢發大小來選擇的長度;以及根據記憶體寫入位址的預定非線性序列將第一多個資料項寫入至第二晶載記憶體,使得資料項在第二晶載記憶體上以第二序列來配置,第二序列不同於第一序列,,且其中第一序列及第二序列中之一者包含列-行交插資料。
第三態樣提供一種電腦程式,該電腦程式包含電腦程式碼構件,當該程式在電腦上運行時,該電腦程式碼構件適於執行上述方法中之任一者之所有步驟。該電腦程式可實施在電腦可讀媒體上。
第四態樣提供一種執行交插或解交插操作的方法,大致如參照圖式之圖5至圖10中之任一者所描述。
本文描述之方法可由電腦執行,該電腦係由以機器可讀形式儲存於有形儲存媒體上之軟體來組配,例如以電腦程式之形式,其中該電腦程式包含用於組配電腦來執行所描述方法之組成部分之電腦程式碼。有形(或非暫時性)儲存媒體之實例包括碟片、拇指隨身碟(thumb drive)、記憶 卡等,且不包括傳播信號。軟體可適合於在並行處理器上或串行處理器上執行,使得方法步驟可以任何適合的次序執行或同時執行。
此承認韌體及軟體可為有價的、可分開交易之商品。意欲包含在「簡易」或標準硬體上運行或控制「簡易」或標準硬體來執行所需功能之軟體。亦意欲包含「描述」或定義硬體組配之軟體,諸如HDL(硬體描述語言)軟體,其用於設計矽晶片或用於組配通用可規劃晶片來執行所需功能。
以上特徵可適當地組合,如熟習此項技術者將易於瞭解,且以上特徵可與實例之態樣中之任一者組合。
100‧‧‧晶片/系統
102‧‧‧晶載記憶體/記憶裝置
104‧‧‧DSP
106‧‧‧轉移引擎
108‧‧‧硬體(HW)周邊/硬體周邊
110‧‧‧一般控制處理器
112‧‧‧DRAM
202‧‧‧第一記憶體埠/記憶體埠
204‧‧‧第二記憶體埠
206‧‧‧周邊埠
208‧‧‧橫桿
210‧‧‧位址產生元件
212‧‧‧第一序列
300、502‧‧‧第一示意圖
302、506‧‧‧第二示意圖
304‧‧‧第三示意圖
402、404、602‧‧‧輸入資料項
406‧‧‧第一柵格
408、904、1004‧‧‧第二柵格
410‧‧‧非線性讀取序列/讀取序列
412‧‧‧線性寫入序列/寫入序列
414、416、616‧‧‧輸出資料項
521~524‧‧‧箭頭
561~564‧‧‧箭頭
604、702‧‧‧瓦狀塊
606‧‧‧非線性讀取序列
608‧‧‧線性寫入序列
610‧‧‧資料項
612‧‧‧DRAM讀取序列/讀取序列
614‧‧‧寫入序列
700‧‧‧時間交插區塊
802~818‧‧‧區塊
902、1002‧‧‧柵格
906‧‧‧虛線
現將參照以下圖式藉由實例來描述實施例,其中:圖1例示出數位信號處理系統;圖2例示出轉移引擎之示意圖;圖3展示例示出各種示範性解交插方法之示意圖;圖4例示出使用轉移引擎對兩個資料區塊執行之列-行操作之實例;圖5展示例示出兩個另外的示範性解交插方法之示意圖;圖6例示出圖4之列-行操作之實例,其具有增強來抵消DRAM裝置之限制;圖7展示示範性時間交插資料區塊; 圖8係示範性解交插方法之流程圖;圖9展示在圖8之用於圖7所展示之輸入交插區塊的方法之第一階段結束時儲存在DRAM中的資料項的柵格表示;以及圖10展示在圖8之用於圖7所展示之輸入交插區塊的方法之第二階段結束時儲存在晶載記憶體中的資料項的柵格表示。
在所有圖中使用共同的參考數字來指示類似特徵。
詳細說明
以下僅藉由實例來描述實施例。此等實例代表申請人當前已知的將實施例投入實踐之最佳方式,但該等方式並非可達成此實踐之僅有方式。描述陳述了實例之功能及用於構成及操作實例之步驟序列。然而,相同或等效的功能及序列可藉由不同實例實現。
以下描述一種利用通用數位信號處理器(DSP)以及專門硬體周邊兩者之數位信號處理系統。為允許對記憶體之有效率的使用,系統的不同元件能夠取用共用的晶載記憶體。可藉由轉移引擎,諸如直接記憶體存取(DMA)控制器,將資料項寫入至晶載記憶體或自晶載記憶體讀取資料項。晶載記憶體包含靜態隨機存取記憶體(SRAM)且轉移引擎亦具有接至動態RAM(DRAM)之埠,該埠可在晶片外部或在晶片上。轉移引擎具有位址產生元件,該位址產生元件允許自記憶體讀取資料項的不同序列及/或將其寫入 至記憶體,且此等序列可包含資料項的線性及非線性序列。
『線性』一詞在本文中係關於資料項的讀取/寫入序列來使用,用來指讀取/寫入連續(或相連)的資料項。相反,『非線性』一詞在本文中係關於資料項的讀取/寫入序列來使用,用來指讀取/寫入非連續(或非相連)的資料項,且以下描述非線性序列之實例。
以下描述中對DRAM之任何使用意欲涵蓋任何形式之DRAM,包括同步DRAM、雙倍資料速率(DDR)DRAM(可稱為DDR RAM)及叢發存取DRAM。如上所述,DRAM裝置按頁來組織其儲存內容,且一次僅能使有限數目個頁打開。當取用任何類型之DRAM時,頻繁取用不同頁的資料取用模式可為低效率的,因為該模式花費許多附加項循環來打開頁。在叢發取用DRAM中,DRAM介面讀取/寫入4個、8個、16個、32個或64個(或更多)連續位元組之叢發。使用不完全DRAM介面叢發之取用模式亦為低效率的。
當資料項在記憶體位置之間轉移或自一個記憶體轉移至另一記憶體(例如,SRAM與DRAM之間)時,讀取/寫入資料項的不同序列之能力允許即時對資料項執行重新排序操作,諸如交插或解交插。此避免需要在數位信號處理系統上包括用於交插或解交插之專用(非共用)記憶體,進而又減少晶片面積及成本。所使用之不同序列可經配置以來抵消某些類型之記憶裝置,諸如DRAM(就面積及因此成本而言,DRAM比SRAM用起來更便宜,且因此可 使用更大的DRAM)之效能限制,如以下更詳細描述。
在以下描述中,僅作為實例來使用時間交插/解交插;然而應瞭解,方法亦適用於其他形式之交插/解交插,諸如位元交插/解交插。
首先參照圖1,其展示示範性數位信號處理系統單晶片100之結構。系統100包含晶載記憶體102及DRAM 112,兩者皆連接至轉移引擎106。記憶裝置102、112兩者皆用於資料項之儲存,且兩者皆可提供共用的記憶體空間(例如,儲存與數位信號處理系統有關之資料以及MPEG或其他視訊串流相關資料)。晶載記憶體102可為任何適合形式之RAM,諸如(但不限於)SRAM,但不是DRAM。DRAM 112可在晶片上或在晶片外部(在其不可由DSP 104直接取用之意義上),且在以下描述中,『晶載』記憶體一詞用於指作為非DRAM記憶元件之晶載記憶體102,儘管事實上DRAM 112亦可為晶載記憶體(即,系統單晶片100之整體部分,因為其形成於同一片矽上)。
一或多個DSP 104連接至晶載記憶體102。DSP 104係可規劃來對資料執行信號處理計算,例如快速傅立葉變換及等化之處理器。當不考慮通用處理器時,DSP 104比以下描述之硬體周邊更可組配。DSP 104執行程式碼/指令來:自晶載記憶體102讀取資料,對資料執行信號處理操作,以及將資料寫回至晶載記憶體102。
轉移引擎106亦連接至晶載記憶體102,轉移引擎106為多個硬體(HW)周邊108提供對晶載記憶體102之 取用權。在一些實例中,轉移引擎106可呈直接記憶體存取(DMA)控制器之形式。轉移引擎106提供可由硬體周邊108使用的多個記憶體存取通道(例如,DMA通道),以允許自晶載記憶體102讀取資料或將資料寫入至晶載記憶體102。
如以上所指出,硬體周邊108係經組配來執行特定信號處理任務之專門、專用的固定功能硬體區塊。例如,一個硬體周邊可為專門的Viterbi解碼區塊,且另一個硬體周邊可為專門的Reed-Solomon解碼區塊。硬體周邊亦可稱為加速器。硬體周邊中之每一者彼此獨立操作。硬體周邊可能可充分組配成具備特定針對其任務之操作參數,但硬體周邊未充分組配來改變其任務(例如,Viterbi區塊不能被重新組配為Reed-Solomon區塊)。因此,硬體周邊比DSP 104更專門針對特定任務。然而,硬體周邊經配置來以非常快速且有效率的方式執行其專門任務。一般控制處理器110亦連接至晶載記憶體102,一般控制處理器110可用於初始化,組配及控制數位信號處理系統之操作。
以上描述之數位信號處理系統提供信號處理操作中的靈活性。例如,系統可經配置來操作,使得不同DSP 104及硬體周邊108以任何所需的組配或序列來處理資料。每一硬體周邊或DSP可對由系統之其他部分提供並且儲存在晶載記憶體102中的一或多個資料區塊(本文中亦稱為資料緩衝器)進行操作,且產生並儲存將由系統之其他元件使用之一或多個資料緩衝器。此允許數位信號處理系統 用於多種不同類型之信號,例如,用於不同的廣播/電信標準。
對由晶載記憶體102提供之共同的記憶體空間之使用允許減少在系統單晶片100中提供之記憶體儲存總量。在不使用共同的記憶體空間之情況下,每一處理元件具備其自有的專用記憶體。例如,DSP 104中之每一者可具有其自有的工作空間記憶體,一般控制處理器110具有用於儲存執行碼及資料之另一獨立的記憶體,硬體周邊108具有獨立的輸入及輸出緩衝器,以及一或多個額外記憶體可用於在處理元件之間交換資料。
因為數位信號處理系統可組配來允許實行不同的通訊標準,所以此等獨立的記憶體中之每一者需要針對對任何給定記憶體具有最大需求之特定標準來分別設定大小。換言之,DSP記憶體需要為足夠大以適應對DSP記憶體具有最大需求之標準。類似地,硬體周邊緩衝器需要為足夠大以適應對硬體周邊緩衝器具有最高需求之標準(其可能不同於具有高DSP記憶體需求之標準)。因此,大量記憶體通常未被處理元件中的一些使用。
然而,若晶載記憶體102提供共同的記憶體空間,則可將不同標準的記憶體要求(而非不同標準對系統的個別元件之要求)作為整體來考慮。換言之,晶載記憶體102需要為足夠大以適應標準之最大的總的、總記憶體需求。其作用在於,使該等標準之間的不同記憶體需求平均化(例如,一個標準可能需要更多的DSP記憶體,但更小的緩衝 器,而另一標準可能係相反情況)。其作用在於,所需的總記憶體量顯著較低,且因此節省矽面積。
由晶載記憶體102提供之共同的記憶體空間可因此容納由系統使用之所有不同類型之資料,諸如數位信號處理器工作空間、用於一般控制處理器之執行碼及資料、用於硬體周邊中的一或多個之輸入及輸出緩衝器、用於在處理器之間交換資料之一或多個緩衝器,以及用於數位信號處理系統之其他組配資料。
現參照圖2,其例示出轉移引擎106之示意圖。轉移引擎106包含:第一記憶體埠202,其經配置來連接至晶載記憶體102;以及第二記憶體埠204,其經配置來連接至DRAM 112。轉移引擎106亦包含多個周邊埠206,其中每一者經配置來連接至相關聯的硬體周邊108。記憶體埠202、204及周邊埠206全部連接至橫桿(crossbar)208,其允許此等埠中之任一者連接至此等埠中之任何其他埠。
轉移引擎106進一步包含位址產生元件210,其耦接至記憶體埠202、204兩者且經配置來為連接至記憶體埠202、204之記憶體中的任一者或兩者產生讀取及/或寫入位址之序列。在一些實例中,位址產生元件210可包含可組配的位址產生器,其可規劃來以許多不同模式(例如,線性及非線性模式)操作,且其可經組配來自一組可能的模式中選擇一或操作模式。在其他實例中,位址產生元件210可包含一或多個專用硬體區塊,該等硬體區塊經配置來產生特定位址序列(例如,針對資料項之特定配置使用列-行模 式之序列,及針對資料項之特定配置使用叢發列-行模式之序列)。在一些實例中位址產生元件210可產生線性及非線性序列兩者,且在其他實例中,直接連接可用於線性序列且位址產生元件可用於僅產生非線性序列。
藉由產生讀取及/或寫入位址之非線性序列,位址產生元件210可執行對儲存於記憶體(例如,晶載記憶體102或DRAM 112)上之資料項之非線性重新排序,該記憶體連接至轉移引擎106之埠中之一者。例如,圖2例示出儲存於晶載記憶體102上之資料項的第一序列212在轉移至DRAM 112期間可如何重新排序。在圖2之實例中,在晶載記憶體102上存在八個資料項,該等八個資料項儲存在用0至7表示之記憶體位址。在其他實例中,記憶體位址可自除零之外的基底位址開始,及/或每一個別資料項可大於記憶裝置上的單個記憶體位置。在此實例中,此等資料項被轉移至DRAM 112,但以不同於第一序列212之第二序列214來排序。為清楚起見,第二序列214中的資料項儲存於DRAM 112上用0'至7'表示之記憶體位址,但在其他實例中此等位址可自除零之外的基底位址開始。
在第一個實例中,位址產生元件210可產生非線性讀取序列[3、6、4、1、2、7、0、5]且將此讀取序列提供至第一記憶體埠202。位址產生元件210亦可產生線性寫入序列[0'、1'、2'、3'、4'、5'、6'、7']且將此序列提供至第二記憶體埠204(其中僅為達成解釋之目的,DRAM 112上的位址係用0'、1'等表示,以區分該等位址與晶載記憶體102 上之位址)。此導致第一記憶體埠202首先自讀取序列中的第一位址(位址3)讀取資料項,其在此實例中係資料項「A」。經由橫桿208將此資料項傳遞至第二記憶體埠204,第二記憶體埠204將此資料項寫入至寫入序列中的第一記憶體位址(位址0')。此導致資料項「A」被重新排序,自第一序列212中的第四資料項變為第二序列214中的第一資料項。此操作藉由讀取讀取序列中的下一位址(位址6、位址4等)及將對應的資料項(B、C、...)寫入至寫入序列中的下一位址(位址1'、位址2'、...)來重複。因此,來自第一序列的資料項(用G、D、E、A、C、H、B、F表示)現在以第二序列(A、B、C、D、E、F、G、H)儲存在DRAM上。
在第二個實例中,亦可藉由位址產生元件210產生線性讀取序列[0、1、2、3、4、5、6、7]及非線性寫入序列[6'、3'、4'、0'、2'、7'、1'、5']來達成相同的資料項重新排序。在此實例中,首先自晶載記憶體上的位址0讀取資料項「G」且將其寫入至DRAM上的位址6',後續接著自晶載記憶體上的位址1讀取資料項「D」且將其寫入至DRAM上的位址3',等等。類似地,在第三個實例中,亦可藉由位址產生元件210產生非線性讀取序列及非線性寫入序列來達成相同的資料項重新排序。此情形之一個實例將係讀取序列[0、2、4、6、1、3、5、7]及寫入序列[6'、4'、2'、1'、3'、0'、7'、5']。
在以上實例中之每一者中,在由轉移引擎106將資料項自晶載記憶體102直接轉移至DRAM 112期間執 行自第一序列至第二序列之重新排序。對於自DRAM 112至晶載記憶體102或自晶載記憶體至晶載記憶體中的另一位置之轉移,及類似地對於自DRAM至DRAM中的另一位址之轉移,亦可執行類似操作。
以上實例亦展示讀取及寫入位址序列係在執行轉移之前完全產生。然而,此位址序列產生亦可與轉移同時執行,例如,藉由當正在讀取/寫入一或多個先前資料項時產生一或多個讀取及寫入位址。
以上描述之處理程序允許作為至DRAM 112之記憶體轉移操作之整體部分將晶載記憶體102上之資料項重新排序成不同序列,且類似地,作為至晶載記憶體102之記憶體轉移操作之部分可將DRAM 112上的資料項重新排序成不同序列。此可用來實行交插或解交插,例如,藉由使用經配置來根據交插方案來產生讀取/寫入位址序列之位址產生元件210。
圖3展示例示出各種示範性解交插方法之示意圖。在第一示意圖300中,在自晶載記憶體102至晶載記憶體102之單個轉移中執行解交插。在後續兩個示意圖302、304中存在兩個轉移:一個轉移係自晶載記憶體102至DRAM 112,且第二轉移係自DRAM回到晶載記憶體102。在第二示意圖302中,可藉由以下方式來執行儲存於晶載記憶體102上之資料項之解交插:根據線性寫入序列將資料項寫入至DRAM 112,及接著使用特定非線性序列自DRAM 112讀取回該等資料項,可將其稱為『列-行模式』 或『列-行交插』。以下參照圖4詳細描述此非線性序列。或者,可藉由以下方式來執行資料項之解交插:使用列-行模式將資料項寫入至DRAM 112,及接著線性讀取回該等資料項,如圖3中的第三示意圖304所展示。
在圖3所展示之所有實行方案中,直至所有交插資料在輸入記憶體(即,在圖3中的各圖中之每一者之左手邊上展示之晶載記憶體102)中,解交插處理程序才開始。
列-行模式考慮資料項將配置於具有多個列及行之一或多個柵格或表中。此係如圖4所例示,圖4展示:輸入資料項的第一區塊402,其(僅為達成例示性目的)具有自0至23的相連記憶體位址;以及輸入資料項的第二區塊404,其(同樣僅為達成例示性目的)具有自24至47的相連記憶體位址。若參照圖3中的第二個實例302來描述列-行模式,則此等記憶體位址在DRAM 112中。在圖4所展示之實例中,考慮資料項係每六個資料項具有分欄符號,如圖4中由虛線所指示。此意味考慮連續記憶體位址係沿著具有六列之柵格之各行來配置(且可將此描述為沿著行來寫入/讀取資料)。
以柵格形式呈現之資料項展示於圖4中,圖4展示針對輸入資料項的第一區塊402之第一柵格406及針對輸入資料項的第二區塊404之第二柵格408。第一及第二柵格皆具有六列及四行。可注意到,連續定址之資料項係沿著行來配置。然而,在其他實例中,資料項亦可呈現為使得連續項改為沿著列來配置,在此情況下以下描述仍適 用,但應顛倒對列及行之參考。
列-行模式之目的係調換每一柵格,使得當輸入資料項(例如,來自DRAM 112)以遍歷柵格之行之序列來配置時,輸出資料項(例如,輸出至晶載記憶體102)以遍歷柵格之列之序列來配置。例如,參照柵格406,若輸入資料序列的前四個資料項係A、B、C、D(沿第一行讀取四個項),則輸出資料序列的前四個資料項係A、G、M、S(沿第一列讀取四個項)。諸如此操作之列-行操作因此取決於多少列被定義為存在於柵格中來改變資料項之次序。
為實行列-行模式,位址產生元件210產生導致列-行調換之讀取及寫入序列。此可藉由產生非線性讀取序列(例如,自DRAM 112)及線性寫入序列(如圖4所例示且以下更詳細描述)或可藉由產生線性讀取序列(例如,自晶載記憶體102)及非線性寫入序列(例如,如圖3中的第三個實例304所展示)來達成。在另外的實例中,亦可使用非線性讀取序列及非線性寫入序列來允許有效率的記憶體取用,如以下參照圖6描述。
圖4展示非線性讀取序列410之實例,可以看出其包含非連續記憶體位址。在一個實例中,可使用由以下偽碼所例示之演算法來產生位址序列:
其中「rows」(N1)係柵格中的列數(在圖4的實例中係六個),「columns」係柵格中的行數(在圖4的實例中係四個),「numBlocks」係資料項的區塊數(在圖4的實例中係兩個),且「numItems」係所有區塊之資料項的總數(在圖4的實例係48)。變數「a」、「b」及「o」係演算法內使用之內部變數,其可全部初始化為零,或其中一或多個可初始化為非零值來應用位移。
在計算N0之初始值(柵格中的列數)、N1(列數乘以行數)及N2(列數、行數及資料項的區塊數之乘積)之後,演算法歷經存在之資料項數而反覆,在每次反覆中計算序列中的下一位址(「nextItemAddr」)。實際上,演算法跳過來自輸入序列的固定數目個資料項(例如,在圖4中係六個)直至達到列之末尾(由第一個「if」語句確定),且接著使該列之起點遞增一並且重複。區塊之末尾可由第二個「if」語句偵測,該第二個「if」語句重設計算但加上根據餘數運算rem(.)計算出之位移(在圖4中係24)。接著重複該處理程序,直至達到「numItems」。注意,「numItems」可被設定為大於存在的資料項的總數的值,且若如此,則一旦已取用所有區塊,演算法就折回至第一區塊。
圖4展示由以上演算法產生之讀取序列410,其 中頂部列展示第一區塊(柵格406)之序列且底部列展示第二區塊(柵格408)之序列。以讀取序列410的前四項作為實例,此等項自位址0、6、12、18讀取,該等位址對應於來自輸入資料項402的資料項A、G、M、S。可以看出此對應於柵格406的第一列。
位址產生元件210產生具有連續記憶體位址之線性寫入序列412,使得當讀取序列410及寫入序列412由轉移引擎106使用時,以非線性序列來讀取資料項且以寫入線性序列來寫入資料項。注意,為簡單起見,圖4中之寫入序列具有自0至47之位址,但在其他實例中位址可自任何基底位址開始。讀取序列410及寫入序列412之組合之結果可見於輸出資料項的第一區塊414及輸出資料項的第二區塊416中。藉由比較此等輸出資料項與柵格406及408,可以看出已成功執行列-行操作。
亦可藉由產生線性讀取序列及非線性寫入序列而獲取相同結果(例如,圖3中之第二個實例304),如下(為簡潔起見僅展示第一區塊):讀取序列:
寫入序列:
可使用與以上詳細描述之非線性讀取序列類似的技術來產生非線性寫入序列。以上實例例示出位址產生元件210如何可用來對資料項之集合實行交插/解交插操作,諸如列-行交換。
圖5展示示意圖502、506,其例示出兩個另外的示範性解交插方法,該等方法在與DRAM 112互動之方式方面更有效率。此等方法皆將時間解交插處理程序分為兩個記憶體至記憶體轉移操作(晶載記憶體至DRAM及接著DRAM至晶載記憶體),其中每一者使用至少一個非線性位址序列。此等方法亦皆使用列-行組合(R-C)模式(如以上參照圖4所描述,箭頭521及561)及叢發列-行模式(B R-C)模式(箭頭523、524及562至564)。
雖然圖5展示資料項自晶載記憶體102轉移至DRAM 112及接著回到晶載記憶體102,但應瞭解,資料項可改為被寫回至與最初自其讀取該等資料項之晶載記憶體分開的晶載記憶體,或資料項可被寫回至晶載記憶體102之不同部分。在一實例中,可自晶載記憶體102之一部分讀取(在由箭頭521及561指示的操作中)資料項,該部分可稱為瓦狀塊化緩衝器,且隨後可將資料項(以解交插形式)寫回至晶載記憶體102之一獨立部分(在由箭頭524及564指示的操作中),該獨立部分可稱為解交插器輸出緩衝器。此等兩個緩衝器可具有不同大小。在以下描述中,對自晶載記憶體102被轉移且接著回到晶載記憶體102之資料項之任何參考僅作為實例,並且所描述之方法亦可用來將資料項自一個晶載記憶元件轉移至另一晶載記憶元件(經由DRAM)或自晶載記憶體102之一部分轉移至晶載記憶體102之另一部分(經由DRAM)。
可將叢發列-行模式視為以上描述之列-行模式 之變體,或者,可將列-行模式視為叢發長度為一之叢發列-行模式之特定實例。叢發列-行模式考慮資料被配置於具有列及行之柵格中(如以上所描述);然而,代替在沿著列遍歷時自每一行僅讀取一個資料項(如在列-行情況下),叢發列-行模式在沿著列跳至下一行之前(即,藉由跳過r-L個資料項,其中r=柵格中的列數)讀取預定數目個連續位址(其中此預定數目被稱為『叢發長度』L)。例如,參照圖4之柵格406,若叢發長度係三,則叢發列-行模式首先在一個叢發中讀取三個連續項(項A、B、C),接著移動至下一行且讀取接下來的三個連續項(G、H、I),後續接著讀取M、N、O且接著讀取S、T、U。叢發列-行模式接著折回到第一行且讀取D、E、F,後續接著讀取J、K、L等。叢發列-行模式可因此被視為與列-行模式相同,除了讀取連續資料項之群組而非僅一個資料項之外,或者,列-行模式可被視為叢發長度等於一之叢發列-行模式。
在一個實例中,可使用由以下偽碼所例示之演算法來產生叢發列-行模式之讀取序列:
此偽碼中的變數被定義為在以上列-行模式之描述中所陳述的。此外,「burstLength」(N3)係在每一叢發中讀取之連續或相連項之數目,且N4係列數(N1)與行數之乘積減N3。注意,叢發列-行操作之寫入序列亦可以類似方式來產生。
叢發列-行模式可用來允許由某些類型之記憶裝置,諸如DRAM 112,來有效率地執行解交插操作,尤其在B R-C模式中的叢發長度(L)與DRAM介面叢發大小相同或接近的情況下。藉由以此方式(或根據以下描述之其他實例)基於DRAM介面叢發大小來選擇叢發長度(或叢發大小),此有效率地使用DRAM介面。相反,許多習知解交插器取用模式試圖連續讀取/寫入有很大間隔之資料項,從而由於不完全(DRAM介面)叢發及跨越許多DRAM頁而導致對DRAM裝置之記憶體取用。
例如,圖4之列-行操作讀取由柵格中的列數間隔開之連續資料項。在存在大量列之實例中,此可導致跨越記憶裝置有很大間隔之取用,從而導致自不同DRAM頁進行低效率的取用。返回參看圖3所展示之實例,可以看出,在第二個實例302中,以列-行模式自DRAM讀取係低效率的,且在第三個實例304中,以列-行模式寫入至DRAM亦為低效率的。
圖6例示出解交插操作之實例,其不會導致與頻繁取用不同頁或部分填充叢發相關聯的DRAM取用之無效 率。此實例亦展示於圖5中之第一示意圖502中。圖6之實例產生與圖4之列-行結果相同的列-行結果(即,有六列、四行及兩個區塊的交換),但使用許多遍線性循序記憶體取用來進行此操作,從而導致如DRAM之分頁裝置的有效率的操作。在圖6之實例中,轉移引擎自晶載記憶體102讀取輸入資料項之序列,將資料項儲存在DRAM 112上,且接著自DRAM 112讀回資料項且將其寫入至晶載記憶體102(可能會覆寫其原始位置),其中交換了列與行。
為達成解釋之目的,輸入資料項602與圖4之實例中所使用的輸入資料項相同。存在總共48個資料項,其具有自零開始之記憶體位址之連續序列。首先,以每區塊或瓦狀塊具有六列及兩行之列-行模式自晶載記憶體102讀取資料項。如圖6所展示,可考慮該等資料項被配置於瓦狀塊604中,每一瓦狀塊具有六列及兩行。本文中使用之瓦狀塊大小僅作為實例,且在許多實行方案中,可設定瓦狀塊大小等於DRAM介面叢發大小。又(即,使用列-行模式)藉由如以上所描述之位址產生元件210產生沿著此等瓦狀塊中之每一者之列進行讀取之非線性讀取序列606。亦藉由位址產生元件210產生線性寫入序列608。轉移引擎106使用非線性讀取序列606(圖5中的箭頭521)自晶載記憶體102讀取且使用線性寫入序列608(箭頭522)寫入至DRAM 112。以此方式寫入至DRAM並非低效率的,因為其線性地寫入至相連位址,且因此當資料項數足夠時僅將偶爾跨越DRAM頁邊界。
由於此操作,可以看出DRAM 112上的資料項610對應於自瓦狀塊604之列-行交換。接著由位址產生元件210產生非線性讀取序列612,其自DRAM 112讀取回此等資料項。此讀取序列係使用叢發列-行模式產生的且經組配來避免低效率取用。叢發列-行模式在此實例中使用每叢發六項、十二列及兩行。因為DRAM讀取序列612讀取資料項之叢發,所以此等資料項在DRAM上位於連續位址且因此不太可能跨越頁邊界且亦將有效率地使用在DRAM介面上可利用的叢發(尤其當位址產生器叢發長度L接近DRAM介面叢發大小時)。因此,相對於(非叢發)列-行取用,將跨越顯著更少的頁邊界。
亦產生非線性寫入序列614來將資料項寫回至晶載記憶體102。此寫入序列614亦係使用叢發列-行模式產生的,且在此實例中使用每叢發兩項、四列及三行。讀取序列612(圖5中的箭頭523)及寫入序列614(箭頭524)之組合使得寫回至晶載記憶體102之輸出資料項616係在與當執行具有六列、四行及兩個區塊之基本列-行操作時相同的序列中(此可與圖4相比較),除了資料係儲存在DRAM 112上而不會導致由於頁邊界及不完全叢發所導致之無效率之外。此外,因為自晶載記憶體102之初始讀取(圖5中的箭頭521)使用具有僅兩行之瓦狀塊之列-行操作,所以此允許整個瓦狀塊一到達晶載記憶體102時,至DRAM之資料轉移就開始,此比當使用四行區塊(如圖4中)時更快。此可在即時資料之情況下改良效能,在該情況下,資料在串 流中逐漸到達。
圖7至圖10例示出另一解交插操作之實例,其不會導致與取用不同頁相關聯的DRAM取用之無效率。此方法亦展示於圖5中的第二示意圖506中。如自圖5可以看出,此方法僅涉及在一個叢發內與DRAM 112之線性互動,即,使用叢發列-行模式來寫入至DRAM(箭頭562)並且自DRAM(箭頭563)讀取。如上所述,此意味將跨越非常少的頁邊界且有效率地使用DRAM介面叢發,且此改良了方法之總體效率。
僅為達成例示性目的,此方法考慮資料項被配置於具有多個列及行之一或多個柵格或表中(如在前述實例中)且進一步使用瓦狀塊之概念,該瓦狀塊係由呈列-行結構之資料集形成。如以下所描述,瓦狀塊可根據DRAM介面叢發或頁大小來設定大小。應瞭解,記憶體中的資料係儲存在相連的記憶體位置。
圖7展示示範性時間交插資料區塊700,其包含200個資料項(標記了位址0至199),該等資料項配置於10個瓦狀塊702(T0至T9)中,每一瓦狀塊包含20項。在DRAM 112係叢發模式取用之DRAM的情況下,可選擇瓦狀塊大小來匹配DRAM介面叢發大小,且此進一步改良方法之效率,因為記憶體轉移(如以下所描述)有效率地使用DRAM介面。若瓦狀塊大小不匹配DRAM介面叢發大小,則瓦狀塊大小可替代地小於DRAM介面叢發大小,或每瓦狀塊可有多個叢發。在瓦狀塊大小不完全匹配DRAM介面叢發大 小之許多實例中,使瓦狀塊與DRAM中的頁邊界對準,且此可提供DRAM介面效率之顯著改良。如以下更詳細描述,瓦狀塊大小之選擇限制晶載RAM瓦狀塊化緩衝器(即,自其讀取資料之晶載記憶體102)之大小,因為直至至少一個整個瓦狀塊被儲存在瓦狀塊化緩衝器中,方法才開始。
應瞭解,雖然圖7中之示範性時間交插區塊700包含200個資料項,但此等區塊可顯著大於此,且可包含數千個資料項。此外,時間交插區塊中的列及行之配置可由使用該方法之系統來設定。
解交插處理程序在此實例中被分為若干記憶體至記憶體轉移階段,其中每一轉移(或『瓦狀塊化工作』)轉移許多瓦狀塊,如可參考圖8所展示之流程圖來解釋。圖8所展示之方法在每一瓦狀塊化工作中轉移N個瓦狀塊且可選擇N的值等於一行瓦狀塊(例如,在圖7所展示之實例中,N=2)。然而,在其他實例中,瓦狀塊化工作可包含許多行瓦狀塊(例如,多於一行)以減少所需要的瓦狀塊化工作的數目。僅為達成解釋之目的,將參考圖7所展示之時間交插資料區塊700來描述圖8所展示之方法,且其中N=2。在瓦狀塊化工作包含多於一行瓦狀塊之實例中,方法如以下所描述來操作,且僅改變位址產生器之組配(即,此會使位址產生器處理更多資料)。
一旦來自時間交插區塊的最小值為N的瓦狀塊(即,至少N個瓦狀塊)被儲存在晶載記憶體102(區塊802) 中,例如,一旦瓦狀塊T0及T1被儲存在晶載記憶體102中,方法即可開始。如上所述,晶載記憶體102中儲存此等交插瓦狀塊T0及T1之部分可稱為瓦狀塊化緩衝器,且因為記憶體至記憶體轉移之第一階段81對N個瓦狀塊進行操作,所以僅可將此瓦狀塊化緩衝器設定大小成能夠儲存N個瓦狀塊之資料。在一實例中,瓦狀塊化緩衝器可為彈性緩衝器,該彈性緩衝器可以允許一或多個瓦狀塊工作之方式來設定大小,其取決於系統輸送量、可利用的記憶體頻寬及DRAM介面。
使用列-行模式自晶載記憶體102讀取第一瓦狀塊T0(區塊804及圖5中的箭頭561)。所使用的第一瓦狀塊之非線性讀取序列因此係:
其中以上數字對應於資料項在晶載記憶體中之位址,如圖7所展示。返回參看先前對列-行模式(且尤其是所提供之偽碼實例)之描述,可以看出,讀取一資料項(即,一個資料項)且接著在讀取另一資料項之前跳過接下來的9個資料項。重複此操作,直至已讀取總共4個資料項(瓦狀塊中之行數),且接著以一個資料項之位移(即,讀取位址1,後續接著讀取11)重複整個處理程序,以此類推,直至已讀取整個瓦狀塊。
接著使用叢發列-行模式將資料項之此序列寫入至DRAM 112(區塊806及箭頭562),其中叢發長度L等於瓦狀塊中的資料元素數(例如,L=20):
其中第一列對應於資料項在DRAM中的位址,其標記為0'至19',以區分該等位址與晶載記憶體102中的原始位址,自該晶載記憶體102讀取該等資料項,該等原始位址展示於第二列中。
接著重複此等兩個操作(區塊804中的讀取操作及區塊806中的寫入操作),直至所有N個瓦狀塊已寫入至DRAM(在區塊808中為『是』)。在此階段,在已將N個瓦狀塊寫入至DRAM後,可能已自晶載記憶體102讀取所有儲存的資料項,且在該情況下可用來自時間交插區塊的資料項之另外N個瓦狀塊再填充該晶載記憶體(區塊810)。或者,在晶載記憶體中已儲存有另外的瓦狀塊(例如,至少N個另外的瓦狀塊)的情況下,方法可繼續讀取額外瓦狀塊(區塊804)且將其寫入至DRAM(區塊806)而不需要再填充該晶載記憶體(即,省略掉區塊810)。
重複此第一階段81,直至已自晶載記憶體102讀取整個時間交插區塊700且將其寫入至DRAM(在區塊812中為『是』),其中視情況再填充晶載記憶體102(在區塊810)。在此實例中,將有五個轉移,其中每一個轉移兩個瓦狀塊(因為N=2且區塊700包含10個瓦狀塊)。
圖9展示在如圖7所展示之輸入時間交插區塊700之第一階段81結束時儲存在DRAM中之資料項的柵格表示902(由區塊700中的原始位址位置參考)。在此柵格902旁邊係第二柵格904,該第二柵格904識別DRAM 122中 的每一資料項之位址(標記為0'至199'以區分該等位址與晶載記憶體102中的原始位址0至199)。在此柵格表示中,原始瓦狀塊被重新排序(與區塊700相比較),但未被解交插,且來自瓦狀塊之經重新排序的資料項佔據連續記憶體位址(例如,T0被儲存在位址0'至19'中)。如自圖9可以看出,柵格包含40列及5行,使得每一行資料項(其中連續資料項係按行來配置)包含兩個瓦狀塊。一行中的瓦狀塊之間的邊界由虛線906標出。
在方法之第二階段82,將資料項轉移回至晶載記憶體102(或至另一晶片記憶元件,如以上描述),且使用另一重新排序操作來完成資料之解交插。使用具有叢發長度L之叢發列-行模式自DRAM 112讀取第一瓦狀塊T0(區塊814及圖5中的箭頭563),L同樣等於瓦狀塊中之資料元素數(在此實例中L=20),即,讀取序列係:
其中第一列對應於資料項在DRAM 112中的位址,且第二列展示晶載記憶體102中的原始位址,自晶載記憶體102讀取該等資料項。
接著使用叢發列-行模式將瓦狀塊T0寫入至晶載記憶體102(區塊816及箭頭564)。叢發列-行模式使用叢發長度L,L等於原始時間交插區塊700中的瓦狀塊中之行數,例如,在圖7所展示之實例中為四。因此將資料寫入至晶載記憶體中的四個連續位址,跳過接下來的16個位址(原始時間交插區塊中的行數=調換後的區塊中的列數 =20,20-4=16),且接著將資料寫入至接下來的四個連續位址,以此類推。非線性寫入序列因此係:
其中第一列對應於晶載記憶體中之位址,寫入係針對該等位址,其標記為0"、1"等,以區分該等位址與晶載記憶體102中的原始位址,其中在第一階段81自晶載記憶體102讀取該等資料項,且此等原始位址展示於第二列中。
應注意,寫入至DRAM且自DRAM讀取之前兩個叢發列-行操作(箭頭562及563)中所使用的叢發長度使用相同的叢發長度(例如,L=20),且寫入至晶載記憶體之此第三叢發列-行操作(箭頭564)使用不同的叢發長度(例如,L=4)。
接著逐個瓦狀塊地(且使用與第一階段81相同的瓦狀塊大小)重複此第二階段82,直至所有瓦狀塊已寫入至晶載記憶體102(在區塊818中為『是』)。
圖10展示在如圖7所展示之輸入時間交插區塊700之第二階段82結束時儲存在晶載記憶體中之資料項的柵格表示1002(由區塊700中的原始位址位置參考)。在此柵格1002旁邊係第二柵格1004,該第二柵格1004識別晶載記憶體102中的每一資料項之位址(標記為0"至199"以區分該等位址與晶載記憶體102中的原始位址0至199及DRAM 112中的位址0'至199')。在此柵格表示中,原始資料項被解交插,如自圖10可以看出,使得第一瓦狀塊T0 現在包含四列及五行(而非如區塊700中的五列及四行),如由點線輪廓所展示。如自圖10可以看出,一個解交插區塊之柵格包含20列及10行。
應瞭解,雖然圖7、圖9及圖10展示位址自基底位址0開始,但在其他實例中,位址可自任何基底位址開始。
自以上解釋及圖8可以看出,方法中之讀取/寫入工作可對許多瓦狀塊(例如,一或多個瓦狀塊)而非整個時間交插區塊進行操作。此允許針對特定DRAM介面叢發大小來優化方法,例如,可將瓦狀塊設定成最多為與一個DRAM介面叢發相同的大小,且瓦狀塊化工作則將係整數個DRAM介面叢發(例如,在以上參照圖7、圖9及圖10所描述之實例中係兩個)。由DRAM介面定義之DRAM介面叢發大小可在DRAM中的頁或子頁層級上設定且將取決於匯流排頻寬,且可設定成使得叢發之開始與頁之開始對準,且在可能的情況下完全在一頁內完成(以防止由於記憶體分頁導致之無效率)。如上所述,在瓦狀塊大小不完全匹配DRAM介面叢發大小或係DRAM介面叢發大小之倍數的情況下,瓦狀塊可改為與頁邊界對準,以便改良DRAM效率,此係以未使用的DRAM容量為代價。
雖然以上描述及圖8展示串行地執行方法(即,在第一階段81已完成之後執行第二階段82),但可並行地執行方法之態樣,使得自SRAM讀取來自一個時間交插區塊之瓦狀塊且將其寫入至DRAM(在第一階段81),且同時 自DRAM讀取來自另一時間交插區塊之瓦狀塊且將其寫入至SRAM(在第二階段82)。此允許記憶體重複使用,因為寫入至DRAM之操作(區塊806)可使用的位址集合可與在第二階段82進行讀取(區塊814)的位址集合相同,只要定時係使得在用來自另一時間交插區塊之資料項覆寫特定位址(區塊806)之前讀取該特定位址(區塊814)即可。
圖8所展示且以上描述之方法將調換資料項柵格之操作分為(為了執行解交插)兩個獨立的部分。當自SRAM讀取(區塊804及圖5中的箭頭561)且寫入至DRAM(區塊806及箭頭562)時執行調換之第一部分,且當自DRAM讀取(區塊814及箭頭563)且寫回至SRAM(區塊816及箭頭564)時執行調換之第二部分。所有此等調換使用非線性位址序列;然而,使用不同的非線性序列。在第一部分中,列-行模式用於自SRAM讀取(叢發長度=1),且在第二部分中,叢發列-行模式用於寫入至SRAM(叢發長度=瓦狀塊中的行數)。與DRAM之互動(區塊806中的寫入及區塊814中的讀取)使用叢發列-行模式,該叢發列-行模式之叢發長度等於瓦狀塊中之資料元素數(例如,在圖7至圖10所展示之實例中L=20)。
以上參照圖5(實例506)及圖7至圖10所描述之方法有效率地使用可利用的DRAM(且尤其是叢發取用的DRAM)頻寬,因為多階段處理程序之使用涉及資料瓦狀塊(而非整個時間交插區塊)之轉移,其中瓦狀塊大小係根據DRAM介面叢發大小來選擇。瓦狀塊之配置特定針對特定 實行方案,且以上描述之方法可適用於瓦狀塊之任何配置及每瓦狀塊任何資料項數。
例如,在DVB-T2中使用該方法時,一行中的瓦狀塊數(N)可設定成等於前向誤差校正(FEC)區塊之數目,使得圖7至圖10所展示之實例可對應於存在兩個FEC區塊之情形。在其他實例中,可存在三個FEC區塊,因此N=3,且在瓦狀塊化工作中將自SRAM轉移三個瓦狀塊至DRAM且將其寫入至DRAM中的連續位址。
以上描述之方法,解交插處理程序被分為若干階段。使用所描述之方法,不必在解交插處理程序可開始之前將整個交插資料區塊儲存在瓦狀塊化緩衝器中。如參照圖8所描述,僅有必要在方法開始之前將N個瓦狀塊儲存在瓦狀塊化緩衝器中。
以上參照圖5(實例506)及圖7至圖10所描述之方法可使用圖2所展示之位址產生元件210來實行。此位址產生元件210可為可組配的或可包含特定硬體邏輯,該硬體邏輯經配置來產生在該方法之特定實行方案(例如,針對瓦狀塊之特定配置)中使用之所需要的(預定)非線性位址序列。
以上描述之方法可用於解交插任何交插資料區塊。實例應用包括OFDM信號,且尤其是數位地面電視(DTT)信號,諸如DVB-T2;然而,方法不限於OFDM、DTT或DVB-T2。以上描述之方法亦可用於交插資料來形成交插資料區塊。為將以上描述之方法用於交插,而非解交插, 方法步驟保持相同,且不同之處在於輸入資料(例如,如在區塊802所儲存)包含解交插資料(而非交插資料)且輸出資料(例如,如在圖8結束時寫回至SRAM)包含交插資料(而非解交插資料)。
「處理器」及「電腦」一詞在本文中用於指具有處理能力以便可執行指令之任何裝置。熟習此項技術者將認識到,此等處理能力併入於許多不同裝置中,且因此「電腦」一詞包括機上盒、媒體播放器、數位無線電、PC、伺服器、行動電話、個人數位助理及許多其他裝置。
熟習此項技術者將認識到,用來儲存程式指令或資料之儲存裝置可分佈於網路上。例如,遠端電腦可將所描述之處理程序之實例儲存為軟體。區域或終端電腦可取用遠端電腦且下載運行程式之軟體之一部分或全部。或者,區域電腦在需要時可下載軟體之片段,或在區域終端機處執行一些軟體指令且在遠端電腦(或電腦網路)處執行一些軟體指令。熟習此項技術者亦將認識到,藉由使用熟習此項技術者已知的習知技術,可由專用電路、可規劃邏輯陣列或類似物執行軟體指令之全部或一部分。
對「邏輯」之特定參考指執行功能之結構。邏輯之實例包括經配置來執行該(等)功能之電路。例如,此電路可包括電晶體及/或在製造過程中可利用的其他硬體元件。舉例而言,此等電晶體及/或其他元件可用來形成實行及/或含有記憶體之電路或結構,諸如暫存器、正反器或鎖存器、邏輯運算器,諸如布爾運算、數學運算器,諸如加 法器、乘法器或移位器,以及互連。此等元件可提供為定製電路或標準單元庫、巨集或在其他抽象層級。此等元件可在特定配置中互連。邏輯可包括具有固定功能之電路且電路可經規劃來執行功能;此規劃可由韌體或軟體更新或控制機制來提供。經識別為執行一個功能之邏輯亦可包括實行子功能或子處理程序之邏輯。在一實例中,硬體邏輯具有實行固定功能操作、狀態機或處理程序之電路。
如熟習此項技術者將易於瞭解,可擴展或改變本文中給出之任何範圍或裝置的值而不會喪失所尋求之效果。
應瞭解,以上描述之益處及優勢可關於一個實施例或可關於若干實施例。實施例不限於解決所陳述問題中之任一者或全部的實施例或具有所陳述益處及優勢中之任一者或全部的實施例。
對「一」項之任何參考指該等項中的一或多者。「包含」一詞在本文中用來意味包括所識別的方法區塊或元件,但此等區塊或元件不包含詳盡的清單,且設備可含有額外區塊或元件,且方法可含有額外操作或元件。
本文所描述之方法之步驟可以任何適合的次序執行或視情況同時執行。此外,在不脫離本文所描述之主題之精神及範疇的情況下可自該等方法中之任一者中刪除個別區塊。以上描述之實例中之任一者之態樣可與所描述之其他實例中之任一者之態樣相結合以形成另外的實例而不會喪失所尋求之效果。
應瞭解,以上對較佳實施例之描述僅作為實例提供且可由熟習此項技術者進行各種修改。雖然以上已用某種程度之具體性或參考一或多個個別實施例來描述各種實施例,但熟習此項技術者可在不脫離實例之精神或範疇的情況下對所揭示之實施例進行眾多變更。
102‧‧‧晶載記憶體/記憶裝置
112‧‧‧DRAM
502‧‧‧第一示意圖
506‧‧‧第二示意圖
521~524‧‧‧箭頭
561~564‧‧‧箭頭

Claims (20)

  1. 一種數位信號處理系統單晶片,其包含:一第一記憶體(102),其儲存以一第一序列來配置之多個資料項,其中每一資料項在該第一記憶體上具有一相關聯的記憶位址;一第二記憶體;以及一轉移引擎,其耦接至該第一記憶體及該第二記憶體且包含一埠,該埠接至一動態隨機存取記憶體DRAM,其中該轉移引擎經組配來在一第一記憶體轉移階段中將該等多個資料項自該第一記憶體直接轉移至該DRAM且在一第二記憶體轉移階段中將該等多個資料項自該DRAM直接轉移至該第二記憶體,以及其中在該第一記憶體轉移階段中,該轉移引擎經配置來根據記憶體讀取位址的一預定非線性序列自該第一記憶體讀取該等多個資料項且將該等多個資料項寫入至該DRAM,以及其中在該第二記憶體轉移階段中,該轉移引擎經配置來根據線性位址序列之叢發自該DRAM讀取該等多個資料項,其中線性位址序列之每一叢發具有基於一DRAM介面叢發大小來選擇的一長度,且根據記憶體寫入位址的一預定非線性序列將該等多個資料項寫入至該第二記憶體,使得該等多個資料項在該第二記憶體上以一第二序列來配置,該第二序列不同於該第一序列, 且其中該第一序列及該第二序列中之一者包含列-行交插資料。
  2. 如請求項1之數位信號處理系統單晶片,其中該第一記憶體及該第二記憶體皆為靜態隨機存取記憶體。
  3. 如請求項1之數位信號處理系統單晶片,其中該第一記憶體及該第二記憶體為同一晶載記憶體。
  4. 如請求項1之數位信號處理系統單晶片,其進一步包括該DRAM。
  5. 如請求項1之數位信號處理系統單晶片,其中該等多個資料項包含一資料項區塊之一子集,且該轉移引擎被進一步配置來重複該第一記憶體轉移階段及該第二記憶體轉移階段,直至該資料項區塊已全部寫入至該第二記憶體。
  6. 如請求項1之數位信號處理系統單晶片,其進一步包含至少一個位址產生元件(210),其經配置來產生記憶體讀取位址的該預定非線性序列及記憶體寫入位址的該預定非線性序列。
  7. 如請求項1之數位信號處理系統單晶片,其中該等多個資料項包含一資料項區塊之一子集,且該資料項區塊被定義為經配置為一柵格,該柵格包含許多列資料項及許多行資料項。
  8. 如請求項7之數位信號處理系統單晶片,其中該柵格進一步包含多個瓦狀塊,每一瓦狀塊包含該柵格的一矩形部分且進一步包含R列資料項及C行資料項,且其中 該等多個資料項包含一或多個瓦狀塊。
  9. 如請求項8之數位信號處理系統單晶片,其中記憶體讀取位址的該預定義的非線性序列針對第一多個資料項中的每一瓦狀塊包含:非連續記憶位址之一序列,該等非連續記憶位址由固定數目個記憶體位址分開且以一初始起始位址開始,該固定數目對應於比該柵格中的列數少一個,直至到達該瓦狀塊之一邊界;後續接著非連續記憶位址之一或多個額外序列,其中每一額外序列以一位移後的初始起始位址開始。
  10. 如請求項8之數位信號處理系統單晶片,其中記憶體寫入位址的該預定非線性序列包含:C個連續記憶位址之群組之一序列,該等位址在該第二記憶體中由固定數目個記憶位址分開且在該第二記憶體中以一初始起始位址開始,該固定數目對應於比該柵格中的行數少C個。
  11. 如請求項8之數位信號處理系統單晶片,其中該等多個資料項包含該柵格之一瓦狀塊。
  12. 如請求項8之數位信號處理系統單晶片,其中在該第二記憶體轉移階段中,線性位址序列之該叢發包含X個連續記憶位址之叢發之一序列,該等位址在該第二記憶體中由固定數目個記憶位址分開且在該第二記憶體中以一初始起始位址開始,其中X等於該柵格之一瓦狀塊中的資料項數。
  13. 如請求項8之數位信號處理系統單晶片,其中在該第一記憶體轉移階段中,該轉移引擎經配置來根據線性位址 序列之叢發將該等多個資料項寫入至該DRAM,其中線性位址序列之每一叢發具有基於一DRAM介面叢發大小來選擇的一長度。
  14. 如請求項13之數位信號處理系統單晶片,其中在該第一記憶體轉移階段中,線性位址序列之該叢發包含X個連續記憶位址之叢發之一序列,該等位址在該第二記憶體中由固定數目個記憶位址分開且在該第二記憶體中以一初始起始位址開始,其中X等於該柵格之一瓦狀塊中的資料項數。
  15. 如請求項8之數位信號處理系統單晶片,其中一瓦狀塊係基於該DRAM介面叢發之一大小來設定大小。
  16. 一種在一數位信號處理系統中對資料項執行一交插或解交插操作的方法,該方法包含:根據記憶體讀取位址的一預定非線性序列自一第一晶載記憶體讀取第一多個資料項(521、561、804),該等第一多個資料項係按一第一序列來儲存的;將該等第一多個資料項寫入至一動態隨機存取記憶體DRAM(522、562、806);根據線性位址序列之叢發自該DRAM讀取該等第一多個資料項(523、563、814),其中線性位址序列之每一叢發具有基於一DRAM介面叢發大小來選擇的一長度;以及根據記憶體寫入位址的一預定非線性序列將該等第一多個資料項寫入至一第二晶載記憶體(524、564、 816),使得該等資料項在該第二晶載記憶體上以一第二序列來配置,該第二序列不同於該第一序列,且其中該第一序列及該第二序列中之一者包含列-行交插資料。
  17. 如請求項16之方法,其中該等第一多個資料項包含一資料項區塊之一子集,其中該資料項區塊被定義為配置為一柵格,該柵格包含許多列資料項及許多行資料項,該柵格進一步包含多個瓦狀塊,每一瓦狀塊包含該柵格的一矩形部分且進一步包含R列資料項及C行資料項,且其中該等第一多個資料項包含一或多個瓦狀塊,且其中根據記憶體讀取位址的一預定非線性序列自一第一晶載記憶體讀取以一第一序列來儲存的第一多個資料項針對該等第一多個資料項中的每一瓦狀塊包含:(i)讀取在該第一晶載記憶體中的一初始起始位址之一資料項;(ii)跳過固定數目個資料項,該固定數目對應於比該柵格中的列數少一個;(iii)讀取一資料項;(iv)重複步驟(ii)及(iii),直至到達該瓦狀塊之一邊界;(v)對該初始起始位址加上一位移;以及(vi)重複步驟(i)至(v),直至已讀取該瓦狀塊中的每一資料項。
  18. 如請求項16之方法,其中該等第一多個資料項包含一資料項區塊之一子集,其中該資料項區塊被定義為配置 為一柵格,該柵格包含許多列資料項及許多行資料項,該柵格進一步包含多個瓦狀塊,每一瓦狀塊包含該柵格的一矩形部分且進一步包含R列資料項及C行資料項,且其中該等第一多個資料項包含一或多個瓦狀塊,且其中根據記憶體寫入位址的一預定義的非線性序列將該等第一多個資料項寫入至一第二晶載記憶體包含:(i)將來自該等第一多個資料項之C個資料項寫入至該第二晶載記憶體中的多個連續位址,其中針對該瓦狀塊,以該第二晶載記憶體中的一初始起始位址開始;(ii)跳過該第二晶載記憶體中的固定數目個位址,該固定數目對應於比該柵格中的行數少C個;(iii)將來自該等第一多個資料項之C個資料項寫入至該第二晶載記憶體中的多個連續位址;以及(iv)重複步驟(ii)及(iii)。
  19. 如請求項16之方法,其中該等第一多個資料項包含一資料項區塊之一子集,其中該資料項區塊被定義為配置為一柵格,該柵格包含許多列資料項及許多行資料項,該柵格進一步包含多個瓦狀塊,每一瓦狀塊包含該柵格的一矩形部分且進一步包含R列資料項及C行資料項,且其中該等第一多個資料項包含一或多個瓦狀塊,且其中將該等第一多個資料項寫入至該DRAM(562)包含:(i)將來自該等第一多個資料項之X個資料項寫入至該DRAM中的多個連續位址,其中針對該瓦狀塊, 以該DRAM中的一初始起始位址開始;(ii)跳過該DRAM中的固定數目個位址;(iii)將來自該等第一多個資料項之X個資料項寫入至該DRAM中的多個連續位址;以及(iv)重複步驟(ii)及(iii),其中X等於該柵格之一瓦狀塊中的資料項數。
  20. 如請求項16之方法,其中該等第一多個資料項包含一資料項區塊之一子集,其中該資料項區塊被定義為配置為一柵格,該柵格包含許多列資料項及許多行資料項,該柵格進一步包含多個瓦狀塊,每一瓦狀塊包含該柵格的一矩形部分且進一步包含R列資料項及C行資料項,且其中該等第一多個資料項包含一或多個瓦狀塊,且其中根據線性位址序列之叢發自該DRAM讀取(563)該等第一多個資料項包含:(i)自該DRAM中的多個連續位址讀取來自該等第一多個資料項之X個資料項,其中以該DRAM中的一初始起始位址開始;(ii)跳過該DRAM中的固定數目個位址;(iii)自該DRAM中的多個連續位址讀取來自該等第一多個資料項之X個資料項;以及(iv)重複步驟(ii)及(iii),其中X等於該柵格之一瓦狀塊中的資料項數。
TW102128080A 2012-08-30 2013-08-06 用於數位信號處理之以瓦狀塊為基礎的交插及解交插技術 TWI604726B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
GB1215425.8A GB2497154B (en) 2012-08-30 2012-08-30 Tile based interleaving and de-interleaving for digital signal processing

Publications (2)

Publication Number Publication Date
TW201419837A true TW201419837A (zh) 2014-05-16
TWI604726B TWI604726B (zh) 2017-11-01

Family

ID=47074965

Family Applications (1)

Application Number Title Priority Date Filing Date
TW102128080A TWI604726B (zh) 2012-08-30 2013-08-06 用於數位信號處理之以瓦狀塊為基礎的交插及解交插技術

Country Status (6)

Country Link
US (4) US10296456B2 (zh)
JP (1) JP5575310B2 (zh)
CN (1) CN103678190B (zh)
DE (1) DE102013014168B4 (zh)
GB (1) GB2497154B (zh)
TW (1) TWI604726B (zh)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9256531B2 (en) 2012-06-19 2016-02-09 Samsung Electronics Co., Ltd. Memory system and SoC including linear addresss remapping logic
GB2497154B (en) * 2012-08-30 2013-10-16 Imagination Tech Ltd Tile based interleaving and de-interleaving for digital signal processing
US10186236B2 (en) * 2013-05-23 2019-01-22 Intel Corporation Universal codec
KR102354992B1 (ko) 2015-03-02 2022-01-24 삼성전자주식회사 양안 시차 영상에 대한 타일 기반 렌더링 방법 및 장치
KR102341267B1 (ko) 2015-05-04 2021-12-20 삼성전자주식회사 양안 시차 영상에 대한 렌더링 방법 및 장치
CN105681904A (zh) * 2016-01-18 2016-06-15 四川长虹电器股份有限公司 提高电视响应速度的方法
TWI617138B (zh) * 2016-01-26 2018-03-01 晨星半導體股份有限公司 時間解交錯電路與方法
CN107038122A (zh) * 2016-02-04 2017-08-11 晨星半导体股份有限公司 时间解交错电路与方法
EP3586484B1 (en) * 2017-02-27 2021-04-07 Alto Beam (China) Inc. Apparatus for performing deinterleaving of a binary data stream and dvb-t2 receiver
CN109728826B (zh) * 2017-10-27 2023-07-07 深圳市中兴微电子技术有限公司 一种数据交织与解交织方法和装置
GB202008299D0 (en) * 2020-06-02 2020-07-15 Imagination Tech Ltd Manipulation of data in a memory
US20220197653A1 (en) * 2020-12-22 2022-06-23 Intel Corporation Processors, methods, systems, and instructions to select and store data elements from strided data element positions in a first dimension from three source two-dimensional arrays in a result two-dimensional array
US20220206854A1 (en) * 2020-12-24 2022-06-30 Intel Corporation Apparatuses, methods, and systems for instructions for aligning tiles of a matrix operations accelerator
US20240015217A1 (en) * 2022-07-06 2024-01-11 Mellanox Technologies, Ltd. Patterned Remote Direct Memory Access (RDMA)

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5802387A (en) * 1996-12-27 1998-09-01 Lucent Technologies Inc. Efficient data transfer in a digital signal processor
DE69840408D1 (de) * 1997-07-31 2009-02-12 Cisco Tech Inc Erzeugung von sprachnachrichten
JP3738134B2 (ja) * 1998-06-19 2006-01-25 三洋電機株式会社 デジタル信号処理装置
JP2000307440A (ja) * 1999-04-23 2000-11-02 Denso Corp データ列変換装置,及びデータ伝送システム
TW486885B (en) * 2000-05-22 2002-05-11 Yozan Inc Address converter, interleaver and de-interleaver
US6868519B2 (en) * 2001-04-23 2005-03-15 Lucent Technologies Inc. Reducing scintillation effects for optical free-space transmission
WO2003063060A2 (en) 2002-01-24 2003-07-31 Broadcom Corporation Asymmetric digital subscriber line modem apparatus and methods therefor
JP3980901B2 (ja) * 2002-02-12 2007-09-26 沖電気工業株式会社 デジタル信号処理装置
WO2003085838A1 (fr) * 2002-04-05 2003-10-16 Sony Corporation Dispositif et procede d'entrelacement, dispositif et procede de desentrelacement
GB2391337B (en) * 2002-04-26 2005-06-15 Motorola Inc Instruction cache and method for reducing memory conflicts
US7600163B2 (en) * 2003-09-23 2009-10-06 Realtek Semiconductor Corp. Convolutional interleaver and deinterleaver
CN100512361C (zh) 2004-06-22 2009-07-08 中兴通讯股份有限公司 一种非对称数字用户线中卷积交织和解交织的实现装置
US20070266187A1 (en) 2004-09-29 2007-11-15 Daigo Senoo Data Interleaving Apparatus
US20060236045A1 (en) 2005-04-13 2006-10-19 Analog Devices, Inc. Apparatus for deinterleaving interleaved data using direct memory access
US20080028188A1 (en) * 2006-07-25 2008-01-31 Legend Silicon Time de-interleaver implementation using sdram in a tds-ofdm receiver
JP2008159109A (ja) 2006-12-21 2008-07-10 Matsushita Electric Ind Co Ltd データ転送装置
US8108648B2 (en) * 2007-06-25 2012-01-31 Sonics, Inc. Various methods and apparatus for address tiling
CN101237240B (zh) 2008-02-26 2011-07-20 北京海尔集成电路设计有限公司 一种利用外部存储器实现卷积交织/解交织的方法及设备
US20090313399A1 (en) 2008-06-13 2009-12-17 Texas Instruments Incorporated Direct memory access channel
US8352834B2 (en) * 2009-11-12 2013-01-08 Broadlogic Network Technologies Inc. High throughput interleaver / deinterleaver
GB2548293B (en) * 2012-05-30 2018-01-17 Imagination Tech Ltd Noise variance estimation and interference detection
GB2499270B (en) * 2012-06-07 2014-07-09 Imagination Tech Ltd Efficient demapping of constellations
GB2505446B (en) * 2012-08-30 2014-08-13 Imagination Tech Ltd Memory address generation for digital signal processing
GB2497154B (en) * 2012-08-30 2013-10-16 Imagination Tech Ltd Tile based interleaving and de-interleaving for digital signal processing
GB2513677B (en) * 2013-10-17 2015-09-02 Imagination Tech Ltd Channel impulse response
GB2531367B (en) * 2015-01-09 2016-12-28 Imagination Tech Ltd Impulsive noise rejection
TWI569587B (zh) * 2015-02-06 2017-02-01 晨星半導體股份有限公司 解迴旋交錯器
GB2536658B (en) * 2015-03-24 2017-03-22 Imagination Tech Ltd Controlling data flow between processors in a processing system
GB2536655B (en) * 2015-03-24 2017-09-20 Imagination Tech Ltd Logging events with timestamps
GB2536069B (en) * 2015-03-25 2017-08-30 Imagination Tech Ltd SIMD processing module
US10216412B2 (en) * 2017-02-14 2019-02-26 Arm Limited Data processing systems
US10387160B2 (en) * 2017-04-01 2019-08-20 Intel Corporation Shared local memory tiling mechanism
US10896043B2 (en) * 2018-09-28 2021-01-19 Intel Corporation Systems for performing instructions for fast element unpacking into 2-dimensional registers

Also Published As

Publication number Publication date
CN103678190A (zh) 2014-03-26
CN103678190B (zh) 2016-10-26
US10296456B2 (en) 2019-05-21
US10657050B2 (en) 2020-05-19
DE102013014168B4 (de) 2016-07-07
US20220075723A1 (en) 2022-03-10
DE102013014168A1 (de) 2014-03-06
US20190236006A1 (en) 2019-08-01
US11755474B2 (en) 2023-09-12
US11210217B2 (en) 2021-12-28
JP2014050103A (ja) 2014-03-17
JP5575310B2 (ja) 2014-08-20
US20140068168A1 (en) 2014-03-06
GB2497154B (en) 2013-10-16
GB2497154A (en) 2013-06-05
GB201215425D0 (en) 2012-10-17
US20200242029A1 (en) 2020-07-30
TWI604726B (zh) 2017-11-01

Similar Documents

Publication Publication Date Title
TWI604726B (zh) 用於數位信號處理之以瓦狀塊為基礎的交插及解交插技術
US9684592B2 (en) Memory address generation for digital signal processing
US11424762B2 (en) Decoder for low-density parity-check codes
US8166278B2 (en) Hashing and serial decoding techniques
US9705505B2 (en) Reconfigurable semiconductor device
EP2341505A1 (en) N-way parallel turbo decoder architecture
US20150236723A1 (en) Parallel VLSI architectures for constrained turbo block convolutional decoding
JP5359569B2 (ja) メモリのアクセス方法
CN102057580A (zh) 针对多标准的可重新配置的Turbo交织器
US20050262415A1 (en) Method and apparatus for convolutional interleaving/de-interleaving technique
JP2003108435A (ja) ユーザによりプログラム可能なアドレス指定モードを有するシステム及びその方法
US7565595B2 (en) Convolutional interleaving and de-interleaving circuit and method thereof
US8812819B1 (en) Methods and apparatus for reordering data signals in fast fourier transform systems
US9442661B2 (en) Multidimensional storage array and method utilizing an input shifter to allow an entire column or row to be accessed in a single clock cycle
JP2004312348A (ja) インターリーブ/デインターリーブ方法及び装置
JP6863661B2 (ja) レートデマッチング及びデインターリーブ回路
US8296349B2 (en) Discrete cosine (DCT) and inverse discrete cosine transform circuit (IDCT) that executes DCT/IDCT operations with bufferfly stages
WO2016095426A1 (zh) 3G协议的turbo码并行译码方法及装置
JP3786329B2 (ja) 符号化復号化装置
CN104714777A (zh) 微控制器取指令方法及其实现电路
JP2013161325A (ja) Simd型マイクロプロセッサ、プロセッサシステムおよびsimd型マイクロプロセッサのデータ処理方法
JP2009044654A (ja) アフィン変換装置
KR20040083697A (ko) 디지털 tv 시스템에서의 외부 메모리를 이용한디인터리빙 장치 및 그 구현 방법