前言
嵌入式领域的处理器已向多核架构迅速发展,TI公司的KeyStone架构的TMS320C6678是目前市面上性能最高的多核DSP处理器。TMS320C6678集成8核C66x DSP处理器,每个内核频率高达1.25 GHz,提供每秒高达40 GMAC定点运算和20 GFLOP浮点运算能力;1片TMS320C6678提供等效达10 GHz的内核频率,单精度浮点并行运算能力理论上可达160 GFLOP,是TS201S的50倍、C67x+的115.2倍,适合于诸如油气勘探、雷达信号处理、图像处理以及定位导航等对定浮点运算能力及实时性有较高要求的超高性能计算应用。
然而,核间通信是多核处理器系统所面临的主要难点,通信机制的优劣直接影响多核处理器的性能,高效的通信机制是发挥多核处理器高性能的重要保障。
创龙科技(Tronlong)专注于DSP、ARM、FPGA多核异构技术开发,本文为您介绍TMS320C6678处理器开发中比较常用的两种多核通信方式:TI-IPC和OpenMP,以及多核编程注意事项。
1 硬件平台
本文基于创龙科技TL6678-EasyEVM评估板进行演示。
TL6678-EasyEVM是一款基于TI KeyStone架构C6000系列TMS320C6678八核C66x定点/浮点高性能处理器设计的高端多核DSP评估板,由核心板与底板组成。核心板经过专业的PCB Layout和高低温测试验证,稳定可靠,可满足各种工业应用环境。
评估板接口资源丰富,引出双路千兆网口、SRIO、PCIe等高速通信接口,方便用户快速进行产品方案评估与技术预研。
TL6678-EasyEVM评估板
开发案例主要包括:
(1) 裸机开发案例
(2) RTOS(SYS/BIOS)开发案例
(3) IPC、OpenMP多核开发案例
(4) SRIO、PCIe、双千兆网口开发案例
(5) 图像处理开发案例
(6) DSP算法开发案例
(7) 串口、网络远程升级开发案例
C66x DSP视频教程、中文手册、产品资料(用户手册、核心板硬件资料、产品规格书)可点:site.tronlong.com/pfdownload 直接获取。
2 TI-IPC
2.1 简介
TI-IPC(Inter-Processor Communication)组件提供与处理器硬件无关的API,可用于多核处理器核间通信、同一处理器进程间通信和设备间通信。API支持消息传递、流和链接列表,它们在单处理器和多处理器中配置均可兼容。
TI-IPC被设计在运行SYS/BIOS应用程序的处理器上使用,一般为DSP处理器(如TMS320C6678、TMS320C6657),但在某些情况下亦可能是ARM处理器。
IPC常见的通信模块如下:
表1
Ipc |
提供Ipc_start()函数,并允许配置启动顺序 |
MessageQ |
大小可变的消息传递模块 |
Notify |
以中断方式实现轻量数据传输的模块 |
ListMp |
用于实现对链接列表的互斥访问 |
GateMp |
用于实现对共享资源的互斥访问 |
HeapBufMp |
大小固定的共享内存堆 |
HeapMenMp |
大小可变的共享内存堆 |
SharedRegion |
用于维护共享内存区域 |
List |
用于创建双向链接列表 |
MultiProc |
用于管理多核处理器核心ID < |