CN102884511B - 用于数据译码的存储器存取方法及计算装置 - Google Patents
用于数据译码的存储器存取方法及计算装置 Download PDFInfo
- Publication number
- CN102884511B CN102884511B CN201180022736.3A CN201180022736A CN102884511B CN 102884511 B CN102884511 B CN 102884511B CN 201180022736 A CN201180022736 A CN 201180022736A CN 102884511 B CN102884511 B CN 102884511B
- Authority
- CN
- China
- Prior art keywords
- data
- particular memory
- memory address
- address
- buffer zone
- 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.)
- Expired - Fee Related
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0064—Concatenated codes
- H04L1/0066—Parallel concatenated codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/27—Coding, 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/2771—Internal interleaver for turbo codes
- H03M13/2775—Contention or collision free turbo code internal interleaver
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/29—Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
- H03M13/2957—Turbo codes and decoding
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/39—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
- H03M13/395—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using a collapsed trellis, e.g. M-step algorithm, radix-n architectures with n>2
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/65—Purpose and implementation aspects
- H03M13/6502—Reduction of hardware complexity or efficient processing
- H03M13/6505—Memory efficient implementations
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/65—Purpose and implementation aspects
- H03M13/6561—Parallelized implementations
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/65—Purpose and implementation aspects
- H03M13/6566—Implementations concerning memory access contentions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0041—Arrangements at the transmitter end
- H04L1/0043—Realisations of complexity reduction techniques, e.g. use of look-up tables
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0045—Arrangements at the receiver end
- H04L1/0052—Realisations of complexity reduction techniques, e.g. pipelining or use of look-up tables
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Error Detection And Correction (AREA)
- Detection And Correction Of Errors (AREA)
Abstract
本发明提供一种存储器存取方法以及计算装置。其中,该存储器存取方法包括:接收对应于多个串接的卷积编码的数据元素的特定存储器地址序列;将该特定存储器地址序列的每个地址识别为多个地址组中所包括的一个地址组;以及并行地存取该多个地址组中每个地址组所对应的至少一个存储器地址,以对该各自串接的卷积编码的多个数据元素进行操作。本发明的存储器存取方法以及计算装置可减少试图向存储器的一部分同时执行多个存取操作所造成的瓶颈,从而有效存取存储器。
Description
技术领域
本发明有关于一种用于解码数据(例如以卷积码进行编码的数据)的系统和方法。
背景技术
对于信息的传送和接收,已经开发出各种类型的纠错(errorcorrecting)代码以及相应的解码算法。为提供强大的纠错能力,这些代码可能需要繁琐而复杂的译码器以用于接近数据传输理论极限(例如信道容量),其中数据传输理论极限可称为香农极限(Shannonlimit),由克劳德·香农(ClaudeShannon)在1948年提出此概念。为降低复杂度,在一种技术中,可串接多个相对简单明确而彼此不单独提供显著纠错能力的代码,以产生可提供增强型纠错能力的较长代码。
发明内容
为解决对例如串接式回旋编码数据的接入问题,本发明提供一种存储器访问方法以及计算装置。
本发明提供一种存储器访问方法,用于数据的译码,包括接收对应于多个串接的卷积编码的数据元素的特定存储器地址序列;将该特定存储器地址序列的每个地址识别为多个地址组中所包括的一个地址组,其中,每个地址组包括相等数目的地址;以及并行地接入该多个地址组中每个地址组所对应的至少一个存储器地址,以对该各自串接的卷积编码的多个数据元素进行操作,其中,该多个数据元素对应于所接入的该特定存储器地址序列中的每个地址。
本发明还提供一种计算装置,包括译码器,用于接收对应于多个串接的卷积编码的数据元素的特定存储器地址序列,该译码器配置为将该特定存储器地址序列的每个地址识别为多个地址组中所包括的一个地址组,其中,每个地址组包括相等数目的地址,该译码器进一步配置为并行地接入该多个地址组中每个地址组所对应的至少一个存储器地址,以对该各自串接的卷积编码的多个数据元素进行操作,其中,该多个数据元素对应于所接入的该特定存储器地址序列中的每个地址。
利用本发明提供的存储器访问方法以及计算装置,可减少试图向存储器的一部分同时执行多个接入操作所造成的瓶颈,更有效地接入存储器。
以下详述其他实施例和优势。本部分内容并非对发明作限定,本发明范围由权利要求所限定。
附图说明
图1是根据本发明一个实施例编码系统的模块示意图。
图2是根据本发明一个实施例译码系统的模块示意图。
图3是根据本发明一个实施例存储存取管理器的示意图。
图4是根据本发明一个实施例另一个存储存取管理器的示意图。
图5是频率效率与数据区块大小之间关系的示意图。
图6是根据本发明的实施例存储存取管理器的存取方法的示意图。
具体实施方式
在说明书及后续的权利要求当中使用了某些词汇来指称特定组件。本领域技术人员应可理解,制造商可用不同的名词来称呼同一组件。本说明书及后续的权利要求并不以名称的差异来作为区分组件的方式,而是以组件在功能上的差异来作为区分的准则。在通篇说明书及后续的权利要求当中所提及的“包含”为开放式的用语,故应解释成“包含但不限定于”。以外,“耦接”一词在此包含任何直接及间接的电气连接手段。因此,若文中描述第一装置耦接于第二装置,则代表该第一装置可直接电气连接于该第二装置,或通过其他装置或连接手段间接地电气连接至该第二装置。
参照图1,图1是根据本发明一个实施例编码系统100的模块示意图,编码系统100可采用一或多种编码技术为通信信道上的传输预备数据(或多个数据集合)。实施这些技术可提供一些优点,例如在接收机处纠错。在此特定设置中,编码系统100可采用涡轮码(Turbocode)架构,其中的两个卷积码将用于通过为输入数据102中的每个位产生三个输出位来对输入数据102进行编码。如图1所示,每个输入位也作为传输的输出(称为“系统数据”)。一般而言,Turbo代码通过交织器(interleaver)分离的两个代码的平行级联(parallelconcatenation)而形成。因此,使用两个编码器104和106并以相似的方式操作以将一或多个代码(例如递归系统回旋(recursivesystematicconvolutional,RSC)码)运用于输入数据102。为分离编码器104和106运用的代码,交织器108在将输入数据102提供给编码器106之前先对输入数据102进行处理。因此,输入数据102的已交织版本使编码器106输出与从编码器104输出数据完全不同的数据。因此,产生可以并行方式组合的两个独立代码。这样的组合允许组合代码的多个部分分别由复杂度较低的译码器进行译码。此外,每个译码器的性能可通过交换分别从每个译码器提取的信息得到改进。此外,由于交织器108向编码器106提供一个与编码器104的输入数据不同的输入数据,该编码器106的输出不同于(例如不相关)编码器104的输出。因此,可在译码所传送数据的过程中提供有关错误检测和更正的更多信息。
一般而言,可将交织器108视为对输入数据102的数据元素(例如位)以一种伪随机但实际确定的顺序进行顺序重排。为提供此功能,交织器108可实施一或多种交织器的交织技术,例如列-行、螺旋、偶-奇、伪随机等。随着系统输出数据,编码器104和106也输出同位数据(Paritydata)(表示为“同位数据1”和“同位数据2”),传送的同位数据用于错误检测和更正。
参照图2,图2是根据本发明一实施例译码系统200的模块示意图。译码系统200可译码已由一或多种技术编码的数据。例如译码系统200可对编码系统100(如图1所示)提供的编码数据进行译码。在此种情形中,译码系统200接收由编码系统100提供的三个数据集合。具体地,随着系统数据(表示为“系统数据202”),同位数据的两个集合(例如“同位数据1204”和“同位数据2206”)也被一起接收,且两个同位数据集合向所传送数据提供受控冗余信息使得译码系统200可检测传送错误的存在,并在可能情况下纠正错误。
可使用各类译码技术以揭示(reveal)所传送的编码数据。例如在一些设置中,对应于译码系统的接收机决定所接收的数据位(例如代表二元值0或1)。一旦确定所接收的数目,并可向译码系统提供该数据以用于进一步处理。对于此种技术,通常某一些数据位的决定比其他数据位更为确定,然而,用于做出决定的信息可能不会提供给译码系统使用。在一些设置中,可由接收机向译码系统提供数值(称之为“软性”输入)而不是“硬性”决定。在此输入条件下,译码系统可输出(为每个数据位)估计值(estimate),其中,估计值反应出与所传送数据位相应的概率(例如二元值0或1的概率)。
在此特定设置中,译码系统200包括两个译码器208和210,其可使用例如维特比(Viterbi)译码的译码技术或其他种类译码技术。一般而言,译码系统200使用递归(recursive)译码技术,使得译码器208提供可作为系统数据202的错误估计值的外部输出(标记为“外部数据1”)。类似地,译码器210也提供外部输出(标记为“外部数据2”)。将两个外部输出与系统输入结合(例如通过加法器212和214),得到和值(例如系统数据202+外部数据1,系统数据202+外部数据2),其中,称该和值为内部数据(例如:内部数据1=系统数据202+外部数据2,内部数据2=系统数据202+外部数据1’),该和值分别提供给译码器208和210。类似地,所接收的同位数据1204和同位数据2206分别提供给译码器208和210。虽然可使用各种技术,通常将这些数据(例如同位数据1204、同位数据2206、内部数据1、内部数据2、外部数据1”、外部数据2和系统数据202)存储在一或多个存储器中,其中,译码器208和210可存取该一或多个存储器以用于撷取(retrieval)。
通常以大于二的基数操作的译码系统,例如图2中所示的基数-4译码系统,需要大量对并行存储器的存取以有效撷取输入数据。基于如何存储数据(例如使用的存储器类型),可有效或繁琐地执行存储器的存取。例如,通过以线性方式存储连续的数据元素,可相对容易地对数据进行并行存取。通常用于译码器208的输入数据(例如同位数据1204、外部数据1/内部数据1、系统数据202)以线性方式存储且可对该输入数据进行有效的存取。为提高存取效率,每个存储器纪录(memoryrecord)(例如一同位项(Parityentry))可扩大至存储多个连续项。为进行有效存取,也可以连续、线性的方式存储译码器210的同位数据2206。此外,可扩大其他存储器纪录(这样每个纪录都能存储多个数据元素)以提高存取效率。译码器210存取(由交织器216)交织后的外部/内部和系统数据。因此,外部/内部和系统数据不可以线性序列存储且不能轻易存取(相较于的线性存储的数据例如(同位数据2))。此外,虽然可扩大纪录以用于存储多个项,(但由于交织操作),扩大的纪录可能不适用于高效的存取。因此,需要多个操作(可停顿的操作)以随机存取分散在整个存储器中的数据,而不是使用单一操作以存取(例如读取)一系列连续的外部/内部和系统数据记录。译码器210的这些额外存取操作可能产生整个译码系统200的数据处理瓶颈。
为减少存取数据过程中的此瓶颈,译码系统200,尤其是,译码器210可采用一或多种技术。例如,可将交织的外部/内部和系统数据分配给可独立且同时并行存取的多个存储库(memorybank)。此外,通过将交织的数据(具有相应交织地址)分离为两个或多个组(每组可存储在一个专用存储库中),以增加执行存取操作的概率并减少冲突。例如,对于基数-4译码系统,可建立存储库以使一个存储库与奇数值地址对应(外部数据/内部数据和系统数据的地址),而另一个存储库与数据的偶数值地址对应。为指示对两个存储库的存取,并尝试缓解在一个时间瞬间(timeinstance)内多次存取存储库造成的延迟,存储存取管理器218(从交织器216)接收交织的地址并指示存取相应外部数据/内部和系统数据。一般而言,虽然交织器216可扰乱(提供给存储存取管理器218的)地址的顺序,地址的数目保持恒定且这些地址来自有限地址池(例如译码期间相等数目的偶数和奇数地址)。例如,一百个地址可与外部/内部和系统数据对应,且可由交织器216进行交织。交织操作后,相同数目的地址(例如一百个地址)仍然用于存储数据。此外,由于每个地址与一个特定数值对应,约一半的地址具有奇数值,且一半的地址具有偶数值。以此为例,(一百个中的)五十个地址将是奇数,而另外五十个将是偶数。因此,交织有限地址池不会产生真正的随机地址序列,且存储存取管理器218可通过对有限地址池中包括的地址进行识别,识别接近一半偶数地址(作为第一存储库)和一半奇数地址(作为第二存储库)以指示多个存储器的存取。一旦得到识别,可在单个时间瞬间内并行存取该两个存储库,且存储存取管理器218可撷取存储的数据(例如执行读操作)。存储存取管理器218还可提供其他功能,例如,可将所撷取的数据重新排序以分配地址到该两个存储库中的一个。
在此设置中,一旦撷取数据,存储存取管理器218向译码器210提供交织的外部/内部和系统数据用于与同位数据2206一起执行译码操作。类似地,外部/内部和系统数据如果不进行交织,则提供给译码器208以执行类似的译码操作。译码器210一旦进行处理,其向解交织器220提供译码数据,其中,解交织器220使用另一存储存取管理器222将数据重新排序并存储在存储器中。在一些设置中,存储存取管理器222(或解交织器220的部分架构)可提供与存储存取管理器218类似的功能。例如,存储存取管理器222中包括的类似操作和结构可减少通过试图向存储器的一部分同时执行多个写入操作所造成的瓶颈。在一些设置中,可将存储存取管理器222的功能合并于解交织器220或译码系统200的其他部分。类似地,可将存储存取管理器218的功能合并于译码系统200的其他部分,例如译码器210。一旦产生,译码器208和210都向各自的加法器212和214提供外部数据(例如解交织器220提供来自译码器210的已重排序的外部数据)以继续对系统数据202的递归处理。
参照图3,图3是根据本发明一个实施例存储存取管理器300的模块示意图。其中,存储存取管理器300可提供存储存取管理器218的功能(如图2所示),在同一时间识别并存取(由交织器,例如交织器108提供的)多个地址。一般而言,将交织的地址识别为多个预定义地址组中一组的成员(例如一个奇数地址、一个偶数地址等)。可将每个地址组与存储器的特定部分对应,其中,存储器具有与该一或多个其他地址组相应的存储器部分,可并行存取该存储器。如上所述,可将一个地址组定义为提供给存储存取管理器300的奇数地址,并将另一个组定义为偶数地址。通过并行存取一或多个偶数地址以及一或多个奇数地址,存储存取管理器300可有效地撷取数据并减少在一个时间瞬间内多次存取相同存储器部分(例如存储库)的概率(且因此消减延迟操作)。在此特定图示中,地址与一或两个独特地址组对应(例如奇数和偶数地址),然而在其他设置中,可定义额外地址组。例如,可定义可并行存取四个、六个或更多个地址组。这些额外地址组需用于有效存取与(例如基数-8译码器的)其他类型译码器对应的数据。此外,可以实施各种技术以定义地址组的类型。例如,不使用地址的最低有效位来识别地址组的成员(例如偶数或奇数地址),而使用额外的位(例如使用最低两位的最低有效位来定义四个地址组)或其他类型的信息来建立地址组成员。
一旦将地址识别为特定地址组的成员,则将这些组成员缓冲以适当地对其进行并行存取(例如并行读操作)。在此特定设置中,由存储存取管理器300实施先进先出(first-infirst-out,FIFO)缓冲技术以对地址进行排列,但是,也可实施其他的一或多种缓冲技术。图3的结构包括五个FIFO缓冲区,其中两个缓冲区(FIFO302和FIFO304,分别称为第一缓冲区和第二缓冲区)根据地址是奇数(例如由FIFO302缓冲)或偶数(例如由FIFO304缓冲)而对交织的地址进行缓冲。另一对FIFO(例如FIFO306和FIFO308)用于缓冲从FIFO302和FIFO304提供的相应奇数和偶数地址中撷取的数据。第五FIFO(即图3中FIFO310)用于缓冲交织器提供的地址的最低有效位。根据指示相应地址是奇数或偶数,最低有效位也用于(通过多工器312)指示地址到适当的FIFO。
图3显示了存储存取管理器300提供的处理。存储存取管理器300(从交织器)接收到两个地址(标记为“y”和“z”)并提供给缓存器集合314。随着缓存器集合314向FIFO310提供最低有效位(用于排列地址为奇数或偶数的指示),缓存器集合314也将位提供给多工器312用于指示地址至FIFO302和FIFO304中适当的一个(取决于地址是奇数或偶数)。通常可向FIFO302和FIFO304分别同时写入两个地址值,其中,FIFO302和FIFO304具有相等的长度。一对奇数和偶数地址通过各自FIFO的处理后,同时读取两个地址所识别的特定存储器位置中的数据。例如,在一个时间瞬间,(FIFO302提供的)奇数地址用于撷取(与奇数地址对应的)存储库316中的数据,且同时(FIFO304提供的)偶数地址用于撷取(与偶数地址对应的)存储库318中的数据。一旦接收到数据,将数据分别存储在FIFO306和FIFO308的其中一个之中,并对数据进行排列以备将数据从存储存取管理器300释放到另一个处理阶段。其中,将来自地址e(即偶数地址)的数据标识为“De”,而将来自地址o(即奇数地址)的数据标识为“Do”。另外,由于为了有效地处理数据而对地址的顺序进行了调整(例如将奇数地址一起缓冲且将偶数地址一起缓冲),存储存取管理器300调整(排列在FIFO306和FIFO308中的)数据的顺序以与提供给存储存取管理器300的地址序列(例如由交织器提供)相匹配。在此设置中,一旦数据离开FIFO306和FIFO308,就提供给缓存器集合320作为多工器322的输入。通常能从FIFO306和FIFO308中分别同时读取两个数据值。为存储顺序序列,来自FIFO310的偶数/奇数地址指示数据指示多工器322的操作以使输出数据(例如Dy和Dz)符合所接收的地址(例如y和z)的顺序。
参照图4,图4是根据本发明一个实施例另一个存储存取管理器400的模块示意图,类似于使用地址组以有效读取数据,也可通过使用地址组来并行执行写入操作。例如,存储存取管理器400可提供存储存取管理器222的功能(如图2所示),译码系统可使用存储存取管理器400以在特定的解码处理中写入数据。对于此特殊结构,FIFO402用于排列奇数地址和奇数数据,且另一个FIFO404用于排列偶数地址和偶数数据。通常FIFO402和FIFO404以相似的方式操作,且类似于存储存取管理器300(如图3所示)使用的FIFO,来从存储器中读取数据。此架构中的FIFO402和FIFO404每一个既缓冲地址也缓冲数据。例如,FIFO402存储偶数地址和对应数据,而FIFO404存储奇数地址和对应数据。为提供此存储能力,存储存取管理器400可使用各种类型的架构。例如,可从一对共享控制逻辑的FIFO中产生FIFO402。类似或不同的技术可用于FIFO404以产生与偶数地址和对应数据。在多个FIFO之间的FIFO参数可类似,亦可共享,且可与另一个存储存取管理器(例如存储存取管理器300)的参数类似。例如,FIFO402和FIFO404每一个的深度(depth),可等于或不等于对应于读取操作FIFO(例如FIFO302和FIFO304)的地址的深度。
为有效地写入数据,例如由译码器(例如译码器210)提供的外部数据,将地址(标记为“y”和“z”)与对应数据(标记为“Dy”和“Dz”)一并提供给存储存取管理器400。类似于存储存取管理器300,向多工器408提供输入的缓存器集合406接收地址和数据。(例如基于地址的最低有效位的)控制信号也提供给多工器408以指示地址和数据至FIFO402和FIFO404中适当的一个。通常能向FIFO402和FIFO404分别同时写入两个数据值。一旦数据被缓冲,FIFO402和FIFO404通过使用对应地址,将数据并行写入适当的存储库。例如,在一个时间瞬间,将来自FIFO402的数据写入(与奇数地址组对应的)存储库410的适当奇数地址,且将来自FIFO404的数据写入(与偶数地址组对应的)存储库412的适当偶数地址。同样类似于存储存取管理器300的FIFO,若FIFO402和FIFO404中的一或两个都达到存储容量(例如填满),则停止操作直至有空间可用。通过提供此种并行写入能力,存储存取管理器400的运行效率得到增加而遭遇数据瓶颈的概率可减少。
通常存储存取管理器300和400中包括的每个FIFO共享类似的特征,然而,在一些设置中可实施不同的FIFO。FIFO长度是一个可由于性能而进行调整的参数。例如,较长的FIFO长度增加了可被缓冲的地址和数据的数量。随着效率增加,在具有较长长度的FIFO中,奇数和偶数地址的均匀分布可更加显著。然而,虽然性能可与FIFO长度直接成正比,例如物理大小限定,能量预算等制约可能限制FIFO的可选长度。因此,通过整体平衡性能和这些制约因素(以及其他可能因素)可确定FIFO的长度。各种度量可用于取得这种平衡,例如,测量和量化每频率周期内的平均存储器存取数。对于基数-4译码系统,可将最佳性能定义为每频率周期内进行两次存储器存取(或每位1/2个周期进行一次存储器存取)。为接近此性能水平,可增加每个FIFO的长度。因此,通过将性能测量作为FIFO长度的衡量,可实现适当的平衡。
参照图5,图5是频率效率与数据区块大小之间关系的示意图,表500代表了数据区块大小与频率效率性能的关系。为一系列FIFO的长度(如键图502所示)计算频率效率性能。具体地,FIFO长度的范围从1到64(使用2N的步长,其中N的增量从0到6)。如轨迹504所示,其对应FIFO的长度为1,性能以近似上限0.75为中心。随着FIFO长度增加,对应轨迹趋于理论极限0.5。例如对应于FIFO长度为2的轨迹506以及分别对应于长度4、8、16、32和64的轨迹508、510、512、514和516。另外,轨迹518代表无限长度的FIFO的性能,其中,轨迹518最接近理论极限0.5。虽然可选择另外的长度以用于定义存储存取管理器的一或多个FIFO,在一些应用中,可认为FIFO长度为16特别有用。
参照图6,图6是根据本发明的实施例存储存取管理器的存取方法的示意图,流程图600表示存储存取管理器的一些操作,其中存储存取管理器例如存储存取管理器300和400(分别如图3和图4所示)。可以一种或多种物理架构(例如基于处理器的架构或其他设计类型)来实现管理器。在一些基于处理器的架构中,存储存取管理器可在单处理器或分散在多个处理器上执行。各种类型的电路(例如组合逻辑,时序逻辑等)以及计算装置(例如计算系统)可独立或组合使用以执行存储存取管理器的操作。例如,在基于处理器的译码系统设计中,可由处理器(例如微处理器)执行指令以提供存储存取管理器的操作。可将这些指令存储在存储装置中(例如硬盘、只读光盘存储器(compactdiskreadonlymemory,CD-ROM)等)并提供给处理器(或多处理器)以用于执行操作。
存储存取管理器的操作的流程图600包括步骤602-608。存储存取管理器的操作包括602,接收对应用于Turbo译码(例如提供给基数-4Turbo译码器)的数据元素的特定存储器地址序列。例如,可将地址提供给存储存取管理器以将对应数据元素写入适当的数据库或从数据库读取数据元素。存储存取管理器的操作包括604,为每个特定存储器地址(从多个地址组中)识别一个地址组,其中,每个特定存储器地址是地址组中的成员。例如,每个地址的最低有效位可用于识别属于与奇数地址对应的一个地址组或属于与偶数地址对应的另一个地址组。且该多个地址组包括相等数目的地址。一旦识别该多个地址,可根据地址组成员缓冲该多个地址(至专用FIFO)。存储存取管理器的操作包括606,从每个地址组并行存取一或多个地址。例如,可在存取偶数地址组中包括的一(或多个)地址的相同时间瞬间内存取在奇数地址组中包括的一(或多个)地址。一旦并行存取该多个地址,操作可包括608,对对应的数据元素进行操作以进行该多个数据元素的Turbo译码。例如,操作包括与地址对应的数据元素的读取和写入操作,也可包括对该多个数据元素序列的重新排序。具体而言,例如从所存取的独特存储器地址序列中读取数据元素,或向独特存储器地址序列的适当地址写入数据元素。又例如对独特存储器地址序列的多个地址组进行识别,以对多个数据元素进行排序。
如上所述,在一些译码系统设计中可以处理器为基础。因此,为执行如流程图600所示的操作,根据一种实现,存储存取管理器可与译码器系统的其他部分一起执行前述的任何计算机-实施方法。例如,译码系统可包括计算装置(例如计算机系统)以用于执行与译码数据元素对应的指令。计算装置可包括处理器、存储器、存储装置,以及输入/输出装置。可用系统总线或其他类似结构互连每个元件。处理器可处理在计算装置内执行的指令。在一个实施例中,处理器为单线处理器,在另一个实施例中,处理器为多线处理器。处理器可处理存储在存储器内或存储装置上的指令以在输入/输出装置的用户界面上显示图形信息。
存储器存储计算机装置内的信息。在一个实施例中,存储器为计算机可读媒介。在又一个实施例中,存储器为挥发性存储器单元。在另一个实施例中,存储器系非挥发性存储器单元。
存储装置可为计算装置提供海量存储。在一个实施例中,存储装置为计算机可读媒介。在各种不同的实施例中,存储装置可为软盘装置、硬盘装置、光盘装置,或磁带装置。
输入/输出装置为计算装置提供输入/输出操作。在一个实施例中,输入/输出装置包括键盘和/或指针(pointing)装置。在另一个实施例中,输入/输出装置包括用于显示图形化用户界面(graphicaluserinterface,GUI)的显示单元。
所述的特征(例如译码系统200)可在数字电子电路中或在计算机硬件、韧体、软件或其组合中实现。可在信息载体中明确包括的计算机程序产品中实现该装置,例如,在机器可读存储装置或所传播的信号中,由可编程处理器执行;且可编程处理器可执行多个方法步骤,其中,可编程处理器通过对输入数据进行操作并产生输出执行指令的多个程序来执行上述功能。所述特征可在一或多个可编程系统上执行的计算机程序中有利地实现,其中,该可编程系统包括至少一个可编程处理器、一个数据存储系统、至少一个输入设备,以及至少一个输出装置。其中,该可编程处理器与该数据存储系统耦接,用于从可编程处理器接收数据和指令,并向可编程处理器传送数据和指令。计算机程序是可直接或间接在计算机中使用以执行特定行为或带来特定结果的一组指令。计算机程序可以任何形式的程序设计语言编写,包括编译或解释语言,且可以任何形式配置计算机程序,包括作为独立的程序或作为模块、元件、子程序或适合在计算环境中使用的其他单元。
举例说明,用于执行指令的程序的合适处理器包括,通用和特殊目的的微处理器,以及任何种类计算机中的特定处理器或多个处理器中的一个。通常,处理器从只读存储器或随机存取存储器或两者中接收指令和数据。计算机的基本元素用于执行指令的处理器和一或多个用于存储指令和数据的存储器。通常,计算机也包括一或多个用于存储数据文件的海量存储装置,或操作性地耦接于一或多个海量存储装置以与这些装置进行通信;这些装置包括磁盘(例如内部硬盘、可移式磁盘)、磁光盘以及光盘。适用于明确包括计算机程序指令和数据的存储装置包括各种形式的非挥发性存储器,举例说明,包括半导体存储器装置(例如可抹除可程序化只读存储器(erasableprogrammablereadonlymemory,EPROM)、电子可抹除可程序化只读存储器(electricallyerasableprogrammablereadonlymemory,EEPROM)以及快速存储器)、磁盘(例如内部硬磁盘和可移式磁盘)、磁光盘以及CD-ROM和多样化数字光盘只读存储器(digitalversatilediskreadonlymemory,DVD-ROM)。处理器和存储器可由专用集成电路(application-specificintegratedcircuit,ASIC)补充,或将处理器和存储器并入ASIC中。
该特征可以实现在计算机系统中,其中,该计算机系统包括后端元件(例如数据服务器)、中间软件元件(例如应用程序服务器或因特网服务器)、前端元件(例如具有GUI或因特网浏览器的客户端计算机)或其任意组合。可通过数字数据通讯的任何形式或媒介(例如通讯网络)连接系统的元件。通讯网络的实例可例如局域网络(LocalAreaNetwork,LAN)、广域网(WideAreaNetwork,WAN)和计算机与网络形成的因特网。
计算机系统可包括客户端和服务器。客户端和服务器通常远离彼此且一般通过网络进行交互,如上所述。客户端与服务器的关系通过运行在独立计算机上且彼此有客户端-服务器关系的计算机程序产生。
其他实施例也在之后的权利要求的范畴内。所述技术在此可以不同顺序执行但仍然实现欲求的效果。
Claims (12)
1.一种存储器存取方法,用于数据的译码,包括:
接收对应于多个串接的卷积编码的数据元素的特定存储器地址序列;
将该特定存储器地址序列的每个地址识别为多个地址组中所包括的一个地址组,其中,每个地址组包括相等数目的地址,且每个地址组对应于该存储器的一个专用存储库;
输入来自第一地址组的至少一个特定存储器地址到第一缓冲区,且输入来自第二地址组的至少一个特定存储器地址到第二缓冲区;
输入对应于该第一缓冲区中的一个特定存储器地址的串接的卷积编码的数据至第三缓冲区,且输入对应于该第二缓冲区中的另一个特定存储器地址的串接的卷积编码的数据至第四缓冲区;以及
通过存取该专用存储库并行地在该第一缓冲区中存取该特定存储器地址及在该第二缓冲区中存取该特定存储器地址,以对该各自串接的卷积编码的多个数据元素进行操作,其中,该多个数据元素对应于所存取的该特定存储器地址序列中的每个地址。
2.如权利要求1所述的存储器存取方法,其特征在于,对该各自串接的卷积编码的多个数据元素进行操作的步骤包括:从所存取的该特定存储器地址序列中读取该多个数据元素。
3.如权利要求1所述的存储器存取方法,其特征在于,对该各自串接的卷积编码的多个数据元素进行操作的步骤包括:将该多个数据元素写入该特定存储器地址序列的适当地址。
4.如权利要求1所述的存储器存取方法,其特征在于,将对应于该多个数据元素的所接收的该特定存储器地址序列进行交织。
5.如权利要求1所述的存储器存取方法,其特征在于,该第一缓冲区和该第二缓冲区具有相等长度。
6.如权利要求1所述的存储器存取方法,其特征在于,配置该第一缓冲区和该第二缓冲区存储16个特定存储器地址。
7.一种计算装置,包括:
译码器,用于接收对应于多个串接的卷积编码的数据元素的特定存储器地址序列,该译码器配置为将该特定存储器地址序列的每个地址识别为多个地址组中所包括的一个地址组,其中,每个地址组包括相等数目的地址,且每个地址组对应于该存储器的一个专用存储库;该译码器包括用于输入来自第一地址组的至少一个特定存储器地址的第一缓冲区,且用于输入来自第二地址组的至少一个特定存储器地址的第二缓冲区;该译码器更包括用于输入对应于该第一缓冲区中的一个特定存储器地址的串接的卷积编码的数据的第三缓冲区,及用于输入对应于该第二缓冲区中的另一个特定存储器地址的串接的卷积编码的数据的第四缓冲区,以及该译码器进一步配置为通过存取该专用存储库并行地在该第一缓冲区中存取该特定存储器地址及在该第二缓冲区中存取该特定存储器地址存取该多个地址组中每个地址组所对应的至少一个存储器地址,以对该各自串接的卷积编码的多个数据元素进行操作,其中,该多个数据元素对应于所存取的该特定存储器地址序列中的每个地址。
8.如权利要求7所述的计算装置,其特征在于,该译码器配置为从所存取的该特定存储器地址序列中读取该多个数据元素,以对该各自串接的卷积编码的多个数据元素进行操作。
9.如权利要求7所述的计算装置,其特征在于,该译码器配置为将该多个数据元素写入该特定存储器地址序列的适当地址,以对该各自串接的卷积编码的多个数据元素进行操作。
10.如权利要求7所述的计算装置,其特征在于,将对应于该多个数据元素的所接收的该特定存储器地址序列进行交织。
11.如权利要求7所述的计算装置,其特征在于,该第一缓冲区和该第二缓冲区具有相等长度。
12.如权利要求7所述的计算装置,其特征在于,该第一缓冲区和该第二缓冲区配置为存储16个特定存储器地址。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/843,894 US20120030544A1 (en) | 2010-07-27 | 2010-07-27 | Accessing Memory for Data Decoding |
US12/843,894 | 2010-07-27 | ||
PCT/SG2011/000265 WO2012015360A2 (en) | 2010-07-27 | 2011-07-26 | Accessing memory for data decoding |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102884511A CN102884511A (zh) | 2013-01-16 |
CN102884511B true CN102884511B (zh) | 2015-11-25 |
Family
ID=45527950
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201180022736.3A Expired - Fee Related CN102884511B (zh) | 2010-07-27 | 2011-07-26 | 用于数据译码的存储器存取方法及计算装置 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20120030544A1 (zh) |
EP (1) | EP2598995A4 (zh) |
CN (1) | CN102884511B (zh) |
TW (1) | TWI493337B (zh) |
WO (1) | WO2012015360A2 (zh) |
Families Citing this family (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8688926B2 (en) | 2010-10-10 | 2014-04-01 | Liqid Inc. | Systems and methods for optimizing data storage among a plurality of solid state memory subsystems |
US20130262787A1 (en) * | 2012-03-28 | 2013-10-03 | Venugopal Santhanam | Scalable memory architecture for turbo encoding |
US10114784B2 (en) | 2014-04-25 | 2018-10-30 | Liqid Inc. | Statistical power handling in a scalable storage system |
US10467166B2 (en) | 2014-04-25 | 2019-11-05 | Liqid Inc. | Stacked-device peripheral storage card |
US10180889B2 (en) | 2014-06-23 | 2019-01-15 | Liqid Inc. | Network failover handling in modular switched fabric based data storage systems |
US10362107B2 (en) | 2014-09-04 | 2019-07-23 | Liqid Inc. | Synchronization of storage transactions in clustered storage systems |
US10198183B2 (en) | 2015-02-06 | 2019-02-05 | Liqid Inc. | Tunneling of storage operations between storage nodes |
US10108422B2 (en) | 2015-04-28 | 2018-10-23 | Liqid Inc. | Multi-thread network stack buffering of data frames |
US10019388B2 (en) | 2015-04-28 | 2018-07-10 | Liqid Inc. | Enhanced initialization for data storage assemblies |
US10191691B2 (en) | 2015-04-28 | 2019-01-29 | Liqid Inc. | Front-end quality of service differentiation in storage system operations |
KR102141160B1 (ko) * | 2015-11-25 | 2020-08-04 | 한국전자통신연구원 | 오류 정정 부호기, 오류 정정 복호기 및 오류 정정 부호기 및 복호기를 포함하는 광 통신 장치 |
US10361727B2 (en) * | 2015-11-25 | 2019-07-23 | Electronics An Telecommunications Research Institute | Error correction encoder, error correction decoder, and optical communication device including the same |
US10255215B2 (en) | 2016-01-29 | 2019-04-09 | Liqid Inc. | Enhanced PCIe storage device form factors |
EP3497571B1 (en) | 2016-08-12 | 2021-12-29 | Liqid Inc. | Disaggregated fabric-switched computing platform |
US11880326B2 (en) | 2016-08-12 | 2024-01-23 | Liqid Inc. | Emulated telemetry interfaces for computing units |
US11294839B2 (en) | 2016-08-12 | 2022-04-05 | Liqid Inc. | Emulated telemetry interfaces for fabric-coupled computing units |
WO2018200761A1 (en) | 2017-04-27 | 2018-11-01 | Liqid Inc. | Pcie fabric connectivity expansion card |
US10795842B2 (en) | 2017-05-08 | 2020-10-06 | Liqid Inc. | Fabric switched graphics modules within storage enclosures |
US10660228B2 (en) | 2018-08-03 | 2020-05-19 | Liqid Inc. | Peripheral storage card with offset slot alignment |
CN111124433B (zh) * | 2018-10-31 | 2024-04-02 | 华北电力大学扬中智能电气研究中心 | 程序烧写设备、系统及方法 |
US10585827B1 (en) | 2019-02-05 | 2020-03-10 | Liqid Inc. | PCIe fabric enabled peer-to-peer communications |
WO2020219807A1 (en) | 2019-04-25 | 2020-10-29 | Liqid Inc. | Composed computing systems with converged and disaggregated component pool |
EP3959604B1 (en) | 2019-04-25 | 2024-08-28 | Liqid Inc. | Machine templates for predetermined compute units |
KR20210034726A (ko) * | 2019-09-20 | 2021-03-31 | 삼성전자주식회사 | 메모리 모듈, 그것을 제어하는 메모리 제어기의 에러 정정 방법, 및 그것을포함하는 컴퓨팅 시스템 |
US11442776B2 (en) | 2020-12-11 | 2022-09-13 | Liqid Inc. | Execution job compute unit composition in computing clusters |
TWI824847B (zh) * | 2022-11-24 | 2023-12-01 | 新唐科技股份有限公司 | 記憶體分享裝置、方法、可分享記憶體以及其使用之電子設備 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009093099A1 (en) * | 2008-01-21 | 2009-07-30 | Freescale Semiconductor, Inc. | A contention free parallel access system and a method for contention free parallel access to a group of memory banks |
WO2009150612A1 (en) * | 2008-06-09 | 2009-12-17 | Nxp B.V. | Reconfigurable turbo interleaver for multiple standards |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0710033A3 (en) * | 1994-10-28 | 1999-06-09 | Matsushita Electric Industrial Co., Ltd. | MPEG video decoder having a high bandwidth memory |
FR2797970A1 (fr) * | 1999-08-31 | 2001-03-02 | Koninkl Philips Electronics Nv | Adressage d'une memoire |
US7242726B2 (en) * | 2000-09-12 | 2007-07-10 | Broadcom Corporation | Parallel concatenated code with soft-in soft-out interactive turbo decoder |
US6392572B1 (en) * | 2001-05-11 | 2002-05-21 | Qualcomm Incorporated | Buffer architecture for a turbo decoder |
TWI252406B (en) * | 2001-11-06 | 2006-04-01 | Mediatek Inc | Memory access interface and access method for a microcontroller system |
KR100721582B1 (ko) * | 2005-09-29 | 2007-05-23 | 주식회사 하이닉스반도체 | 직렬 입/출력 인터페이스를 가진 멀티 포트 메모리 소자 |
US7870458B2 (en) * | 2007-03-14 | 2011-01-11 | Harris Corporation | Parallel arrangement of serial concatenated convolutional code decoders with optimized organization of data for efficient use of memory resources |
US8051239B2 (en) * | 2007-06-04 | 2011-11-01 | Nokia Corporation | Multiple access for parallel turbo decoder |
EP2017737A1 (en) * | 2007-07-02 | 2009-01-21 | STMicroelectronics (Research & Development) Limited | Cache memory |
US8140932B2 (en) * | 2007-11-26 | 2012-03-20 | Motorola Mobility, Inc. | Data interleaving circuit and method for vectorized turbo decoder |
US8090896B2 (en) * | 2008-07-03 | 2012-01-03 | Nokia Corporation | Address generation for multiple access of memory |
US8438434B2 (en) * | 2009-12-30 | 2013-05-07 | Nxp B.V. | N-way parallel turbo decoder architecture |
-
2010
- 2010-07-27 US US12/843,894 patent/US20120030544A1/en not_active Abandoned
-
2011
- 2011-05-12 TW TW100116734A patent/TWI493337B/zh not_active IP Right Cessation
- 2011-07-26 EP EP11812852.9A patent/EP2598995A4/en not_active Withdrawn
- 2011-07-26 CN CN201180022736.3A patent/CN102884511B/zh not_active Expired - Fee Related
- 2011-07-26 WO PCT/SG2011/000265 patent/WO2012015360A2/en active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009093099A1 (en) * | 2008-01-21 | 2009-07-30 | Freescale Semiconductor, Inc. | A contention free parallel access system and a method for contention free parallel access to a group of memory banks |
WO2009150612A1 (en) * | 2008-06-09 | 2009-12-17 | Nxp B.V. | Reconfigurable turbo interleaver for multiple standards |
Non-Patent Citations (1)
Title |
---|
Low Hardware complexity parallel turbo decoder architecture;Zhongfeng Wang et al.;《Proceedings of the 23 international symposium on circuits and systems》;20030528;第2卷;第3页及附图6 * |
Also Published As
Publication number | Publication date |
---|---|
WO2012015360A3 (en) | 2012-05-31 |
WO2012015360A2 (en) | 2012-02-02 |
TW201205284A (en) | 2012-02-01 |
EP2598995A4 (en) | 2014-02-19 |
TWI493337B (zh) | 2015-07-21 |
EP2598995A2 (en) | 2013-06-05 |
US20120030544A1 (en) | 2012-02-02 |
CN102884511A (zh) | 2013-01-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102884511B (zh) | 用于数据译码的存储器存取方法及计算装置 | |
US6385617B1 (en) | Method and apparatus for creating and manipulating a compressed binary decision diagram in a data processing system | |
US9240237B2 (en) | Semiconductor device and method of writing/reading entry address into/from semiconductor device | |
KR20140047916A (ko) | 데이터 압축 장치 및 방법, 데이터 압축 장치를 포함하는 메모리 시스템 | |
CA2939959A1 (en) | Parallel decision tree processor architecture | |
US10078646B2 (en) | Hardware efficient fingerprinting | |
US20150262063A1 (en) | Decision tree processors | |
Ghosh et al. | Reducing power consumption in memory ECC checkers | |
CN102057580A (zh) | 针对多标准的可重新配置的Turbo交织器 | |
CN103137213A (zh) | 具有低密度奇偶校验码译码能力的存储器控制装置及方法 | |
US9998142B1 (en) | Techniques for invariant-reference compression | |
US12001237B2 (en) | Pattern-based cache block compression | |
KR20230040702A (ko) | 극 부호를 이용하는 복호화를 위한 복호 위치 제어 정보 생성 방법 및 장치 | |
Zhang et al. | Spider-web generates coding algorithms with superior error tolerance and real-time information retrieval capacity | |
US10108659B2 (en) | Hardware efficient rabin fingerprints | |
Lee et al. | Implementation of parallel BCH encoder employing tree-type systolic array architecture | |
US20190109603A1 (en) | Accelerated Processing for Maximum Distance Separable Codes Using Composite Field Extensions | |
US12019921B2 (en) | Apparatus for processing received data | |
US20230403028A1 (en) | Parallelized decoding of variable-length prefix codes | |
Gajalwar et al. | Erasure Coding and Data Deduplication: A Comprehensive Survey | |
CN118316457A (zh) | 解码方法、电子设备和计算机可读介质 | |
JP2023132713A (ja) | データ伸張装置、メモリシステム、およびデータ伸張方法 | |
CN115934407A (zh) | 存储器控制器、存储器控制电路及控制存储器设备的方法 | |
JP2012247866A (ja) | ソート時のキー削減方法及び装置及びプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20151125 Termination date: 20160726 |