TMS320C6678多核DSP并行访问存储器性能的研究
基于TMS320C6678的多核DSP上电加载技术

基于TMS320C6678的多核DSP上电加载技术
0 引言
在视频检测、医疗影像及红外图像快速跟瞄系统应用中,越来越复杂的二维、三维甚至四维的图像处理,需要并行化的处理系统,并能够运行复杂的算法。
要实现这些复杂的系统,高端FPGA+高性能DSP是目前普遍采
用的方案,而单个DSP的性能已发展至极限,所以解决复杂的并行算法,多核DSP是现在发展的全新方向,其中多核DSP的根加载技术是其难点之一。
TI公司推出的DSP芯片TMS320C6678(C6678)具有8个内核的高性能DSP,每个内核工作频率均达1 GHz。
其支持的Boot 模式有SPI、I2C、EMAC、SRIO 和并口Emif16 NOR-FLASH。
其中Emif16 NOR-FLASH模式是不用上位机参与、比较简单、独立成系统的一种,大多独立DSP系统采用该方式。
网上能搜索到关于C6472和C6678零星一些加载资料,都是借助于。
TMS320C6678多核DSP的加载配置和实现方法

第47卷第1期2017年1月航空计算技术Aeronautical Computing TechniqueVol.47 No.1Jan.2017 TMS320C6678多核DSP的加载配置和实现方法邓豹(中航工业西安航空计算技术研究所,陕西西安710068)摘要:程序代码正确的固化加载运行是多核DSP应用的前提和基础。
简要介绍了DSP的加载器和加载过程,阐述了多核处理器件的加载配置管理方法。
以T I公司的多核DSP TMS320C6678为例,介绍了多核DSP的加载模式和流程,详细阐述了EMIF16的N o t FLASH加载实现方法,可以实现多核DSP软件的正确、可靠加载运行。
关键词:多核 DSP;BootLoader;加载配置;TMS320C6678中图分类号:TP368.1 文献标识码:A文章编号:1671-654X(2017)01-0107-05BootLoader Configuration and Implement Based on Multicore DSP TMS320C6678DENG Bao(yXi an Aeronautics Computing Technique Research Institute ,AVIC ,Xifan 71006S , China)Abstract:The software code correct program m ing ,loading and operating is the foundation of multicore dsp application.The paper gives analysis to the DSPr s BootLoader and the code loading process.Taking the multicore DSP TM S320C6678 as an example,the article introduces the configuration management mode and processing flow of the multicore dsp,and detailed describes the EM IF16 boot implement ways used Nor FLASH.W ith these ways can be achieved correct and reliably software operating.Key words:multicore DSP;bootloader;boot configuration;TM S320C6678引言TM S32〇C6678是德州仪器(TI)公司全新架构的 TM S320C66x数字信号处理器(DSP)。
简简单单学TI多核DSP(1):TMS320C6678的架构

简简单单学TI多核DSP(1):TMS320C6678的架构一.这么学DSP比较有效在开始C6678的架构讲解之前,我想拉出一点篇幅,给大家谈一下,根据我个人的理解,怎么样才能比较快的学好DSP。
(1)学习DSP,首先要与学MCU区分开,毕竟这是两个完全不同的架构,而且DSP与MCU的设计思路完全不一样。
MCU是为通用的控制而设计,DSP则是专为高速应用而设计;(2)从硬件的角度来考虑,要玩转DSP,首先需要仔细阅读其数据手册和用户指南。
数据手册中,重点阅读DSP的技术指标,最关键的是对芯片的电源需求做详细的了解,其中对核电压的需求一定要认真了解,这是DSP稳定运行的基本条件;做硬件设计的人,电源设计是最基本的,不仅要考虑电源的电压,更重要的是要考虑电源的抗跌落性能、动态性能。
尤其在DSP使用场合,高速电路对电源的要求尤其苛刻,尤其是对于上电时序需要特别注意;(3)在对DSP芯片的电源需求做了深入的了解后,下一步就是要仔细阅读如何启动DSP,前面说了,DSP与MCU不一样,但是有一点又是非常相似的,就是DSP跟MCU一样,需要明确的设置好启动的选项。
因为DSP是独立的高速信号应用,DSP的控制程序和算法都是独立的存储在独立的存储空间。
所以如何根据产品的需求进行启动的配置,这是非常重要的;(4)在了解了DSP的启动选项后,还有一个需要密切关注的,就是对于晶体或者TCXO等等的选择,这一点为什么要提出来,本人是做无线通信的,做基站或者终端,都必须根据网络的需要,确定你需要的系统基准时钟的技术指标,如果你选择的晶体或者TCXO等等指标落后于你的网络系统的需要,那么在使用和测试的过程中,将会出现失步的问题。
无线通信最严重的通信故障就是失步。
尤其是我们国家推行的TD-SCDMA以及TDD-LTE都对网络的同步提出了极为苛刻的要求,在做DSP设计时,尤其需要对DSP的输入时钟根据系统的性能需要,做特别的处理;(5)对于高速DSP,比如我们接下来要讲的8核高速DSP TMS320C6678而言,一个至关重要的硬件设计,就是存储器的设计。
基于创龙TMS320C6678工业核心板性能简介

2GByte
备注:标配为 SOM-TL6678-1000-1GN8GD-I,其他型号请与相关销售人员联系。
型号参数解释
8 技术支持
(1) 协助底板设计和测试,减少硬件设计失误; (2) 协助解决按照用户手册操作出现的异常问题; (3) 协助产品故障判定; (4) 协助正确编译与运行所提供的源代码; (5) 协助进行产品二次开发; (6) 提供长期的售后服务。
1 核心板简介
基于 TI KeyStone C66x 多核定点/浮点 TMS320C6678 DSP,集成了 8 个 C66x 核,支 持高性能信号处理应用;
每核心主频 1.0/1.25GHz,单核可高达 40GMACS 和 20GFLOPS,每核心 32KByte L1P、 32KByte L1D、512KByte L2,4MByte 多核共享内存,8192 个多用途硬件队列,支持 DMA 传输;
SOM-TL6678 引出 CPU 全部资源信号引脚,二次开发极其容易,客户只需要专注上层 运用,降低了开发难度和时间成本,让产品快速上市,及时抢占市场先机。
不仅提供丰富的 Demo 程序,还提供 DSP 核间通信开发教程,全面的技术支持,协 助客户进行底板设计和调试以及多核软件开发。
2 典型运用领域
9 增值服务
主板定制设计 核心板定制设计 嵌入式软件开发 项目合作开发 技术培训
工业级 工业级 工业级
部分开发例程详见附录 A,开发例程主要包括: 裸机开发例程 SYS/BIOS 开发例程 多核开发例程
5 电气特性
核心板工作环境
环境参数 工业级温度 工作电压
表3 最小值 -40°C
/
典型值 / 9V
核心版功耗典型值电压表4 典型值电流核心板
基于TMS320C6678 DSP的程序优化技术的研究

期 的优 化 效 果
【 关键 词 】 I ) S F ' 程序 优 化 ;存储 资 源分 配 ;C 语 言 的优 化 ;软件 流 水 :编译 器的优 化
.
f e r e n t me t h o d s a p p r o p r i a t e l y t o a c h i e v e t h e d e s i r e d o p t i mi z a t i o n r e s u l t s . Th e me t h o d s i nc l u de di s t r i b u t i o n o f t he me mo y r r e s o u r c e s , op t i mi z a t i o n o f C c o d e, s of t wa r e pi p e l i n e・ op t i mi z a t i o n o ft h e c o mp i l e r ,a n d s o o n. Al s o, DSP p r o g r a m o p t i mi z a t i o n i s t h e p r o c e s s of c o mbi n i n g t h e o r y wi t h p r a c t i c e
Re s e a r c h o n pr o g r a m o p t i mi z a t i o n t e c hn i qu e ba s e d o n DSP TM S3 2 0 C6 6 7 8 Wa ng Gu n— g a n g , Ya n g Yu n — ga o
基于TMS320C6678的通用嵌入式软件开发平台的研究

基于TMS320C6678的通用嵌入式软件开发平台的研究殷耀文(昆山登云科技职业学院,江苏昆山215300)[摘要]论述了基于TMS320C6678DSP通用嵌入式软件开发平台构建过程,从时钟、外设、资源分配三个维度的构建进行论述。
通用嵌入式软件平台具有高度集成性、通用性、可扩展性。
平台的构建成功为使用此款DSP开发的人员提供了极大的便利性。
[关键词]TMS320C6678;通用嵌入式软件开发平台;外设;时钟;资源[中图分类号]TP319[文献标志码]A[文章编号]2096-0603(2019)12-0158-02TMS320C6678是德州仪器公司研发的一款高性能定点计算和浮点计算数字信号处理器(DSP),基于TI 的KeyStone多核体系结构,集成了八个C66X CORIPAC DSP,每个DSP的主频为1~1.25GHz,最高能达到10GHz 主频。
该DSP功耗低,支持高性能信号处理应用,广泛应用于机器视觉领域、通信、雷达领域、嵌入式分析领域、高端机床领域、多媒体领域、成像领域和计算机处理等领域。
一、概述由于该DSP高速外设较多,主要有SRIO、PCIe、HyperLink、Gigabit Ethernet、64-Bit DDR3、EMIF、UART。
如此多的外设加上时钟、电源、存储资源划分的配置,通常情况下,都是按需选取一两种外设进行开发使用。
笔者结合多年的嵌入式软件开发工作经验,借鉴软件无线电的思想,将众多的外设、时钟配置、RAM存储资源整合在一个通用的软件开发平台上。
本文将重点论述构建此平台的过程。
构建此平台的核心思想是追求通用性与易用性,能确保使用此款DSP芯片的开发者不用关心芯片的各种外设和使用细节,开发者所要做的只是在这个平台上部署自己的编程逻辑,通过与各种封装好的函数来操控DSP,平台达到了封装DSP硬件细节的作用,通过在实际项目过程中的实际应用,极大地简化了发者的开发过程。
基于TMS320C6678的多核程序加载研究与实现
基于TMS320C6678的多核程序加载研究与实现
李飞平;卿粼波;滕奇志;舒君;何小海
【期刊名称】《电子技术应用》
【年(卷),期】2015(041)003
【摘要】针对多核DSP系统程序加载复杂的问题,基于TMS320C6678对多核程序加载进行了研究与设计.从一级引导程序出发,设计并优化了多核程序内容存储格式.设计了简洁的二级引导程序,以修正一级引导程序只识别主核程序入口地址,而从核入口地址缺失的现象.为了快速生成特定格式的多核程序内容,设计了多个工具用于添加SPI启动参数表、DDR3启动表、从核程序入口地址以及完成程序内容格式的转换.实现了SPI Flash多核程序加载以及基于I2C主模式的Nand Flash多核程序加载.
【总页数】4页(P31-34)
【作者】李飞平;卿粼波;滕奇志;舒君;何小海
【作者单位】四川大学电子信息学院,四川成都610064;四川大学电子信息学院,四川成都610064;四川大学电子信息学院,四川成都610064;四川大学电子信息学院,四川成都610064;四川大学电子信息学院,四川成都610064
【正文语种】中文
【中图分类】TP368
【相关文献】
1.基于TMS320C6678的多核DSP加载模式研究 [J], 张乐年;关榆君
2.基于DSP的动态程序加载的研究与实现 [J], 李鹏;张营;陈立锋;吕永田
3.基于TMS320C6678的多核DSP上电加载技术 [J], 刘章文;刘七华;谢川林;袁学文
4.基于PC总线的HOST/DSP系统大型程序加载方法研究与实现 [J], 刘小勇;黄一川;施仁
5.基于DSP在线程序加载的研究与实现 [J], 祖文祥;丁劲涛
因版权原因,仅展示原文概要,查看原文内容请购买。
TMS320C6678开发板(DSP+Zynq)RTOS综合功能案例,嵌入式必看!
TMS320C6678开发板(DSP+Zynq)RTOS综合功能案例,嵌入式必看!前言减少在产品开发过程中对DSP外设接口程序进行整合的难度,我们提供对DSP主要外设接口实现底层初始化的RTOS综合功能测试IFD(Integrated Function Demo)案例程序,助力有需要的朋友基于此IFD案例程序模板进行开发,加快项目研发进度。
本次测试板卡为TMS320C6678开发板,它是一款基于TI KeyStone架构C6000系列TMS320C6678八核C66x定点/浮点DSP,以及Xilinx Zynq-7000系列XC7Z045/XC7Z100 SoC处理器设计的高端异构多核评估板,TMS320C6678开发板每核心主频可高达1.25GHz,XC7Z045/XC7Z100集成PS端双核ARM Cortex-A9 + PL 端Kintex-7架构28nm可编程逻辑资源,引出双路CameraLink、双路SFP+光口、四路千兆网口、双路SATA、双路PCIe、四路USB、双路CAN、双路CAMERA、HDMI IN/OUT、LVDS、LCD、RS485、RS232、Micro SD、HPC FMC等接口。
IFD案例主要功能为EEPROM、SPI FLASH和NAND FLASH等存储设备读写速率测试,以及PCIe、SRIO和Ethernet等外设接口测试,详细说明见下表。
表 1设备/接口测试内容读写速率write:0.02MB/sEEPROM 数据读写速率及正确性read:0.04MB/swrite:0.48MB/sNAND FLASH 数据读写速率及正确性read:0.80MB/swrite:0.29MB/sSPI FLASH 数据读写速率及正确性read:1.27MB/sDDR 数据写入速率及正确性write:33351Mbpswrite:690MBpsPCIe 作为PCIe EP设备进行通信read:639MBpswrite:12060MbpsSRIO(ZYNQ) 数据读写速率及正确性read:7616MbpsEthernet IP地址动态获取/UART 串口回显/KEY 按键检测/本文档案例程序默认使用DSP端主频为1GHz的核心板,通过TL-XDS200仿真器加载运行进行操作效果演示。
基于TMS320C6678 DSP的程序优化技术的研究
基于TMS320C6678 DSP的程序优化技术的研究王国刚;杨云高【摘要】Program optimization based on DSP TMS320C6678 is a complete technical system.To optimize the DSP program,we must have a clear vision of the architecture and the memory resources of the DSP,and understand the assembly language of the exactly DSP.Then we can have the ability to apply dif-ferent methods appropriately to achieve the desired optimization results.The methods include distribution of the memoryresources,optimization of C code, software pipeline,optimization of the complier,and so on.Also,DSP program optimization is the process of combining theory with practice.%基于TMS320C6678 DSP的程序优化是一个完整的技术体系。
程序优化首先要对所用DSP的架构体系和存储资源有一个清晰的认识,并对该架构DSP的汇编语言有一定的了解,再合理的利用DSP底层存储资源分配、C语言的优化、软件流水以及编译器的优化等方法达到预期的优化效果。
【期刊名称】《电子世界》【年(卷),期】2016(000)024【总页数】3页(P117-118,124)【关键词】DSP程序优化;存储资源分配;C语言的优化;软件流水;编译器的优化【作者】王国刚;杨云高【作者单位】海军驻第七一六研究所军代室;江苏自动化研究所【正文语种】中文数字信号处理(Digital Signal Processing,简称DSP)技术发展迅速,现已广泛应用于图像处理技术、通信、自动控制系统等许多新技术领域[1]。
基于TMS320C6678的多核DSP加载模式研究
( 1 . G r a d u a t e S c h o o l , He b e i U n i t e d U n i v e r s i t y , T a n g s h a n 0 6 3 0 0 0 , C h i n a ; 2 . I 伽 m C o l l e g e , T a n g s h a n 0 6 3 0 0 9 , C h i n a )
Ab s t r a c t :T e x a s I n s t r u me n t s ( TI )l a u n c h e d e i g h t n u c l e a r TM¥ 3 2 0 C 6 6 7 8 DS P c h i p w h i c h i S b a s e d o n t h e K e y s t o n e
a r c h i t e c t u r e o f h i g h p e fo r r ma n c e DS P d e v i c e s ,a r e w i d e l y u s e d o n t h e ma r k e t o f t h e C 6 4 5 5 h i g h - e n d p r o c e s s i n g p l a t f o m r t o
4期 第2 1卷 第 2
V0 1 . 21 No . 2 4
电 子 设 计 工 程
El e c t r o n i c De s i g n En g i n e e r i n g
2 0 1 3年 l 2月
De e .2 01 3
基 T MS 3 2 0 C 6 6 7 8呐 多 核D S P加载模 式研 究
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
TMS320C6678多核DSP并行访问存储器性能的研究摘要:为充分挖掘多核DSP能力,结合TI的TMS320C6678 DSP的存储器架构,分析了各个关键节点的理论数据传输带宽,展开了对多核DSP主设备(CPU内核、EDMA控制器)并行访问存储器(共享SL2、外部DDR3)的性能研究,并采用数据拷贝测试实验进行验证,最后讨论了影响带宽的因素,对多核软件设计具有一定的指导意义。
关键词:多核DSP;存储器性能;TMS320C6678嵌入式领域的处理器设计已向多核处理器迅速发展,TI最新的8核DSP处理器TMS320C6678(以下简称C6678),每个内核频率为1.25 GHz,提供高达40 GB/s MAC定点运算和20 GB/s FLOP浮点运算能力[1],在信号处理、图像处理等对定浮点运算能力及实时性要求较高的领域得到了广泛应用。
多核环境下并行访问存储器的性能是多核系统设计和应用开发的难点之一。
郝朋朋[2]研究了多核处理器的体系结构,但没有对带宽进行实验测试和结果分析;吴灏[3]分析了多核DSP的核间通信方法。
而本文基于TMS320C6678 DSP,详细阐述了多核DSP并行访问存储器的性能,分析了影响带宽的因素以及瓶颈所在,对多核软件设计具有一定的指导意义。
1 C6678多核DSP存储器架构存储器访问性能对于DSP的软件运行是至关重要的。
C6678 DSP所有的存储器都可以被DSP内核和多个DMA主设备访问。
图1显示了C6678的存储器系统架构框图,总线上的数字代表总线宽度,大部分模块运行在1/2或1/3 DSP内核频率[1]。
1.1 C66x内核C6678集成了8个C66x核,每个内核具有以下性能。
(1)32 KB L1D(Level 1 Data)SRAM,运行在DSP内核频率,可用于数据存储或缓存;(2)32 KB L1P(Level 1 Program)SRAM,运行在DSP内核频率,可用于程序存储或缓存;(3)512 KB LL2(Local Level2)SRAM,运行在1/2 DSP内核频率,可用于程序或数据的存储RAM或缓存[4]。
所有的DSP内核共享4 MB SL2(Shared Level 2)SRAM,运行在1/2 DSP内核频率,有4个bank区,可用于数据或代码存储[5]。
C6678提供了64位1 333 MHz DDR3 SDRAM接口,最高支持8 GB的外部存储,可用于数据或程序存储。
C6678运行在1 GHz的时钟频率下,每个C66x内核可以执行每周期128位的加载和存储操作。
当访问L1D时,DSP内核的访问速度高达16 GB/s(如表1所示)。
当访问L2存储空间时,速率依赖于存储器访问模式和缓存配置。
C6678提供了内部DMA(IMDA)引擎用于数据搬移,运行在1/2 DSP内核频率,处理速度高达8 GB/s。
IDMA只能用于L1、LL2和外设端口之间的数据搬移,不能访问外部存储器[1,4]。
1.2 EDMA传输控制器C6678 DSP提供了10个EDMA传输控制器TC,可以同时用于器件任意存储节点(L1、L2、外部存储和片上外设)之间的数据移动[1]。
其中两个EDMA传输控制器连接着256 bit高速TeraNet交换桥,运行在1/2 DSP内核频率,理论上可以支持高达16 GB/s的数据带宽;其余8个EDMA传输控制器连接着128 bit低速TeraNet交换桥,运行在1/3 DSP内核频率,理论上可以支持高达5.333 GB/s的数据带宽(如表1所示)。
EDMA结构设计了许多特性,专门用于同时进行多个高速数据传输。
了解这些结构和数据传输、交互的方式,才可以建立有效的系统,并最大化EDMA传输带宽。
1.3 多核DSP的理论带宽从以上的存储器结构可以分析C6678 DSP的主设备(C66x核和EDMA)访问不同存储器(L1D、L1P、LL2、SL2、DDR3)的理论带宽,它是由该节点的数据宽度和时钟频率计算而得,如表1所示。
C6678包括8个内核和10个EDMA主设备,它们可以并行地访问存储器。
每个DSP内核集成了各自的L1D、L1P、LL2存储器,而共享存储器(SL2、DDR3)在多个主设备(DSP内核、EDMA控制器)并行访问时的性能,对系统资源的安排、软件结构的设计有着指导性的意义。
接下来通过数据拷贝测试实验对C6678并行访问存储器性能进行说明。
2 并行访问SL2的性能所有的主设备可以通过MSMC(Multicore Shared Memory Controller)访问4个SL2 Bank。
多个主设备可以并行地访问不同的Bank;如果多个主设备访问同一个Bank,是基于优先级仲裁的[4]。
2.1 多个DSP内核共享SL2的情况图2给出了1 GHz C6678的多个DSP内核同时访问SL2的性能测试数据。
每个DSP内核分别访问它在SL2上的数据缓冲区,带宽是用拷贝的总字节数除以消耗的总时间。
每个内核L1D缓存是32 KB,没有使用L2缓存。
图2右侧图例的每一行代表一次测试,不同测试中使用不同数目的DSP内核同时访问存储器,空表示当前DSP内核没有参与,柱状图表示了相应DSP内核的带宽,最后给出了所有DSP内核的总体带宽。
图2(a)是DSP内核从SL2向LL2拷贝数据,每个内核的带宽稳定在2 GB/s左右;图2(b)是从DSP内核从LL2向SL2拷贝数据,每个内核的带宽将近3.6 GB/s。
总体带宽随着参与核数的增加几乎成线性增长。
以上测试结果表明,SL2不是多个内核同时访问SL2的瓶颈,SL2有足够的带宽(理论64 GB/s)来支持多个内核同时访问,吞吐量限制是在于DSP 内核本身。
由于SL2带宽完全可以满足多个处理器同时访问,内核的优先级对于这些情况就不重要了。
2.2 多个EDMA共享SL2的情况图3给出了1 GHz C6678的多个EDMA同时访问SL2的性能测试数据。
每个EDMA分别访问它在SL2上的数据缓冲区,带宽是用拷贝的总字节数除以消耗的总时间。
图3右侧图例的每一行代表一次测试,不同测试中使用不同数目的EDMA同时访问存储器,空表示当前EDMA 没有参与,柱状图表示了相应EDMA的带宽,最后给出了所有EDMA的总体带宽。
因为C6678有10 TCs,但只有8个DSP内核,在测试中,8个TC(DMA1 TC0~TC3, DMA2 TC0~TC3)用于SL2和每个内核LL2之间的数据搬移,其他两个TC(DMA0 TC0~~TC1)用于SL2和DDR3之间的数据搬移。
图3(a)和图3(b)是在10个TC的优先级相同、SL2分别作为目的地址和源地址的测试。
可以看出总体带宽不超过16 GB/s,另外性能表现:EDMA0>EDMA1>EDMA2,这是因为C6678的EDMA0专门为DDR3和SL2之间的数据传输进行了优化[1]。
图3(c)和图3(d)是在10个TC的优先级不一样、SL2分别作为目的地址和源地址的测试。
可以看出总体带宽同样不超过16 GB/s,低优先级的EDMA分得较少的带宽,对于那些数据负载非常严重的情况,一些低优先级的EDMA可能会带宽为0。
由测试结果表明,虽然SL2有非常高的带宽,但是所有的EDMA是通过TeraNet交换桥的同一个端口访问SL2的,因此TeraNet总线是多个EDMA并行访问SL2的瓶颈,它只有理论16 GB/s(500 MHz×32 B)的带宽来支持多个EDMA同时访问。
如果EDMA的优先级是一样的,带宽基本上平均分配,略有差异。
可以注意到,即使优先级相同的情况,DMA1 TC1和TC3,DMA2 TC1和TC2的带宽比其他少。
这是因为C6678的EDMA TC的FIFO大小和总线宽度不一样(如表2所示)[1],TC的数据搬移能力存在一定的差异。
3 并行访问DDR3的性能如果几个主设备同时访问DDR3,则基于主设备的优先级进行仲裁。
实验用的C6678板的DDR有8个Bank,尽管DDR3有多个Bank,但是不像SL2有多个总线连接到每个Bank,因此,Bank数目不会直接提高吞吐量。
3.1 多个DSP内核共享DDR3的情况图4给出了不同应用场景下多个DSP内核共享 1 GHz C6678处理板的64 bit 1 333 MHz DDR3的性能。
每个DSP内核分别访问DDR3上对应的数据缓冲区。
用拷贝的数据量除以消耗的总时间就得到了每个主设备的带宽。
图4右侧图例的每一行代表一次测试,不同测试中使用不同数目的DSP内核同时访问DDR3,空表示当前DSP内核没有参与,柱状图表示了相应DSP 内核的带宽,最后给出了所有DSP内核的总体带宽。
在该测试中,DDR3支持缓存、支持预取,L1D缓存为32 KB,L2缓存为256 KB。
非缓存的情况没有测试,因为它的数据传输带宽要小得多。
多个内核访问相同Bank的性能较差;而多个内核访问不同Bank的性能较好,原因在于DDR3的行切换负载。
图4(a)~图4(d)是在DSP内核优先级相同的情况下,DDR3(不同Bank/相同Bank)与LL2之间相互拷贝数据的带宽性能。
访问DDR3不同Bank的性能较好,每个内核的带宽稳定在1.4 GB/s左右,总体带宽随着参与核数的增加几乎成线性增长,但不超过10.6 GB/s;而访问DDR3相同bank的性能较差,在实际应用中需要避免出现这样的情况。
图4(e)和图4(f)是在DSP内核优先级不一样的情况下,DDR3(不同Bank)与LL2之间相互拷贝数据的带宽性能。
优先级高的DSP内核分得的带宽较多,但优先级对DSP内核带宽的影响没有那么明显;总体带宽同样随着参与核数的增加几乎成线性增长,但不超过10.6 GB/s。
以上测试结果表明,DDR3带宽(10 666 MB/s)对于所有的DSP内核同时访问是不够的,不同内核的优先级会影响它们之间的带宽分配。
当优先级相同时,带宽基本上平均分配;当优先级不一样时,较低优先级的分得较少的带宽。
3.2 多个EDMA共享DDR3的情况图5给出了不同应用场景下多个EDMA共享DDR3的性能。
每个EDMA分别访问DDR3上对应的数据缓冲区,带宽是用拷贝的数据量除以消耗的总时间。
图5右侧图例的每一行代表一次测试,不同测试中使用不同数目的EDMA同时访问DDR3,空表示当前EDMA没有参与,柱状图表示了相应EDMA的带宽,最后给出了总体带宽。
因为C6678有10个TC,但是只有8个DSP内核,以上测试中,8个TC(DMA1 TC0~TC3,DMA2 TC0~TC3)用于传输DDR3和内核的LL2之间的数据,其余两个TC(DMA0 TC0~TC1)用于传输DDR3与SL2之间的数据。