《用于数字信号处理的存储器地址生成.pdf》由会员分享,可在线阅读,更多相关《用于数字信号处理的存储器地址生成.pdf(31页珍藏版)》请在专利查询网上搜索。
1、(10)申请公布号 CN 103677663 A (43)申请公布日 2014.03.26 CN 103677663 A (21)申请号 201310384896.3 (22)申请日 2013.08.29 1215422.5 2012.08.30 GB G06F 3/06(2006.01) G06F 12/02(2006.01) G06F 13/28(2006.01) (71)申请人 想象力科技有限公司 地址 英国赫特福德郡 (72)发明人 AJ安德森 (74)专利代理机构 永新专利商标代理有限公司 72002 代理人 刘瑜 王英 (54) 发明名称 用于数字信号处理的存储器地址生成 (57)。
2、 摘要 本发明描述了用于数字信号处理的存储器地 址生成。 在一个例子中, 片上数字信号处理系统利 用在系统的功能块之间共享的片上存储器空间。 片上 DMA 控制器包括地址生成器, 其可以生成读 存储器地址序列和写存储器地址序列, 以在片上 存储器和页式存储器设备之间或者在系统中内部 地传输数据项。 地址生成器是可配置的, 并可以生 成非线性的读和 / 或写地址序列。这使交织 / 解 交织操作的方面能够作为内部或页式存储器之间 的数据传输的一部分而被执行。 作为结果, 不需要 用于交织操作的专用存储器。 在另外的例子中, 地 址生成器可以被配置成生成读和 / 或写地址, 所 述读和 / 或写地址。
3、考虑了在执行交织时特定存储 器设备 (例如 DRAM) 的限制。 (30)优先权数据 (51)Int.Cl. 权利要求书 3 页 说明书 22 页 附图 5 页 (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书3页 说明书22页 附图5页 (10)申请公布号 CN 103677663 A CN 103677663 A 1/3 页 2 1. 一种片上数字信号处理系统, 包括 : 第一存储器, 其存储以第一序列排列的多个数据项, 每个数据项具有所述第一存储器 上的相关联的存储器地址 ; 至少一个数字信号处理器, 其耦合到所述第一存储器, 并用于直接对所述第一存储器 进行数据读。
4、取和数据写入 ; 以及 直接存储器存取控制器, 其耦合到所述第一存储器, 并且包括通往页式存储器设备的 端口, 其中, 所述直接存储器存取控制器被配置成将所述多个数据项直接从所述第一存储 器传输到所述页式存储器设备, 并且 其中, 所述直接存储器存取控制器还包括可配置的地址生成器, 所述地址生成器用于 通过使用多个读模式中的选定的一个读模式和多个写模式中的选定的一个写模式, 来在所 述传输期间操纵与每个数据项相关联的存储器地址, 使得写入所述页式存储器设备的数据 项以不同于所述第一序列的第二序列进行排列。 2. 根据权利要求 1 所述的片上数字信号处理系统, 其中, 所述多个读模式中的所述选 。
5、定的一个读模式用于配置所述地址生成器, 以使所述直接存储器存取控制器从所述第一存 储器上的非线性存储器地址序列读取所述数据项, 并且所述多个写模式中的所述选定的一 个写模式用于配置所述地址生成器, 以使所述直接存储器存取控制器将所述数据项写入所 述页式存储器设备上的线性地址序列。 3. 根据权利要求 1 所述的片上数字信号处理系统, 其中, 所述多个读模式中的所述选 定的一个读模式用于配置所述地址生成器, 以使所述直接存储器存取控制器从所述第一存 储器上的线性存储器地址序列读取所述数据项, 并且所述多个写模式中的所述选定的一个 写模式用于配置所述地址生成器, 以使所述直接存储器存取控制器将所述。
6、数据项写入所述 页式存储器设备上的非线性地址序列。 4. 根据权利要求 1 所述的片上数字信号处理系统, 其中, 所述多个读模式中的所述选 定的一个读模式用于配置所述地址生成器, 以使所述直接存储器存取控制器从所述第一存 储器上的非线性存储器地址序列读取所述数据项, 并且所述多个写模式中的所述选定的一 个写模式用于配置所述地址生成器, 以使所述直接存储器存取控制器将所述数据项写入所 述页式存储器设备上的非线性地址序列。 5. 根据权利要求 1 所述的片上数字信号处理系统, 其中, 所述直接存储器存取控制器 还被配置成将所述多个数据项直接从所述页式存储器设备传输到所述第一存储器, 并且所 述地址。
7、生成器还用于通过使用多个读模式中的进一步选定的一个读模式和多个写模式中 的进一步选定的一个写模式, 来在从所述页式存储器设备到所述第一存储器的传输期间操 纵与每个数据项相关联的存储器地址, 使得写入所述第一存储器的数据项以不同于所述第 一序列和所述第二序列的第三序列进行排列。 6. 根据权利要求 1 所述的片上数字信号处理系统, 其中, 所述页式存储器设备是动态 随机存取存储器。 7. 根据权利要求 1 所述的片上数字信号处理系统, 其中, 所述第一存储器是静态随机 存取存储器。 8. 根据权利要求 1 所述的片上数字信号处理系统, 还包括 : 控制处理器, 所述控制处理 器用于执行一程序, 。
8、所述程序被配置成选择所述多个读模式中的所述一个读模式和所述多 权 利 要 求 书 CN 103677663 A 2 2/3 页 3 个写模式中的所述一个写模式以供所述地址生成器使用, 并将这些选择提供给所述地址生 成器。 9. 根据权利要求 1 所述的片上数字信号处理系统, 其中, 所述数字信号处理系统还包 括 : 多个硬件外围设备, 每个硬件外围设备连接到所述直接存储器存取控制器, 并且每个硬 件外围设备被配置成经由所述直接存储器存取控制器从所述第一存储器读取数据, 对所述 数据执行一个或多个操作, 并经由所述直接存储器存取控制器将数据写入所述第一存储器 设备。 10. 根据权利要求 1 所。
9、述的片上数字信号处理系统, 其中, 所述第一序列中的所述多个 数据项被定义为排列成具有多个行和列的网格。 11. 根据权利要求 1 所述的片上数字信号处理系统, 其中, 所述第一序列中的所述多个 数据项被定义为排列成具有多个行和列的元素网格, 每个元素包括一组来自所述第一序列 的连续数据项。 12. 根据权利要求 10 所述的片上数字信号处理系统, 其中, 所述多个读模式中的所述 选定的一个读模式和所述多个写模式中的所述选定的一个写模式一起配置所述地址生成 器, 以操纵每个数据项的存储器地址, 使得所述第二序列基于所述网格的转置。 13. 根据权利要求 10 所述的片上数字信号处理系统, 其中。
10、, 所述多个读模式中的所述 选定的一个读模式和所述多个写模式中的所述选定的一个写模式一起配置所述地址生成 器, 以操纵每个数据项的存储器地址, 使得所述第二序列基于所述网格的转置, 其中, 对一 个或多个列或行的元素应用了位置移位。 14. 根据任一前述权利要求所述的片上数字信号处理系统, 其中, 所述多个读模式中的 所述选定的一个读模式和所述多个写模式中的所述选定的一个写模式一起配置所述地址 生成器, 以在所述传输期间操纵与每个数据项相关联的存储器地址, 使得所述第二序列等 价于对所述第一序列执行的卷积解交织操作的至少一部分。 15. 一种使用直接存储器存取控制器来在数字信号处理系统中执行交。
11、织或解交织操作 的方法, 所述直接存储器存取控制器包括可配置的地址生成器, 其中, 所述直接存储器存取 控制器耦合到用于存储以第一序列排列的多个数据项的存储器, 每个数据项具有所述存储 器上的相关联的地址, 所述方法包括 : 选择所述地址生成器的读模式和写模式 ; 在所述地址生成器处, 根据所述读模式计算存储器读地址序列, 并根据所述写模式计 算存储器写地址序列, 使得在读地址和相应的写地址之间存在非线性关系 ; 使用所述直接存储器存取控制器读取与所述读地址序列中的第一地址相关联的数据 项 ; 使用所述直接存储器存取控制器将该数据项写入所述写地址序列中的第一地址 ; 以及 对于所述读地址序列和。
12、所述写地址序列中的每个后续地址, 重复所述读取步骤和所述 写入步骤, 使得所述多个数据项在所述存储器上以不同于所述第一序列的第二序列进行排 列。 16. 根据权利要求 15 所述的方法, 其中, 所述存储器是片上系统存储器。 17. 根据权利要求 15 所述的方法, 还包括 : 在所述读取步骤之后并且在所述写入步骤 之前, 将数据项存储在耦合到所述直接存储器存取控制器的页式存储器设备上。 权 利 要 求 书 CN 103677663 A 3 3/3 页 4 18. 根据权利要求 15 所述的方法, 其中, 根据所述读模式计算存储器读地址序列的步 骤包括以下中的一个或多个 : 基于起始地址和预定。
13、整数的模来计算非线性读地址序列 ; 通过将连续的存储器地址子序列重复预定次数来计算非线性读地址序列 ; 以及 通过选择第一预定数量的连续存储器地址, 然后跳过一个或多个存储器地址, 并选择 第二预定数量的连续存储器地址, 来计算非线性读地址序列。 19. 根据权利要求 15 所述的方法, 其中, 根据所述写模式计算存储器写地址序列的步 骤包括 : 基于起始地址和预定整数的模来计算非线性写地址序列。 20. 根据权利要求 15 到 20 中的任一项所述的方法, 其中, 选择读模式和写模式的步骤 是由控制处理器执行的, 所述控制处理器执行用于配置所述数字信号处理系统的操作的程 序。 权 利 要 求。
14、 书 CN 103677663 A 4 1/22 页 5 用于数字信号处理的存储器地址生成 背景技术 0001 数字信号处理在多种多样的应用程序中获得了使用。 这些应用中的很多都是实时 的, 在该意义上, 对于数据的处理存在时间约束, 以便其对于终端用户来说是有意义的或者 有用的。这方面的一个例子是数字广播流, 例如数字电视和数字无线电。数据信号处理系 统需要能够足够快速地对实时流进行处理和解码, 以便使数据能够像其被接收那样快速地 被输出 (除非缓冲) 。 0002 数字信号处理系统除了使用更加通用的数字信号处理器之外, 通常还使用一个或 多个专用硬件外围设备。 这些硬件外围设备是被设计为以。
15、快速和高效方式来执行特定的信 号处理任务的处理模块。例如, 交织和解交织是通常使用硬件外围设备来针对实时数据执 行的操作。交织和解交织是存储器密集型的操作, 执行该操作的硬件外围设备使用相关联 的专用存储器设备对数据进行重新排序。 0003 但是, 不同类型的实时数据的要求变化非常大。 例如, 世界范围内使用的各种不同 的数字电视和无线标准通常具有不同结构的实时数据, 例如, 使用不同的类型或者参数进 行编码、 交织、 均衡等等。如果数字信号处理系统能足够灵活地应用于不同的标准, 那么用 于交织 / 解交织的专用存储器设备必须足够地大, 以便处理具有最大存储器要求的标准。 结果, 与交织 / 。
16、解交织硬件外围设备一起使用的存储器经常是未充分利用的。 0004 下面所描述的实施例并不限于解决已知数字信号处理系统的任何或者所有缺点 的实现。 发明内容 0005 提供该概括以便以简化形式来介绍在下面的具体实施方式中进一步描述的构思 的精华。该概括并不是旨在标识要求保护的主题的关键特征或者必要特征, 也不是旨在用 作帮助确定所要求保护的主题的范围。 0006 描述了用于数字信号处理的存储器地址生成。在一个例子中, 片上数字信号处理 系统利用在系统的功能块之间共享的片上存储器空间。片上直接存储器存取 (DMA) 控制器 包括地址生成器, 其可以生成读存储器地址序列和写存储器地址序列, 以在片上。
17、存储器和 页式存储器设备之间或者在系统中内部地传输数据项。地址生成器是可配置的, 并可以生 成非线性的读和 / 或写地址序列。这使交织 / 解交织操作的方面能够作为内部或页式存储 器之间的数据传输的一部分而被执行。作为结果, 不需要用于交织操作的专用存储器。在 另外的例子中, 地址生成器可以被配置成生成读和/或写地址, 所述读和/或写地址考虑了 在执行交织时特定存储器设备 (例如 DRAM) 的限制。 0007 第一方面提供了一种片上数字信号处理系统, 其包括 : 第一存储器, 存储以第一序 列排列的多个数据项, 每个数据项具有第一存储器上的相关联存储器地址 ; 至少一个数字 信号处理器, 耦。
18、合到第一存储器, 并用于直接对所述第一存储器进行读数据和写数据 ; 以及 直接存储器存取控制器, 耦合到所述第一存储器并包括通往页式存储器设备的端口, 其中, 所述直接存储器存取控制器被配置成将多个数据项直接从第一存储器传输到页式存储器 说 明 书 CN 103677663 A 5 2/22 页 6 设备, 并且其中, 直接存储器存取控制器还包括可配置的地址生成器, 其用于通过使用多个 读模式中的选定的一个读模式和多个写模式中的选定的一个写模式来在传输期间操纵与 每个数据项相关联的存储器地址, 使得写到页式存储器设备的数据项以不同于第一序列的 第二序列进行排列。 0008 多个读模式中的选定的。
19、一个读模式可以用于配置地址生成器以使直接存储器存 取控制器从第一存储器上的非线性的存储器地址序列读取数据项, 并且多个写模式中的选 定的一个写模式以用于配置地址生成器以使直接存储器存取控制器将数据项写到页式存 储器设备上的线性地址序列。 0009 多个读模式中的选定的一个读模式可以用于配置地址生成器以使直接存储器存 取控制器从第一存储器上的线性存储器地址序列读取数据项, 并且多个写模式中的选定的 一个写模式可以用于配置地址生成器以使直接存储器存取控制器将数据项写到页式存储 器设备上的非线性地址序列。 0010 多个读模式中的选定的一个读模式可以用于配置地址生成器以使直接存储器存 取控制器从第一。
20、存储器上的非线性存储器地址序列读取数据项, 并且多个写模式中的选定 的一个写模式可以用于配置地址生成器以使直接存储器存取控制器将数据项写到页式存 储器设备上的非线性地址序列。 0011 直接存储器存取控制器还可以被配置成将多个数据项从页式存储器设备直接传 输到第一存储器, 并且地址生成器可以用于通过使用多个读模式中的进一步选定的一个读 模式和多个写模式中的进一步选定的一个写模式来在从页式存储器设备到第一存储器的 传输期间进一步操纵与每个数据项相关联的存储器地址, 使得写到第一存储器的数据项以 不同于第一和第二序列的第三序列进行排列。 0012 页式存储器设备可以是动态随机存取存储器。 0013。
21、 第一存储器可以是静态随机存取存储器。 0014 片上数字信号处理系统还可以包括控制处理器, 用于执行一程序, 所述程序被配 置成选择多个读模式中的一个和多个写模式中的一个以供地址生成器使用, 并向地址生成 器提供这些选择。 0015 数字信号处理系统还可以包括多个硬件外围设备, 每个硬件外围设备连接到直接 存储器存取控制器, 并且每个硬件外围设备被配置成经由直接存储器存取控制器从第一存 储器读取数据, 对所述数据执行一个或多个操作, 并经由直接存储器存取控制器将数据写 到第一存储器设备。 0016 第一序列中的多个数据项可以被定义为排列成具有多个行和列的网格。 0017 第一序列中的多个数据。
22、项可以被定义为排列成具有多个行和列的元素的网格, , 每个元素包括来自第一序列的一组连续的数据项。 0018 多个读模式中的选定的一个读模式和多个写模式中的选定的一个写模式可以一 起配置地址生成器以操纵每个数据项的存储器地址, 使得第二序列基于网格的转置。 0019 多个读模式中的选定的一个读模式和多个写模式中的选定的一个写模式可以一 起配置地址生成器以操纵每个数据项的存储器地址, 使得第二序列基于网格的转置, 其中 对一个或多个列或行中的元素应用了位置偏移。 0020 多个读模式中的选定的一个读模式和多个写模式中的选定的一个写模式可以一 说 明 书 CN 103677663 A 6 3/22。
23、 页 7 起配置地址生成器, 以在传输期间操纵与每个数据项相关联的存储器地址, 使得第二序列 等价于在第一序列上执行的卷积解交织操作的至少一部分。 0021 第二方面提供了使用包括可配置的地址生成器的直接存储器存取控制器来在数 字信号处理系统中执行交织或解交织操作的方法, 其中直接存储器存取控制器耦合到用于 存储以第一序列排列的多个数据项的存储器, 每个数据项具有存储器上的相关联的地址, 该方法包括 : 选择地址生成器的读模式和写模式 ; 在地址生成器处根据读模式计算存储器 读地址序列, 并根据写模式计算存储器写地址序列, 使得在读地址和相应的写地址之间存 在非线性关系 ; 使用直接存储器存取。
24、控制器读取与读地址序列中的第一地址相关联的数据 项 ; 使用直接存储器存取控制器将该数据项写到写地址序列中的第一地址 ; 以及对于读地 址和写地址序列中的每个后续的地址, 重复读取和写入的步骤, 使得数据项在存储器上以 不同于第一序列的第二序列进行排列。 0022 存储器可以是静态随机存取存储器。 0023 存储器可以是片上系统存储器。 0024 该方法还可以包括 : 在读取步骤之后并且在写入步骤之前, 使用耦合到直接存储 器存取控制器的硬件外围设备来对一个或多个数据项执行一个或多个操作。 0025 该方法还可以包括 : 在读取步骤之后并且在写入步骤之前, 将数据项存储在耦合 到直接存储器存取。
25、控制器的页式存储器设备上。 0026 第一序列中的多个数据项可以被定义为排列成具有多个行和列的网格。 0027 第一序列中的多个数据项可以被定义为排列成具有多个行和列的元素的栅格, 每 个元素包括来自第一序列的一组连续的数据项。 0028 读地址和相应的写地址之间的非线性关系可以使得第二序列基于网格的转置。 0029 读地址和相应的写地址之间的非线性关系可以使得第二序列基于网格的转置, 其 中, 对一个或多个列或行中的元素应用了位置偏移。 0030 根据读模式计算存储器读地址序列的步骤可以包括 : 基于起始地址和预定整数的 模来计算非线性读地址序列。 0031 根据写模式计算存储器写地址序列的。
26、步骤可以包括 : 基于起始地址和预定整数的 模来计算非线性写地址序列。 0032 根据读模式计算存储器读地址序列的步骤可以包括 : 通过将连续的存储器地址子 序列重复预定的次数来计算非线性读地址序列。 0033 根据读模式计算存储器读地址序列的步骤可以包括 : 通过选择第一预定数量的连 续存储器地址, 然后跳过一个或多个存储器地址, 并选择第二预定数量的连续存储器地址, 来计算非线性读地址序列。 0034 选择读模式和写模式的步骤可以由控制处理器执行, 控制处理器执行配置数字信 号处理系统的操作的程序。 0035 本申请所描述的方法可以由机器可读形式的软件执行, 其中该软件以例如计算机 程序的。
27、形式存储在有形存储介质上, 计算机程序包括计算机程序代码模块, 当程序运行在 计算机上时并且在计算机程序可以体现在计算机可读介质上的情况下, 所述计算机程序代 码模块用于执行本文描述的任意方法的所有步骤。有形 (或非临时性) 存储介质的例子包括 磁盘、 指状驱动器、 存储卡等等, 其不包括传播的信号。软件可适合于在并行处理器或者串 说 明 书 CN 103677663 A 7 4/22 页 8 行处理器上执行, 使得这些方法步骤可以按照任何适当的顺序执行, 或可以同时地执行。 0036 本申请承认固件和软件可以是有价值的可单独交易的商品。 旨在涵盖在 “哑” 或标 准硬件上运行或对 “哑” 或。
28、标准硬件进行控制以执行期望功能的软件。还旨在涵盖 “描述” 或定义硬件的配置的软件, 例如 HDL(硬件描述语言) 软件, 如用于设计硅芯片, 或用于配置 通用编程芯片, 以执行期望功能。 0037 优选的特征可以适当地组合, 这对于技术人员将是显而易见的, 并且可以与本发 明的任意方面进行组合。 附图说明 0038 通过示例的方式, 参照下面的附图来描述实施例, 其中 : 0039 图 1 示出了可配置的数字信号处理系统 ; 0040 图 2 示出了 DMA 控制器的示意图 ; 0041 图 3 示出了非线性地址生成过程的流程图 ; 0042 图 4 示出了使用 DMA 控制器对两个数据块执。
29、行的行 - 列操作的例子 ; 以及 0043 图 5 示出了图 4 的行 - 列操作的例子, 其具有抵消 DRAM 设备的限制的增强措施。 0044 贯穿附图使用共同的参考数字来指示类似的特征。 具体实施方式 0045 下面仅仅是通过例子的方式来描述实施例。 这些例子代表了申请人当前已知的将 这些实施例付诸于实践的最佳方式, 虽然这些最佳方式并不是能够实现本发明的仅有的方 式。描述给出了例子的功能以及用于构造和操作例子的步骤的序列。然而, 可以通过不同 的例子来实现相同的或等同的功能和序列。 0046 下面描述了利用通用数字信号处理器以及专用硬件外围设备的可配置的数字信 号处理系统。为了实现存。
30、储器的有效使用, 系统的不同元件能够访问共享的片上存储器。 可以通过直接存储器存取 (DMA) 控制器将数据项写入片上存储器或从片上存储器读取数据 项。在一些例子中, DMA 控制器也可以具有通往另一存储器设备 (例如页式存储器设备) 的 端口。 0047 本文中使用术语页式存储器设备来描述以下这样的任何类型的存储器设备 : 其 中, 当某个范围的存储单元 (定义页) 被激活 (即, 该页被打开) 时, 对该范围的单元内的多个 存储单元进行读和 / 或写是高效的。这旨在涵盖例如动态随机存取存储器 (DRAM) 和其任 何变形, 例如同步 DRAM(SDRAM) 和双数据率 (DDR) SDRA。
31、M, 以及使用连续存储器单元的突发 高效地访问的任何存储器设备。 0048 DMA 控制器具有可配置的地址生成器, 其可以被配置成根据不同的模式对片上存 储器 (和 / 或页式存储器设备) 进行读取数据项和写入数据项。不同的模式允许从存储器读 取非线性 (即, 非连续) 数据项序列和 / 或向存储器写入非线性数据项序列。这使得能够对 数据项 (例如在交织或解交织中使用的数据项) 执行重新排序操作。这些操作是即时执行 的, 同时数据项在存储单元之间传输或从一个存储器传输到另一存储器。这避免为了结合 交织或解交织使用而在数字信号处理系统上包括专用 (非共享) 存储器的需要, 从而减少了 芯片面积和。
32、费用。 。不同的模式也可以被配置成抵消某些类型的存储器设备 (例如 DRAM) 的 说 明 书 CN 103677663 A 8 5/22 页 9 性能限制。 0049 在本文中使用与读取 / 写入数据项序列有关的术语 “线性” , 以表示读取 / 写入连 续的 (或邻接的) 数据项。相反, 在本文中使用与读取 / 写入数据项序列有关的术语 “非线 性” , 以表示读取 / 写入非连续的 (或非邻接的) 数据项, 并且下面描述非线性序列的例子。 0050 首先参考图 1, 其示出了示例性可配置片上数字信号处理系统 100 的结构。系统 100 包括片上存储器 102, 其用于数据项的存储。片上。
33、存储器 102 可以是任何适当形式的随 机存取存储器 (RAM) , 例如 (但不限于) 静态 RAM(SRAM) 。 0051 连接到片上存储器 102 的是一个或多个数字信号处理器 (DSP) 104。DSP104 是可 编程来对数据执行信号处理计算 (例如快速傅立叶变换和均衡) 的处理器。当不考虑通用处 理器时, DSP104 比下面描述的硬件外围设备是更可配置的。DSP104 执行程序代码 / 指令以 从片上存储器 102 读取数据, 对数据执行信号处理操作, 并将数据写回到片上存储器 102。 0052 也连接到片上存储器 102 的是 DMA 控制器 106, 其为多个硬件外围设备。
34、 108 提供 对片上存储器 102 的访问。DMA 控制器 106 提供多个存储器访问通道 (例如 DMA 通道) , 这些 通道可由硬件外围设备108使用以实现从片上存储器102读数据或将数据写到片上存储器 102。 0053 如上所述, 硬件外围设备 108 是特殊的、 专用固定功能硬件模块, 其配置为执行特 定的信号处理任务。例如, 一个硬件外围设备可以是专用的 Viterbi 解码模块, 另一个可以 是专用的 Reed-Solomon 解码模块。此外, 这些硬件外围设备还可以称为加速器。这些硬件 外围设备中的每一个彼此之间独立地操作。可以对硬件外围设备进行充分地配置, 以便提 供特定。
35、于它们的任务的操作参数, 但不能对它们进行充分地配置来改变它们的任务 (例如, 不能将 Viterbi 模块重新配置成 Reed-Solomon 模块) 。因此, 与 DSP104 相比, 硬件外围设 备更加专用于特定的任务。但是, 硬件外围设备被布置为以非常快速和高效的方式来执行 它们的特定任务。此外, 通用控制处理器 110 也连接到片上存储器 102, 其中通用控制处理 器 110 可以用于初始化、 配置和控制该数字信号处理系统的操作。 0054 上面所描述的数字信号处理系统提供信号处理操作方面的灵活性。例如, 该系统 可以配置为进行操作, 使得不同的DSP104和硬件外围设备108以任。
36、何期望的配置或者序列 对数据进行处理。每一个硬件外围设备或 DSP 可以对一块或多块数据 (本申请还将其称为 数据缓冲区) 进行操作, 其中所述一块或多块数据由系统的其它部件提供并存储在片上存 储器 102 中, 每一个硬件外围设备或 DSP 生成和存储由该系统的其它元件使用的一个或多 个数据缓冲区。这使该数字信号处理系统能用于多种不同类型的信号, 例如用于不同的广 播 / 电信标准。 0055 使用片上存储器 102 所提供的公共存储空间, 能减少在该片上系统 100 中提供的 存储器存贮的总量。在不使用公共存储空间的情况下, 向每一个处理元件提供其自己的专 用存储器。例如, 每一个 DSP。
37、104 都可以具有它们自己的工作空间存储器, 通用控制处理器 110 具有用于存储执行代码和数据的另一个单独的存储器, 硬件外围设备 108 具有单独的 输入和输出缓冲区, 并且可以使用一个或多个另外的存储器来在这些处理元件之间交换数 据。 0056 由于可对该数字信号处理系统进行配置, 以与多个不同的标准一起使用 (即, 以便 允许实现不同的通信标准) , 因此针对具体的标准 (其中该标准对于任何给定的存储器都具 说 明 书 CN 103677663 A 9 6/22 页 10 有最大要求) , 需要对这些单独的存储器中的每一个单独地确定大小。换言之, DSP 存储器 需要足够的大, 以便适。
38、应对于 DSP 存储器具有最大要求的标准。类似地, 硬件外围设备缓冲 器也需要足够的大, 以便适应对于硬件外围设备缓冲器具有最高要求的标准 (其与具有较 高 DSP 存储器要求的标准不相同) 。结果, 非常大量的存储器通常并不被处理元件中的一些 使用。 0057 但是, 如果由片上存储器 102 提供公共存储空间的话, 那么可以将不同标准的存 储器需求作为一个整体进行考虑 (而不是它们对于系统的各个元件的需求) 。换言之, 片上 存储器 102 需要足够的大, 以便适应这些标准的最大整体、 总存储器需求。这具有对标准 之间的不同存储器需求进行平均的效果 (例如, 一种标准可能需要更多的 DSP。
39、 存储器、 但更 小的缓冲器, 而另一种标准可能则是相反的) 。这具有只需要显著的更低的总存储器量的效 果, 并因此节省了硅片面积。 0058 因此, 片上存储器 102 所提供的公共存储空间可以保存该系统所使用的所有不同 类型的数据, 例如, 数字信号处理器工作空间、 用于通用控制处理器的执行代码和数据、 用 于硬件外围设备中的一个或多个的输入和输出缓冲区、 用于在处理器之间交换数据的一个 或多个缓冲区、 以及用于该数字信号处理系统的其它配置数据。 0059 图 1 还示出了连接到 DMA 控制器 106 的页式存储器设备 112。在一些例子中, 页式 存储器设备 112DRAM 形式的, 。
40、其可提供大量的相对廉价的但易失性的存储。页式存储器设 备112在它不能在与片上系统100相同的硅上形成的意义上来讲, 可被考虑为外部存储器, 或在一些例子中, 存储器设备 112 可以是在与片上系统 100 相同的硅上形成的嵌入式 DRAM 的一块, 但在它不可直接由 DSP 访问的意义上来讲仍然在外部。页式存储器设备也可以形 成例如存储与数字信号处理系统有关的数据以及 MPEG 或其它视频流相关的数据的另一共 享存储器空间。 0060 现在参考图 2, 其示出了 DMA 控制器 106 的示意图。DMA 控制器 106 包括 : 内部端 口 202, 其用于连接到片上存储器 102 ; 以及。
41、外部端口 204, 其用于连接到页式存储器设备 112。DMA 控制器 106 还包括多个外围设备端口 206, 每个外围设备端口 206 用于连接到相 关联的硬件外围设备 108。内部端口 202、 外部端口 204 和外围设备端口 206 都连接到交叉 线 (crossbar) 208, 交叉线 208 使这些端口中的任一个能够连接到这些端口中的任何其它 端口。 0061 DMA 控制器 106 还包括地址生成器 210, 其耦合到内部端口 202 和外部端口 204, 并用于生成用于连接到内部端口 202 和外部端口 204 的存储器中的任一个或两个的读和 / 或写地址序列。地址生成器 。
42、210 是可配置的, 并可被编程为以多个不同的模式进行操作, 其 例子在下文被更详细地概述。例如, 通用控制处理器 110 可以用于将一个或多个命令发送 到地址生成器 210, 以便为地址生成器 210 选择一个或多个操作模式。通用控制处理器 110 可以通过执行一程序来选择模式, 所述程序用于根据期望标准在一个或多个模式中配置地 址生成器。 0062 通过生成读和 / 或写地址序列, 地址生成器可以对存储在连接到 DMA 控制器 106 的端口之一的存储器上的数据项执行非线性重新排序。例如, 图 2 示出了如何在传输到页 式存储器设备 112 期间, 对片上存储器 102 上所存储的第一数据。
43、项序列 212 进行重新排序。 在图 2 的示例中, 在片上存储器 102 上有八个数据项, 它们存储在被表示为 0 到 7 的存储器 说 明 书 CN 103677663 A 10 7/22 页 11 地址。在其它示例中, 存储器地址可以从不同于零的基地址开始, 和 / 或每一个单独数据项 可以比存储器设备上的单个存储单元更大。在该示例中, 将这些数据项传输到页式存储器 设备, 但按照与第一序列 212 不相同的第二序列 214 进行排序。为了清楚说明起见, 在页式 存储器设备 112 上, 将第二序列 214 中的数据项存储在被表示为 0 到 7 的存储器地址, 但在 其它示例中, 这些地。
44、址也可以从不同于零的基地址开始。 0063 在第一例子中, 地址生成器 210 可以生成线性读序列 0、 1、 2、 3、 4、 5、 6、 7, 并将该 读序列提供到内部端口 202。地址生成器 210 也可以生成非线性写序列 3、 6、 4、 1、 2、 7、 0、 5, 并将其提供到外部端口 204。这使内部端口 202 首先从读序列中的第一地址 (地址 0) 读 取数据项, 其在本例中为数据项 “A” 。该数据项通过交叉线 208 传递到外部端口 204, 外部 端口 204 将该数据项写到写序列中的第一存储器地址 (地址 3) 。这导致数据项 “A” 从第一 序列 212 中的第一数。
45、据项被重新排序到第二序列 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 读取数据。
46、项 “G” , 并将其写入到页式存储器上的地址 0, 其后从片上存 储器上的地址 3 读取数据项 “D” , 并将其写入到页式存储器上的地址 1, 等等。类似地, 在第 三示例中, 通过地址生成器 210 生成非线性读序列以及也是非线性的写序列, 也可以实现 对数据项的相同的重新排序。这种方式的一个示例可以是读序列 0,2,4,6,1,3,5,7 和写 序列 3, 4, 2, 0, 6, 1, 7, 5。 0065 在上述例子的每个中, 从第一序列到第二序列的重新排序是通过 DMA 控制器 106 在数据项从片上存储器102到页式存储器设备112的直接传输期间被即时地执行的。 注意, 从片上存。
47、储器 102 到页式存储器设备 112 的传输仅仅是例子。在其它例子中, 也可以通过 将第一数据项序列从片上存储器 102 的一部分传输到片上存储器 102 的另一部分, 并在该 传输期间操纵数据项的地址以形成第二数据项序列, 来在片上系统内部执行类似的重新排 列操作。还注意, 也可以针对从页式存储器设备 112 到片上存储器 102 的传输, 并且也可以 针对去往或来自硬件外围设备和片上存储器 102 或页式存储器设备 112 的传输, 来执行类 似的操作。 0066 上面的示例还示出了在执行传输之前, 完全地生成读地址序列和写地址序列。但 是, 这也可以与传输一起并发地执行, 例如, 通过。
48、在对一个或多个之前数据项进行读 / 写时 生成一个或多个读地址和写地址。 0067 现在参考图 3, 其示出了用于使用地址生成器对数据项重新排序的更一般的过程 的流程图。在本例中, 数据项是从片上存储器 102 被读取的, 并以不同的序列被写回到片上 存储器 102。在其它例子中, 数据可以是从页式存储器 112 读取的, 和 / 或它可以被写到页 式存储器 112。在步骤 300 中, 选择可配置的地址生成器 210 的读模式和写模式。如上所 述, 可以使用一般的控制处理器 110 根据配置程序和传递到地址生成器的命令或信号来选 择读模式和写模式。 0068 在步骤 302 中, 地址生成器。
49、 210 根据选定的读模式计算具有 n 个读地址的序列, 其 说 明 书 CN 103677663 A 11 8/22 页 12 中 n 是在该序列中传输的数据项的数量。注意, 虽然 n 个数据项被传输, 但是可能存在更多 或更少的不同的数据项 (即, 一个或多个数据项可能被传输多于一次, 或根本不被传输) 。在 步骤 304 中, 地址生成器 210 根据选定的写模式计算具有 n 个写地址的序列。读地址序列 和写地址序列中的一个或两个可以被计算为非线性 (即, 非连续或非邻接) 序列。下面提供 用于计算读和 / 或写地址序列的各种示例性算法。 0069 在步骤 306 中, DMA 控制器 106 依次地遍历读和写序列中的 n 个地址中的每个地 址, 并在每次迭代 i 执行图 3 的方框内的操作。对于第一次迭代而言, 在步骤 308 中, DMA 控制器 106(经由内部端口 202) 从片上存储器 102 读取由读序列中的第一地址寻址的数据 项。随后, 在步骤 310 中, 可以。