CN101652757B - 具有两个路径的同步动态随机存取存储器卷积交织器 - Google Patents

具有两个路径的同步动态随机存取存储器卷积交织器 Download PDF

Info

Publication number
CN101652757B
CN101652757B CN200780052560XA CN200780052560A CN101652757B CN 101652757 B CN101652757 B CN 101652757B CN 200780052560X A CN200780052560X A CN 200780052560XA CN 200780052560 A CN200780052560 A CN 200780052560A CN 101652757 B CN101652757 B CN 101652757B
Authority
CN
China
Prior art keywords
symbol
sdram
data
sram
interleaver
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
CN200780052560XA
Other languages
English (en)
Other versions
CN101652757A (zh
Inventor
约尔延·安德松
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Imagination communication common carrier
Original Assignee
RGB MEDIA Inc
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 RGB MEDIA Inc filed Critical RGB MEDIA Inc
Publication of CN101652757A publication Critical patent/CN101652757A/zh
Application granted granted Critical
Publication of CN101652757B publication Critical patent/CN101652757B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/2732Convolutional interleaver; Interleavers using shift-registers or delay lines like, e.g. Ramsey type interleaver
    • 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/1515Reed-Solomon codes

Landscapes

  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Algebra (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Error Detection And Correction (AREA)

Abstract

本发明提供一种具有两个路径的SDRAM卷积交织器。将符号指派给所述两个路径中的给定路径,接着对所述符号进行分类以将顺序交织器写入地址中的断开的数目最小化(到1)。在进行分类之后,将所述符号交错地存储于SRAM中且突发写入到SDRAM。在写入到SDRAM之前,一次针对四个符号积累数据并将所述数据以四个符号宽写入以优化SDRAM存取时间。将8位符号一次32位写入到SDRAM。

Description

具有两个路径的同步动态随机存取存储器卷积交织器
技术领域
本发明涉及数据通信,更特定来说涉及错误校正技术,且更特定来说涉及卷积交织。
背景技术
世界正趋向于数字化。手机通信即是数字信号通信的实例,且卫星广播通常是数字的。许多有线电话连接仍是模拟的,就像大多数电视广播,然而这些媒体也将走向数字化,且模拟信号用于通信将在很大程度上成为历史,这并不是不可想象的。
与“数字革命”同时发生的是,世界正趋向于无线化。手机即是无线通信的实例。
整个数字通信领域已形成数个专门知识及技术方面,其中包含错误检测及校正技术,仅举少量实例。
“译码”是通常在对数字信号处理的任何讨论中都会出现的术语。一般来说,译码可指将模拟信号(例如电影图像)转换为数字格式(1和0)。因此,举例来说,可通过(例如)“MPEG”编码将原来在电影上的移动图片(模拟格式)转换为数据文件(数字格式)。当需要观看经MPEG编码的电影(且应了解,我们的眼睛对数字图像做出响应)时,必须对数字文件进行“解码”,返回到其原始的模拟格式。
“译码”还可指取已经在一个数字格式中的数字信号,并将其改变为另一数字格式以便适用于特定目的,例如经由即定媒体进行存储或发射。举例来说,可将原始CD波文件转码(或压缩)为另一格式,例如MP3格式,从而形成较小的数据文件(例如3兆字节而不是30兆字节)。
错误检测及校正
一般来说,“错误检测”是检测在从发射器到接收器的发射过程中因噪声或其它减损而产生的错误的能力,且“错误校正”是在接收器处校正错误的能力。
通常将被发送(发射)的数据(不论是经由有线连接还是无线连接)布置成具有规定大小的若干包或块,且通常与所述包或块一起产生并发送错误校正码。在接收端处,可将所接收数据与错误校正码进行比较以确定包内所含有的数据是否发生讹误。在许多情况下,可使用正向错误校正(FEC)来校正发生讹误的数据。在其它情况下,接收站可以重新发射数据的请求向接收所述讹误数据的发射站发信号。(在另外一些情况下,可干脆忽略发生讹误的数据。)
可将错误校正码划分为若干块码及卷积码。其它块错误校正码(例如里德-所罗门(Reed-Solomon)码)以可检测及校正每一块中高达某一阈值的错误的方式将一大块位转变为(更长的)一大块位。然而,在实践中,错误通常以突发形式而非随机地发生。此通常通过在译码之后搅乱(交织)消息中的位来补偿。因此,当反移消息的位(去交织)然后进行解码时,位错误中的任何突发均分解为一组分散的单位错误。
错误校正方案的一个特征可以是以可成功地处理将预料到的错误的方式来组织数据。交织是以可将错误校正方案成功地应用于讹误数据以从发生讹误的数据恢复原始数据的方式来布置数据的方式。
交织
交织包括以非相连方式重新布置数据以增加性能。交织主要用于数据通信、多媒体文件格式、无线电发射(例如以卫星)或通过ADSL(非对称数字订户链路)。过去,交织已同样用于对硬盘上的块存储进行排序。术语“多路复用”有时用以指代数字信号数据的交织。
如今,交织主要用于数字数据发射技术中以保护发射不发生“突发错误”。突发错误重写(讹误、更改)行中的数个位,但很少发生。使用交织来应对/解决此问题。
所有数据均与某些控制位(例如使得信道解码器能够校正特定数目的已更改位的错误校正位)一起被发射(独立于交织)。如果突发错误发生,且多于此数目的位被更改,则码字不能被正确地解码。因此,“交织”若干码字的位且接着将其发射。这样一来,突发错误在每一码字中仅影响可校正数目的位,因此解码器可正确地对所述码字进行解码。
举例来说,应用错误校正码以使得信道码字具有四个位且可校正一位错误。将信道码字表达成这样的块:aaaabbbbccccddddeeeeffffgggg(所述块包括七个4位码字:a、b、c、d、e及f)。
在没有交织而发射的情况下,所接收信号应为(无错误发射):
aaaabbbbccccddddeeeeffffgggg
然而,突发错误可使所发射数据的若干相连位发生讹误以使得所接收信号看起来是这样:
aaaabbbbccc____deeeeffffgggg
在此实例中,码字“cccc”的一个位被更改(缺少第四个c),且可被校正。然而,码字“dddd”的三个位被更改(缺少前三个d)。其有可能不能被解码(解码失败)或可能被解码为不正确的码字(错误的解码)。这两种情况发生哪一种取决于所应用的错误校正码。
根据定义,突发错误通常使一序列位发生讹误(如在先前实例中),此可完全地擦除特定的码字,或至少使码字中其不能被校正的足够的位发生讹误。
交织一般需要重新布置码字的位-也就是说将其分散-从而可校正所预期的突发错误。
考虑以下实例,其中发射七个码字中的每一者的四个位中的第一位(a1、b1、c1、d1、e1、f1、g1),接着发射七个码字中的每一者的第二位(a2、b2、c2、d2、e2、f2、g2),接着是七个第三位(a3、b3、c3、d3、e3、f3、g3),接着是七个第四位(a4、b4、c4、d4、e4、f4、g4)。这叫做“交织”。(在接收端处,必须将经交织/重新布置的位放回到其原始次序中-这叫做“去交织”)。
所发射信号(具有交织)看起来应该是这样(无错误发射):
abcdefgabcdefgabcdefgabcdefg
(更详细地说,发射看起来是这样:a1、b1、c1、d1、e1、f1、g1、a2、b2、c2、d2、e2、f2、g2、a3、b3、c3、d3、e3、f3、g3、a4、b4、c4、d4、e4、f4、g4)
然而,突发错误可使数据发生讹误以使得信号看起来是这样:
abcdefgabcd____bcdefgabcdefg
此时,如先前实例中所述,缺少四个相连的位,在此实例中为第二e、f及g位(e2、f2、g2)及第三位(a3)。
且具有以上突发错误的经去交织发射看起来应是这样:
aa_abbbbccccdddde_eef_ffg_gg
在码字aaaa、eeee、ffff、gggg中的每一者中,仅更改一个位,因此一位错误校正码可正确地解码每一位。
当然,此交织全部需要计算标头,且这是本发明总的主题-也就是与交织和去交织相关的技术。
卷积交织
卷积交织器通常由一组移位寄存器组成,每一移位寄存器具有固定的延迟。在典型的卷积交织器中,所述延迟是固定整数的非负整数倍(尽管一般的经多路复用交织器允许任意的延迟值)。来自输入信号的每一新符号均馈送到下一移位寄存器中且所述寄存器中的最老符号变为输出信号的一部分。
通常在FEC方案中采用卷积交织器及去交织器以保护错误突发不会被发送到块解码器,例如里德-所罗门(Reed-Solomon)解码器。众所周知,交织技术改善了错误校正能力。
图1是图解说明根据现有技术的典型卷积交织器及去交织器的简化示意性方块图。在许多应用中,使用静态随机存取存储器(SRAM)来缓冲经交织数据。待存储到存储器中的数据的宽度与交织器/去交织器符号大小匹配。对于交织器100,每一连续分支(102、103、…109)比紧接在前面的分支多具有J个符号。举例来说,分支103比分支102多具有J个符号。
相反,对于去交织器120,每一连续分支(102′、103′、104′、...、109′)比紧接在前面的分支少具有J个符号。举例来说,分支103′比分支102′少具有J个符号。除非另有指示,否则“I”表示交织深度且“J”表示交织增量。因此,一个分支具有与另一分支不同的延迟。因此,当使用常规存储器存取时,前述特性(即延迟差异)形成依序写入地址及非依序读取地址,或反之亦然。写入与读取地址之间的此不对称性影响数据吞吐量。此外,与SRAM相关联的另一问题是,SRAM比其它类型的存储器(例如同步动态随机存取存储器(SDRAM))相对来说更昂贵。
在某些实施方案中,使用SDRAM来存储经交织数据。然而,上文所述基于交织/去交织方法使用SDRAM也具有其缺点。举例来说,一个缺点是,通过使用常规SDRAM存取,非依序读取或写入地址的开销“有效”(ACTIVE)及“预充电”(PRECHARGE)命令循环显著地减小数据吞吐量。另一缺点是,当使用常规SDRAM时,某些应用可不具有足够的带宽来满足与存储器相关联的数据宽度需要等于符号大小的要求。
数据通信系统
图2描绘典型的现有技术通信系统,其包含用于将输入数据序列TX转换为通过通信信道214发射到接收器212的传出模拟信号V1的发射器210。接收器212将信号V2转换回为匹配发射器的传入数据序列TX的输出数据序列RX。由于信道214可向信号V2中引入随机噪声,因此RX序列的位中的某些位有可能将不匹配TX序列的对应位。为减少信道214中的噪声将在RX序列中产生错误的可能性,发射器210包含正向错误校正(FEC)编码器216,例如里德-所罗门(Reed-Solomon)编码器,以用于将传入数据序列TX编码为N字节字的序列A。序列A的每一字均“过度表示”TX序列的对应部分,因为其含有冗余数据。卷积交织器218交织字序列A的连续字的字节以产生供应给调制器220的输出字序列B。调制器220产生用以表示字序列B的连续字节的信号V1。
接收器212内的解调器222解调信号V2以产生字序列B′。字序列B′将标称地将字序列B输入匹配到发射器的调制器220,尽管形成字序列B′的字节中的某些字节可包含由信道214中的噪声所导致的位错误。去交织器电路224去交织字序列B′以产生标称地匹配字序列A的字序列A′,尽管其也可包含由字序列B′中的错误所引起的错误。接着,FEC解码器226对字序列A′进行解码以产生输出数据序列RX。
尽管A′序列可含有一些错误,但FEC解码器226有可能产生匹配TX序列的传出序列RX,因为A′序列的字含有冗余数据。当A′序列字中表示RX数据的任何特定部分的部分因B′序列中的错误而发生讹误时,A′序列字中同样表示RX序列的所述特定部分的另一冗余部分可能不发生讹误。FEC解码器226能够确定每一A′序列字的哪些部分不发生讹误并使用所述字的未发生讹误部分作为确定RX序列的其对应部分的位值的基础。每一可能的FEC方案均将具有校正字节错误的有限能力。举例来说,包含16个冗余数据字节以形成255字节码字的(255,16)里德-所罗门(Reed-Solomon)码可校正多达8字节错误,但不会校正更多。
当表示RX序列的某一部分的A′序列字内存在连续错误时,RX序列的所述特定部分有可能含有错误,但交织器218及去交织器224帮助减少这种情况发生的机会。由于信道14中的噪声可以突发形式发生而所述突发形式可持续足够长以使传达B′序列字的每一字节的信号V1的若干部分发生讹误,因此交织器218通过交织序列A的连续字的字节以产生字序列B来改善系统的抗噪声能力。由于FEC编码器216所产生的序列A的每一字均含有描述TX序列的特定区段的冗余数据,因此交织序列A的字以产生序列B的字具有以下效果:分散信号V1所传达的信息以使得信道214中的单个噪声突发较不可能使表示TX序列的相同部分的连续数目的信息字节发生讹误。
图3是包括卷积交织器的通信系统的另一图表。ITU正向错误校正(FEC)定义由四个处理层组成,如图3中所图解说明。在所述FEC层中的任一层中均不存在对输入数据协议的依赖性。FEC同步化是完全内部及透明的。任何数据序列均将从编码器输入被递送到解码器输出。
FEC区段使用各种类型的错误校正算法及交织技术来经由有线电视信道可靠地输送数据。
●里德-所罗门(RS)译码-提供块编码及解码以校正RS块内多达三个符号。
●交织-均匀地分散符号,从而保护符号错误突发不被发送到RS解码器。
●随机化-将信道上的数据随机化以允许有效的QAM解调器同步。
●格栅译码-提供卷积编码且具有使用随机信道错误的软决策格栅解码的可能性。
对于交织,在RS块译码与随机化器之间的调制解调器中包含交织以实现突发噪声引入的错误的校正。在64-QAM及256-QAM两者中均采用卷积交织器。
卷积交织图解说明于ITU文档的图B.8中。在随后的子条款中定义的FEC帧的开始处,将交织换向器位置初始化到最顶端分支并以RS符号频率递增,其中从每一位置输出单个符号。借助于卷积交织器,RS码符号被依序地移位到I个寄存器的组(每一寄存器的宽度均为7位,这与RS符号大小匹配)中。每一连续寄存器均比前面的寄存器多具有J个符号的存储。第一交织器路径具有零延迟,第二个具有J符号周期的延迟,第三个具有2*J符号周期的延迟,依此类推,直到具有(I-1)*J符号周期的延迟的第I个路径。对于有线电视解码器中的去交织器,情况是相反的,以使得每一RS符号的净延迟在交织器与去交织器中是相同的。信道中的突发噪声导致一系列不良符号。这些不良符号由去交织器分散于许多RS块中以使得每一块的所得符号错误均处于RS解码器校正能力范围内。
相关专利及公开案
参照第21页第B.5.2部分(4/97)的ITU-T介绍J.83(用于有线电视分配的电视、声音及数据服务的数字多程序系统),下文中称为“ITU说明”,其以全文引用方式并入本文中。
以全文引用方式并入本文中的美国专利公开案第2005/0063421号(“万(Wan)”)揭示了卷积交织器及去交织器。如其中所揭示,交织器或去交织器以卷积方式交织或去交织传入字序列以形成传出字序列。所述交织器或去交织器包含由直接存储器存取(DMA)控制器存取的外部存储器读取及写入,所述直接存储器存取控制器用于存储形成传入字序列的字的字节直到需要所述字节来形成传出序列的字为止。交织器使用高速缓冲存储器来存储下一组传出序列字的字节。交织器首先将每一传入字的字节写入到外部存储器且还在传入字的某些字节将形成当前存储于所述高速缓冲存储器中的传出序列字的若干部分时将所述字节直接写入到所述高速缓冲存储器。当需要字节来形成下一组输出序列字时,交织器将所述字节从主存储器传送到高速缓冲存储器。去交织器将传入字的若干字节存储于其高速缓冲存储器中直到所述高速缓冲存储器已充满为止,且接着DMA将所述字节传送到外部存储器。去交织器由其从其高速缓冲存储器及其外部存储器两者获得的字节形成输出序列的字。
万(Wan)揭示了若干交织,更特定来说,万(Wan)的图3图解说明现有技术交织器18,其包含控制器28、输入缓冲器30、静态随机存取存储器(SRAM)32及输出缓冲器34,其均可在相同集成电路(IC)35上实施。FEC编码器16(万(Wan)图1)将序列A的每一连续字的连续字节写入到输入缓冲器30中,且只要其已将序列A的整个字写入到缓冲器30中,其即将“输入_准备”(INPUT_READY)输入信号以脉冲输送到控制器28。控制器28通过将缓冲器30中的序列A字的每一字节写入到SRAM 32的单独地址来响应于“输入_准备”信号。控制器28接着从SRAM 32中依序地读出将形成序列B的下一字的每一字节,将其存储于输出缓冲器34中且接着将“输出_准备”信号发送到调制器20(万(Wan)图1),从而告知调制器20其可从输出缓冲器34中读出序列B的下一字。
用于产生SDRAM 32的读取及写入地址的算法控制器28确保进入SRAM 32中的序列A的每一传入字均重写序列A中不再需要的先前字且确保以适当的次序读取形成序列B的字的字节。为以交织深度D来交织传入序列A的N字节字,SRAM 32必须具有D×N个可寻址字节存储位置。万(Wan)图3中所图解说明的交织器架构通常在交织器18可实施于单个IC 35上时被采用,但当N×D较大时,将足够大的SDRAM 32嵌入在单个IC中则变得不切实际。
万(Wan)图4图解说明交织器18′的另一现有技术架构,其包含包含在单个IC 35′内的控制器28′、输入缓冲器30′及输出缓冲器34′。交织器18′采用外部同步动态随机存取存储器(SDRAM)36来存储字节,而不是采用内部SRAM。尽管万(Wan)图3的控制器28可直接读取及写入存取SRAM 32的每一字节,但万(Wan)图4的控制器28′可仅经由直接存储器存取(DMA)控制器38来存取SDRAM 36中的数据。DMA控制器38以“突发”模式(其中其读取或写入存取存储于数个(通常为16个)连续地址处的字节)操作而不是个别地读取及写入存取SDRAM 36中所存储的每一字节。因此,当控制器28′想要获得SDRAM 36中所存储的特定字节以写入到输出缓冲器34′中时,其必须令DMA控制器38读取包含需用以形成下一输出序列字的特定字节的字节块。控制器28′接着将所述特定字节传送到输出缓冲器34′。然而,由于字节没有以其形成传出字序列所需要的次序在SDRAM中被寻址,因此将丢弃每一DMA读取存取期间DMA控制器38从SDRAM 36读取的字节中的许多字节。
由于SDRAM相对不昂贵,因此交织器或去交织器采用万(Wan)图4的架构可比采用万(Wan)图3的架构更具成本效益,尤其是在需要大存储量时。然而,由于对内部SRAM的读取及写入存取通常比对外部SDRAM的读取及写入存取要快,因此万(Wan)图3的交织器18可比万(Wan)图4的交织器18′具有更高的吞吐量(以每秒字节计)。由于SDRAM 36的许多带宽都浪费在了读取已丢弃的字节上,因此图4的交织器的最大吞吐量可受到进一步限制。
万(Wan)图5描绘根据本发明的卷积交织器39的实例,其包含控制器40、输入缓冲器42、直接存储器存取(DMA)控制器44、多路复用器48、高速缓冲存储器50及输出缓冲器52,其均优选地在单个集成电路(IC)芯片53上实施。DMA控制器44读取及写入存取“主”存储器46,合适地为IC芯片53外部的SDRAM。交织器39以最高可达Dmax的交织深度D以卷积方式交织N字节传入字的序列A以形成N字节传出字的序列B。每一传入字中及每一传出字中字节的数目N最高可达最大数目Nmax,例如255。控制器40合适地实施为可编程状态机以便可通过借以对控制器40进行编程的方式来选择N与D的值。
主存储器46合适地具有至少Nmax×Dmax个存储位置,其中每一可寻址存储位置经大小设定以保存单个字节。DMA控制器44在突发读取及写入模式中操作,其中只要所述控制器读取或写入存取主存储器46其即读取或写入存取主存储器46的许多连续地址。高速缓冲存储器50优选地包含至少BurstLen×Dmax个存储位置,其中BurstLen是DMA控制器在每一突发模式读取或写入存取期间所存取的连续地址的数目(例如16)(其“突发长度”)。高速缓冲存储器50还可在其可寻址存储位置中的每一者处存储一个字节,而控制器40可单独地且独立地读取及写入存取其可寻址存储位置中的每一者。
因此,如上所述,交织器39使用主存储器46来仅在N×D超过高速缓冲存储器50中的可用存储位置的数目时存储字节并仅使用高速缓冲存储器50来存储传入字的字节直到需要所述字节来形成传出字为止。否则,交织器39使用主存储器46来存储所有输入序列字并使用高速缓冲存储器50来仅存储与其最多能保存的输出序列字一样多的字节。
高速缓冲存储器50与万(Wan)图4的现有技术交织器相比改善了交织器39的DMA读取存取的效率,因为其减少了其DMA控制器读取的必须丢弃的字节的数目。万(Wan)图4的现有技术交织器的DMA控制器在每一DMA读取存取期间读取数个传出序列字中将包含的字节,但实际上仅使用将并入到下一传出序列字中的那些字节;丢弃DMA控制器读取的剩余字节且必须在其它时候再次读取所述字节,即当实际上需要所述字节来形成下一输出序列字时。由于万(Wan)图5的交织器39的高速缓冲存储器50可保存将形成许多传出序列字的字节,因此DMA控制器44需要丢弃的字节较少。因此,高速缓冲存储器50减小了DMA控制器44必须借以读取存取主存储器46的频率,从而增大了交织器的可用吞吐量。
以全文引用方式并入本文中的美国专利第7,051,171号(“刘(Liu)”)揭示了用于使用SDRAM提供多信道交织器/去交织器的方法及系统。提供用于使用外部SDRAM执行高速多信道正向错误校正的去交织器。根据一个例示性方面,所述去交织器通过隐藏有效及预充电循环来对SDRAM执行面向突发的读取及写入存取两者以实现高数据速率操作。将SDRAM的数据总线长度设计为去交织符号大小的两倍,从而允许带宽增加。去交织器存取SDRAM中的数据来作为读取块及写入块。每一块包含待交织/去交织的预定数目的数据字。当处理一个块的前一块时,发布所述一个块的“有效”命令。一个读取/写入块中的数据在SDRAM的相同组内具有相同行地址。更特定来说,
刘(Liu)图2图解说明根据本发明一个例示性实施例的卷积去交织器21的简化方块图。卷积去交织器21使用SDRAM 22来实施。在此例示性实施例中,数据或符号大小为八(8)位,且字大小为十六(16)位(第3卷,第16-21行)。
如刘图2中所示,输入缓冲器24将去交织器21的相同分支中的两个符号组合到一个字中。相同分支中的两个符号之间的延迟是去交织深度I的整数倍。对于每一字,输入缓冲器24存储第一符号直到已接收到所述字的第二符号为止。当将用于一个信道的预定数目的字存储于输入缓冲器24中时,将总体作为写入块(如下文进一步描述)的此类字转发给SDRAM写入缓冲器30以进行写入处理。根据优选实施例,输入缓冲器24的大小不超过交织深度I的两倍。控制器28产生传入数据34的周期性地址序列以组合一个信道的符号s(t)与s(t+n*I)来形成字,其中n是大于零(0)的整数。在例示性实施例中,n等于一(1)。基于本文中提供的揭示内容及教示,所属领域的技术人员将知晓并了解如何选择n的适当值(第3卷,第22-40行)。
计算机存储器,一般来说
本发明很大程度上涉及在对数据进行交织时达到特定目标的例示性背景下高效且有效地利用计算机存储器以(例如)适应正向错误校正(FEC)技术。
一般来说,存在两种主要的计算机存储器形式-易失性及非易失性。非易失性存储器(NVM)是即便在未通电时也可保持所存储信息的计算机存储器。非易失性存储器的实例包含只读存储器、快闪存储器、多数类型的磁性计算机存储装置(例如硬盘、软盘驱动器及磁带)、光盘驱动器及早先的计算机存储方法,例如纸带及穿孔卡片。非易失性存储器通常用于辅助存储或长期持续存储的任务。如今最广泛使用的形式的主要存储装置是易失形式的随机存取存储器(RAM),这意味着当计算机关断时,RAM中所含有的任何东西都会丢失。遗憾的是,多数形式的非易失性存储器具有若干限制,这使得其不适合用作主要存储装置。通常非易失性存储器不是比易失性随机存取存储器花费更多就是性能更差。(照此类推,NVM存储器单元的最简单形式是简单的灯开关。实际上,可将此开关设置到两个(二进制)位置中的一者,且“记忆”所述位置。)
在内部,计算机存储器布置为呈若干行及若干列的“存储器单元”矩阵,就像棋盘上的方块。将整个行与列组织称为“阵列”。使用每一存储器单元来存储一个(或一个以上)数据位,所述数据位可通过指示数据的行及列位置来检索。
如果不能以某一方式在其中及从中获得信息,则单是存储器单元将是没有价值的。因此,所述存储器单元具有其它专门电路的完整支持架构。这些电路执行若干功能,例如:
-识别每一行及列(行地址选择及列地址选择)
-记录再新序列(计数器)
-读取及再新来自从单元(感测放大器)的信号
-告知单元其是否应采取充电(允许写入)
存储器控制器的其它功能包含一系列任务,其包含识别存储类型、速度及量以及对错误的检查。
现在简要论述几种类型的随机存取存储器(RAM),其中包含SRAM、DRAM、SDRAM及DDR SDRAM,如下:
-SRAM:SRAM代表静态随机存取存储器。基本上,SRAM是可寻址的触发器阵列。可如此配置所述阵列以使得数据以单个位、4位、8位等格式出现。SRAM技术是易失性的,正如其基本存储器单元-触发器。SRAM具有可非常快速且简便的优点。因此,在总存储量可很小的情况下通常将其用作存储器组件。SRAM常存在于微控制器板上(在CPU芯片上或外),因为对于此类应用来说,所需的存储量很小且为DRAM构建额外的接口电路将是不划算的。归因于SRAM高存储速度,其中通常有SRAM存储器的另一应用是用于高速缓存器应用。
-DRAM:DRAM代表动态随机存取存储器。“动态”一词指示数据并非保存在触发器中而是在存储单元中。关于存储单元的不好的一面是其发生泄露。因此,必须每一次在数据丢失之前读出并重写数据。此再新时间间隔通常为4ms到64ms。关于存储器单元的好的一面是其仅需要一个电容器及一个晶体管,而连接在阵列中的触发器则需要6个晶体管。在用于所有现代DRAM中的沟槽电容器存储器技术中,将单元存取晶体管构造在电容器上方以使得芯片上的空间最终得以最小化。出于此原因,DRAM技术比SRAM技术每位具有较低成本。当使用较大存储器大小时,进行再新所需要的额外电路的缺点由每位较低的价格容易地抵销。因此,几乎所有计算设备的工作存储器都包括DRAM存储器。正如SRAM存储器,DRAM存储器构造为存储器单元阵列。然而,SRAM与DRAM之间的一大差异在于寻址技术。需要借助SRAM来提供地址且芯片将通过在输出处提供存储器单元的数据或在输入处接受数据并将其写入到所寻址单元中来做出响应。借助DRAM技术,此简单的方法是不可能的,因为在不重写数据行的情况下寻址所述数据行将因动态性质而破坏所述行中的所有数据。
-SDRAM:SDRAM代表同步动态RAM。在普通的异步DRAM中,由外部电路(芯片组)来为寻址及数据读取/写入定序,所述外部电路需要在每一序列之间等待以允许DRAM对其信号及输出做出响应/接受所述数据。然而,借助普通的DRAM,保证可靠操作的唯一方式是遵守定时规范并允许足够的定时容限。很明显,这是一种简单却不是非常高效的方法。在SDRAM中,由控制电路(芯片组)将时钟信号提供给DRAM。此允许所述DRAM使其操作与控制电路的操作同步,从而其知晓正传入什么信号、确切的时间且还可以极精确的定时做出响应。此方法允许更高速度下的操作。
-DDR SDRAM:DDR SDRAM代表双倍数据速率同步动态RAM。在上升及下降时钟边缘两者上对DDR芯片计时,从而有效地加倍了传送速率。
术语表
除非另有表示,或如根据其用途环境可显而易见,将给本文中使用的任何术语、缩略语、首字母缩写或科学符号及记号赋予本发明最相近地归属的技术学科中的其普通含义。可在本文中提供的说明通篇中使用以下术语、缩略语及首字母缩写且应在一般意义上赋予其以下含义,除非本文中所述的其它说明对其加以反驳或详尽说明。
位 位(二进制数字)是指二进制记数系统中由基本的2个数字(只有两个可能值:0或1)组成的数字。举例来说,数10010111为8位长。在数字计算及数字信息原理中,二进制数字几乎始终用作信息存储及通信的基本单位。“千位”(kb或kbit)为1000位。“兆位”(Mb或Mbit)为1,000,000位。
突发错误 在电信中,错误突发是经由数据发射信道而接收的连续符号序列,使得第一及最后的符号发生错误,且错误突发内不存在m个经正确接收符号的连续序列。整数参数m称为错误突发的保护频带。突发中的最后一个符号及后面的突发的第一个符号由m个或更多个正确位相应地分开。当描述错误突发时,应规定参数m。
字节 字节是位的集合,最初是大小可变的,但现在几乎始终是8位。(当需要较大确定性时,术语八位字节被广泛地用作同义词。)用于字节测量的前缀通常与用于其它测量的SI前缀相同,但具有略微不同的值。前者是基于幂1,024(210),这是合适的二进制数,而SI前缀则是基于幂1,000(103),这是合适的十进制数。举例来说,一千字节(kB)将具有1000字节的SI含义,但通常是指1024字节(1024是2升到10次幂);一兆字节(MB)将具有1,000,000字节的SI含义,但通常是指1,048,576字节(1,048,576是2升到20次幂)。
信道 通信中的信道(有时称为通信信道)是指用以将信息从发送者(或发射器)传达给接收者的媒体。所述信道可以是有线的、光学的或无线的(其中包含卫星发射)。
卷积译码
为使噪声的负面影响最小化,在过去已研发并采用了各种正向错误校正译码技术(也称为卷积译码)。通常,在正向错误校正译码中,在发射器处通过向数据位系统地添加冗余位来对数据位进行编码,从而通常仅允许从一个依序位群组(对应于符号或波特)到另一位群组的预定转变。经由连续波特的这些冗余位之间存在固有的关系。在接收器处,尝试性地对每一波特进行解码且接着基于过去的历史记录加以分析,并在必要时校正已解码位。
DDR 随着SDRAM已发展,其已在逐渐增长的时钟速度下操作。曾将第二代SDRAM称为双倍数据速率(DDR)SDRAM,且现在通常称为“DDR-I”SDRAM。在第二代同步SDRAM中,133MHz的时钟频率是常见的。最近,正定义新的第三代同步SDRAM以在两倍于或大于DDR-I SDRAM的速度下操作,且有时称为“DDR-II”SDRAM。
DRAM 动态随机存取存储器的简称。DRAM是将每一数据位存储于单独的电容器中的一种类型的随机存取存储器。由于现实世界电容器并不理想且因此泄露电子,因此信息最终会消失,除非周期性地再新电容器电荷。归因于此再新要求,其为动态存储器而不是SRAM及其它静态存储器。其优于SRAM的优点是其结构简单:每位仅需要一个晶体管及电容器,而SRAM中则需要六个晶体管。此允许DRAM达到极高密度。由于在移走电源时DRAM丢失其数据,因此其属于易失性存储器装置类别。
FIFO FIFO是先入先出的首字母缩写。此表达描述了队列或先来先服务(FCFS)行为:先来的先受到处置,接下来来的等到第一个完成,等等。FIFO通常在用于缓冲及流控制的电子电路中使用。以硬件形式,FIFO主要由一组读取及写入指针、存储装置及控制逻辑组成。存储装置可以是SRAM、触发器、锁存器或任何其它合适形式的存储装置。针对非平凡大小的FIFO,通常使用双端口SRAM,其中一个端口用于写入且另一端口用于读取。
触发器 在数字电路中,触发器、锁存器或双稳态多谐振荡器是具有两个稳定状态且借此能够用作一个存储位的电子电路。触发器由一个或两个控制信号及/或门或时钟信号来控制。输出通常包含补码及普通输出。
FPGA 现场可编程门阵列(FPGA)是一种含有可编程逻辑组件及可编程互连件的半导体装置。可编程逻辑组件可经编程以复制基本逻辑门的功能,例如“与”、“或”、“异或”、“非”或更多复杂的计算功能,例如解码器或简单的数学函数。在多数FPGA中,这些可编程逻辑组件(或在FPGA用法中称为逻辑块)还包含存储器元件,所述存储器元件可以是简单的触发器或更完整的存储器块。
交织器 交织器是一种可(举例来说)根据总体正向错误校正(FEC)方案重新布置数据(例如符号)的次序的功能块(模块)。去交织器恢复数据的原始次序。
ITU 国际电信联盟(ITU;法语:Union internationale des télécommunications;西班牙语:Unión Internacional de Telecomunicaciones)是一种经创建以标准化并调节国际无线电及电信的国际组织。
M 兆的简称,意为百万。实例:MSym代表百万符号。
MPEG 运动图像专家组的简称。MPEG是负有开发视频及音频编码标准的责任的ISO/IEC工作组。MPEG的官方称号为ISO/IEC JTC1/SC29WG11。MPEG(读做EM-peg)已标准化以下压缩格式及附属标准:
MPEG-1:初始视频及音频压缩标准。随后用作视频CD的标准,且包含流行的层3(MP3)音频压缩格式。
MPEG-2:广播质量电视的输送、视频及音频标准。用于空中数字电视ATSC、DVB及ISDB、数字卫星TV服务(如碟形网络、数字有线电视信号)且(略作修改地)用于DVD。
MPEG-3:最初为HDTV设计,但当发现MPEG-2(具有扩展)对HDTV足够时将其放弃。(不要与MP3混淆,MP3是MPEG-1层3。)
MPEG-4:扩展MPEG-1以支持视频/音频“对象”、3D内容、低位率编码且支持数字产权管理。包含数种新的(比MPEG-2视频新)较高效率视频标准(MPEG-2视频的替代方案),特别是:
MPEG-4部分2(或高级简单简档)及
MPEG-4部分10(或高级视频译码或H.264)。MPEG-4部分10可与VC-1及MPEG-2一起用于HD-DVD及蓝光光盘上。
MPEG标准以整体引用方式并入本文中。
NVM 非易失性存储器的简称。NVM是即使在没有通电时也可保持所存储信息的计算机存储器。非易失性存储器的实例包含只读存储器、快闪存储器、多数类型的磁性计算机存储装置(例如硬盘、软盘驱动器及磁带)、光盘驱动器及早先的计算机存储方法,例如纸带及穿孔卡片。非易失性存储器通常用于辅助存储或长期持续存储的任务。如今最广泛使用的形式的主要存储装置是易失形式的随机存取存储器(RAM),这意味着当计算机关断时,RAM中所含有的任何东西都会丢失。遗憾的是,多数形式的非易失性存储器具有若干限制,这使得其不适合用作主要存储装置。通常非易失性存储器不是比易失性随机存取存储器花费更多就是性能更差。(照此类推,NVM存储器单元的最简单形式是简单的灯开关。实际上,可将此开关设置到两个(二进制)位置中的一者,且“记忆”所述位置。)
打包器 打包器是一种可积累(组合、结合)并重新布置数据以写入到存储器的功能块(模块)。举例来说,打包器可将四个8位符号积累为32位以突发写入到SDRAM。“拆包器”执行相反的功能,例如从SDRAM进行32位突发读取,并将其去积累(去组合、分割)为四个8位符号-主要将数据恢复到其原始的预打包形式。
RAM 随机存取存储器的简称。RAM是指允许以任何次序(也就是随机地,不只是依序地)存取所存储数据的数据存储格式及设备。相反,由于其机械设计上的限制,其它类型的存储器装置(例如磁带、磁盘及磁鼓)可仅以预定次序存取存储媒体上的数据。
寄存器 寄存器是通常给予可存储少量数目的位的少量极快速的计算机存储器的名称(举例来说,“8位寄存器”或“32位寄存器”)。寄存器现在通常实施为寄存器堆,但其已使用个别触发器、高速核心存储器、薄膜存储器且在各种机器中以其它方式来实施。
RS译码 里德-所罗门(RS)错误校正是一种通过对由数据构成的多项式过度取样来运行的错误校正码。在数个点处评估所述多项式,且发送或记录这些值。由于比所必要的更频繁地对多项式取样,所述多项式被过度确定。只要正确地接收所述点中的“许多”点,接收器即可恢复原始多项式,即使是在存在“少数”不良点的情况下。里德-所罗门(Reed-Solomon)译码极为广泛地用于大容量存储系统中以校正与媒体缺陷相关联的突发错误。/里德-所罗门(Reed-Solomon)译码是压缩磁盘(CD)的重要组成部分。其曾是强错误校正译码在大量产生的消费者产品中的首次使用,且DAT与DVD使用类似的方案。在CD中,由28路卷积交织器分开的里德-所罗门(Reed-Solomon)译码的两个层产生称为交叉交织里德-所罗门(Reed Solomon)译码(CIRC)的方案。CIRC解码器的第一元素是从具有8位符号的(255,251)码缩短的相对弱的内部(32,28)里德-所罗门(Reed-Solomon)码。此码对每32字节块可校正多达2字节错误。
SDRAM 同步动态随机存取存储器的简称。SDRAM是一种类型的固态计算机存储器。其它动态随机存取存储器(DRAM)具有异步接口,这意味着其尽可能快地对控制输入的变化做出反应。SDRAM具有同步接口,这意味着其在对其控制输入做出响应之前等待时钟信号。其与计算机的系统总线同步,且因此与处理器同步。时钟用于驱动使传入命令呈管线形式的内部有限状态机。此允许芯片具有比不具有同步化控制电路的DRAM更为复杂的操作模式。
移位寄存器 在数字电路中,寄存器堆是以线性方式建立的寄存器群组,所述寄存器以在电路被激活时使数据沿线向下移位的方式将其输入与输出连接在一起。移位寄存器可具有串行与并行输入与输出的组合,其中包含串行输入并行输出(SIPO)及并行输入串行输出(PISO)类型。还存在具有串行及并行输入两者的类型及具有串行及并行输出的类型。还存在允许改变移位寄存器的方向的双向移位寄存器。寄存器的串行输入与输出还可连接在一起以形成环形移位寄存器。还可形成可执行更复杂计算的多维移位寄存器。
分类器 分类器是可重新布置数据(例如符号)的次序以(举例来说)进行交织的功能块(模块)。去分类器恢复数据的原始次序。
SRAM 静态随机存取存储器(SRAM)是一种类型的半导体存储器。“静态”一词指示,只要保持施加电力存储器即保持其内容,这与需要周期性地再新的动态RAM(DRAM)是不同的。(然而,SRAM不应与只读存储器及快闪存储器混淆,因为其为易失性存储器且仅在持续施加电力的情况下才保留数据。)
状态机
有限状态机(FSM)或有限状态自动机(automaton)(复数形式:automata)是由有限数目的状态、所述状态之间的转变及动作组成的行为模式。状态存储关于过去的信息,即,其反映从系统开始到当前时刻的输入改变。转变指示状态改变且由实现转变将需要满足的条件来描述。动作是对将在给定时刻执行的活动的描述。FSM的概念处于计算原理的中心,因为其以经适当编码的信息的有限位可借以在理论上被机器智能地处置的基本过程开始。
符号 符号可包括若干(n个)位。“字”也可包括若干位。字可包括若干符号。
发明内容
本发明的一般目标是提供用于执行卷积交织的经改善技术。
根据本发明,一般来说,使用SRAM来实施交织器以对来自两个路径的数据(符号)进行缓冲及分类,随后将所述数据突发写入到SDRAM。对来自两个路径的符号进行预先分类以将来自每一路径的符号分组在一起,从而实现从SRAM到SDRAM的大量依序突发写入,其中在顺序交织器写入地址中仅发生一次断开。同样,可通过在写入之前积累四个完整的交织器换向器循环将SDRAM写入到4个字符宽。这样可(举例来说)实现从96/16M符号/秒的先前水平到约110M符号/秒的吞吐量增加。
根据本发明特征,使用小型SRAM来对SDRAM数据加以重新排序及存储以便可优化SDRAM存取,从而可高效地实施双路径卷积交织器。
根据本发明特征,将数据分类并收集在SRAM中以便可对SDRAM进行大量依序突发写入。
根据本发明特征,可对十六个信道符号的群组加以分类以使得在顺序交织器写入地址中仅发生一次断开。
根据本发明特征,积累用于四个完整交织器换向器循环的数据以便能够以四个符号宽向SDRAM写入,此将优化存取时间。
根据本发明特征,通过以交错模式写入数据来存储双路径交织器数据以便可完成线性读取。此外,此提供突发序列期间写入地址变化快于读取地址变化的优点。
根据本发明特征,将双路径交织器数据存储于SDRAM中以使得线性的32位读取将提供表示来自双路径交织器的串流的数据串流。
根据本发明,一种对数据进行交织的方法包括:提供两个交织器路径;接收多个符号;将所述符号中的每一者指派给两个路径中给定的一个路径;及对所述符号进行分类以使得顺序交织器写入地址中断开的数目最小化。在进行分类之后,将符号突发写入到SDRAM。在进行分类之后,顺序交织器写入地址中仅存在一个断开。在写入到SDRAM之前,一次针对四个换向器循环积累数据,且将数据以四个符号宽写入以优化SDRAM存取时间。因此,将8位元符号一次32位写入到SDRAM。
根据本发明实施例,一种对数据进行交织的方法包括:提供两个交织器路径;接收多个符号;将所述符号中的一者指派给两个路径中的给定的路径;及对所述符号进行分类以使得顺序交织器写入地址中的断开数目最小化。在依序进行分类之后,必须将所述符号突发写入到SDRAM,且顺序交织器写入地址中仅可存在一个断开。可提供多个符号信道。
根据本发明另一实施例,在写入到SDRAM之前,可一次针对四个FEC符号积累数据;且接着以四个符号宽写入以优化SDRAM存取时间。所述FEC符号可以是8位;且可将数据一次32位写入到SDRAM以适合SDRAM接口。可提供两个交织器路径。在打包之前,可对符号进行分类以使得顺序交织器写入地址中的断开数目最小化,从而增强性能。
根据本发明另一实施例,可通过以交错模式写入数据来将双路径交织器数据存储于SDRAM中,以便可进行线性读取以提高速度。交错可在换向器循环内重新开始以保持SRAM较小,同时维持针对SDRAM的交织器结构及突发写入特征。可将数据存储于SDRAM中以使得线性的32位读取将提供表示来自双路径交织器的串流的数据串流。
根据本发明另一实施例,揭示一种对作为符号序列的数据进行交织的方法,其中“I”表示交织深度且“J”表示交织增量。此实施例包括将所述符号序列写入到SRAM,所述SRAM具有“r”数目的行及“c”数目的列。特定来说,通过以下步骤写入所述符号:(a)将第一符号写入到位于SRAM的第一列及第一行处的地址;(b)将序列中下一符号写入在从先前列移动了J列的新列中且写入于SRAM的从先前行移动了一行的新行中;及(c)重复步骤(b)直到将所有符号写入到SRAM为止。根据本发明又一特征,(d)在将所有符号写入到SRAM之后,将所述数据突发写入到SDRAM。
根据本发明再一特征,可以由以下关系定义的交错模式写入数据:c_new=(c_previous+J)modulo 4,其中“c”为列数目;及r_new=(r_previous+1)moduloI,其中“r”为行数目。
使用这些特征的组合可产生高达10倍的性能上的增益。举例来说,根据本发明实施例,一种对数据进行交织的方法包括:提供两个交织器路径及多个符号信道;接收多个符号;将所述符号中的每一者指派给两个路径中给定的路径;将所述符号分类以使得顺序交织器写入地址中的断开数目最小化;及在依序进行分类之后,将所述符号突发写入到SDRAM。在依序进行分类之后,顺序交织器写入地址中仅存在一个断开。在写入到SDRAM之前,一次针对四个FEC符号积累数据,并将数据以四个符号宽写入以优化SDRAM存取时间。所述FEC符号为8位,将数据一次32位写入到SDRAM以适合SDRAM接口,并将数据以交错模式写入到SDRAM以便可完成线性读取以提高速度。交错可在换向器循环内重新开始以保持SRAM较小,同时维持针对SDRAM的交织器结构及突发写入特征。
根据本发明对数据进行交织的另一方法包括接收多个符号,其中将所述符号中的每一者指派给两个路径中的一个路径。对所述符号进行分类以便将指派给两个路径中的一个路径的所有符号分组在一起,且将指派给两个路径中的另一路径的所有符号分组在一起。使用SRAM,以交错模式将已分类符号打包以便可将数据突发写入到SDRAM。当SRAM具有对应于SDRAM突发块的完整块时,可执行从SRAM到SDRAM的完整长度突发写入。
根据本发明用于对数据进行交织的设备包括用于实施以下的构件:对指派给两个路径中的一个路径的符号进行分类;及对所述符号进行分类以便将符号中指派给两个路径中给定的一个路径的第一部分分组在一起且将符号中指派给两个路径中的另一给定路径的剩余部分分组在一起。提供用于以交错模式存储已分类符号以便可将数据突发写入到SDRAM的构件。还提供用于将符号突发写入到SDRAM的构件。用于以交错模式存储已分类符号的构件可包括SRAM。
附图说明
阅读以下结合附图所述的详细说明可更完整地了解本发明。
图1是图解说明根据现有技术的典型卷积交织器及去交织器的简化示意性方块图。
图2是根据现有技术的数据通信系统的图表。
图3是根据现有技术包括卷积交织器的通信系统的图表。
图4是图解说明(例如)可与本发明一起使用的卷积交织器的图表。
图5是显示本发明主要组件及所述组件如何彼此相关的图表。
图6是图解说明根据本发明的分类器的操作的图表。
图7及8是图解说明根据本发明的打包器的操作的图表。
图9及10是图解说明根据本发明的SDRAM的操作的图表。
图11是图解说明根据本发明的拆包器的操作的图表。
图12是根据本发明的去分类器的图表。
具体实施方式
根据本发明,一般来说,以多个信道来建立两(2)路径交织器,且每一信道可由于SRAM中的信道分类而通过短路径或长路径并在高速度下执行。此外,到SRAM的交错写入允许SRAM较小,当在FPGA中实施时这是有益的。另外,将所述写入打包以支持小SRAM的许多交织器模式。本文中揭示的技术支持具有两个交织器长度而不导致极大的减速及双SDRAM。
本发明使得通过使用SDRAM、FPGA逻辑及FPGA SRAM以两个路径(A与B)实施SDRAM卷积交织器成为可能。
由本发明解决的问题是,到SDRAM两路径交织器的突发写入将在10M符号/秒的吞吐量处达到最大值(限定于此),且需要更高的符号速率(例如110M符号/秒)。
根据本发明,将符号内容写入到小型SRAM,且随后突发写入到SDRAM以便可达到较高的符号速率(110MSym/sec)。
用于本发明例示性实施例的技术环境
交织器通常每秒钟可接收144兆符号的数据串流。每一符号为7位宽。所述符号串流由128个符号的块实体来构建。每一此128符号块均由16符号的群组构建。在此16符号的群组中,16个符号中的一者属于“信道”。
SDRAM通常是交织器所选择的存储器,例如本文中所揭示。举例来说,参见上文论述的万(Wan)参考文献的图5(主存储器46,合适地为IC芯片53外部的SDRAM)。
然而,具有两个交织器路径可使得SDRAM中的存储器存取因SDRAM的架构而效率极为低下。尽管SRAM不遭受此限制,但作为一般命题,SRAM比SDRAM昂贵得多。SRAM在FPGA实施中同样受限。
一般来说,当使用SDRAM时,会想要一次写入一行。当停留在给定行中时速度是最佳的。同样,当每循环写入及读取32位时,SDRAM最高效地运行。如果所存储的数据为8位宽串流,则此可带来挑战。
在过去,已通过向SDRAM写入及从SDRAM读取来实施对数据串流的交织。所述写入是以递增的地址依序进行的。所述读取从交织算法规定的位置发生。
存取SDRAM的一个问题是会付出每次从读取变为写入时及每次将数据流变为来自非后续地址时都进行时钟循环的代价。对于行变化会付出更高的代价。
当交织器必须支持两个数据路径时,SDRAM存取问题加剧。这意味着,SDRAM必须切换并支持两个不同的地址序列,同时维持数据流。因此,利用SDRAM的最有效方式是以32位宽的数据“突发”逐行地读取及写入。
根据本发明,一般来说,揭示一种通过使用额外的SRAM向SDRAM突发写入经非线性地址序列循环打包的交织器模式的方法。(如本文中所使用,“突发”写入是指向(例如)SDRAM中的多个顺序存储器地址写入或读取的模式。)
如ITU规范的B.5.2部分(交织)中所述,“在RS块译码与随机化器之间的调制解调器中包含交织以实现对突发噪声引入的错误的校正。在64-QAM及256-QAM两者中均采用卷积交织器。卷积交织图解说明于图B.8中。在随后的子条款中定义的FEC帧的开始处,将交织换向器位置初始化到最顶端分支并以RS符号频率递增,其中从每一位置输出单个符号。借助于卷积交织器,RS码符号被依序地移位到I个寄存器的组(每一寄存器的宽度均为7位,这与RS符号大小匹配)中。每一连续寄存器均比前面的寄存器多具有J个符号的存储。第一个交织器路径具有零延迟,第二个具有J符号周期的延迟,第三个具有2*J符号周期的延迟,依此类推,直到具有(I-1)*J符号周期的延迟的第I个路径。对于有线电视解码器中的去交织器,情况是相反的,以使得每一RS符号的净延迟在交织器与去交织器中是相同的。信道中的突发噪声导致一系列不良符号。这些不良符号由去交织器分散于许多RS块中以使得每一块的所得符号错误均处于RS解码器校正能力范围内。”另外,必须支持两个延迟长度且因此支持两个路径“A”与“B”。
输入数据
图4图解说明根据本发明例示性实施例的卷积交织器的架构。(所述交织器与图1中所示的交织器基本相同。)
到交织器(中)的输入数据经构造以具有j=16个符号的i=128个群组。前16个符号是128个符号的16个里德-所罗门(Reed-Solomon)包的所有第一个符号。在交织器之前完成从128×16到16×128的转换。
“AB路径”卷积交织器
卷积交织器用于在较长符号序列上分布可能的传输错误的目的。交织器实现对突发噪声更好的错误校正。交织器以预定义方式延迟符号。不延迟包的第一个符号,且越来越多地延迟随后的符号。交织器延迟由I与J定义。I表示抽头的数目,且J表示抽头1的延迟。
本发明的交织器解决ITU交织规范(ITU-T介绍J.83)的变化,并极类似于先前交织器地运作,但支持交织器本身内的两个数据路径(“A”与“B”)。16个符号中的任一者均应能够通过路径A或路径B。所述不同路径实施唯一的交织算法(13个中的1个)。
本发明的交织器支持标示为“A”与“B”的2个路径,且每一路径均应具有可配置延迟模式。给定路径可用于视频或数据。
交织器必须支持13种模式。[I,J]模式定义交织器的结构及其延迟。
I可具有值[1,16,32,64,128]。
J可具有值[1,2,3,4,5,6,7,8]。
16个信道可(最坏情况)导致从路径到路径的15种模式变化。
数据流
图5图解说明根据本发明的例示性总体数据流。交织器500的例示性实施例通常包括5个功能块(模块)。
-分类器(例如下文中所描述的504),
-打包器(例如下文中所描述的506),
-SDRAM状态机(例如下文中所描述的508),
-拆包器(例如下文中所描述的510),及
-去分类器(例如下文中所描述的512)。
在此实例中,将到交织器的输入数据502(IN)组织为16+16+16...个符号,此有助于提供在AB_分类(AB_Sorting)(下文所描述)之后仅具有1个目的地地址变化的期望序列。所述地址变化与16个符号内从“A”数据到“B”数据的变化相关,此在最坏情况下可导致15个变化(如果没有被解决)。
在AB_分类器(AB_Sorter)504中,A与B路径的符号分类为若干群组以使得A与B路径的SDRAM地址的切换将不会断开SDRAM突发序列。在下文中参照图6(分类器)对此加以更详细描述。
所述16个符号最初处于常规次序中,例如1、2、3、4、5、6、7、8、9、10、11、12、13、14、15、16。将所述符号中选定的符号指派给“A”符号路径,将剩余符号指派给“B”数据路径。一般来说,将“N”个符号指派给“A”路径,且将16-N(16减“N”)个符号指派给“B”路径。举例来说,将N=10个符号指派给“A”路径,且将16-10=6个符号指派给“B”路径。
所述分类器用于更改16个符号的次序以将去往“A”符号路径的所有符号分组在一起且将去往“B”符号路径的所有符号分组在一起的目的。所述分类器通过观察作为交织器的输入的16位向量而知晓哪一符号应去往A或B方向。
在对输入数据进行分类之后,打包器506执行四列打包以使得可随后将四个符号(或32位)写入到SDRAM。使用SRAM将此完成。执行到SRAM的写入以便将交错模式(例如所定义的交错模式)置于SRAM中。随时间推移,所述交错模式将填满SRAM。在SRAM具有对应于SDRAM突发块的完整块时,可对SDRAM执行全长突发写入。
除交错模式之外,尽可能频繁地将向SRAM的写入在地址上“向后移动”。如本文中使用,“向后移动”是指从SRAM地址中减去一个数。在向SDRAM的每一次突发写入开始时补偿所述减法。“尽可能频繁地”是指避免断开到SDRAM的突发序列同时保持SRAM较小,且因此按所准许尽可能快地减去。下文中参照图7及8(打包器)对此加以更详细描述。
打包器506包括具有8(7)位输入路径及32(28)位宽输出路径的FIFO。对数据的分类及32位组织(打包)两者均用于优化随后存取SDRAM 508的定时的目的。
SDRAM 508接收32位形式的数据且分类(504)通过确保从SDRAM的随后读取可以相继次序发生且仅具有从A地址到B地址的一个变化来帮助。另外,16个群组的4×将用于SDRAM存取。此将进一步有助于优化SDRAM定时。
在64个时钟中应通过64个符号以维持144M符号速率。SDRAM应需要2×(64/4)=32个时钟来读取及写入64个符号。被4除(64/4)是来自DDR(×1/2)的使用且来自16位宽度数据路径(×1/2)。所述2×是来自每一符号需要读取及写入存取的事实。此将导致32个时钟“多余”。需要这些时钟以在“读取到写入”(10个时钟)、读取地址变化(10个时钟)与其它SDRAM开销(12个时钟)之间切换。
SDRAM 508暂存(临时存储)从打包器506写入(突发写入)的数据。下文中参照图9及10(SDRAM)对此加以更详细描述,图中可见来自所写入数据的对角线。
状态机控制SDRAM的操作。一般来说,SDRAM状态机如现有交织器中所实施的状态机一样运作。然而,不同之处是,状态机写入16个符号(所述符号被分类及打包)接着读取N个符号且接着读取(16-N)个符号,而不是写入并读取16个符号。所述N个符号通过A路径而来,且所述(16-N)个符号通过B路径而来。N由16位向量选定。
对于使用32位路径的SDRAM,有时有可能做出5次读取(20个符号)而不是16次。
在上文提及的实例中,A路径具有11个符号且B路径具有5个符号。一些替代方案为:
-如果A与B路径各自具有8个符号,则将执行4次读取。
-如果A路径具有3个符号且B路径具有13个符号,则将执行5次读取。
从A路径读取1次得到3个符号,且从B路径读取4次得到13个符号。
写入组合4×16个符号。
读取针对A路径组合4×N/16个符号。
读取针对B路径组合4×(16-N)*16个符号。
拆包器510将从SDRAM逐行地读取4个符号宽的数据。在完成完整的列写入之后,开始单个列的读取。所述拆包器读取串流向去分类器512提供数据。此模块将向其FIFO读取32位且输出将为16位。(下文中参照图11(拆包器)对此加以更详细描述)。
AB_去分类器(AB_UnSorter)512反转AB_分类器(AB_Sorter)504过程。下文中参照图12(AB_去分类器)对此加以更详细地描述。
去分类器512将从SDRAM接收A与B路径符号串流且接着取出16符号的块并以将信道次序维持为与其被分类之前一样的方式将其放回在所述块可用的16个位置中。此逻辑块512还含有用以将32位符号串流转换为7位宽输出数据路径的FIFO。重要地,应注意,A与B路径将不会遍布交织具有相同“延迟”。一个路径可具有0.15ms的等待时间且另一路径可具有22ms的等待时间。因此,在交织器之后A与B信道将不具有“相同”延迟。
图6-12提供上文中所述5个模块(分类器、打包器、SDRAM、拆包器、去分类器)的操作的进一步细节及实例。
AB分类器(图6)
分类器(504)用于更改16个输入符号的次序以使得去往“A”符号路径的所有符号分组在一起且去往“B”符号路径的所有符号分组在一起的目的。所述分类器(504)通过观察作为交织器的输入的16位向量而知晓哪一符号应去往A或B方向。
图6图解说明根据本发明例示性实施例用于对输出串流的输入数据进行分类的分类器(AB_分类器)的操作。
在图左侧上的列显示总共16个完整输入符号1-16。将10个(N=10)符号1、2、6、7、8、9、12、13、14、15指派给“A”路径。将6个(16-N)符号3、4、5、10、11、16指派给“B”路径。
图右侧上的列显示16个输入符号,其经重新布置以使得所有A路径符号(1、2、6、7、8、9、12、13、14、15)分组在一起,随后是剩余的B路径符号(16、11、10、5、4、3)。
在进行分类之前(16符号输入(SYM IN)),可观察到存在5次“断开”。(断开被定义为从A到B或从B到A的转变)。在“最坏情况”情形下,如果每隔一个符号从A变为B,则可存在15个断开。举例来说,所有奇数号码的符号(1、3、5、7、9、11、13、15)均被指派给A路径,且所有偶数号码的符号(2、4、6、8、10、12、14、16)均被指派给B路径。
在进行分类之后(16 SYM OUT),突发地址中仅存在一个断开(“分割”)。为使到SDRAM的突发写入的性能最大化,突发地址中仅具有一个断开是期望的,因为顺序交织器写入地址中仅发生一次断开。
打包器(图7及8)
在写入到SDRAM之前,需要将经分类符号打包。从上文回顾,在此实例中,所述符号为8位,且SDRAM在一次性写入32位时最有效。
打包器(506)进一步将经分类符号置于具有8(7)位输入路径及32(28)位宽输出路径的FIFO中。对数据的分类及32位组织两者均用于优化对SDRAM的存取的定时的目的。SDRAM以32位接收数据,从而确保后来从SDRAM的读取可以相继次序发生。
一次四个地将16个8位符号打包来以32位形式写入到SDRAM,以优化SDRAM存取时间。换句话说,积累来自4个完整交织器换向器循环的数据以将4个符号宽写入到SDRAM。
图7是图解说明针对I,J=128,1的打包器的图表,且图8是图解说明针对I,J=128,3的打包器的图表。在这两个图式中,存在四个列(垂直)及多个行(水平)。为清晰地图解说明,仅显示15个行。
显示多个“框”。每一框指代16个符号。举例来说,标记为“1”的框指代符号1…16,每一符号均为16个MPEG块中的第一个符号。应相同地处理所有16个符号,以使得其显示为单个框。标记为“2”的框指代16个MPEG块中的第二个符号中的每一者,依此类推。
一次一行地读出打包器。举例来说,将从打包器中读出符号块[385,257,129,1]中的符号1并将其以32位形式写入到SDRAM。
在SDRAM行地址变化之前,16个此类行将被突发写入到SDRAM。因此,可在没有SDRAM地址变化的情况下写入最少64个字节。
在图7及8中,可观察到“5”(表示16个MPEG块的第五个符号)被“拉回”到右手边的列。然而,应了解,当被写入到SDRAM时,所述5将被写入在4的下方且左边。此交错确保在读取SDRAM时可进行线性读取,同时维持交织器。
用于支持所有13种交织器模式的交错模式
交织器支持13[I,J]模式,其中“I”可具有五个值[1,16,32,64,128],且“J”可具有八个值[1,2,3,4,5,6,7,8]。
在进行分类(504)之后,在将数据(符号)打包(506)到SRAM中时所述数据(符号)是交错的,随后将其突发写入(507)到SDRAM,同时维持到SDRAM的突发写入能力。交错模式(算法)针对每一模式而略有不同,且针对每一模式均取决于I及J。
上文在图7及8中阐述了使数据交错(或预交错或预处理)并将数据临时存储(写入)在SRAM中,随后且准备将数据突发写入到SDRAM的两个实例。
参照图7,对于I=128且J=1,可观察到,在具有4列宽(及“n”行)架构的SRAM中,将第一符号“1”写入在列1(右手边的列)行1(顶行)中。(将第一符号写入在第一列中,假定第一行针对所有情况均为真。)将第二符号“2”写入在列2(先前列左边的第“J”列,在此情况下为下一列,因为J=1)行2(向下的下一行,n=n+1)中。注意,对于每一后续符号,在所有情况下,将下一符号写入在向下的下一行中。将第三符号“3”写入在列3(其中存储先前第二个符号的列左边的J列)行3(向下的下一行)中。将第四符号“4”写入在列4(同样,其中存储先前第三个符号处左边的J=1列)行4(向下的下一行)中。
这是四列宽架构,下一符号“5”写入在列1(列序列为1、2、3、4、1、2、3、4、1、2、3、4…)中,列1为列4左边的一个(J=1)列,绕回列1,且在向下的下一行(n=n+1)中。根据本文中定义的交错模式,始终将下一符号写入在向下的下一行中。
图9显示来自图7的数据在突发写入之后如何布置在较宽(32列)SDRAM中。
在根据预定义模式(J=3)的交错的图8实例中,可观察到,每一后续符号均被写入在先前符号左边J=3列。同样,在四列宽架构下,其中J=3的序列因此变为1、4、3、2、1、4、3、2、1、4、3、2…此简单公式为c_new=(c_last+J)modulo 4,其中“c”为列数目(“last”=先前)。如在先前实例(针对I,J=128,1)中,将每一后续符号写入到向下的下一行。
如从这些实例显而易见,将所述列写入在每一后续符号左边“J”列,当到达最后一列(在此实例中为列4)时绕回(回到列1)。应了解,方向“左”仅是对列序列中的方向的命名,在此实例中,SRAM经布置以具有四个列。在模运算(有时称为取模运算)或块运算中,递增的数目(1、2、3、4、…)在达到特定的数(即最高准许数)之后绕回。举例来说,在时钟中,数目在超过12之后“绕”回到1。在SRAM的本实例中,所述列在超过4之后绕回到1。对于J=1,将每一后续符号写入到序列中的第一下一列,对于J=2,将每一后续符号写入到序列中的第二下一列,对于J=3,将下一符号写入到序列中的第三下一列,对于J的每一可能值依此类推。
注意,可容易地适应存储器的其它布置。举例来说,出于实践原因,可并排地布置八个四列群组。通过在SRAM中并排地使用8×4列块布置,在将地址写入到SDRAM的同时将必须较不频繁地改变所述地址。此表示SRAM大小与相关联逻辑的简单性/性能之间的折衷。在具有四个以上列的SRAM的情况下,如在8×4列块布置的实例中,图7及8中所图解说明的实施例将使其宽度变为两倍8列及使其宽度变为三倍12列。对于所属领域的技术人员,其它宽度配置将是显而易见的。
在上文给出的实例中,将每一符号写入到SRAM中向下的下一行。此继续进行,直到达到“I”。所写入的行的数目取决于“I”。以类似于以模的方式计数所述列(1、2、3、4、1、2、3、4、…)的方式,当到达第I行时(在上文给出的实例中I=128),下一写入将是写入到行1。这是强迫交错重新开始的概念。以公式表示,此为r_new=(r_last+1)modulo I,其中“r”为行数目(“last”=先前)。
存储器地址通常由行与列标示,一般来说,在规定的列与规定的行相交(交叉)处。此命名可指代仅可存储一个或少数数据位的个别存储器单元,也指代可保存许多数据位的相连存储器单元的块。应了解,“列1”或“第一列”指代SRAM(或SDRAM,下文中描述)的初始列,且“行1”或“第一行”指代SRAM(或SDRAM,下文中描述)的初始行。
应了解,SRAM应具有“I”个以上行,但交错模式经定义以在到达行“I”之后在行1处重新开始。此外,SRAM可具有四个以上列,但交错模式在达到列4之后在列1处重新开始。所有这些准备将数据有效地突发写入到SDRAM。在I=128的情况下,可将SRAM视为128行阵列。如果I=8,则可保持128行并将其视为在彼此下方的16个8行块。以此方式,可在概念上坚持128行的想法,但令交错在128内重新开始16次。128的每个第8行将被视为块内的行1。
如果“I”为128,则从行1到128交错到SDRAM的写入。如果“I”为8,则将强制对SDRAM的交错的16=128/8重新开始。在“I”写入循环结束时强制重新开始。在“I”写入循环结束时,下一写入在行I之后移回到开始列。存在两种列重新开始。当达到行“I”时,在SRAM及SDRAM两者中重新开始交错。当仅在SRAM中重新开始时,为保持SRAM较小(注意上文的四列实例),SDRAM地址递增以补偿此种重新开始。
SDRAM(图9及10)
在此实施例中,SDRAM及其状态机极类似在过去的交织器中所实施的状态机而运作。不同之处是,状态机现在将写入/读取N个符号且接着写入/读取(16-N)个符号,而不是写入/读取16个符号。所述N个符号是针对A路径,且所述(16-N)个符号是针对B路径。N由16位向量选定。
由于SDRAM使用32位路径,因此可进行5次读取(5×4=20个符号),而不是16次。如果A与B路径各自具有8个符号,则可进行4次读取。如果存在3个A符号及13个B符号,则可进行5次读取-从A路径进行1次读取以得到3个符号且从B路径进行4次读取以得到13个符号。
写入将组合4×N符号*16。
写入将针对B路径组合4×(16-N)*16符号。
图9图解说明针对I,J=128,1的SDRAM,且图10图解说明针对I,J=128,3的SDRAM。如图7及8中的情况,每一框指代16个符号。仅显示总共八个列中的三个。以交错方式从右上到左下进行写入,一次四列以维持交织器延迟。从上向下一次四列地进行读取,接着读取下四列。
举例来说,在图9中,符号1、2、3及4沿着“45度”对角线,每一符号位于前一符号的向下一行且向左一列。在图9中可观察到符号5、6、7及8的相同对角线模式。
注意,举例来说,图9右上方16个(4×4)框的群组(标记为902)重复图7顶部处的16个框的群组(标记为702)。(且如图中将看到与图11右上方处的16个框的群组(标记为1102)相同)。
类似地,图9中含有符号5、6、7、8的群组的16个框的群组(标记为904)重复图7中相同行位置(行5-8)处的16个框的群组(标记为704)的群组以及图11中相同行位置处的16个框的群组(标记为1104)。
通过以交错模式写入数据来存储路径交织器数据的方法使得线性读取能够完成。此外,此提供在突发序列期间写入地址变化比读取地址变化更快的优点。将数据存储于SRAM中以使得线性32位读取将提供表示来自双路径交织器的串流的数据串流同时使用小的SRAM。通过尽可能频繁地进行交错同时维持所需突发长度来保持SRAM较小。
拆包器(510图11)
拆包器510的目的是从SDRAM读取4符号宽数据并将其作为1符号宽串流提供给去_分类器(Un_Sorter)512。
图11图解说明拆包器。如在图7、8、9及10中,每一框指代16个符号。(标记为“1”的框指代16个符号,等等。)
逐行地从上向下地进行到拆包器510中的写入以填充一个列。接着,在从SDRAM填充行时将填充下一列。
逐列地进行从拆包器的读取。举例来说,从“129”开始,接着将读取“2”…。
AB_去分类器(AB_UnSorter)(512.图12)
去_分类器(Un_Sorter)512恢复串流的信道次序。交织器的此最后阶段将移除交织器中的AB_分类器优化的所有痕迹。一般来说,图12(去分类器)仅仅是图6(分类器)的“镜像”。为读取SDRAM,对于写入来说,仅存在一个A/B分割,如图中所示。
应了解,本发明可以控制逻辑的形式实现,实施于软件或硬件或两者的组合中,如所属领域的技术人员基于本文中所述教示将显而易见。
出于解释的目的,前述说明使用特定命名来提供对本发明的透彻了解。然而,所属领域的技术人员将明了,不需要特定细节来实践本发明。因此,呈现本发明特定实施例的前述说明是出于图解说明及说明的目的。其并不希望作为穷举性说明或将本发明限定为所揭示的确切形式,且鉴于上述教示可做出许多修改及变化。选择及描述所述实施例以对本发明的原理及其实际应用进行最佳解释,从而使所属领域的其它技术人员能够最佳地利用本发明及各种实施例及适用于所预期的特定使用的各种修改。希望由以下权利要求书及其等效物界定本发明范围。

Claims (5)

1.一种对数据进行交织的方法,其包括:
接收多个符号,其中将所述符号中的每一者指派给两个路径中的一个路径;及
对所述符号进行分类以使得指派给所述两个路径中的一个路径的所有所述符号分组在一起,且使得指派给所述两个路径中的另一路径的所有所述符号分组在一起;及
使用SRAM以交错模式打包所述经分类符号;
其进一步包括:
当所述SRAM具有对应于SDRAM突发块的完整块时,执行从SRAM到SDRAM的完整长度突发写入。
2.根据权利要求1所述的方法,其中:
在依序进行分类之后,顺序交织器写入地址中仅存在一个断开。
3.根据权利要求1所述的方法,其进一步包括:
提供多个符号信道。
4.一种对数据进行交织的方法,其包括:
提供两个交织器路径;
提供多个符号信道;
接收多个符号;
将所述符号中的每一者指派给所述两个路径中的给定路径;
对所述符号进行分类以将顺序交织器写入地址中的断开的数目最小化;及
在依序进行分类之后,将所述符号突发写入到SDRAM;
其中,在依序进行分类之后,所述顺序交织器写入地址中仅存在一个断开;
其进一步包括:
在写入到SDRAM之前,一次针对四个FEC符号积累数据;及
以四个FEC符号宽进行写入以优化SDRAM存取时间;
其中:
所述FEC符号为8位;
将所述数据一次32位写入到SDRAM以适合SDRAM接口,且
以交错模式将所述数据从SRAM写入到SDRAM以便可进行线性读取以提高速度。
5.根据权利要求4所述的方法,其进一步包括:
在换向器循环内重新开始所述交错模式以保持所述SRAM较小,同时维持针对所述SDRAM的交织器结构及突发写入特征。
CN200780052560XA 2007-04-13 2007-10-30 具有两个路径的同步动态随机存取存储器卷积交织器 Active CN101652757B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/787,228 US8127199B2 (en) 2007-04-13 2007-04-13 SDRAM convolutional interleaver with two paths
US11/787,228 2007-04-13
PCT/US2007/023002 WO2008127304A1 (en) 2007-04-13 2007-10-30 Sdram convolutional interleaver with two paths

Publications (2)

Publication Number Publication Date
CN101652757A CN101652757A (zh) 2010-02-17
CN101652757B true CN101652757B (zh) 2012-11-28

Family

ID=39854875

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200780052560XA Active CN101652757B (zh) 2007-04-13 2007-10-30 具有两个路径的同步动态随机存取存储器卷积交织器

Country Status (5)

Country Link
US (1) US8127199B2 (zh)
CN (1) CN101652757B (zh)
HK (1) HK1140286A1 (zh)
IL (1) IL201141A (zh)
WO (1) WO2008127304A1 (zh)

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8189627B2 (en) 2006-06-28 2012-05-29 Samsung & Electronics Co., Ltd. System and method for digital communications using multiple parallel encoders
US8111670B2 (en) * 2007-03-12 2012-02-07 Samsung Electronics Co., Ltd. System and method for processing wireless high definition video data using remainder bytes
US8108761B2 (en) * 2007-08-23 2012-01-31 Intel Corporation Optimizing the size of memory devices used for error correction code storage
US8285917B2 (en) * 2009-03-26 2012-10-09 Scaleo Chip Apparatus for enhancing flash memory access
WO2011014723A1 (en) * 2009-07-30 2011-02-03 Ibiquity Digital Corporation Systems, methods, and computer readable media for digital radio broadcast receiver memory and power reduction
US8352834B2 (en) * 2009-11-12 2013-01-08 Broadlogic Network Technologies Inc. High throughput interleaver / deinterleaver
US8489979B2 (en) * 2010-05-28 2013-07-16 Seagate Technology Llc Methods and devices to reduce outer code failure rate variability
EP2688211A4 (en) * 2011-07-29 2014-08-06 Huawei Tech Co Ltd NESTING AND NESTING METHODS, NESTING AND DECORATING
US9419910B2 (en) * 2011-09-13 2016-08-16 Nec Corporation Communication system, control apparatus, and communication method
US9166626B2 (en) * 2011-11-18 2015-10-20 Korea Advanced Institute Of Science And Technology Encoding, decoding, and multi-stage decoding circuits for concatenated BCH, and error correction circuit of flash memory device using the same
KR101861769B1 (ko) 2011-11-24 2018-05-29 삼성전자주식회사 비동기식 브릿지 및 이의 동작 방법, 및 이를 포함하는 SoC
CN103546169A (zh) * 2012-07-09 2014-01-29 成都林海电子有限责任公司 Fpga中实现3/4速率(2,1,7)卷积编码的方法
US9136876B1 (en) 2013-06-13 2015-09-15 Densbits Technologies Ltd. Size limited multi-dimensional decoding
CN104461934B (zh) * 2014-11-07 2017-06-30 北京海尔集成电路设计有限公司 一种适合ddr存储器的时域解卷积交织装置及方法
US9467252B2 (en) * 2014-11-26 2016-10-11 Freescale Semiconductor, Inc. Turbo decoders with extrinsic addressing and associated methods
CN104461921A (zh) * 2014-12-23 2015-03-25 中山大学 一种基于硬件系统的交织器/解交织器装置
TWI569587B (zh) * 2015-02-06 2017-02-01 晨星半導體股份有限公司 解迴旋交錯器
TWI617139B (zh) * 2015-02-06 2018-03-01 晨星半導體股份有限公司 解迴旋交錯器與解迴旋交錯方法
DE102015209486A1 (de) * 2015-05-22 2016-11-24 Robert Bosch Gmbh FIFO Speicher mit im Betrieb veränderbarem Speicherbereich
US10445323B2 (en) * 2015-09-30 2019-10-15 University Of Virginia Patent Foundation Association rule mining with the micron automata processor
EP3356943B1 (en) 2015-10-01 2021-11-03 Rambus Inc. Memory system with cached memory module operations
CN107562638A (zh) * 2016-06-30 2018-01-09 晨星半导体股份有限公司 时间解交错电路与方法
US10503435B2 (en) * 2016-12-01 2019-12-10 Qualcomm Incorporated Providing extended dynamic random access memory (DRAM) burst lengths in processor-based systems
PL3586484T3 (pl) * 2017-02-27 2021-08-09 Alto Beam (China) Inc. Aparatura do przeprowadzania rozplatania binarnego strumienia danych i odbiornik dvb-t2
CN108667555B (zh) * 2017-03-29 2021-07-20 华为技术有限公司 一种相位调整方法、相关设备和通信系统
CN108509382B (zh) * 2018-03-27 2022-06-07 南开大学 一种基于fpga实现超长序列快速卷积运算的方法
US10853167B2 (en) * 2019-01-28 2020-12-01 Winbond Electronics Corp. Memory apparatus having hierarchical error correction code layer
KR20210118453A (ko) 2019-04-30 2021-09-30 양쯔 메모리 테크놀로지스 씨오., 엘티디. 플래시 메모리의 판독 레벨을 관리하는 전자 장치 및 방법
US10651871B1 (en) 2019-07-10 2020-05-12 Citrix Systems, Inc. Real-time history-based byte stream compression

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5261068A (en) * 1990-05-25 1993-11-09 Dell Usa L.P. Dual path memory retrieval system for an interleaved dynamic RAM memory unit
US6226720B1 (en) * 1998-12-11 2001-05-01 International Business Machines Corporation Method for optimally configuring memory in a mixed interleave system
US6564304B1 (en) * 2000-09-01 2003-05-13 Ati Technologies Inc. Memory processing system and method for accessing memory including reordering memory requests to reduce mode switching

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5576707A (en) * 1994-06-10 1996-11-19 Cirrus Logic, Inc. Method and apparatus for detecting and decoding data in a PRML class-IV digital communication channel
US5761695A (en) 1995-09-19 1998-06-02 Hitachi, Ltd. Cache memory control method and apparatus, and method and apparatus for controlling memory capable of interleave control
US6055277A (en) * 1997-05-29 2000-04-25 Trw Docket No. Communication system for broadcasting to mobile users
US6484283B2 (en) * 1998-12-30 2002-11-19 International Business Machines Corporation Method and apparatus for encoding and decoding a turbo code in an integrated modem system
US6799295B2 (en) * 2001-01-02 2004-09-28 Icomm Technologies, Inc. High speed turbo codes decoder for 3G using pipelined SISO log-map decoders architecture
US20020147884A1 (en) 2001-04-05 2002-10-10 Michael Peters Method and circuit for increasing the memory access speed of an enhanced synchronous SDRAM
US6891545B2 (en) 2001-11-20 2005-05-10 Koninklijke Philips Electronics N.V. Color burst queue for a shared memory controller in a color sequential display system
US6928024B2 (en) * 2002-08-12 2005-08-09 Infineon Technologies Ag RAM memory circuit and method for memory operation at a multiplied data rate
US7051171B1 (en) 2003-04-11 2006-05-23 Broadlogic Network Technologies, Inc. Method and system for providing a multi-channel interleaver/deinterleaver using SDRAM
US7600163B2 (en) * 2003-09-23 2009-10-06 Realtek Semiconductor Corp. Convolutional interleaver and deinterleaver
US7016235B2 (en) * 2004-03-03 2006-03-21 Promos Technologies Pte. Ltd. Data sorting in memories
US7774676B2 (en) 2005-06-16 2010-08-10 Mediatek Inc. Methods and apparatuses for generating error correction codes

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5261068A (en) * 1990-05-25 1993-11-09 Dell Usa L.P. Dual path memory retrieval system for an interleaved dynamic RAM memory unit
US6226720B1 (en) * 1998-12-11 2001-05-01 International Business Machines Corporation Method for optimally configuring memory in a mixed interleave system
US6564304B1 (en) * 2000-09-01 2003-05-13 Ati Technologies Inc. Memory processing system and method for accessing memory including reordering memory requests to reduce mode switching

Also Published As

Publication number Publication date
HK1140286A1 (en) 2010-10-08
US8127199B2 (en) 2012-02-28
US20080256417A1 (en) 2008-10-16
IL201141A (en) 2013-04-30
WO2008127304A1 (en) 2008-10-23
CN101652757A (zh) 2010-02-17
IL201141A0 (en) 2010-05-17

Similar Documents

Publication Publication Date Title
CN101652757B (zh) 具有两个路径的同步动态随机存取存储器卷积交织器
US5983388A (en) Forward error correction arrangement (FEC) for multipoint to single point communication systems
US6035427A (en) Convolutional interleaver and method for generating memory address therefor
EP0681373B1 (en) Convolutional interleaver with reduced memory requirements and address generator therefor
EP0527772B1 (en) Forward error correction code system
US6868519B2 (en) Reducing scintillation effects for optical free-space transmission
EP1496519A2 (en) Encoding method and memory apparatus
CN102142928B (zh) 交织、解交织外码编码输出码字的方法和交织、解交织器
US7966544B2 (en) Loading the input memory of an LDPC decoder with data for decoding
CN101120508A (zh) 利用减小尺寸的存储器表的块交织
US8667377B1 (en) Circuit and method for parallel decoding
CN1656692B (zh) 用于迭代硬判决前向纠错译码的装置
CN101310447B (zh) 用于mpe-fec帧解码的存储效率擦除信息表
CN101453302B (zh) 解交织器、数据传输系统中的数据交织/解交织实现方法
US7870458B2 (en) Parallel arrangement of serial concatenated convolutional code decoders with optimized organization of data for efficient use of memory resources
CN102098126B (zh) 用于块状编码的交织装置、速率匹配方法及装置
EP1610467A1 (en) Efficient address generation for Forney's modular periodic interleavers
WO2007082626A2 (en) Method and apparatus for error correction decoding
CN108199720B (zh) 一种减小存储开销和提高修复效率的节点修复方法及系统
CN111900999B (zh) 一种面向卫星非连续通信的高性能极化编码方法及编码器
JP5810670B2 (ja) 誤り訂正処理回路および誤り訂正処理方法
EP2621121A2 (en) Supercharged codes
CN101459432B (zh) 一种rs码交织编码方法
CN100517982C (zh) 一种数据总线转换装置及其rs编译码器
CN102833044B (zh) 一种cmmb系统中rs编码和字节交织的联合处理装置和方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1140286

Country of ref document: HK

C14 Grant of patent or utility model
GR01 Patent grant
C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20151013

Address after: American Texas

Patentee after: Imagination communication common carrier

Address before: American California

Patentee before: RGB Media Inc.