首页
|
新闻
|
新品
|
文库
|
方案
|
视频
|
下载
|
商城
|
开发板
|
数据中心
|
座谈新版
|
培训
|
工具
|
博客
|
论坛
|
百科
|
GEC
|
活动
|
主题月
|
电子展
注册
登录
论坛
博客
搜索
帮助
导航
默认风格
uchome
discuz6
GreenM
»
MCU 单片机技术
» HyperLink编程和性能考量4
返回列表
回复
发帖
发新话题
发布投票
发布悬赏
发布辩论
发布活动
发布视频
发布商品
HyperLink编程和性能考量4
发短消息
加为好友
我是MT
当前离线
UID
1023166
帖子
6651
精华
0
积分
3328
阅读权限
90
来自
燕山大学
在线时间
230 小时
注册时间
2013-12-19
最后登录
2016-1-5
论坛元老
UID
1023166
性别
男
来自
燕山大学
1
#
打印
字体大小:
t
T
我是MT
发表于 2014-2-21 15:55
|
只看该作者
HyperLink编程和性能考量4
上述测试结果表明通过HyperLink 进行写操作的性能会比通过HyperLink 进行读操作的性能要好。
远程DSP 存储空间类型不会对带宽造成明显的影响。访问远程DSP 的SL2 会比LL2 快一些。
目前,通过HyperLink 来访问远程DSP 存储空间(相对其他接口)是具有最高的带宽性能的,但是访问远程存储空间比访问本地存储空间还是要慢。下表对比了访问本地LL2 和DDR 与远程DDR 的吞吐性能。
大体来说,对本地存储空间的写入吞吐率是对远程空间进行写入操作的吞吐率的3 倍。对远程空间的读性能会更差些。我们应该尽量避免远程读取数据。
3.2 DSP core 通过HyperLink 进行远程访问的延迟
DSP 核通过HyperLink 访问远程空间的性能高度依赖于cache。当DSP 内核通过HyperLink 来访问远程存储空间的时候,一个TR(传输请求)可能会被生成并传送给XMC(这取决于数据是否可以进入cache 和被预取)。TR 将会是下面中的一种。
. 一个单一的元素- 如果存储空间不能被cache 和预存取。
. 一个L1 cache line – 如果存储空间可以进入cache ,但是L2 cache 没有被使能。
. 一个L2 cache line -如果存储空间可以进入cache,同时L2 cache 被使能.
. 如果存储空间可以被预存取, 预存取将会被使能为一个预存取的buffer slot.
如果L1/L2cache 或者预存取命中,Hyperlink 端口不会有数据传输
远程空间数据可以被本地L1 cache/L2 cache 缓存,或者都没有被cache。如果对应存储空间的MAR(Memory Attribute Register) 寄存器上的PC(Permit copy)位没有被置位,那么对应存储区的数据将不会进入cache。
如果MAR 寄存器上PC 位被置位,同时L2 的cache 空间是0(L2 被全部配置成SRAM),那么外部存储空间的数据可以进入L1cache。
如果MAR 寄存器上PC 位被置位,L2 的Cache 空间大于0.那么外部存储空间的数据就可以进入L1cache 和L2cache。
读取远程存储空间数据也可以使用XMC 中的prefetch buffer。该特性可以在MAR 寄存器PFX(PreFetchable eXternally)被置位后使能。
地址步进长度也会影响Cache 和Prefetch buffer 的使用效果。连续空间的访问可以最充分的利用cache 和prefetch buffer,从而达到更好的性能。
以64bytes 距离或者更大间隔进行步进访问将会导致每次L1 cache 命中失败(miss),这是因为L1 cache line 的大小是64byte。
以128bytes 距离或者更大间隔进行步进访问将会导致每次L2 cache 命中失败(miss)。
如果cache miss 发生,那么DSP 核就会被stall(等待数据)。Stall 的时间长度等于传输延迟、传输间隔,数据返回时间,cache 请求延迟的总和。
下面的章节描述DSP 内核通过HyperLink 访问存储区的延迟。测试伪代码如下列所示。
下图(图4)为1GHz C6670EVM 上配置DDR 64bit 1333M 测试获得的结果。通过HyperLink 实现512 次LDDW(load double word) 或者STDW( store double word)操作的性能测试。图4 绘制了各种测试条件下的性能。LDB/STB 和LDW/STW 和LDDW/STDW 的指令周期数相同。虽然cache 和prefetch buffer 可以被独立配置,但是测试的时候使用的配置是:如果cache 被使能,那么prefetch 也被使能,如果cache 没有被使能,那么prefetch 也没有被使能。
Non-cachable 写是post 操作。所以它只会stall DSP core 很短的一段时间。
但是read 是non-post 的,所以DSP 内核会等待数据的到来,所以它会stall DSP 内核相对长一点时间。
当cache 被使能后,DSP core 访问remote 空间的吞吐性能高度依赖于cache。
地址的步进间隔也会影响到cache 的使用。连续的地址访问可以充分的利用cache。但是地址的步进间隔超过case line 的大小(L1 case line =64Byte,L2 Case line =128Byte)将会导致每次cache 都无法命中,从而制约了性能。所以,对连续地址空间的数据访问(像大块数据拷贝),cache 需要被使能,在其他情况下cache 应当不要使能。
通过上面的图可以发现通过HyperLink 访问DDR,SL2,LL2 在性能上并没有明显的差异。所以,正常情况下,通过HyperLink 来共享DDR 是一个很好的选择,因为DDR 容量大,而且成本低。
3.3 HyperLink 传输使用DMA 方式的开销(overhead)
初始延迟被定义为EMDA 事件触发到真实数据之间的传输开始之间的延迟。因为初始延迟很难被测量。所以我们就测试传输的开销,它被定义为传输最小单元数据的延迟。延迟的大小取决于源和目标端的类型。下表描述了使用EDMA 在1GHz TCI6618EVM 不同端口间传输一个字(word)时,从EDMA 触发(写ESR)到EDMA 传输结束(读IPR=1)的平均指令数目。
表6 中,读Hyperlink 的延迟是853 个指令周期,写Hyperlink 的延迟是322 指令周期,因为写是post 操作,而读是non-post 操作。所以从HyperLink 端口读取数据的延迟要高于写入数据到HyperLink。
对于小批量数据传送,传输开销(overhead)是很大的顾虑,尤其是系统中队列DMA 阻塞的时候。单一元素的传送性能较差,延迟会占用大部分时间。所以,对于小批量数据传送,必须对使用EMDA 方式还是DSP 核方式来访问数据进行权衡。使用内核来访问单个随机数据的延迟会比DMA 方式延迟小很多。本文3.2 节已经做了详细的描述。
3.4 HyperLink 中断延迟
一个DSP 可以通过HyperLink 来触发另外一个DSP 的中断。通过HyperLink 传递中断的延迟通过下列的伪代码获得测量。
测试是在Loopback 模式下测试。
1GHz C6670 的测试结果是大概710 个DSP core cycles。
4、范例工程
本文的范例代码在C6670EVM 上通过测试。EVM 板子上有两个C6670 DSP,他们通过HyperLink 互联。
在这个例子中,DSP1 存储空间通过HyperLink 被映射到了DSP0 上。DSP0 通过HyperLink 窗口访问DSP1 的存储空间就像访问自己的本地空间一样。这个工程范例也支持loopback 模式。在loopback 模式下,DSP0 事实上是通过自己的HyperLink 窗口访问了自己的本地地址空间。
本例也演示了通过HyperLink 来实现中断传递。
工程代码的目录结构如下图所示。
图 7 工程代码目录树
该示例代码同样可以在其他KeyStone DSP EVM 板上运行。只是如果板子上只有一个DSP 芯片,那么只能运行loopback 模式。
下表列出了KeyStone 工程的关键代码列表。
运行这个范例工程的步骤:
1. 连通CCS 与DSP EVM.
2. 下载代码到core 0 of DSP0.
3. 下载代码到core 0 of DSP1.
4. 先运行DSP1 , 然后运行DSP0. (如果EVM 上只有一个DSP,且运行在loopback 模式下,那么直接下载到DSP0,再运行)
5. 检测每个DSP 的stdout 窗口,验证测试结果。
典型的输出信息如下:
用户可以在HyperLink_Test.c 中的HyperLink_config()函数中修改初始化值,然后重新编译来验证在不同配置下的HyperLink 性能。
这个例子是在CCS5.1 下编译,使用pdk_c6618_1_0_0_5。如果在你的电脑上进行重新编译新的配置,你可能需要修改csl 包含路径。
参考资料
1. KeyStone Architecture HyperLink User Guide (SPRUGW8)
2. TMS320C6670 datasheet (SPRS689)
收藏
分享
评分
回复
引用
订阅
TOP
返回列表
电商论坛
Pine A64
资料下载
方案分享
FAQ
行业应用
消费电子
便携式设备
医疗电子
汽车电子
工业控制
热门技术
智能可穿戴
3D打印
智能家居
综合设计
示波器技术
存储器
电子制造
计算机和外设
软件开发
分立器件
传感器技术
无源元件
资料共享
PCB综合技术
综合技术交流
EDA
MCU 单片机技术
ST MCU
Freescale MCU
NXP MCU
新唐 MCU
MIPS
X86
ARM
PowerPC
DSP技术
嵌入式技术
FPGA/CPLD可编程逻辑
模拟电路
数字电路
富士通半导体FRAM 铁电存储器“免费样片”使用心得
电源与功率管理
LED技术
测试测量
通信技术
3G
无线技术
微波在线
综合交流区
职场驿站
活动专区
在线座谈交流区
紧缺人才培训课程交流区
意见和建议