OMAP-L138核间通信高吞吐量图像处理平台及应用
2016-11-26罗云宜陈奭付威威周哲冯驰
罗云宜,陈奭,付威威,周哲,冯驰
(1.南京理工大学电子工程与光电技术学院,南京210000;2.中国科学院苏州生物医学工程技术研究所)
OMAP-L138核间通信高吞吐量图像处理平台及应用
罗云宜1,2,陈奭2,付威威2,周哲2,冯驰1,2
(1.南京理工大学电子工程与光电技术学院,南京210000;2.中国科学院苏州生物医学工程技术研究所)
异构双核芯片AMR+DSP具有强大的任务管理、人机交互和数据处理功能,为嵌入式图像处理领域提供了一种新的架构。为了减少开发人员对底层驱动的设计,TI研发了Syslink驱动用于核间通信,包括Notify、MessageQ协议等,其中基于MessageQ的通信协议常用于核间图像传输,但其占用资源较多、延迟高。本文对TI公司的达芬奇架构OMAP-L138处理器的多核通信理论进行研究,利用核间中断寄存器和共享内存队列存储机制进行数据交互,实现了一种高吞吐量的图像处理平台。
OMAP-L138;核间通信;共享内存队列机制设计
引 言
随着电子技术和图像处理技术的快速发展,数字图像处理技术已广泛应用于军事、工业视觉、医疗器械、汽车和无人机等领域。实际应用中,考虑能够运行复杂图像处理算法和大数据量的传输作为图像处理平台稳定运行的前提,采用PC机平台能够很好地满足上述条件,但存在系统过于庞大和成本较高等缺点。因此,现阶段基于ARM+ DSP异构双核的嵌入式图像处理平台应运而生[1-2],能够很好满足对系统体积、功耗和实时性要求,充分发挥了ARM的任务管理、人机交互特性和DSP的高速数据处理特性。然而在异构双核处理中,两核的数据通信和同步变得尤为重要,采用德州仪器(TI)官方提供的Syslink[3]工具包能够满足系统的需要,但存在占用资源较多、延迟高的缺点。本文对TI一款低成本、性能较高的OMAPL138芯片的核间通信理论进行研究,提出了一种基于核间中断和共享的内存通信方法,实现了一种高吞吐量的图像处理平台。
1 硬件构成
OMAP-L138双核处理器包含ARM926EJ-S和TMS320C6748内核[4]。ARM926EJ-S采用增强的32位RISC指令集,内部采用多级流水线,加快了处理器的运算速率,ARM与DSP均采用了两级高速缓存架构,二者均可独立操作片载外设资源。本图像处理平台中,ARM负责进行人机交互和流程控制,DSP负责图像数据的接收、处理及处理结果的发送。
1.1 系统组成
图1所示为系统组成框架图,OMAP-L138片上系统包含ARM核心及DSP核心各一个,并包含有常用接口(RS232,I2C,SPI等),用于系统扩展。
视频信号经VPIF接口(Video Port Inter Face)由DSP接收并进行处理,ARM与DSP双核之间通过核间中断和共享内存进行数据交互,然后ARM将接收到的处理结果传输到人机界面输出处理结果,若系统需要,还可以将处理结果进行本地或远程存储。
图1 系统框架图
1.2 内存划分
ARM与DSP双核通信系统基于外部128 MB DDR,由于ARM端运行Linux系统,DSP端根据需要运行SYSBIOS实时操作系统或裸机,其运行环境和数据都存储在DDR中,因此需要进行DDR物理地址划分,用于Linux系统、双核通信共享内存以及DSP,如图2所示。
图2 内存分配
地址0xC200 0000到0xC2FF FFFF的16 MB空间用于双核通信,根据需要包括通信组件和共享内存;地址0xC300 0000到0xC3FF FFFF空间用于DSP,其余空间用于Linux系统。
2 软件构成
本系统中OMAP-L138处理器ARM端搭载Linux,通过Qt开发界面及流程处理程序;DSP端采用SYSBIOS实时系统或裸机程序用于算法处理[5-6]。
2.1 ARM软件系统
图3 Linux体系结构
由于Linux系统可以免费获取、可自由裁减,具有出色的任务管理和人机交互界面,已广泛应用于服务器和嵌入式领域。图3为Linux体系结构图,包括内核空间和用户空间。其中,内核空间包括系统调用、内核和平台架构相关代码。用户程序通过系统调用访问内核资源和服务,同时通过内核来执行平台相关驱动代码。
2.2 DSP软件系统
2.2.1 基于Syslink核间通信
Syslink工具包是通用处理器ARM与DSP进行核间通信的驱动程序。Syslink有一套通用的API函数,从应用层虚拟了ARM与DSP之间的物理连接,降低了程序开发的复杂度。基于Syslink的软件架构图如图4所示。
图4 基于Syslink软件结构图
图像处理算法运行于DSP,通过Syslink来实现ARM 和DSP之间的通信与同步。核间通信模块Syslink为处理器间通信提供了对等的软件协议(如Notify、MessageQ 等)。MessageQ协议基于队列,常用来传输视频数据。
图5所示为基于MessageQ的软件代码流程图。
图5 基于MessageQ的软件代码流程图
软件设计中,定义DSP处理器ID为0,ARM处理器ID为1,分别调用MultiPro_getID()得到对方的ID,然后通过Ipc_control()、Ipc_start()和Ipc_attach()来实现ARM与DSP的连接和握手,最后调用相关MessageQ的API实现双核通信。
2.2.2 基于高吞吐量核间通信
OMAP-L138处理器提供了核间通信的消息触发机制,本系统采用核间中断寄存器和共享内存机制来实现双核间数据的收发。设定CHIPSIG(中断寄存器)和CHIPSIG_CLR(中断清除寄存器)的0~1位为ARM中断,2~4位为DSP中断,通过置位相应位来产生硬件中断。通过编写中断服务程序来处理接收到的消息,以建立握手协议。图6为通信握手协议。
图6 通信握手协议
通信握手协议建立以后,ARM和DSP端都获得了共享内存基地址和图像数据大小。如图7所示,ARM和DSP端采用队列形式实现图像数据传输,采用单变量增减方式实现队列资源计数。为了快速实现数据的存取,本文将共享地址前12字节作为全局共享数据结构,定义如下数据结构:
图7 图像数据队列结构传输
msgCnt为队列资源计数器,armCnt为ARM读指针在共享内存中读取图像数据偏移量,dspCnt为DSP写指针在共享内存中存放图像数据偏移量。例如,设置队列资源最大为10个,当DSP存放数据在第一个位置后,msgCnt加1同时触发ARM核,DSP读取一组数据后并触发DSP,msgCnt减1,相应的armCnt和dspCnt加1,当有一个达到最大值10时,相应的指针回到原点,并清零相应的地址偏移计数器。
(1)通信机制设计
通信机制如图8所示,图像传感器采集的视频信号通过DMA通道传输到DDR,启动Cache机制,加速DDR与1级、2级缓存之间的数据传输,DSP处理完成后将数据存放到共享内存的队列中,同时将队列资源计数器加1,然后触发ARM核;ARM核根据资源计数器值大小读取数据并触发DSP,队列资源计数器减1。
图8 通信机制整体框图
(2)ARM与DSP驱动设计
ARM端Linux系统由于受到保护机制的制约,不能直接访问实际内存地址,可以通过虚拟内存映射机制来实现物理寄存器和共享内存基地址的间接访问。触发DSP中断时,先将CHIPSIG寄存器地址虚拟映射到用户空间,然后置位CHIPSIG[2]或CHIPSIG[3]为1,最后由硬件机制触发DSP中断,核心代码如下:
映射成功后的虚拟地址可以直接赋值置位核间中断寄存器,如:*virt_addr=1<<2。ARM端以轮询方式查询外部核间中断寄存器值是否置1,最后根据read()的input event事件判断是哪个中断位,并作出相应的操作。
通过CMD文件配置,DSP程序可以直接访问物理地址,将DSP处理后的数据直接放到共享内存中。DSP中断需开启DSP中断、全局中断、映射中断函数到指定中断号以便使能中断等操作。其中DSP接收ARM的中断处
理函数如下:
(3)软件工作流程
软件流程如图9、图10所示,双核握手之后开始协同运行。与人机交互相关的全局变量Process_over控制整个软件的运行,通过核间中断触发来控制msgCnt值,DSP 与ARM分别根据偏移量大小存放和读取数据。
图9 ARM端软件流程
图10 DSP端软件流程
3 实验结果
图11为实验所测得的数据,可以看出,在传输图像数据时,高吞吐量要比Syslink工具包中MessageQ组件节省大量的时间。在图像为320×240×16位色分辨率时,对比Syslink与本系统实现的高速核间数据通信,其耗时相差3倍左右,随着图像分辨率和数据量的增加,系统延时差别逐渐减小,至1280×1024×16位色时,系统延时虽然十分接近,但仍然有接近3.7 ms左右的时差。因此,本方法实现的核间数据通信,非常适合突发式、大批次、小数据量的数据传输。
图11 Syslink与高吞吐量时间延迟
结 语
为了满足ARM与DSP核间通信数据延迟的需要,本文提出了一种自定义的核间通信方法,通过硬件中断消息机制实现握手协议和数据传输协议。随后,通过实验对比可知,该方法比Syslink延迟要小得多,能够满足实时性的要求。基于核间触发中断机制和共享内存实现双核通信,为更高端的异构芯片提供了一种方案,在工程上具有一定的应用价值。
[1]谢维波,贺文强.基于OMAPL138的视频监控烟雾检测系统[J].计算机工程与应用,2015,51(20):183-187.
[2]冯强,胡毅,于东,等.基于OMAP处理器的核间通信机制设计与实现[J].计算机工程,2014,40(4):281-286.
[3]Texas Instruments.Building Syslink Applications Version 2. 21.01.05,2012.
[4]Texas Instruments.OMAP-L138 DSP+ARM Processor Technical Reference Manual,2011.
[5]赵加祥.DSP系统设计和BIOS编程应用实例[M].北京:机械工业出版社,2008.
[6]刘纪红,叶柠,尚奎,等.DSP+ARM双核处理器OMAPL138开发入门[M].北京:清华大学出版社,2013.
罗云宜(硕士研究生),主要研究方向为嵌入式系统与图像处理应用;陈奭(助理研究员),主要研究方向为嵌入式系统与图像算法研究;冯驰(硕士研究生),主要研究方向为嵌入式软件与光学设计。
High-throughput Capacity Image-processing Platform Based on OMAP-Ll38 Inter-core Communication
Luo Yunyi1,2,Chen Shi2,Fu Weiwei2,Zhou Zhe2,Feng Chi1,2
(1.School of Electronic Engineering and Optoelectronic Technology,Nanjing University Science and Technology,Nanjing 210000,China; 2.Suzhou Institute of Biomedical Engineering and Technology Chinese Academy of Science)
The heterogeneous dual-core chip AMR+DSP has a powerful function of task management,human-computer interaction and data processing,which also provides a new framework for embedded image processing.In order to reduce the underlying driven design for developers,TI has developed Syslink driver for inter-core communications,including Notify,MessageQ protocols and so on,among which the communication protocol based on MessageQ is commonly used in inter-core image transmission design,but it has resource intensive and high latency.In the paper,we focus on the multi-core communication theory of OMAP-L138 processor which has the Da Vinci framework,taking advantage of the inter-core interrupt registers and the shared memory queue storage mechanism to realize the data interaction,and finally a high-throughput image processing platform is achieved.
OMAP-L138;inter-core communication;shared memory queue mechanism
TP317
A
(责任编辑:薛士然2016-05-09)