TMS320C6678无法连接?看看多核通信方式TI-IPC和OpenMP多核编程.docx

上传人:lao****ou 文档编号:947337 上传时间:2024-08-01 格式:DOCX 页数:20 大小:35.68KB
下载 相关 举报
TMS320C6678无法连接?看看多核通信方式TI-IPC和OpenMP多核编程.docx_第1页
第1页 / 共20页
TMS320C6678无法连接?看看多核通信方式TI-IPC和OpenMP多核编程.docx_第2页
第2页 / 共20页
TMS320C6678无法连接?看看多核通信方式TI-IPC和OpenMP多核编程.docx_第3页
第3页 / 共20页
TMS320C6678无法连接?看看多核通信方式TI-IPC和OpenMP多核编程.docx_第4页
第4页 / 共20页
TMS320C6678无法连接?看看多核通信方式TI-IPC和OpenMP多核编程.docx_第5页
第5页 / 共20页
亲,该文档总共20页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《TMS320C6678无法连接?看看多核通信方式TI-IPC和OpenMP多核编程.docx》由会员分享,可在线阅读,更多相关《TMS320C6678无法连接?看看多核通信方式TI-IPC和OpenMP多核编程.docx(20页珍藏版)》请在第一文库网上搜索。

1、TMS320C6678无法连接?看看多核通信方式TI-IPC和OpenMP多核编程1a1-a刖百嵌入式领域的处理器已向多核架构迅速发展,公司的KeyStone架构的TMS320C6678是目前市面上性能最高的多核DSP处理器。TMS320C6678集成8核C66xDSP处理器,每个内核频率高达1.25GHz,提供每秒高达40GMAC定点运算和20GF1OP浮点运算能力;1片TMS320C6678提供等效达10GHz的内核频率,单精度浮点并行运算能力理论上可达160GF1OP,是TS201S的50倍、C67x+的115.2倍,适合于诸如油气勘探、雷达信号处理、图像处理以及定位导航等对定浮点运算能

2、力及实时性有较高要求的超高性能计算应用。然而,核间通IS是多核处理器系统所面临的主要难点,通信机制的优劣直接影响多核处理器的性能,高效的通信机制是发挥多核处理器高性能的重要保障。创龙科技(TrOnIonq)专注于DSPxARM、晒A多核异构技术开发,本文为您介绍TMS320C6678处理器开发中匕徽常用的两种多核通信方式:TI-IPC和OPenMP,以及多核编程注意事项。1硬性平台本文基于创龙科技T16678-EasyEVM评估板进行演示。T16678-EasyEVM是一款基于T1KeyStone架构c6000系歹UTMS320C6678八核C66x定点/浮点高性能处理器设计的高端多核DSP评

3、估板,由核心板与底板组成。核心板经过专业的PCB1ayout和高低温测试验证,稳定可靠,可满足各种工业应用环境。评估板接口资源丰富,引出双路千兆网口、SRIOsPC1e等高速通信接口,方便用户快速进行产品方案评估与技术预研。T16678-EasyEVM评估板开发案例主要包括:(1)裸机开发案例RTOS(SYS/BIOS)开发案例IPC、OPenMP多核开发案例(4)SRI0、PCIex双千兆网口开发案例(5)图像处理开发案例(6)DSPI发案例(7)串口、醛远程升级开发案例C66xDSP视频教程、中文手册、产品资料(用户手册、核心板硬件资料、产品规格书)可点:2TI-IPC2.1 简介TI-I

4、PC(Inter-ProcessorCOmmUnKatiOn)组件提供与处理器硬件无关的API,可用于多核处理器核间通信、同一处理器进程间通信和设备间通信。AP1支持消息传递、流和链接列表,它们在单处理器和多处理器中配置均可兼容。TI-IPC被设计在运行SYS/BIOS应用程序的处理器上使用,一般为DSP处理器(如TMS320C6678.TMS320C6657),但在某些情况下亦可能是ARM处理器。IPC常见的通信模块如下:表1Ipc提供Ipc_start()函数,并允许配置启动顺序MessageQ大小可变的消息传递模块Notify以中断方式实现轻量数据饯输的模块1istMp用于实现对链接列表

5、的互斥访问GateMp用于实现对共享资源的互斥访问HeapBufMp大小固定的共享内存堆HeapMenMp大小可变的共享内存堆SharedRegion用于维护共享内存区域1ist用于创建双向链接列表Mu1tiProc用于管理多核处理器核心IDNameServer用于应用程序基于本地名称检索,以及立罐变量值2.2 常用模块2.2.1 MessageQ该模块具有如下特点:(1)兼容性强,可在不更改运行代码的情况移植至另一个支持TI-IPCMessageQ的处理器或其他传输层(如SharedMemorysMu1ticoreNavigatorxSRIO)o(2)支持可变长度消息的结构化发送与接收。(3

6、)单个MessageQ队列支持单个reader和多个writero(4)消息接收支持超时机制。(5)reader可根据消息头部信息对Writer进行确认后再回复。(6)IPjStart()会帮助用户完成下图中灰色框内的功能,用户仅需关注红色框中的内容即可。MessageQ通过消息队列发送和接收消息。reader是一个从消息队列中读取消息的线程,writer是一个将消息写入消息队列的线程。每个消息队列都有一个reader,但可有多个writero reader:调用MessageQ_create()xMessageQ_get()xMeSSageQ_free()和MessageQ-de1ete()

7、o writer:调用MeSSageQJDPen()、MeSSageQa1IoC()、MeSSageQ_put()和MessageQ-c1ose()oMessageQ常见的工作流程如下所示。下面以多核IPC通信的ShmIpcBenchmark案例为例,分析代码中MessageQ的使用,见图中注释。2.2.2 Notify该模块具有如下特点:(1)可独立于MeSSageQ模块进行使用。(2)着重于多核通知功能,是更为简单的多核通信形式。(3)仅可基于SharedMemroy方式进行使用。口Notify通过硬件中断传输消息,Receiver注册Notify事件中断,Sender通过Notify发送

8、事件中断,从而实现通知并携带小量消息的目的。 Receiver:调用NOtifyJegiSterEVent()注册事件中断服务函数。 Sender:调用Notify_sendEvent()发送事件中断。Notify常见的工作流程如下所示。2.3 物理传输方式TI-IPC的数据传输需结合特定物理硬件与底层驱动,方可实现两个线程在同一个设备或跨设备间进行通信。常用三种的物理传输方式包括SharedMemOry、MU1tiCOreNaVigatOr和SRIO,具体说明如下。传输方式优点缺点SharedMemory使用简单,速率较高仅可用于单个设备IPC通信,可能与其他使用SharedMemory的任

9、务存在竞争Mu1ticoreNavigator速率最高,消耗CPU周期最少仅可用于单个设备IPC通信SRIO可用于跨设备IPC通信速率最低下图为使用Mu1ticoreNavigatorxSRIO的API调用流程,用户仅需关注MessageQ部分操作即可,其他模块均由系统自动调用。3OpenMP3.1 简介OpenMP是一种多核开发软件框架,其主要特性如下:(1)可跨平台使用,代码兼容性强。(2)以共享内存为通信基础。(3)支持C/C+以及Fortran语言。(4)一般基于SYS/BIOS运行。口3.2 基本语法#pragmaomp指金子句口子句.指令说明para11e1开始并行执行语句for在

10、多个线程中并行执行for循环sections包含多个可并行执行的sectone结构体sing1e单线程执行master主线程执行critica1任意时刻仅可被单个线程执行barrier指定屏障,用于同步所有线程taskwait等待子线程完成atomic确保指定内存位置执行原子更新操作f1ush使线程当前内存数据与实际内存数据一致ordered并行执行的for循环将按循环体变量顺序执行threadprivate指定变量为本地存储子句说明defau1t控制para11e1或task结构体中变量数据的共享属性sharedpara11e1或task结构中,一个或多个变量为共享变量private一个或多

11、个变量为本地变量firstprivate一个或多个变量为本地变量,且变量值为并行结构执行前的值1astprivate一个或多个变量为本地变量,且变量值为并行结构执行后的值reduction一个或多个变量为本地变量,但变量值将根据不同的运算符来决定,执行完成后变量值将被更新copyin使线程本地变量值与主线程变量值相同copyprivate使属于para11e1区域的变量值在不同线程中相同schedu1e设置for循环并行执行方式:dynamicNguided、runtime1staticnumthreads线程数目if并行语句执行条件nowait忽略线程同步等待以裸机的omp_matavec案

12、例为例,使用场景的概要流程图如下。C66xx_0核心仓U建主编呈,通过OpenMP框架力口载matvec算:去至C66xx_0-C66xx_7核心进行并行运算,从而减少C66xx_0核心负载,并可加快运算速度。3.3 代码分析以裸机的omp_matavec案例为例进行代码分析,见图中注释。4多核编程注意事项4.1 多核单/多镜像在开发过程中,需将程序可执行文件分别加载至对应的核心运行。此时需了解多核单/多镜像的优缺点,再根据实际情况进行选择。多核单镜像多核单镜像指所有核心运行完全相同的用户程序。优点:仅需维护一个工程,管理便捷。缺点:需兼容多个核心代码,程序可执行文件较大。多核多镜像多核多镜像

13、指不同核心运行不同的用户程序。优点:无需考虑各核心功能的兼容性,单个程序可执行文件较小。缺点:需维护多个工程,管理不便。4.2 外设访问所有核心共享外设,如SRI0、PCIexEthernet.SP1I2C,EMIF等。在对外设进行初始化后,所有核心可在任意时间对外设进行读写,无需再次初始化。4.3 数据存储(1)注意区分全局与局部地址。11/12S电如有全局与局部两个地址,全局地址可被所有核心访问,但局部地址仅可被指定核心访问。以C66xx_0核心的12SRAM为例,对应的全局地址为0x10800000,局部地址为0x00800000oC66xx_0核心使用0x10800000或0x0080

14、0000,均可访问C66xx.0核心的12SRAM0而C66xx-1核心使用0x00800000仅可访问C66xx_1核心的12SRAM,使用0x10800000方可访问C66xx,0核心的12SRAMo12SRAM全局与局部地址对应关系如下表:表5核心全局地址局部地址C66xx_00x108000000x00800000C66xx10x118000000x00800000C66xx_20x128000000x00800000C66xx30x138000000x00800000C66xx_40x148000000x00800000C66xx_50x158000000x00800000C66xx60x168000000x00800000C66xx.70x178000000x00800000(2)注意避免内存冲突。如数据需存放至MSMCSRAMxddr3共享内存设备,请将对应内存划分为MSMCSRAM_MASTER段(主核使用)与MSMCSRAM_S1AVE段(从核使用),从而避免运行时内存冲突。5参考链接-IPCSOftWare-rtos/esd/docs/1atest/rtos/index_Foundationa1_Components.

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 应用文档 > 工作总结

copyright@ 2008-2022 001doc.com网站版权所有   

经营许可证编号:宁ICP备2022001085号

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有,必要时第一文库网拥有上传用户文档的转载和下载权。第一文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知第一文库网,我们立即给予删除!



客服