512KB LL2 SRAM, 它的运行速度是DSP 核的一半,可以被用作普通存储器或cache,既可以存放数据也可以存放程序;
所有DSP核共享4MB SL2 SRAM, 它的运行速度是DSP 核的一半,既可以存放数据也可以存放程序。一个64-bit 1333MTS DDR3 SDRAM接口可以支持8GB外部扩展存储器。
C6678 集成一个64-bit 1333MTS DDR3 SDRAM 接口,可以支持8GB 外部扩展存储器,既可以存放数据也可以存放程序。它的总线宽度也可以被配置成32 bits 或16 bits。
存储器访问性能对 DSP 上软件运行的效率是非常关键的。在 C6678 DSP 上,所有的主模块,包括多个DSP 核和多个DMA 都可以访问所有的存储器。
每个DSP 核每个时钟周期都可以执行最多128 bits 的load 或store 操作。在1GHz的时钟频率下,DSP 核访问 L1D SRAM 的带宽可以达到 16GB/S。当访问二级(L2)存储器或外部存储器时,访问性能主要取决于访问的方式和cache。
每个 DSP 核有一个内部 DMA (IDMA),在 1GHz的时钟频率下,它能支持高达 8GB/秒的传输。但IDMA 只能访问L1 和LL2 以及配置寄存器,它不能访问外部存储器。DSP 的内部总线交换网络,TeraNet,提供了C66x 核 (包括其本地存储器),外部存储器, EDMA 控制器,和片上外设之间的互联。总共有 10 个 EDMA 传输控制器可以被配置起来同时执行任意存储器之间的数据传输。芯片内部有两个主要的TeraNet模块,一个用 128 bit 总线连接每个端点,速度是DSP 核频率的1/3,理论上,在1GHz 的器件上每个端口支持5.333GB/秒的带宽;另一个TeraNet内部总线交换网络用 256bit 总线连接每个端点,速度是DSP 核频率的1/2,理论上,在1GHz 的器件上每个端口支持16GB/秒的带宽。
在看了上面的介绍后,有三个基本的问题,给大家思考:
(1)如果是拷贝数据,我们应该用DSP核还是DMA?
(2)一个频繁访问存储器的函数会消耗多少时钟周期?
(3)当多个主模块共享存储器时,对某个模块的性能到底有多大的影响?
下面的一些测试数据是在EVM上的结果,在这里引用用来作性能评估参考 ,详细的文档在TI技术支持中文网站()下载:
... e/f/53/t/21924.aspx
(1)1GHz C6678 上C66x 核,IDMA 和EDMA 的理论带宽
(2)1GHz C6678 上各种存储器端口的理论带宽
(3)DSP 核,EDMA 和IDMA 数据拷贝的吞吐量比较
从以上测试结果可以得出,DSP核与内部存储器之间数据交换的效率非常高,可是与外部存储器的交换则显得不那么激动人心;IDMA非常适用于DSP核本地存储器 (L1D,L1P,LL2)内连续数据块的传输,但不能访问共享存储器 (SL2, DDR);所以外部存储器的大块数据访问则应尽量使用EDMA。
Cache 配置显著地影响DSP 核的访问性能,预取缓冲器能提高读访问的效率,但对EDMA 和IDMA没有影响。测试结果是在cache和预取缓冲器在测试前被清空。dsp tms320
对DSP 核,SL2 可以通过从0x0C000000 开始的缺省地址空间被访问,通常这个地址空间被设置为cacheable 而且prefetchable。dsp tms320SL2 可以通过XMC (eXtended Memory Controller)被重映射到其它存储器空间,通常重映射空间被用作non-cacheable, nonprefetchable访问(当然它也可以被设置为cacheable 而且prefetchable)。通过缺省地址空间访问比通过重映射空间访问稍微快一点。
前面列出的EDMA 吞吐量数据是在EDMA CC0 (Channel Controller 0) TC0 (Transfer Controller 0)上测得的,EDMA CC1 和EDMA CC2 的吞吐量比EDMA CC0 低一些。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/ruanjian/article-25455-2.html
具本人了解到国内大豆榨油