8918|2

6694

帖子

0

TA的资源

五彩晶圆(高级)

楼主
 

告诉你一个TMS320C6678多核DSP的核间通信方法 [复制链接]

       嵌入式领域的处理器设计已向多核处理器迅速发展,TI公司的KeyStone架构的多核处理器就是其中之一。2010年11月,TI公司发布了最新的KeyStone架构的8核DSP处理器TMS320C6678,每个C66x内核频率为1.25 GHz,提供每秒高达40 GB MAC定点运算和20 GB FLOP浮点运算能力;1片8核的TMS320C6678提供等效达10 GHz的内核频率,单精度浮点并行运算能力理论上可达160 GB FLOP,是TS201S的50倍、C67x+的115.2倍[1],适合于诸如油气勘探、雷达信号处理以及分子动力学等对定浮点运算能力及实时性有较高要求的超高性能计算应用。
      核间通信是多核处理器系统所面临的主要难点,通信机制的优劣直接影响多核处理器的性能,高效的通信机制是发挥多核处理器高性能的重要保障。TMS320C6678采用TI全新KeyStone多核架构,属于单芯片多核架构,有别于常见的板载多芯片通信方式[2]。而KeyStone架构的通信研究才刚刚起步,因多核通信复杂,需要搭建合适的通信拓扑结构,因此拓扑结构的选取会直接影响通信代价和并行计算的效率[3]。TMS320C6678采用基于KeyStone架构的中断控制器、核间通信寄存器以及合适的通信拓扑结构实现多核间的通信。通过中断系统激活处理器,触发具有通信功能的中断服务程序,调用寄存器完成相应的功能,并通过合适拓扑结构完成通信。
       基于以上分析,本文针对TMS320C6678多核处理器,首先分析了中断控制器和核间中断原理及其实现;然后分析了核间通信的原理,给出了通信的发起和响应的实现方法;最后介绍了主辅和数据流两种多核通信的拓扑结构,并通过仿真对其通信代价进行了对比,得出了两种结构的优缺点以及适用范围。对设计多核处理器核间通信有一定指导意义。

1 TMS320C6678中断控制器
TMS320C6678采用基于KeyStone架构的中断控制器INTC(Interrupt Controller)[4]、激活处理器触发相应的中断服务程序,完成通信的第一步。
首先需要配置中断向量表,启动CPU中断功能。TMS320C6678的CPU可接收15个中断,其中:1个硬件异常(EXCEP)、1个不可屏蔽中断(NMI)、1个复位(RESET)和12个可屏蔽中断(INT4~INT15),中断源支持最多128个。每个核心通过事件控制器产生事件(Event),触发核间中断(IPI)和其他核心进行通信。在TMS320C6678中,核间中断(IPC_LOCAL)默认对应91号事件,而核间中断属于可屏蔽中断,通过中断控制器可以映射到INT4~INT15任意一个中断上。为了实现核间中断,必须按以下方式进行设置:
(1)控制状态寄存器(CSR)中的全局中断使能位置为1,全局中断使能;
(2)中断使能寄存器(IER)中的NMIE位置为1,可屏蔽中断使能;
(3)中断使能寄存器(IER)将要映射的可屏蔽中断的相应位置1;
(4)选择91号事件作为中断源,映射事件到指定的物理中断号。中断发生后,将中断标志寄存器(IFR)的相应位置1。
中断发生时,由事先配置好的中断向量表跳入中断服务程序(ISR),完成核间通信,如图1所示。
2 多核处理器的核间通信机制
多核处理器由中断触发通信后,配置相应的寄存器,以完成通信。TMS320C6678主要的核间通信寄存器有16个,其中8个IPC中断生成寄存器(IPCGR0~IPCGR7)和8个IPC中断确认寄存器(IPCAR0~IPCAR7)。将IPC中断生成寄存器IPCGRx(0≤x≤7)的最后一位IPCG位置1,就能产生对core_x的中断;1~3位是保留位,4~31位(SRCS0~SRCS27)提供了可以识别多达28种的中断来源。IPC中断确认寄存器IPCARx(0≤x≤7)的0~3位是保留位,4~31位(SRCC0~SRCC27)分别对应28种不同的中断来源。当SRCSx被置1时,寄存器将相应的中断确认寄存器的SRCCx位置1。当中断被确认后,寄存器将SRCCx和相应的SRCSx位同时置0。
当TMS320C6678的一个处理器核准备与其他处理器核通信时,根据TMS320C6678的中断事件映射表,引发91号事件,产生可屏蔽的核间中断,调用中断服务例程。中断服务例程IPC_ISR函数设计如下:
[mw_shl_code=c,ture]
void IPC_ISR(){KICK0 = KICK0_UNLOCK;
KICK1 = KICK1_UNLOCK;
*(volatile uint32_t *) IPCGR[2] = 0x20;
*(volatile uint32_t *) IPCGR [2] |= 1;
KICK0 = KICK0_UNLOCK;
KICK1 = KICK1_UNLOCK;}
[/code]
以向core_2发送0x20信息的中断为例,对应的0x20的信息存入SRCS位中,用于识别中断源。同时将当前CPU核心内的中断产生寄存器IPCGR2的最后一位IPCG位置1,触发IPC中断。当目标处理器核被中断触发后,会自动跳转到中断异常向量表中相应的入口点,读取当前核心中断产生寄存器IPCGRx(0≤x≤7),从寄存器的SRCS位中获取通信发起方传来的核间信息。然后将信息存入对应的中断确认寄存器IPCARx中,清空SRCC和相应的SRCS位,用以接收下一次的核间中断。其中的KICK0和KICK1为陷阱控制寄存器,用来避免通信冲突的发生。
3 拓扑结构设计与性能测试
以上对TMS320C6678基本核间通信机制及其实现过程进行了分析,但是要实现TMS320C6678强大的多核功能,必须从系统的角度上设计良好的并行计算方案,设计合适的系统并行拓扑是其中的关键所在。通信代价、带宽和功能是评测通信的重要指标,下面介绍了两种多核通信并行方式,分析了它们的拓扑结构,并对上述指标做了测试对比。
3.1 通信的拓扑结构
适用于多核DSP通信的并行方式有两种:一种是主辅拓扑结构(MasterSlave)[5],另一种是数据流拓扑结构(Data Flow)[6]。
主辅拓扑结构,在TMS320C6678中如图2所示。作为主核(控制核)的处理器通过EDMA与外部存储器DDR进行数据交换,然后主核通过核间中断与辅核通信。主核起到控制的作用,所有辅核(计算核)的中断都由控制核来处理,辅核只负责计算任务,辅核之间没有任何核间通信的产生。
数据流拓扑结构,在TMS320C6678中如图3所示,是一种基于片上互联的结构。每个处理器核均有单独的处理单元和存储媒介。第一个核与FPGA或者外部存储器DDR相连,核间通信顺序产生。核间通信时每个处理器核既是控制核又是计算核,核间传递的信息在每个核内都起到一个中转站的作用。

详细内容,下载附件
TMS320C6678多核DSP的核间通信方法.doc (154.5 KB, 下载次数: 121)

最新回复

谢谢楼主!!   详情 回复 发表于 2020-6-14 21:59
点赞 关注
 

回复
举报

1

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
谢谢楼主
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

板凳
 

谢谢楼主!!

 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表