首页> 中国专利> 一种降低并行多数字信号处理器之间消息传递开销的方法

一种降低并行多数字信号处理器之间消息传递开销的方法

摘要

本发明公开了一种降低并行多数字信号处理器之间消息传递开销的方法。该方法中,各数字信号处理器之间通过LINK口收发数据,发送方数字信号处理器在发送数据前,首先发送一个控制帧指明后面所发数据类型及长度等,接收方数字信号处理器根据所收到帧的类型和长度设置相应的接收地址及接收数据长度,然后发送方数字信号处理器再发送实际的数据帧,这样就可以把数据直接传输到目的地,无需双缓冲区,既节省了存储空间,又省去了数据拷贝时间。本发明通过DMA及其中断处理程序实现了真正意义上的消息零拷贝通信,最大程度地减少了DSP核的负担,大大缩短了通信开销,取得了很好的实践效果。

著录项

  • 公开/公告号CN101163129A

    专利类型发明专利

  • 公开/公告日2008-04-16

    原文格式PDF

  • 申请/专利权人 北京航空航天大学;

    申请/专利号CN200610113617.X

  • 发明设计人 李波;葛宝珊;姜宏旭;

    申请日2006-10-09

  • 分类号H04L29/02(20060101);H04L25/02(20060101);

  • 代理机构11100 北京北新智诚知识产权代理有限公司;

  • 代理人陈曦

  • 地址 100083 北京市海淀区学院路37号

  • 入库时间 2023-12-17 20:02:40

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2009-05-20

    授权

    授权

  • 2008-06-11

    实质审查的生效

    实质审查的生效

  • 2008-04-16

    公开

    公开

说明书

技术领域

本发明涉及一种能够降低基于消息传递机制的松耦合并行处理系统中,多个数字信号处理器(简称为DSP)之间消息传递开销的方法,属于信号处理及通信技术领域。

背景技术

目前,DSP在信号处理领域,尤其是在图像信号处理方面正在被广泛使用。然而,随着对于信号处理板的处理能力要求越来越高,例如,对于高帧数、大尺寸的图像序列的实时处理,往往要求每秒几十亿次的运算能力,目前单片DSP的运算能力不可能满足其要求,这就需要信号处理板在设计时采用多DSP并行处理结构,以满足系统对运算量的要求。

在基于消息传递机制的松耦合并行DSP系统中,高效通信技术一直是人们研究的热点。但现有的通信协议机制没有结合硬件和应用特点,通信开销较大。这里的通信开销主要包括:网络接口;通信延迟,它是指从消息的第一个比特发送到网上到最后一个比特被接收的时间;发收开销,它是指发送、接收一个消息花费的处理机时间,主要由通信协议、应用接口、操作系统引起。减小通信开销的有效途径是改善网络接口,减小通信延迟和降低发收开销。

图1显示了两个DSP中存在的数据传输流向示意图。有关实验表明:①通过存储器拷贝一个32位字平均所需内核时钟周期数:片内存储器之间为2.19个,片内与片外存储器之间为15.00个;②通过LINK口传输一个字平均所需内核时钟周期数:收发双方都是片内存储器时为4.02个,有一方是片外存储器时为15.01个。可见,不同DSP之间消息数据的拷贝时间与消息传输时间相比显得很长,已不可忽略,因此消除不必要的消息数据拷贝,对于减小通信开销作用很大。

目前,随着高速网络的发展,网络传输速度越来越快,网络带宽已经非常接近内存拷贝的速度,这时昂贵的内存拷贝操作给高速通讯带来的影响也日益明显。为了减少内存拷贝操作所带来的不利影响,许多人对零拷贝技术进行了研究,例如有人提出了EMP(Ethernet Message Passing)思想,绕过操作系统,实现了零拷贝的网络传输处理。还有人通过核心态的物理内存页与用户缓冲区的存储器重映射实现零拷贝。

在嵌入式系统中,由于嵌入式系统资源受限,应用零拷贝机制可减少用于数据传输的存储器使用量和CPU的处理时间,降低功耗,其意义更加明显。有人在LyraNET研究平台上设计实现了零拷贝嵌入式TCP/IP协议。该协议取消了数据拷贝开销,当数据要发送到网络时,用户数据直接写到NIC(Network Interface Controller)。接收时先直接把接收的数据拷贝到主机存储器中,等协议处理完成后,再用存储器重映射方式传输到用户缓冲区。另外,VxWorks提供的ZBUF套接字使用零拷贝缓冲区,能够避免消耗时间的数据拷贝。与使用标准的BSD套接字的用户一样,使用ZBUF套接字的用户可以使用两种类型的套接字:流套接字(采用TCP协议)和数据报套接字(采用UDP协议)。

但是,现行的零拷贝技术往往是利用DMA和存储器重映射等实现数据包在用户缓冲区与核心态缓冲区之间的零拷贝,通信协议的其它部分没有本质改变,而且由于没有与具体硬件和应用紧密结合,还不能算是真正意义上的零拷贝,仍有潜力可挖。另外,现有技术中都没有将数据从所在存储器直接取出通过通信接口发送出去,也没有将接收的数据直接放入目的存储器中,其间仍需一次拷贝,如果能去掉这一拷贝过程则可进一步减小通信开销。

发明内容

本发明的目的是提供一种降低并行多数字信号处理器之间消息传递开销的方法。该方法充分挖掘利用DSP的硬件特性,去掉所有的冗余消息拷贝,从而实现更高效的通信。

为实现上述发明目的,本发明采用下述技术方案:

一种降低并行多数字信号处理器之间消息传递开销的方法,各数字信号处理器之间通过LINK口收发数据,其特征在于:

发送方的数字信号处理器在发送数据前,首先发送一个控制帧指明后面所发数据类型及长度等,接收方的数字信号处理器根据所收到帧的类型设置相应的接收地址,然后发送方的数字信号处理器再发送实际的数据帧。

其中较优地,数据帧与控制帧分开,控制帧具有4个字节控制字段、4个字节长度字段、4个字节目的地址字段、4个字节块号字段和1个字节校验和字段;数据帧只包含纯粹的数据和校验和字段。

发送方在发送数据之前,首先以控制帧的形式发一个数据发送请求帧,告知对方要发送的数据类型及其长度,接收方接收到所述数据发送请求帧后,发送一个应答帧,并设置接收DMA参数中的相应接收地址和接收长度;发送方待接收方确认后,发送数据帧,接收方收完数据帧后发送一应答帧;如果应答帧为确认帧,则数据发送成功,否则要重发。

发送方在建立连接时,发送一个4字节的连接请求帧,收到肯定应答后建立连接;发送方在拆除连接时,发送一个4字节的拆除连接请求帧,收到肯定应答后拆除连接。

在不同数字信号处理器之间,采用DMA方式进行数据传输。

在采用DMA方式传输数据时,首先正确设置相应发送DMA的TCB寄存器,包括地址、长度和控制信息;然后设置相应LINK口发送控制寄存器,包括速率、位宽和使能发送信息;最后设置相应的通道为忙状态。

本发明所提供的降低并行多数字信号处理器之间消息传递开销的方法通过DMA及其中断处理程序,实现了真正意义上的消息零拷贝通信,最大程度地减少了DSP核的负担,大大缩短了通信开销,取得了很好的实践效果。

附图说明

下面结合附图和具体实施方式对本发明作进一步的说明。

图1为两个DSP中存在的数据传输流向示意图。

图2为统一帧的帧结构示意图。

图3为采用的控制帧和数据帧的帧结构示意图。

图4为不同DSP之间建立连接的流程示意图。

图5为不同DSP之间发送数据的流程示意图。

图6为不同DSP之间拆除连接的流程示意图。

图7为数据发送方的状态机示意图。

图8为数据接收方的状态机示意图。

具体实施方式

本发明是为了解决多DSP系统中,DSP之间通过高速LINK口通信,要求DSP之间通信延迟尽量低,通信的源端和目的端既可以是快速片内存储器也可以是相对较慢的片外存储器的要求而提出的。为了满足这一技术要求,本发明所述的方法以零拷贝技术为基础。

零拷贝技术可以降低传统操作系统的通信开销,减少协议层次以及相应的协议间拷贝次数,有效地提高通信的性能。它主要包括以下两个方面:

(1)创建有效的用户级通信接口,消除系统内核中不必要的拷贝过程。

(2)路由器的入端到出端的直接数据传输,即接收的报文只经过一次存储器缓冲,而缓冲队列中的报文经过必要的控制信息处理后,直接传送到输出端口发送出去,实现报文快速转发。

本发明是针对嵌入式系统而设计的,不额外采用专门的通信部件如网卡来处理通信事务。这样,所有压缩处理和通信任务都要由DSP来完成,而且DSP要以图像压缩处理为主。因此,通信协议的处理只能通过中断处理程序完成,数据传输采用DMA方式,以减轻DSP核的负担。

在通信过程中,DSP之间流动的数据种类不同(如图像数据和压缩数据),它们都有各自固定的接收地址(有的是快速的片内存储器,有的是相对慢速的片外存储器),供应用程序使用。如果采用双缓冲区结构,可以对某类数据(如图像数据)用传递指针的方式去除该类数据拷贝的开销,但由于其它类型数据(如压缩数据)需要放在片外存储器中,而且事先并不知道传输的是哪类数据,还不能完全避免各种数据拷贝开销,而且浪费了存储空间。因此本发明中,不使用双缓冲区结构。

本发明所采用的处理方法是这样的:

发送方在发送数据前,先发送一个控制帧指明后面所发数据类型及长度等,接收方根据所收到帧的类型设置相应的接收地址,然后发送方再发送实际的数据,这样就可以直接传输到目的地,无需双缓冲区,既节省了存储空间,又省去了数据拷贝时间,减少了系统通信开销。

为了进一步减小多DSP之间消息传送的开销,本发明在设计帧格式时,在现有常用通信协议帧格式的基础上采取如下措施:

(1)去掉标志字段

DSP之间通过LINK口收发数据的过程可设计成:接收方总是先启动接收DMA,接收完一帧数据后,在其DMA完成中断处理程序中马上又启动接收DMA;发送方需要时才通过发送DMA连续发送一帧。在发送方不发送数据时,时钟线不使能,接收方也收不到任何数据。利用DSP所提供的DMA传输机制完全可以保证数据收发的完整性,无需标志作为帧的前导和后缀。

(2)去掉地址字段

由于通道是专用的,没有必要用地址字段。

(3)数据段长度增大

(4)结合DSP所提供的数据传输机制特点

为了减少DSP核的负担,以便腾出更多的时间去进行计算,数据传输要通过DMA在后台进行,每次DMA传输数据的最大长度为256KB。为了一次传输256KB的数据,在一次DMA传输中就不能增加其它信息,这对帧的格式提出了挑战和限制。

综合以上考虑,满足上述要求的统一帧格式如图2所示。其中,控制字段表示帧的类型,包括:连接请求,连接请求确认,连接请求否认;图像数据,图像数据发送确认,图像数据发送否认;压缩码流数据,压缩码流数据发送据确认,压缩码流数据发送否认;文件名数据,文件名数据发送确认,文件名数据发送否认;关闭连接请求,关闭连接请求确认,关闭连接请求否认等。

但是,采用统一帧格式传输数据存在种种弊端,如:造成接收数据地址不连续,浪费宝贵的片上存储空间,冗余的数据拷贝造成通信开销增加等。因此,本发明另外定义两类帧格式,一类是控制帧,另一类是数据帧,见图3。采用控制帧与数据帧分开并结合的方式既可节省宝贵的片上存储空间,实现消息零拷贝,减少通信开销,避免接收数据地址不连续,又给应用带来了极大的灵活性。

在实际传输消息数据时,需要使数据帧独立于控制帧,即前面先发一个控制帧用于指明下一帧的类型(图像数据、压缩数据或文件名数据,它们的接收地址不同)和长度等,后面跟一个“纯粹”的数据帧或数据帧链。接收方可以根据收到的控制帧来选择设置恰当的接收地址,使有效数据“直达目的地”,减少不必要的数据拷贝开销,实现消息的零拷贝。

下面具体介绍利用本发明所提供的方法实现的一次完整的通信过程。该通信过程包括建立连接,发送数据和拆除连接。由于本发明中通道为专用全双工通道,只需建立一次连接,便成为永久性连接,可以一直用于传输数据,无需重复连接的拆除和再建立过程,直到整个应用中止,省去了多余的过程,节省了通信时间。

(1)建立连接流程

各LINK口在进行通信之前,应先建立连接,确认对方的存在和就绪,然后再发送真正的数据,否则返回超时错误信息。建立连接过程为发送方发一个4字的连接请求帧,然后启动定时器并等待接收对方的应答信息。对方如果准备就绪就会发一个肯定的应答,连接成功;否则发一个否定的应答或没有应答。如果在定时器超时时,对方仍无应答,则重起定时器等待,直到3次超时仍无回答,则认为对方没准备好,连接失败;如果对方为否定应答,则发送方等待一段时间后再发连接请求,重复上述过程。其流程图如图4所示。

(2)发送数据流程

在发送数据之前,首先发送方发一个数据发送请求帧,告知对方要发送的数据类型(可以是文件名、原始图像数据或压缩数据)及其长度,以便接收方正确设置接收DMA参数中的相应接收地址和接收长度,从而保证下次指定数量的数据传输完成后,产生DMA传输完成中断并进行相应的处理。接收方在接收到数据发送请求后,应发送一个应答帧。应答帧可以是确认帧,也可以是否认帧。等对方确认后,发送方才发送真正的数据帧,接收方收完数据帧后发送一应答帧。如果应答帧为确认帧,则数据发送成功,否则要重发。其流程图如图5所示。

(3)拆除连接流程

拆除连接的过程为发送方发一个4字的拆除连接请求帧,然后启动定时器并等待接收对方的应答信息。对方如果同意拆除就会发一个肯定的应答,拆除成功;否则发一个否定的应答或没有应答。如果在定时器超时时,对方仍无应答,则重起定时器等待,直到3次超时仍无回答,则认为对方没应答,拆除连接失败;如果对方为否定应答,则发送方等待一段时间后再发拆除连接请求,重复上述过程。其流程图如图6所示。

下面介绍实现上述通信过程关键的收发中断处理程序及协议收发状态机

由于DSP以处理图像压缩为主,并且没有采用专门的通信部件处理通信事务,而是由DSP完成,为了让DSP核腾出更多的时间来进行图像压缩处理,数据通信及其协议主要是在中断处理程序中完成的,并采用DMA方式传输数据,使得传输数据和压缩处理并行进行,只有当数据传输完成时才产生中断,在中断处理程序中按协议规则进行处理。因此,中断处理程序是实现协议的关键,它可以进一步分为发送DMA传输完成中断处理程序和接收DMA传输完成中断处理程序,主要由它们实现并维护发送方和接收方通信协议状态机,主程序或其它中断处理程序可触发相应事件。为便于理解主要思想,图7和图8分别给出了发送方和接收方都正常情况下的部分通信协议状态机,图中只画出建立连接、收发图像数据和拆除连接时的情况,对于其它情况和发生错误或超时情况未予画出。

以上对本发明所提供的降低并行多数字信号处理器之间消息传递开销的方法进行了详细的说明。对本领域的一般技术人员而言,在不背离本发明实质精神的前提下对它所做的任何显而易见的改动,都将构成对本发明专利权的侵犯,将承担相应的法律责任。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号