执行直接存储器访问的方法和装置的制作方法

文档序号:6594097阅读:233来源:国知局
专利名称:执行直接存储器访问的方法和装置的制作方法
技术领域
本发明涉及执行直接存储器访问(direct memory access)的方法和装置。
背景技术
在通常的IPTV系统的机顶盒(STB)中,有时采用LINUX操作系统,其中以CPU 模式进行数据传输。LINUX操作系统中的存储器可以被分为两个区域内核空间(kernel space)和用户空间(user space)。内核空间是内核(操作系统的核心)执行并提供其服 务的地方。用户空间是运行用户进程(即除了内核之外的任何空间)的一组存储器位置。用户进程只能通过利用系统调用(system call)访问内核空间。系统调用是类似 Unix操作系统中由活动进程对于由内核执行的服务的请求,例如输入/输出(I/O)或者进 程创建。在从LINUX内核空间向用户空间、然后从用户空间再向内核空间的数据传输过程 中,存在太多系统调用和上下文切换(context switch),其导致过多CPU消耗。因此在这种 条件下系统性能不是很好。但是由于某种原因,大多数IPTV应用都采用这种方案。直接存储器访问(DMA)是允许将数据从存储位置或区域直接发送至另外的设备 或存储器的有效方法。当使用DMA时,CPU不用参与数据传输,从而加速了总的计算机运算。 DMA对于高性能嵌入系统是不可缺少的。"NetFilter hook”是LIN UX内核中十分有用的工具,其提供程序以从不同等级 的LINUX IP栈中“盗窃” IP包,从而所述程序可以从内核空间直接向数据消费者发送传输 流(化)数据(UDP有效载荷)。似乎DMA技术可以用于IPTV。但是大部分硬件平台,例如(由STMicroelectronics公司开发的)STi7100 和STi7109,DMA信道具有一些限制和特殊的使用策略,例如源和目的基本地址(kise address)的对齐(aligning)要求、传输长度的对齐要求以及是否支持链式DMA等。在此情 况下,假定使用STi7109硬件平台,在这种体系结构下,其FDMA (—种类型的DMA)设备要求 源基本地址必须以4字节对齐,传输长度必须以32字节对齐。但是,很明显IPTV系统中的传输源是UDP有效载荷列表。请参看图1,其示出了 用于将TS包封包(packing)为UDP包的传统封包方法。在基于UDP协议的IPTV系统(TS over UDP)中,通过TS封包装置将TS数据包格式化(packetize)为UDP包。TS包的长度 是188字节。对于以太网,数据链路层的MTU(最大传输单元)是1500字节。这意味着长 度大于MTU的IP包必须由MTU切割。为了避免由切割IP包造成TP碎片(fragment),一般 而言,IPTV前端系统将TS数据封包至具有1472字节限制的UDP (有效载荷长度=MTU-IP 头-UDP头)中,其中IP头通常占有20字节,UDP头为8字节。当考虑到这一点,一个UDP 包只封包1-7个TS包。因此FDMA不能传输UDP有效载荷,因为传输长度无法以32字节对 齐。因此,通常必须使用CPU模式的传输以处理未对齐字节。这意味着无法获得最优性能。

发明内容
根据本发明的第一方面,提供了一种用于从第一设备向第二设备传输数据的方法。所述方法包括在第一设备的数据中加入至少一个NULL包(空包)以满足第二设备的 对齐要求,并将所述数据和所述至少一个NULL包封包为新包;并将所述新包从所述第一设 备传输至所述第二设备。另外,从所述第一设备传输至所述第二设备的数据为音频和/或视频传输流。在一个实施例中,以所述数据和所述至少一个NULL包封包的所述新包为UDP包。另外,所述至少一个NULL包具有标识符以进行标记。根据所述发明的第一方面,利用直接存储器访问方法将所述新包从第一设备传输
至第二设备。根据本发明的第二方面,提供了一种用于从第一设备向第二设备传输数据的装 置。所述装置包括处理器,用于在第一设备的数据中加入至少一个NULL包以满足第二设 备的对齐要求,并将所述数据和所述至少一个NULL包封包为新包;和将所述新包从所述第 一设备传输至所述第二设备的模块。在所述装置中,所述数据为音频和/或视频传输流。在所述装置中,所述新包为UDP包。另外,在所述至少一个NULL包具有标识符以进行标记。在所述装置中,具有直接存储器访问模块,用于利用直接存储器访问方法将所述 新包从第一设备传输至第二设备。


结合附图考虑下面的详细说明更容易理解本发明。附图的简要说明如下图1示出了用于将TS包封包至UDP包中的传统封包方法;图2是根据本发明的示例性STB系统的示意图;图3示出了根据本发明的将TS包封包至UDP包中的示例性封包方法;图4是根据本发明的将TS包封包至多个UDP包中的示例性封包方法的示意图。
具体实施例方式请参看图2,图2是根据本发明的示例性STB系统的示意图。STB 200包括CPU内核1,其可以是处理器;FDMA设备2,用于执行FDMA方法; 网卡3,用于从IP服务器接收传输流(TS) ;DDRAM 5,用于存储从网卡3接收的TS数据; DEMUX (解复用器)6,用于解复用多路复用的TS输入以选择特定视频或音频内容;和音频/ 视频解码器7,用于解码解复用的音频/视频数据。下面参照附图2和3介绍详细的处理流程。首先,STB通过网卡3接收音频/视 频UDP包。然后FDMA设备2利用直接存储器访问(DMA)方法将接收的音频/视频UDP包 发送至存储器DDRAM 5并且将所述包存储在DDRAM 5的预先分配的区域内。具体而言,在 DDRAM 5中,NULL包被添加至接收的UDP TS包以通过CPU内核1重组所述包,如图3所示。以32字节对齐为例进行说明。因为在IPTV系统中最多可以封包7个TS包,每个 TS包为188字节长,通过CPU内核将一个NULL包添加至UDP包的末端。因此,可以满足对 齐要求,因为(7+1)Χ188 = 1504字节,其可以除以32。另外,也可以加入其他数量的NULL 包。例如,当封包5个TS包时,可以加入3个NULL包以使得有效载荷为(5+3)X188 = 1504字节,其也可以除以32。通过利用此方法,FDMA设备2可以利用DMA方法传输UDP有效载荷。根据DVB标准(例如IS0/IEC13818-1),每个TS包具有13位PID (包标识符)以 指示其有效载荷的内容,并且PID OxlFFF是为NULL包保留的。DVB终端系统(例如STB) 可以通过校验TS的PID重组TS包。当添加NULL包时,PID OxlFFF用于标识它们。表 1ITU-T Rec. H. 222. 0 | IS0/IEC 13818 传输包
权利要求
1.一种用于从第一设备向第二设备传输数据的方法,其特征在于,包括在第一设备的数据中加入至少一个NULL包以满足第二设备的对齐要求,并将所述数 据和所述至少一个NULL包封包为新包;并且将所述新包从所述第一设备传输至所述第二设备求。
2.根据权利要求1所述的方法,其中利用直接存储器访问方法将所述新包从第一设备传输至第二设备。
3.根据权利要求2所述的方法,其中所述至少一个NULL包具有至少一个标识符以进行标记。
4.根据权利要求3所述的方法,其中 所述数据为音频和/或视频传输流。
5.根据权利要求4所述的方法,其中 所述新包为UDP包。
6.一种用于从第一设备向第二设备传输数据的装置000),其特征在于,包括 处理器(1),用于在第一设备的数据中加入至少一个NULL包以满足第二设备的对齐要求,并将所述数据和所述至少一个NULL包封包为新包;和将所述新包从所述第一设备传输至所述第二设备的模块(2)。
7.根据权利要求6所述的装置000),其中所述模块( 为直接存储器访问模块,用于利用直接存储器访问方法将所述新包从第 一设备传输至第二设备。
8.根据权利要求7所述的装置000),其中所述至少一个NULL包具有至少一个标识符以进行标记。
9.根据权利要求8所述的装置000),其中 所述数据为音频和/或视频传输流。
10.根据权利要求9所述的装置000),其中 所述新包为UDP包。
全文摘要
一种用于从第一设备向第二设备传输数据的方法。所述方法包括在第一设备的数据中加入至少一个NULL包以满足第二设备的对齐要求,并将所述数据和所述至少一个NULL包封包为新包;并将所述新包从所述第一设备传输至所述第二设备。本发明还提供了一种用于利用上述方法的装置。
文档编号G06F13/28GK102077184SQ200980125065
公开日2011年5月25日 申请日期2009年6月19日 优先权日2008年7月1日
发明者唐锐, 屈冬生, 曹雪林 申请人:汤姆逊许可公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1