CN102077184A - 执行直接存储器访问的方法和装置 - Google Patents
执行直接存储器访问的方法和装置 Download PDFInfo
- Publication number
- CN102077184A CN102077184A CN2009801250656A CN200980125065A CN102077184A CN 102077184 A CN102077184 A CN 102077184A CN 2009801250656 A CN2009801250656 A CN 2009801250656A CN 200980125065 A CN200980125065 A CN 200980125065A CN 102077184 A CN102077184 A CN 102077184A
- Authority
- CN
- China
- Prior art keywords
- bag
- equipment
- data
- null
- transmission
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
Abstract
一种用于从第一设备向第二设备传输数据的方法。所述方法包括:在第一设备的数据中加入至少一个NULL包以满足第二设备的对齐要求,并将所述数据和所述至少一个NULL包封包为新包;并将所述新包从所述第一设备传输至所述第二设备。本发明还提供了一种用于利用上述方法的装置。
Description
技术领域
本发明涉及执行直接存储器访问(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包,从而所述程序可以从内核空间直接向数据消费者发送传输流(TS)数据(UDP有效载荷)。似乎DMA技术可以用于IPTV。
但是大部分硬件平台,例如(由STMicroelectronics公司开发的)STi7100和STi7109,DMA信道具有一些限制和特殊的使用策略,例如源和目的基本地址(base 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)X188=1504字节,其可以除以32。另外,也可以加入其他数量的NULL包。例如,当封包5个TS包时,可以加入3个NULL包以使得有效载荷为(5+3)X188=1504字节,其也可以除以32。通过利用此方法,FDMA设备2可以利用DMA方法传输UDP有效载荷。
根据DVB标准(例如ISO/IEC13818-1),每个TS包具有13位PID(包标识符)以指示其有效载荷的内容,并且PID 0x1FFF是为NULL包保留的。DVB终端系统(例如STB)可以通过校验TS的PID重组TS包。当添加NULL包时,PID 0x1FFF用于标识它们。
表1
ITU-T Rec.H.222.0|ISO/IEC 13818传输包
在表1中,在视频/音频的有效载荷之后和在NULL包的开始有4个字节分别被设置为0x47、0xFF、0xFF和0x10,其中将“0x47”分配至Sync_byte以显示该包为TS包,“0xFF”是填充字节,根据所述标准,当包为NULL包是将“0x10”分配至“adaption_field_control”。
此重组可以在数据被发送至DEMUX设备之前的任何时间进行。然后可以使用如图4所示的链式FDMA。这是因为普通模式的FDMA传输只有当传输源是固定或者线性增加/减小地址并且目的地也是固定或线性增加/减小地址时才能工作。在这种情况下,传输源是分散存储器区域。因此FDMA设备2利用链式FDMA(Gather模式)将重组的TS包传输至DEMUX 6。请注意,传输长度必须是有效TS包和填充NULL包的和,这一点非常重要。
然后,DEMUX 6通过NULL包的PID识别NULL包并将其除去。随后,将有效TS数据发送至音频/视频解码器7以进行解码。
STB 200中的数据传输通过总线进行并由CPU内核1进行控制,特别是NULL包添加。
虽然结合实施方式对本发明进行了说明,但在本发明的原理和范围之内可以进行进一步的修改。因此本申请意在包括本发明的原理的各种变化、应用和修改。另外,与本发明虽有不同,但属于本领域公知技术的改变,也属于本发明的范围之内,所述范围由所附权利要求限定。
Claims (10)
1.一种用于从第一设备向第二设备传输数据的方法,其特征在于,包括:
在第一设备的数据中加入至少一个NULL包以满足第二设备的对齐要求,并将所述数据和所述至少一个NULL包封包为新包;并且
将所述新包从所述第一设备传输至所述第二设备求。
2.根据权利要求1所述的方法,其中:
利用直接存储器访问方法将所述新包从第一设备传输至第二设备。
3.根据权利要求2所述的方法,其中:
所述至少一个NULL包具有至少一个标识符以进行标记。
4.根据权利要求3所述的方法,其中:
所述数据为音频和/或视频传输流。
5.根据权利要求4所述的方法,其中:
所述新包为UDP包。
6.一种用于从第一设备向第二设备传输数据的装置(200),其特征在于,包括:
处理器(1),用于在第一设备的数据中加入至少一个NULL包以满足第二设备的对齐要求,并将所述数据和所述至少一个NULL包封包为新包;和
将所述新包从所述第一设备传输至所述第二设备的模块(2)。
7.根据权利要求6所述的装置(200),其中:
所述模块(2)为直接存储器访问模块,用于利用直接存储器访问方法将所述新包从第一设备传输至第二设备。
8.根据权利要求7所述的装置(200),其中:
所述至少一个NULL包具有至少一个标识符以进行标记。
9.根据权利要求8所述的装置(200),其中:
所述数据为音频和/或视频传输流。
10.根据权利要求9所述的装置(200),其中:
所述新包为UDP包。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP08305367A EP2141605A1 (en) | 2008-07-01 | 2008-07-01 | Method and device to perform direct memory access |
EP08305367.8 | 2008-07-01 | ||
PCT/EP2009/057658 WO2010000628A1 (en) | 2008-07-01 | 2009-06-19 | Method and device to perform direct memory access |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102077184A true CN102077184A (zh) | 2011-05-25 |
Family
ID=39864834
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009801250656A Pending CN102077184A (zh) | 2008-07-01 | 2009-06-19 | 执行直接存储器访问的方法和装置 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20110096774A1 (zh) |
EP (2) | EP2141605A1 (zh) |
CN (1) | CN102077184A (zh) |
TW (1) | TW201005538A (zh) |
WO (1) | WO2010000628A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2641569C (en) | 2006-02-09 | 2015-10-06 | Deka Products Limited Partnership | Fluid delivery systems and methods |
EP2383647A1 (en) * | 2010-04-27 | 2011-11-02 | Tixel GmbH | Networking system call data division for zero copy operations |
WO2022005322A1 (en) * | 2020-06-29 | 2022-01-06 | Marvell Rus Llc | Method and apparatus for direct memory access of network device |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1182884A2 (en) * | 2000-08-25 | 2002-02-27 | Sony Corporation | Padding in isosynchronous transmission |
CN101123567A (zh) * | 2006-05-01 | 2008-02-13 | 美国博通公司 | 用于处理网络信息的方法及系统 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100329391B1 (ko) * | 1999-01-04 | 2002-03-22 | 구자홍 | 디지털 데이터 스트림의 기록방법 및 장치 |
US7266120B2 (en) * | 2002-11-18 | 2007-09-04 | Fortinet, Inc. | System and method for hardware accelerated packet multicast in a virtual routing system |
US20070280293A1 (en) * | 2006-06-06 | 2007-12-06 | Broadcom Corporation | System and method for implementing video streaming over IP networks |
-
2008
- 2008-07-01 EP EP08305367A patent/EP2141605A1/en not_active Withdrawn
-
2009
- 2009-06-19 CN CN2009801250656A patent/CN102077184A/zh active Pending
- 2009-06-19 EP EP09772328A patent/EP2304575A1/en not_active Withdrawn
- 2009-06-19 WO PCT/EP2009/057658 patent/WO2010000628A1/en active Application Filing
- 2009-06-19 US US12/737,296 patent/US20110096774A1/en not_active Abandoned
- 2009-06-26 TW TW098121486A patent/TW201005538A/zh unknown
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1182884A2 (en) * | 2000-08-25 | 2002-02-27 | Sony Corporation | Padding in isosynchronous transmission |
CN101123567A (zh) * | 2006-05-01 | 2008-02-13 | 美国博通公司 | 用于处理网络信息的方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
TW201005538A (en) | 2010-02-01 |
EP2304575A1 (en) | 2011-04-06 |
US20110096774A1 (en) | 2011-04-28 |
EP2141605A1 (en) | 2010-01-06 |
WO2010000628A1 (en) | 2010-01-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6989681B2 (ja) | 放送システムにおけるメディアパケットを送信する送信装置 | |
JP5715669B2 (ja) | ネットワークにおけるストリーミングデータコンテンツ | |
US6434146B1 (en) | Use of sequencing information in a local header that allows proper synchronization of packets to subsidiary interfaces within the post-processing environment of an mpeg-2 packet demultiplexing architecture | |
WO2016129953A1 (en) | Method and apparatus for converting mmtp stream to mpeg-2ts | |
CN102077184A (zh) | 执行直接存储器访问的方法和装置 | |
CN104022844A (zh) | 一种匹配多种传输方式的数据封装方法及系统 | |
CN102256182A (zh) | 一种基于rtp协议的视频流分片组帧方法 | |
CN104853243A (zh) | 一种传送流解复用的方法和装置 | |
CN102710512A (zh) | 一种跨平台的流发生器及控制方法 | |
CN103491386A (zh) | 一种利用ts包传输流媒体的方法及系统 | |
KR102153997B1 (ko) | Gfd 설명자를 이용한 gfd 모드 설정 방법 | |
CN106534137A (zh) | 媒体流传输方法及装置 | |
US20030043807A1 (en) | Modem front-end apparatus and method | |
CN103281567A (zh) | 一种利用分段标志字段或pes包标志字段传输信息的方法 | |
CN101557274A (zh) | 一种流媒体数据处理方法和存储设备以及数字设备 | |
KR20090017924A (ko) | 엠펙4 시스템에서의 ES_Descriptor 구성 및SLConfigDescriptor재사용 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20110525 |