用于数字信号处理的存储器地址生成的制作方法

文档序号:6509363阅读:152来源:国知局
用于数字信号处理的存储器地址生成的制作方法
【专利摘要】本发明描述了用于数字信号处理的存储器地址生成。在一个例子中,片上数字信号处理系统利用在系统的功能块之间共享的片上存储器空间。片上DMA控制器包括地址生成器,其可以生成读存储器地址序列和写存储器地址序列,以在片上存储器和页式存储器设备之间或者在系统中内部地传输数据项。地址生成器是可配置的,并可以生成非线性的读和/或写地址序列。这使交织/解交织操作的方面能够作为内部或页式存储器之间的数据传输的一部分而被执行。作为结果,不需要用于交织操作的专用存储器。在另外的例子中,地址生成器可以被配置成生成读和/或写地址,所述读和/或写地址考虑了在执行交织时特定存储器设备(例如DRAM)的限制。
【专利说明】用于数字信号处理的存储器地址生成
【背景技术】
[0001]数字信号处理在多种多样的应用程序中获得了使用。这些应用中的很多都是实时的,在该意义上,对于数据的处理存在时间约束,以便其对于终端用户来说是有意义的或者有用的。这方面的一个例子是数字广播流,例如数字电视和数字无线电。数据信号处理系统需要能够足够快速地对实时流进行处理和解码,以便使数据能够像其被接收那样快速地被输出(除非缓冲)。
[0002]数字信号处理系统除了使用更加通用的数字信号处理器之外,通常还使用一个或多个专用硬件外围设备。这些硬件外围设备是被设计为以快速和高效方式来执行特定的信号处理任务的处理模块。例如,交织和解交织是通常使用硬件外围设备来针对实时数据执行的操作。交织和解交织是存储器密集型的操作,执行该操作的硬件外围设备使用相关联的专用存储器设备对数据进行重新排序。
[0003]但是,不同类型的实时数据的要求变化非常大。例如,世界范围内使用的各种不同的数字电视和无线标准通常具有不同结构的实时数据,例如,使用不同的类型或者参数进行编码、交织、均衡等等。如果数字信号处理系统能足够灵活地应用于不同的标准,那么用于交织/解交织的专用存储器设备必须足够地大,以便处理具有最大存储器要求的标准。结果,与交织/解交织硬件外围设备一起使用的存储器经常是未充分利用的。
[0004]下面所描述的实施例并不限于解决已知数字信号处理系统的任何或者所有缺点的实现。

【发明内容】

[0005]提供该概括以便以简化形式来介绍在下面的【具体实施方式】中进一步描述的构思的精华。该概括并不是旨在标识要求保护的主题的关键特征或者必要特征,也不是旨在用作帮助确定所要求保护的主题的范围。
[0006]描述了用于数字信号处理的存储器地址生成。在一个例子中,片上数字信号处理系统利用在系统的功能块之间共享的片上存储器空间。片上直接存储器存取(DMA)控制器包括地址生成器,其可以生成读存储器地址序列和写存储器地址序列,以在片上存储器和页式存储器设备之间或者在系统中内部地传输数据项。地址生成器是可配置的,并可以生成非线性的读和/或写地址序列。这使交织/解交织操作的方面能够作为内部或页式存储器之间的数据传输的一部分而被执行。作为结果,不需要用于交织操作的专用存储器。在另外的例子中,地址生成器可以被配置成生成读和/或写地址,所述读和/或写地址考虑了在执行交织时特定存储器设备(例如DRAM)的限制。
[0007]第一方面提供了一种片上数字信号处理系统,其包括:第一存储器,存储以第一序列排列的多个数据项,每个数据项具有第一存储器上的相关联存储器地址;至少一个数字信号处理器,耦合到第一存储器,并用于直接对所述第一存储器进行读数据和写数据;以及直接存储器存取控制器,耦合到所述第一存储器并包括通往页式存储器设备的端口,其中,所述直接存储器存取控制器被配置成将多个数据项直接从第一存储器传输到页式存储器设备,并且其中,直接存储器存取控制器还包括可配置的地址生成器,其用于通过使用多个读模式中的选定的一个读模式和多个写模式中的选定的一个写模式来在传输期间操纵与每个数据项相关联的存储器地址,使得写到页式存储器设备的数据项以不同于第一序列的第二序列进行排列。
[0008]多个读模式中的选定的一个读模式可以用于配置地址生成器以使直接存储器存取控制器从第一存储器上的非线性的存储器地址序列读取数据项,并且多个写模式中的选定的一个写模式以用于配置地址生成器以使直接存储器存取控制器将数据项写到页式存储器设备上的线性地址序列。
[0009]多个读模式中的选定的一个读模式可以用于配置地址生成器以使直接存储器存取控制器从第一存储器上的线性存储器地址序列读取数据项,并且多个写模式中的选定的一个写模式可以用于配置地址生成器以使直接存储器存取控制器将数据项写到页式存储器设备上的非线性地址序列。
[0010]多个读模式中的选定的一个读模式可以用于配置地址生成器以使直接存储器存取控制器从第一存储器上的非线性存储器地址序列读取数据项,并且多个写模式中的选定的一个写模式可以用于配置地址生成器以使直接存储器存取控制器将数据项写到页式存储器设备上的非线性地址序列。
[0011]直接存储器存取控制器还可以被配置成将多个数据项从页式存储器设备直接传输到第一存储器,并且地址生成器可以用于通过使用多个读模式中的进一步选定的一个读模式和多个写模式中的进一步选定的一个写模式来在从页式存储器设备到第一存储器的传输期间进一步操纵与每个数据项相关联的存储器地址,使得写到第一存储器的数据项以不同于第一和第二序列的第三序列进行排列。
[0012]页式存储器设备可以是动态随机存取存储器。
[0013]第一存储器可以是静态随机存取存储器。
[0014]片上数字信号处理系统还可以包括控制处理器,用于执行一程序,所述程序被配置成选择多个读模式中的一个和多个写模式中的一个以供地址生成器使用,并向地址生成器提供这些选择。
[0015]数字信号处理系统还可以包括多个硬件外围设备,每个硬件外围设备连接到直接存储器存取控制器,并且每个硬件外围设备被配置成经由直接存储器存取控制器从第一存储器读取数据,对所述数据执行一个或多个操作,并经由直接存储器存取控制器将数据写到第一存储器设备。
[0016]第一序列中的多个数据项可以被定义为排列成具有多个行和列的网格。
[0017]第一序列中的多个数据项可以被定义为排列成具有多个行和列的元素的网格,,每个元素包括来自第一序列的一组连续的数据项。
[0018]多个读模式中的选定的一个读模式和多个写模式中的选定的一个写模式可以一起配置地址生成器以操纵每个数据项的存储器地址,使得第二序列基于网格的转置。
[0019]多个读模式中的选定的一个读模式和多个写模式中的选定的一个写模式可以一起配置地址生成器以操纵每个数据项的存储器地址,使得第二序列基于网格的转置,其中对一个或多个列或行中的元素应用了位置偏移。
[0020]多个读模式中的选定的一个读模式和多个写模式中的选定的一个写模式可以一起配置地址生成器,以在传输期间操纵与每个数据项相关联的存储器地址,使得第二序列等价于在第一序列上执行的卷积解交织操作的至少一部分。
[0021]第二方面提供了使用包括可配置的地址生成器的直接存储器存取控制器来在数字信号处理系统中执行交织或解交织操作的方法,其中直接存储器存取控制器耦合到用于存储以第一序列排列的多个数据项的存储器,每个数据项具有存储器上的相关联的地址,该方法包括:选择地址生成器的读模式和写模式;在地址生成器处根据读模式计算存储器读地址序列,并根据写模式计算存储器写地址序列,使得在读地址和相应的写地址之间存在非线性关系;使用直接存储器存取控制器读取与读地址序列中的第一地址相关联的数据项;使用直接存储器存取控制器将该数据项写到写地址序列中的第一地址;以及对于读地址和写地址序列中的每个后续的地址,重复读取和写入的步骤,使得数据项在存储器上以不同于第一序列的第二序列进行排列。
[0022]存储器可以是静态随机存取存储器。
[0023]存储器可以是片上系统存储器。
[0024]该方法还可以包括:在读取步骤之后并且在写入步骤之前,使用耦合到直接存储器存取控制器的硬件外围设备来对一个或多个数据项执行一个或多个操作。
[0025]该方法还可以包括:在读取步骤之后并且在写入步骤之前,将数据项存储在耦合到直接存储器存取控制器的页式存储器设备上。
[0026]第一序列中的多个数据项可以被定义为排列成具有多个行和列的网格。
[0027]第一序列中的多个数据项可以被定义为排列成具有多个行和列的元素的栅格,每个元素包括来自第一序列的一组连续的数据项。
[0028]读地址和相应的写地址之间的非线性关系可以使得第二序列基于网格的转置。
[0029]读地址和相应的写地址之间的非线性关系可以使得第二序列基于网格的转置,其中,对一个或多个列或行中的元素应用了位置偏移。
[0030]根据读模式计算存储器读地址序列的步骤可以包括:基于起始地址和预定整数的模来计算非线性读地址序列。
[0031]根据写模式计算存储器写地址序列的步骤可以包括:基于起始地址和预定整数的模来计算非线性写地址序列。
[0032]根据读模式计算存储器读地址序列的步骤可以包括:通过将连续的存储器地址子序列重复预定的次数来计算非线性读地址序列。
[0033]根据读模式计算存储器读地址序列的步骤可以包括:通过选择第一预定数量的连续存储器地址,然后跳过一个或多个存储器地址,并选择第二预定数量的连续存储器地址,来计算非线性读地址序列。
[0034]选择读模式和写模式的步骤可以由控制处理器执行,控制处理器执行配置数字信号处理系统的操作的程序。
[0035]本申请所描述的方法可以由机器可读形式的软件执行,其中该软件以例如计算机程序的形式存储在有形存储介质上,计算机程序包括计算机程序代码模块,当程序运行在计算机上时并且在计算机程序可以体现在计算机可读介质上的情况下,所述计算机程序代码模块用于执行本文描述的任意方法的所有步骤。有形(或非临时性)存储介质的例子包括磁盘、指状驱动器、存储卡等等,其不包括传播的信号。软件可适合于在并行处理器或者串行处理器上执行,使得这些方法步骤可以按照任何适当的顺序执行,或可以同时地执行。
[0036]本申请承认固件和软件可以是有价值的可单独交易的商品。旨在涵盖在“哑”或标准硬件上运行或对“哑”或标准硬件进行控制以执行期望功能的软件。还旨在涵盖“描述”或定义硬件的配置的软件,例如HDL (硬件描述语言)软件,如用于设计硅芯片,或用于配置通用编程芯片,以执行期望功能。
[0037]优选的特征可以适当地组合,这对于技术人员将是显而易见的,并且可以与本发明的任意方面进行组合。
【专利附图】

【附图说明】
[0038]通过示例的方式,参照下面的附图来描述实施例,其中:
[0039]图1示出了可配置的数字信号处理系统;
[0040]图2示出了 DMA控制器的示意图;
[0041]图3示出了非线性地址生成过程的流程图;
[0042]图4示出了使用DMA控制器对两个数据块执行的行-列操作的例子;以及
[0043]图5示出了图4的行-列操作的例子,其具有抵消DRAM设备的限制的增强措施。
[0044]贯穿附图使用共同的参考数字来指示类似的特征。
【具体实施方式】
[0045]下面仅仅是通过例子的方式来描述实施例。这些例子代表了 申请人:当前已知的将这些实施例付诸于实践的最佳方式,虽然这些最佳方式并不是能够实现本发明的仅有的方式。描述给出了例子的功能以及用于构造和操作例子的步骤的序列。然而,可以通过不同的例子来实现相同的或等同的功能和序列。
[0046]下面描述了利用通用数字信号处理器以及专用硬件外围设备的可配置的数字信号处理系统。为了实现存储器的有效使用,系统的不同元件能够访问共享的片上存储器。可以通过直接存储器存取(DMA)控制器将数据项写入片上存储器或从片上存储器读取数据项。在一些例子中,DMA控制器也可以具有通往另一存储器设备(例如页式存储器设备)的端口。
[0047]本文中使用术语页式存储器设备来描述以下这样的任何类型的存储器设备:其中,当某个范围的存储单元(定义页)被激活(即,该页被打开)时,对该范围的单元内的多个存储单元进行读和/或写是高效的。这旨在涵盖例如动态随机存取存储器(DRAM)和其任何变形,例如同步DRAM (SDRAM)和双数据率(DDR) SDRAM,以及使用连续存储器单元的突发高效地访问的任何存储器设备。
[0048]DMA控制器具有可配置的地址生成器,其可以被配置成根据不同的模式对片上存储器(和/或页式存储器设备)进行读取数据项和写入数据项。不同的模式允许从存储器读取非线性(即,非连续)数据项序列和/或向存储器写入非线性数据项序列。这使得能够对数据项(例如在交织或解交织中使用的数据项)执行重新排序操作。这些操作是即时执行的,同时数据项在存储单元之间传输或从一个存储器传输到另一存储器。这避免为了结合交织或解交织使用而在数字信号处理系统上包括专用(非共享)存储器的需要,从而减少了芯片面积和费用。。不同的模式也可以被配置成抵消某些类型的存储器设备(例如DRAM)的性能限制。
[0049]在本文中使用与读取/写入数据项序列有关的术语“线性”,以表示读取/写入连续的(或邻接的)数据项。相反,在本文中使用与读取/写入数据项序列有关的术语“非线性”,以表示读取/写入非连续的(或非邻接的)数据项,并且下面描述非线性序列的例子。
[0050]首先参考图1,其示出了示例性可配置片上数字信号处理系统100的结构。系统100包括片上存储器102,其用于数据项的存储。片上存储器102可以是任何适当形式的随机存取存储器(RAM),例如(但不限于)静态RAM (SRAM)0
[0051]连接到片上存储器102的是一个或多个数字信号处理器(DSP) 104。DSP104是可编程来对数据执行信号处理计算(例如快速傅立叶变换和均衡)的处理器。当不考虑通用处理器时,DSP104比下面描述的硬件外围设备是更可配置的。DSP104执行程序代码/指令以从片上存储器102读取数据,对数据执行信号处理操作,并将数据写回到片上存储器102。
[0052]也连接到片上存储器102的是DMA控制器106,其为多个硬件外围设备108提供对片上存储器102的访问。DMA控制器106提供多个存储器访问通道(例如DMA通道),这些通道可由硬件外围设备108使用以实现从片上存储器102读数据或将数据写到片上存储器102。
[0053]如上所述,硬件外围设备108是特殊的、专用固定功能硬件模块,其配置为执行特定的信号处理任务。例如,一个硬件外围设备可以是专用的Viterbi解码模块,另一个可以是专用的Reed-Solomon解码模块。此外,这些硬件外围设备还可以称为加速器。这些硬件外围设备中的每一个彼此之间独立地操作。可以对硬件外围设备进行充分地配置,以便提供特定于它们的任务的操作参数,但不能对它们进行充分地配置来改变它们的任务(例如,不能将Viterbi模块重新配置成Reed-Solomon模块)。因此,与DSP104相比,硬件外围设备更加专用于特定的任务。但是,硬件外围设备被布置为以非常快速和高效的方式来执行它们的特定任务。此外,通用控制处理器110也连接到片上存储器102,其中通用控制处理器110可以用于初始化、配置和控制该数字信号处理系统的操作。
[0054]上面所描述的数字信号处理系统提供信号处理操作方面的灵活性。例如,该系统可以配置为进行操作,使得不同的DSP104和硬件外围设备108以任何期望的配置或者序列对数据进行处理。每一个硬件外围设备或DSP可以对一块或多块数据(本申请还将其称为数据缓冲区)进行操作,其中所述一块或多块数据由系统的其它部件提供并存储在片上存储器102中,每一个硬件外围设备或DSP生成和存储由该系统的其它元件使用的一个或多个数据缓冲区。这使该数字信号处理系统能用于多种不同类型的信号,例如用于不同的广播/电信标准。
[0055]使用片上存储器102所提供的公共存储空间,能减少在该片上系统100中提供的存储器存贮的总量。在不使用公共存储空间的情况下,向每一个处理元件提供其自己的专用存储器。例如,每一个DSP104都可以具有它们自己的工作空间存储器,通用控制处理器110具有用于存储执行代码和数据的另一个单独的存储器,硬件外围设备108具有单独的输入和输出缓冲区,并且可以使用一个或多个另外的存储器来在这些处理元件之间交换数据。
[0056]由于可对该数字信号处理系统进行配置,以与多个不同的标准一起使用(即,以便允许实现不同的通信标准),因此针对具体的标准(其中该标准对于任何给定的存储器都具有最大要求),需要对这些单独的存储器中的每一个单独地确定大小。换言之,DSP存储器需要足够的大,以便适应对于DSP存储器具有最大要求的标准。类似地,硬件外围设备缓冲器也需要足够的大,以便适应对于硬件外围设备缓冲器具有最高要求的标准(其与具有较高DSP存储器要求的标准不相同)。结果,非常大量的存储器通常并不被处理元件中的一些使用。
[0057]但是,如果由片上存储器102提供公共存储空间的话,那么可以将不同标准的存储器需求作为一个整体进行考虑(而不是它们对于系统的各个元件的需求)。换言之,片上存储器102需要足够的大,以便适应这些标准的最大整体、总存储器需求。这具有对标准之间的不同存储器需求进行平均的效果(例如,一种标准可能需要更多的DSP存储器、但更小的缓冲器,而另一种标准可能则是相反的)。这具有只需要显著的更低的总存储器量的效果,并因此节省了硅片面积。
[0058]因此,片上存储器102所提供的公共存储空间可以保存该系统所使用的所有不同类型的数据,例如,数字信号处理器工作空间、用于通用控制处理器的执行代码和数据、用于硬件外围设备中的一个或多个的输入和输出缓冲区、用于在处理器之间交换数据的一个或多个缓冲区、以及用于该数字信号处理系统的其它配置数据。
[0059]图1还示出了连接到DMA控制器106的页式存储器设备112。在一些例子中,页式存储器设备112DRAM形式的,其可提供大量的相对廉价的但易失性的存储。页式存储器设备112在它不能在与片上系统100相同的硅上形成的意义上来讲,可被考虑为外部存储器,或在一些例子中,存储器设备112可以是在与片上系统100相同的硅上形成的嵌入式DRAM的一块,但在它不可直接由DSP访问的意义上来讲仍然在外部。页式存储器设备也可以形成例如存储与数字信号处理系统有关的数据以及MPEG或其它视频流相关的数据的另一共享存储器空间。
[0060]现在参考图2,其示出了 DMA控制器106的示意图。DMA控制器106包括:内部端口 202,其用于连接到片上存储器102 ;以及外部端口 204,其用于连接到页式存储器设备112。DMA控制器106还包括多个外围设备端口 206,每个外围设备端口 206用于连接到相关联的硬件外围设备108。内部端口 202、外部端口 204和外围设备端口 206都连接到交叉线(crossbar) 208,交叉线208使这些端口中的任一个能够连接到这些端口中的任何其它端口。
[0061]DMA控制器106还包括地址生成器210,其耦合到内部端口 202和外部端口 204,并用于生成用于连接到内部端口 202和外部端口 204的存储器中的任一个或两个的读和/或写地址序列。地址生成器210是可配置的,并可被编程为以多个不同的模式进行操作,其例子在下文被更详细地概述。例如,通用控制处理器110可以用于将一个或多个命令发送到地址生成器210,以便为地址生成器210选择一个或多个操作模式。通用控制处理器110可以通过执行一程序来选择模式,所述程序用于根据期望标准在一个或多个模式中配置地址生成器。
[0062]通过生成读和/或写地址序列,地址生成器可以对存储在连接到DMA控制器106的端口之一的存储器上的数据项执行非线性重新排序。例如,图2示出了如何在传输到页式存储器设备112期间,对片上存储器102上所存储的第一数据项序列212进行重新排序。在图2的示例中,在片上存储器102上有八个数据项,它们存储在被表示为O到7的存储器地址。在其它示例中,存储器地址可以从不同于零的基地址开始,和/或每一个单独数据项可以比存储器设备上的单个存储单元更大。在该示例中,将这些数据项传输到页式存储器设备,但按照与第一序列212不相同的第二序列214进行排序。为了清楚说明起见,在页式存储器设备112上,将第二序列214中的数据项存储在被表示为O到7的存储器地址,但在其它示例中,这些地址也可以从不同于零的基地址开始。
[0063]在第一例子中,地址生成器210可以生成线性读序列[0、1、2、3、4、5、6、7],并将该读序列提供到内部端口 202。地址生成器210也可以生成非线性写序列[3、6、4、1、2、7、0、5],并将其提供到外部端口 204。这使内部端口 202首先从读序列中的第一地址(地址O)读取数据项,其在本例中为数据项“A”。该数据项通过交叉线208传递到外部端口 204,外部端口 204将该数据项写到写序列中的第一存储器地址(地址3)。这导致数据项“A”从第一序列212中的第一数据项被重新排序到第二序列214中的第四数据项。对于在读序列中编址的每一个后续数据项,重复该操作,每一个后续数据项被写入写序列中的相应地址。作为该操作的结果,来自第一序列(被表示为A、B、C、D、E、F、G)的数据项现在以第二序列(G、D、E、A、C、H、B、F)存储在页式存储器上。
[0064]在第二例子中,通过地址生成器210生成非线性读序列[6、3、4、0、2、7、1、5]和线性写序列[0、1、2、3、4、5、6、7],也可以实现数据项的相同的重新排序。在本例中,首先从片上存储器上的地址6读取数据项“G”,并将其写入到页式存储器上的地址0,其后从片上存储器上的地址3读取数据项“D”,并将其写入到页式存储器上的地址1,等等。类似地,在第三示例中,通过地址生成器210生成非线性读序列以及也是非线性的写序列,也可以实现对数据项的相同的重新排序。这种方式的一个示例可以是读序列[0,2,4,6,I, 3,5,7]和写序列[3,4,2,0,6,1,7,5]。
[0065]在上述例子的每个中,从第一序列到第二序列的重新排序是通过DMA控制器106在数据项从片上存储器102到页式存储器设备112的直接传输期间被即时地执行的。注意,从片上存储器102到页式存储器设备112的传输仅仅是例子。在其它例子中,也可以通过将第一数据项序列从片上存储器102的一部分传输到片上存储器102的另一部分,并在该传输期间操纵数据项的地址以形成第二数据项序列,来在片上系统内部执行类似的重新排列操作。还注意,也可以针对从页式存储器设备112到片上存储器102的传输,并且也可以针对去往或来自硬件外围设备和片上存储器102或页式存储器设备112的传输,来执行类似的操作。
[0066]上面的示例还示出了在执行传输之前,完全地生成读地址序列和写地址序列。但是,这也可以与传输一起并发地执行,例如,通过在对一个或多个之前数据项进行读/写时生成一个或多个读地址和写地址。
[0067]现在参考图3,其示出了用于使用地址生成器对数据项重新排序的更一般的过程的流程图。在本例中,数据项是从片上存储器102被读取的,并以不同的序列被写回到片上存储器102。在其它例子中,数据可以是从页式存储器112读取的,和/或它可以被写到页式存储器112。在步骤300中,选择可配置的地址生成器210的读模式和写模式。如上所述,可以使用一般的控制处理器110根据配置程序和传递到地址生成器的命令或信号来选择读模式和写模式。
[0068]在步骤302中,地址生成器210根据选定的读模式计算具有η个读地址的序列,其中η是在该序列中传输的数据项的数量。注意,虽然η个数据项被传输,但是可能存在更多或更少的不同的数据项(即,一个或多个数据项可能被传输多于一次,或根本不被传输)。在步骤304中,地址生成器210根据选定的写模式计算具有η个写地址的序列。读地址序列和写地址序列中的一个或两个可以被计算为非线性(即,非连续或非邻接)序列。下面提供用于计算读和/或写地址序列的各种示例性算法。
[0069]在步骤306中,DMA控制器106依次地遍历读和写序列中的η个地址中的每个地址,并在每次迭代i执行图3的方框内的操作。对于第一次迭代而言,在步骤308中,DMA控制器106 (经由内部端口 202)从片上存储器102读取由读序列中的第一地址寻址的数据项。随后,在步骤310中,可以对读取的数据项执行一个或多个可选的操作。例如,可以将数据项(经由外围设备端口 206)提供给硬件外围设备108以便进行处理,或者可以将其提供给所连接的多个硬件外围设备,使得一个外围设备的输出连接到另一外围设备的输入。在步骤312中,(经由内部端口 202)将数据项(或被一个或多个硬件外围设备处理过的数据项)写回到片上存储器102,写到写序列中的第一存储器地址。随后对于读和写序列中的每一个后续的第i个地址,重复步骤308到312,直到该迭代了全部η个地址为止。
[0070]注意,不需要执行图3中所示的步骤来使得读出一个单独的数据项随后将其写回,之后再读取另一个数据项。相反,一些或所有数据项可以作为一组从片上存储器102被读取(并随后可选地被处理),并接着作为一组被写回到片上存储器102。
[0071]作为存储器传输操作的组成部分,图3的过程因此使片上存储器102上的数据项能够被重新排序成不同的序列。这可以用于通过根据交织方案生成读/写地址序列来实现交织或解交织。使用图3的过程,可以通过根据读序列从其在片上存储器102上的位置读取数据项,并根据写序列将它们写回片上存储器102,从而以交织顺序将它们写到片上存储器102上的不同位置,来实现存储在片上存储器102上的数据项的交织。可替换地,可以根据读序列从页式存储器读取数据项,和/或可以根据写序列将数据项写到页式存储器。下文介绍的是地址生成器210可以被配置成实现的几个示例性算法或模式,以便生成读和/或写序列。地址生成器不限于这些模式,并且可以使用任何其它适当的地址生成,这对于技术人员将是明显的。这些示例性模式/算法也可以按任何适当的方式组合。
[0072]行-列樽式
[0073]第一种模式被称为行-列模式。行-列模式考虑将第一序列中的数据项排列在具有多个行和列的一个或多个网格或表格中。这在图4中示出,图4示出了第一输入数据项块402和第二输入数据项块404,第一输入数据项块402 (只是为了说明目的)具有从O到23的连续存储器地址,并且第二输入数据项块402 (也只是为了说明的目的)具有从24到47的连续存储器地址。在本例中,考虑数据项每隔六个数据项具有列中断,如图4中的虚线所指示的。这意味着考虑将连续的存储器地址沿着具有六行的网格的列进行排列。
[0074]在图4中示出了网格形式给出的数据项,图4示出了用于第一输入数据项块402的第一网格406和用于第二输入数据项块404的第二网格408。第一和第二个网格都具有六行和四列。可以注意到,连续寻址的数据项是沿着列排列的。然而,在其它例子中,也可以给出数据,使得连续的项替代地是沿着行排列的,在这种情况下,下面的描述仍然适用,但参考倒置的行和列。
[0075]行-列模式的目的是对每一个网格进行转置,使得当以穿过网格的列的序列来排列输入数据项时,以穿过网格的行的序列来排列输出数据项。例如,参见网格406,如果输入数据序列的前四个数据项是A、B、C、D (沿着第一列读取四个项),那么输出数据序列的前四个数据项是A、G、M、S (沿着第一行读取四个项)。因此,诸如该方式的行-列操作改变了数据项的顺序,这其取决于定义了多少个行存在于网格中。频繁地执行这种类型的操作以进行交织和解交织。
[0076]为了实现行-列模式,地址生成器210生成用于导致行-列转置的读和写序列。这可以通过生成非线性读序列和线性写序列(如图4中所示,下面将更详细地进行描述),或者通过生成线性读序列和非线性写序列来实现。在另外的示例中,为了实现高效的存储器存取,还可以使用非线性读序列和非线性写序列,如下面参照图5所描述的。
[0077]图4示出了非线性读序列410的示例,可以观察到其包括非连续的存储器地址。在一个示例中,可以使用下面的伪代码所描绘的算法,来生成该地址序列:
[0078]
【权利要求】
1.一种片上数字信号处理系统,包括: 第一存储器,其存储以第一序列排列的多个数据项,每个数据项具有所述第一存储器上的相关联的存储器地址; 至少一个数字信号处理器,其耦合到所述第一存储器,并用于直接对所述第一存储器进行数据读取和数据写入;以及 直接存储器存取控制器,其耦合到所述第一存储器,并且包括通往页式存储器设备的端口,其中,所述直接存储器存取控制器被配置成将所述多个数据项直接从所述第一存储器传输到所述页式存储器设备,并且 其中,所述直接存储器存取控制器还包括可配置的地址生成器,所述地址生成器用于通过使用多个读模式中的选定的一个读模式和多个写模式中的选定的一个写模式,来在所述传输期间操纵与每个数据项相关联的存储器地址,使得写入所述页式存储器设备的数据项以不同于所述第一序列的第二序列进行排列。
2.根据权利要求1所述的片上数字信号处理系统,其中,所述多个读模式中的所述选定的一个读模式用于配置所述地址生成器,以使所述直接存储器存取控制器从所述第一存储器上的非线性存储器地址序列读取所述数据项,并且所述多个写模式中的所述选定的一个写模式用于配置所述地址生成器,以使所述直接存储器存取控制器将所述数据项写入所述页式存储器设备上的线性地址序列。
3.根据权利要求1所述的片上数字信号处理系统,其中,所述多个读模式中的所述选定的一个读模式用于配置所述地址生成器,以使所述直接存储器存取控制器从所述第一存储器上的线性存储器地址序列读取所述数据项,并且所述多个写模式中的所述选定的一个写模式用于配置所述地址生成器,以使所述直接存储器存取控制器将所述数据项写入所述页式存储器设备上的非线性地址序列。
4.根据权利要求1所述的片上数字信号处理系统,其中,所述多个读模式中的所述选定的一个读模式用于配置所述地址生成器,以使所述直接存储器存取控制器从所述第一存储器上的非线性存储器地址序列读取所述数据项,并且所述多个写模式中的所述选定的一个写模式用于配置所述地址生成器,以使所述直接存储器存取控制器将所述数据项写入所述页式存储器设备上的非线性地址序列。
5.根据权利要求1所述的片上数字信号处理系统,其中,所述直接存储器存取控制器还被配置成将所述多个数据项直接从所述页式存储器设备传输到所述第一存储器,并且所述地址生成器还用于通过使用多个读模式中的进一步选定的一个读模式和多个写模式中的进一步选定的一个写模式,来在从所述页式存储器设备到所述第一存储器的传输期间操纵与每个数据项相关联的存储器地址,使得写入所述第一存储器的数据项以不同于所述第一序列和所述第二序列的第三序列进行排列。
6.根据权利要求1所述的片上数字信号处理系统,其中,所述页式存储器设备是动态随机存取存储器。
7.根据权利要求1所述的片上数字信号处理系统,其中,所述第一存储器是静态随机存取存储器。
8.根据权利要求1所述的片上数字信号处理系统,还包括:控制处理器,所述控制处理器用于执行一程序,所述程序被配置成选择所述多个读模式中的所述一个读模式和所述多个写模式中的所述一个写模式以供所述地址生成器使用,并将这些选择提供给所述地址生成器。
9.根据权利要求1所述的片上数字信号处理系统,其中,所述数字信号处理系统还包括:多个硬件外围设备,每个硬件外围设备连接到所述直接存储器存取控制器,并且每个硬件外围设备被配置成经由所述直接存储器存取控制器从所述第一存储器读取数据,对所述数据执行一个或多个操作,并经由所述直接存储器存取控制器将数据写入所述第一存储器设备。
10.根据权利要求1所述的片上数字信号处理系统,其中,所述第一序列中的所述多个数据项被定义为排列成具有多个行和列的网格。
11.根据权利要求1所述的片上数字信号处理系统,其中,所述第一序列中的所述多个数据项被定义为排列成具有多个行和列的元素网格,每个元素包括一组来自所述第一序列的连续数据项。
12.根据权利要求10所述的片上数字信号处理系统,其中,所述多个读模式中的所述选定的一个读模式和所述多个写模式中的所述选定的一个写模式一起配置所述地址生成器,以操纵每个数据项的存储器地址,使得所述第二序列基于所述网格的转置。
13.根据权利要求10所述的片上数字信号处理系统,其中,所述多个读模式中的所述选定的一个读模式和所述多个写模式中的所述选定的一个写模式一起配置所述地址生成器,以操纵每个数据项的存储器地址,使得所述第二序列基于所述网格的转置,其中,对一个或多个列或行的元素应用了位置移位。
14.根据任一前述权利要求所述的片上数字信号处理系统,其中,所述多个读模式中的所述选定的一个读模式和所述多个写模式中的所述选定的一个写模式一起配置所述地址生成器,以在所述传输期间操纵与每个数据项相关联的存储器地址,使得所述第二序列等价于对所述第一序列执 行的卷积解交织操作的至少一部分。
15.一种使用直接存储器存取控制器来在数字信号处理系统中执行交织或解交织操作的方法,所述直接存储器存取控制器包括可配置的地址生成器,其中,所述直接存储器存取控制器耦合到用于存储以第一序列排列的多个数据项的存储器,每个数据项具有所述存储器上的相关联的地址,所述方法包括: 选择所述地址生成器的读模式和写模式; 在所述地址生成器处,根据所述读模式计算存储器读地址序列,并根据所述写模式计算存储器写地址序列,使得在读地址和相应的写地址之间存在非线性关系; 使用所述直接存储器存取控制器读取与所述读地址序列中的第一地址相关联的数据项; 使用所述直接存储器存取控制器将该数据项写入所述写地址序列中的第一地址;以及 对于所述读地址序列和所述写地址序列中的每个后续地址,重复所述读取步骤和所述写入步骤,使得所述多个数据项在所述存储器上以不同于所述第一序列的第二序列进行排列。
16.根据权利要求15所述的方法,其中,所述存储器是片上系统存储器。
17.根据权利要求15所述的方法,还包括:在所述读取步骤之后并且在所述写入步骤之前,将数据项存储在耦合到所述直接存储器存取控制器的页式存储器设备上。
18.根据权利要求15所述的方法,其中,根据所述读模式计算存储器读地址序列的步骤包括以下中的一个或多个: 基于起始地址和预定整数的模来计算非线性读地址序列; 通过将连续的存储器地址子序列重复预定次数来计算非线性读地址序列;以及通过选择第一预定数量的连续存储器地址,然后跳过一个或多个存储器地址,并选择第二预定数量的连续存储器地址,来计算非线性读地址序列。
19.根据权利要求15所述的方法,其中,根据所述写模式计算存储器写地址序列的步骤包括:基于起始地址和预定整数的模来计算非线性写地址序列。
20.根据权利要求15到20中的任一项所述的方法,其中,选择读模式和写模式的步骤是由控制处理器执行的,所述控制处理器执行用于配置所述数字信号处理系统的操作的程序。`
【文档编号】G06F13/28GK103677663SQ201310384896
【公开日】2014年3月26日 申请日期:2013年8月29日 优先权日:2012年8月30日
【发明者】A·J·安德森 申请人:想象力科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1