CN104850517B - 一种dma传输报文数据的方法及装置 - Google Patents
一种dma传输报文数据的方法及装置 Download PDFInfo
- Publication number
- CN104850517B CN104850517B CN201510258206.9A CN201510258206A CN104850517B CN 104850517 B CN104850517 B CN 104850517B CN 201510258206 A CN201510258206 A CN 201510258206A CN 104850517 B CN104850517 B CN 104850517B
- Authority
- CN
- China
- Prior art keywords
- dma
- message data
- descriptor
- dma descriptor
- source address
- 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.)
- Active
Links
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
- G06F13/30—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal with priority control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/16—Memory access
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
- Communication Control (AREA)
Abstract
本发明提供了一种DMA传输报文数据的方法,该方法包括:中央处理单元CPU确定上次直接内存访问DMA传输完成、且上次传输的报文数据占用的源地址已经释放;CPU构造用于传输本次报文数据的第一DMA描述符;构造用于传输本次缓冲区描述符BD的第二DMA描述符;DMA控制器通过第一DMA描述符发送报文数据,在报文数据发送完毕后,通过第二DMA描述符发送BD。本发明还提供了一种DMA传输报文数据的装置。采用本发明能够提高CPU性能,同时降低报文传输延迟。
Description
技术领域
本发明涉及通信技术领域,特别涉及一种DMA传输报文数据的方法及装置。
背景技术
当具有独立CPU的多个板卡(Central Processing Unit,中央处理单元)通过PCI(Peripheral Component Interconnect,***组件互连标准)或者PCIE(PeripheralComponent Interconnect Express,快捷***组件互连标准)等总线同业务接口相连时,一般都采用BD(Buffer Descriptor,缓存描述符)的方式来实现报文数据的收发处理。
发送端CPU通过控制DMA(Direct Memory Access,直接内存访问)控制器将报文数据从发送端源地址传输到接收端目的地址在发送端的映射。在DMA模式下,CPU只须向DMA控制器下达指令,让DMA控制器来处理数据的传送,数据传送完毕再把信息反馈给CPU,这样就很大程度上减轻了CPU资源占有率,可以大大节省***资源。
现有技术中,报文数据传输完成后,发送端CPU还需要处理发送完成通知,不仅影响了CPU性能,还没有及时通知接收端,增加了报文数据的传输时延。
发明内容
本发明的目的在于提供了一种DMA传输报文数据的方法及装置,能够提高CPU性能,同时降低报文传输延迟。
本发明实施例提供了一种DMA传输报文数据的方法,该方法包括:中央处理单元CPU确定上次直接内存访问DMA传输完成、且上次传输的报文数据占用的源地址已经释放;CPU构造用于传输本次报文数据的第一DMA描述符;构造用于传输本次缓冲区描述符BD的第二DMA描述符;DMA控制器通过第一DMA描述符发送报文数据,在报文数据发送完毕后,通过第二DMA描述符发送BD。
本发明实施例还提供了一种DMA传输报文数据的装置,该装置包括:中央处理单元CPU和直接内存访问DMA控制器;所述CPU,用于确定上次DMA传输完成、且上次传输的报文数据占用的源地址已经释放;构造用于传输本次报文数据的第一DMA描述符;构造用于传输本次缓冲区描述符BD的第二DMA描述符;所述DMA控制器,用于通过第一DMA描述符发送报文数据,在报文数据发送完毕后,通过第二DMA描述符发送BD。
本发明的有益效果在于,在启动本次DMA传输之前,CPU确定上次传输的报文数据占用的源地址已经释放,然后DMA控制器通过第一DMA描述符发送报文数据,在报文数据发送完毕后,通过第二DMA描述符发送BD。本发明DMA控制器通过DMA描述符在传输报文数据后无需与CPU交互而是立刻通过预先构造的DMA描述传输BD,该传输过程无延时,CPU也不需要处理发送完成通知,提高了CPU的性能,同时,降低了传输报文数据和BD之间的延迟,从而降低了报文传输延迟。
附图说明
图1为本发明实施例DMA传输报文数据的方法流程示意图;
图2为本发明实施例DMA传输报文数据的装置结构示意图。
具体实施方式
现有技术中发送端设备(例如板卡)进行DMA传输报文数据方法包括以下步骤:
步骤S1、CPU检查DMA控制器状态,如果上次传输还没有完成,则丢弃本次传输的报文数据。否则,如果上次传输完成,即接收到DMA控制器发送的发送完成通知,则执行步骤S2。
步骤S2,CPU构造DMA描述符和BD保存在内存中。
DMA描述符中包括传输的报文数据长度、报文数据占用的源地址、报文数据占用的目的地址在本端的映射,以及结束标志。DMA传输支持通过多个DMA描述符来传输不连续地址上的数据,其中,多个DMA描述符中的最后一个设置的结束标志指示为结束,其他DMA描述符中的结束标志指示为未结束。BD中包括传输的报文数据的长度、报文数据占用的目的地址以及报文数据是否有效标志。其中,上述源地址指发送端内存地址、目的地址指接收端内存地址。
假设DMA描述符中的源地址为DATA_S,目的地址在本端的映射为map(DATA_D),传输数据长度为DATA_L。BD中报文数据占用的目的地址为DATA_D,报文数据长度为DATA_L,标志为1表示报文数据有效。
步骤S3、发送端CPU启动DMA传输。
CPU通知DMA控制器从内存对应位置中获取DMA描述符,以使DMA控制器根据DMA描述符进行本次报文数据的传输,将源地址DATA_S中的报文数据传输到目的地址在本端的映射map(DATA_D)中。
步骤S4、CPU接收到报文数据发送完成后DMA控制器发送的发送完成通知,根据所述发送完成通知进行处理,包括:
1)、CPU释放该报文数据所占用的源地址(DATA_S);
2)、CPU发送BD。BD占用的源地址为BD_S,占用的目的地址在本端的映射为map(BD_D)。具体就是将源地址BD_S中的BD写入目的地址在本端的映射map(BD_D)中。
3)如果报文数据接收端需要中断,则CPU还发送MSI(Message SignaledInterrupts,信息信号中断),用于接收端的CPU根据该中断检查BD中的标志是否有效。MSI占用的源地址为MSI_S,占用的目的地址在本端的映射为map(MSI_D)。具体就是将源地址MSI_S中的MSI写入目的地址在本端的映射map(MSI_D)中。
需要说明的是,接收端以中断或者轮询方式,检查BD中的标志是否有效,如果有效,则根据BD中目的地址和报文数据长度获取报文数据。如果以轮询的方式,接收端CPU就会不断定期检查BD中的标志是否有效。
如此,在步骤S4中,发送端CPU接收到DMA控制器产生的发送完成通知,根据所述发送完成通知进行处理,再发送BD和MSI。这样,发送端CPU既需要处理发送完成通知,影响了自身性能,而且还没有及时将BD、MSI通知接收端,以至于接收端不能及时根据BD、MSI进行报文数据的接收,增加了报文数据的传输时延。
由此提出本发明,本发明的核心思想是,利用DMA特性,构造DMA描述符,在启动DMA传输时,根据DMA描述符进行报文数据以及BD的传输,以使DMA控制器在发送完成报文数据后不需要再发送完成通知,那么CPU就不需要再处理发送完成通知,从而提高了CPU性能,而且降低了传输报文数据的延迟。
图1为本发明实施例DMA传输报文数据的方法流程示意图,如图1所示,该方法包括以下步骤:
步骤11、CPU确定上次直接内存访问DMA传输完成、且上次传输的报文数据占用的源地址已经释放。
其中,CPU确定上次传输的报文数据占用的源地址已经释放,包括:CPU判断上次传输的报文数据占用的源地址是否支持硬件自动释放,如果不支持,则先释放掉上次传输的报文数据所占用的源地址;如果支持,则说明上次传输的报文数据占用的源地址在当次传输完成时已由硬件自动释放,CPU无需做任何操作,直接执行步骤12。
步骤12、CPU构造用于传输本次报文数据的第一DMA描述符;构造用于传输本次缓冲区描述符BD的第二DMA描述符。
其中,所述第一DMA描述符包含报文数据占用的源地址、报文数据占用的目的地址在本端的映射、报文数据的长度以及结束标志,其中,所述结束标志指示为未结束;所述第二DMA描述符包含BD占用的源地址、BD占用的目的地址在本端的映射、BD的长度以及结束标志,其中,所述结束标志指示为结束或未结束。
步骤13、DMA控制器通过第一DMA描述符发送报文数据,在报文数据发送完毕后,通过第二DMA描述符发送BD。
该步骤包括:DMA控制器确认所述第一DMA描述符中的结束标志指示为未结束时,在通过第一DMA描述符将报文数据发送完毕后,读取第二描述符,并通过第二DMA描述符发送BD。
该方法还包括:
DMA控制器确认所述第二DMA描述符中的结束标志指示为结束时,通过第二DMA描述符发送BD完毕后,本次DMA传输完成;
DMA控制器确认所述第二DMA描述符中的结束标志指示为未结束时,在通过第二DMA描述符发送BD完毕后,读取第三DMA描述符,并通过第三DMA描述符传输MSI。
其中,对于第三DMA描述符,所述CPU构造第一DMA描述符和第二DMA描述符时,该方法还包括:CPU构造用于传输本次MSI的第三DMA描述符;所述第三DMA描述符包含MSI占用的源地址、MSI占用的目的地址在本端的映射、MSI的长度以及结束标志,其中,所述结束标志指示为结束;DMA控制器确认所述第三DMA描述符中的结束标志指示为结束时,通过第三DMA描述符发送MSI完毕后,本次DMA传输完成。
在步骤11所述CPU确定上次传输的报文数据占用的源地址已经释放之后,该方法还包括:CPU判断本次传输的报文数据占用的源地址是否支持硬件自动释放,如果支持,则在所构造的第一DMA描述符中还包含本次传输的报文数据所占用的源地址支持硬件自动释放的标志,指示在本次DMA传输完成时通过硬件自动释放本次传输的报文数据占用的源地址;如果不支持,则在所构造的第一DMA描述符中还包含本次传输的报文数据所占用的源地址不支持硬件自动释放的标志。
下面列举具体场景进行说明。
设发送端本次传输的报文数据所占用的源地址为DATA_S,接收端本次传输报文数据目的地址为DATA_D,报文数据长度为DATA_L;发送端BD所占用的源地址为BD_S,接收端BD目的地址为BD_D;发送端MSI所占用的源地址为MSI_S,接收端MSI目的地址为MSI_D。
步骤21、发送端CPU检查DMA控制器中寄存器状态,如果上次DMA传输还没有完成,则丢弃本次传输的报文数据。否则,如果上次传输完成,例如DMA控制器中寄存器的状态为1表示上次DMA传输完成时,
则执行步骤22、发送端CPU判断上次传输的报文数据所占用的源地址是否支持硬件自动释放,如果不支持,则发送端CPU先释放掉上次传输的报文数据所占用的源地址,执行步骤23。如果支持(说明上次传输的报文数据占用的源地址在当次传输完成时已由硬件自动释放),直接执行步骤23。
步骤23、发送端CPU判断本次传输的报文数据所占用的源地址是否支持硬件自动释放,如果支持,则直接执行步骤24,且在步骤24所构造的第一DMA描述符中包含本次传输的报文数据所占用的源地址支持硬件自动释放的标志,用于硬件根据该支持标志进行自动释放。如果不支持,则直接执行步骤24,且在步骤24所构造的第一DMA描述符中包含本次传输的报文数据所占用的源地址不支持硬件自动释放的标志。
步骤24、发送端CPU构造DMA描述符和BD保存在内存中。
CPU构造BD时,为BD申请一个内存地址、即源地址,将所构造的BD存储在该内存地址BD_S中,目的地址在发送端的映射是map(BD_D)。BD包括报文数据占用的目的地址DATA_D,报文数据的长度DATA_L,表示报文数据是否有效的标志。
CPU构造多个DMA描述,分别用来传输报文数据和BD。CPU构造DMA描述符时,为每一个DMA描述符也申请一个内存地址,将所构造的每个DMA描述符都存储在对应的内存中。
如果接收端需要中断,则CPU还需要构造一个MSI,为MSI申请一个内存地址、即源地址,将所构造的MSI存储在该内存地址MSI_S中,目的地址在发送端的映射是map(MSI_D)。CPU还需要构造专门的DMA描述符来传输MSI。
在接收端需要中断时,在步骤24中CPU需要构造1个BD和3个DMA描述符。
构造第一DMA描述符传输报文数据,源地址为DATA_S,目的地址为map(DATA_D),报文数据的长度DATA_L,结束标志为0(表示后面还有DMA描述符)。
构造第二DMA描述符传输BD,源地址为BD_S,目的地址为map(BD_D),BD的长度BD_L,结束标志为0(表示后面还有DMA描述符)。
构造第三DMA描述符传输MSI,源地址为MSI_S,目的地址为map(MSI_D),MSI长度(通常为4),结束标志为1(表示本DMA描述符是最后一个)。
如果接收端不需要中断,在这种情况下,则步骤24中构造1个BD和2个DMA描述符。
构造第一DMA描述符传输报文数据,源地址为DATA_S,目的地址为map(DATA_D),报文数据的长度DATA_L,结束标志为0(表示后面还有DMA描述符)。
构造第二DMA描述符传输BD,源地址为BD_S,目的地址为map(BD_D),BD的长度BD_L,结束标志为1(表示本DMA描述符是最后一个)。
步骤25、发送端CPU启动本次DMA传输。
发送端CPU通知DMA控制器从内存对应地址位置中获取各个DMA描述符,以使DMA控制器根据第一DMA描述符进行本次报文数据的传输,将源地址DATA_S中的报文数据传输到目的地址在发送端的映射map(DATA_D)中。在确认所述第一DMA描述符中的结束标志指示为未结束时,读取第二描述符,根据第二DMA描述符进行BD的传输,将源地址BD_S中的BD传输到目的地址在发送端的映射map(BD_D)中,若第二DMA描述符中的结束标志指示为结束,则本次DMA传输完成,相应的DMA控制器中的寄存器状态设置为本次传输完成。在确认所述第二DMA描述符中的结束标志指示为未结束时,读取第三DMA描述符,根据第三DMA描述符进行MSI的传输,将源地址MSI_S中的中断传输到目的地址在发送端的映射map(MSI_D)中,则本次DMA传输完成,相应的DMA控制器中的寄存器状态设置为本次传输完成。
根据第一DMA描述符中的源地址是否支持硬件自动释放的标志,若支持硬件自动释放,则本次DMA传输完成时,通过硬件自动释放报文数据占用的源地址。
在接收端需要中断的情况下,由于本发明中发送端是同时将报文数据、BD和中断通过DMA控制器传输给接收端,接收端根据中断,检查BD中的标志是否有效,若有效,则根据BD中目的地址和报文数据长度获取报文数据。
综上,发送端CPU检查DMA控制器的寄存器状态,在完成上次DMA传输的情况下,构造DMA描述符和BD,启动本次DMA传输,关键是DMA控制器通过DMA描述符在传输报文数据完毕后,无需通知CPU而是直接通过DMA描述符传输BD和中断。由此可见,本发明的有益效果是,
一、本发明DMA控制器通过DMA描述符在传输报文数据完毕后,无需通知CPU而是直接通过DMA描述符传输BD和中断,使接收端能及时收到BD和MSI、并根据BD和MSI对报文数据进行接收,从而降低了报文传输延迟。
二、本发明DMA控制器不需要产生发送完成通知,进而发送端CPU不需要处理发送完成通知,因此提高了CPU的性能。
这里,需要注意的是,如果上次传输的报文数据所占用的源地址支持硬件自动释放,那么CPU就不需要进行释放,硬件可以在当次报文数据传输完成后就自动释放。如果上次传输的报文数据所占用的源地址不支持硬件自动释放,则需要CPU进行释放。
基于同样的发明构思,本发明实施例还提出一种DMA传输报文数据的装置,应用于板卡上,该装置包括:中央处理单元CPU201和直接内存访问DMA控制器202;
所述CPU201,用于确定上次DMA传输完成、且上次传输的报文数据占用的源地址已经释放;构造用于传输本次报文数据的第一DMA描述符;构造用于传输本次缓冲区描述符BD的第二DMA描述符;
所述DMA控制器202,用于通过第一DMA描述符发送报文数据,在报文数据发送完毕后,通过第二DMA描述符发送BD。
所述第一DMA描述符包含报文数据占用的源地址、报文数据占用的目的地址在本端的映射、报文数据的长度以及结束标志,其中,所述结束标志指示为未结束;所述第二DMA描述符包含BD占用的源地址、BD占用的目的地址在本端的映射、BD的长度以及结束标志,其中,所述结束标志指示为结束或未结束。
所述DMA控制器202还用于,确认所述第一DMA描述符中的结束标志指示为未结束时,在通过第一DMA描述符将报文数据发送完毕后,读取第二描述符,并通过第二DMA描述符发送BD。
所述DMA控制器202还用于,确认所述第二DMA描述符中的结束标志指示为结束时,通过第二DMA描述符发送BD完毕后,完成本次DMA传输;确认所述第二DMA描述符中的结束标志指示为未结束时,在通过第二DMA描述符发送BD完毕后,读取第三DMA描述符,并通过第三DMA描述符传输MSI。
所述CPU201构造第一DMA描述符和第二DMA描述符时,还构造用于传输本次MSI的第三DMA描述符;所述第三DMA描述符包含MSI占用的源地址、MSI占用的目的地址在本端的映射、MSI的长度以及结束标志,其中,所述结束标志指示为结束;所述DMA控制器202,还用于确认所述第三DMA描述符中的结束标志指示为结束时,通过第三DMA描述符发送MSI完毕后,完成本次DMA传输。
所述CPU201,还用于判断上次传输的报文数据占用的源地址是否支持硬件自动释放,如果不支持,则先释放掉上次传输的报文数据所占用的源地址;如果支持,则确定上次传输的报文数据占用的源地址在当次传输完成时已由硬件自动释放。
所述CPU201在确定上次传输的报文数据占用的源地址已经释放之后,还用于判断本次传输的报文数据占用的源地址是否支持硬件自动释放,如果支持,则在所构造的第一DMA描述符中还包含本次传输的报文数据所占用的源地址支持硬件自动释放的标志,指示在本次DMA传输完成时通过硬件自动释放本次传输的报文数据占用的源地址;如果不支持,则在所构造的第一DMA描述符中还包含本次传输的报文数据所占用的源地址不支持硬件自动释放的标志。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
Claims (14)
1.一种DMA传输报文数据的方法,其特征在于,该方法包括:
中央处理单元CPU确定上次直接内存访问DMA传输完成、且上次传输的报文数据占用的源地址已经释放;
CPU构造用于传输本次报文数据的第一DMA描述符;构造用于传输本次缓冲区描述符BD的第二DMA描述符;
DMA控制器通过第一DMA描述符发送报文数据,在报文数据发送完毕后,通过第二DMA描述符发送BD。
2.如权利要求1所述的方法,其特征在于,
所述第一DMA描述符包含报文数据占用的源地址、报文数据占用的目的地址在本端的映射、报文数据的长度以及结束标志,其中,所述结束标志指示为未结束;
所述第二DMA描述符包含BD占用的源地址、BD占用的目的地址在本端的映射、BD的长度以及结束标志,其中,所述结束标志指示为结束或未结束。
3.如权利要求2所述的方法,其特征在于,DMA控制器通过第一DMA描述符发送报文数据,在报文数据发送完毕后,通过第二DMA描述符发送BD,包括:
DMA控制器确认所述第一DMA描述符中的结束标志指示为未结束时,在通过第一DMA描述符将报文数据发送完毕后,读取第二描述符,并通过第二DMA描述符发送BD。
4.如权利要求3所述的方法,其特征在于,该方法还包括:
DMA控制器确认所述第二DMA描述符中的结束标志指示为结束时,通过第二DMA描述符发送BD完毕后,本次DMA传输完成;
DMA控制器确认所述第二DMA描述符中的结束标志指示为未结束时,在通过第二DMA描述符发送BD完毕后,读取第三DMA描述符,并通过第三DMA描述符传输信息信号中断MSI。
5.如权利要求4所述的方法,其特征在于,所述CPU构造第一DMA描述符和第二DMA描述符时,该方法还包括:CPU构造用于传输本次MSI的第三DMA描述符;
所述第三DMA描述符包含MSI占用的源地址、MSI占用的目的地址在本端的映射、MSI的长度以及结束标志,其中,所述结束标志指示为结束;
DMA控制器确认所述第三DMA描述符中的结束标志指示为结束时,通过第三DMA描述符发送MSI完毕后,本次DMA传输完成。
6.如权利要求1所述的方法,其特征在于,所述CPU确定上次传输的报文数据占用的源地址已经释放,包括:
CPU判断上次传输的报文数据占用的源地址是否支持硬件自动释放,如果不支持,则先释放掉上次传输的报文数据所占用的源地址;如果支持,则上次传输的报文数据占用的源地址在当次传输完成时已由硬件自动释放。
7.如权利要求1所述的方法,其特征在于,在所述CPU确定上次传输的报文数据占用的源地址已经释放之后,该方法还包括:
CPU判断本次传输的报文数据占用的源地址是否支持硬件自动释放,如果支持,则在所构造的第一DMA描述符中还包含本次传输的报文数据所占用的源地址支持硬件自动释放的标志,指示在本次DMA传输完成时通过硬件自动释放本次传输的报文数据占用的源地址;如果不支持,则在所构造的第一DMA描述符中还包含本次传输的报文数据所占用的源地址不支持硬件自动释放的标志。
8.一种DMA传输报文数据的装置,应用于板卡上,该装置包括:中央处理单元CPU和直接内存访问DMA控制器;
所述CPU,用于确定上次DMA传输完成、且上次传输的报文数据占用的源地址已经释放;构造用于传输本次报文数据的第一DMA描述符;构造用于传输本次缓冲区描述符BD的第二DMA描述符;
所述DMA控制器,用于通过第一DMA描述符发送报文数据,在报文数据发送完毕后,通过第二DMA描述符发送BD。
9.如权利要求8所述的装置,其特征在于,
所述第一DMA描述符包含报文数据占用的源地址、报文数据占用的目的地址在本端的映射、报文数据的长度以及结束标志,其中,所述结束标志指示为未结束;
所述第二DMA描述符包含BD占用的源地址、BD占用的目的地址在本端的映射、BD的长度以及结束标志,其中,所述结束标志指示为结束或未结束。
10.如权利要求9所述的装置,其特征在于,
所述DMA控制器还用于,确认所述第一DMA描述符中的结束标志指示为未结束时,在通过第一DMA描述符将报文数据发送完毕后,读取第二描述符,并通过第二DMA描述符发送BD。
11.如权利要求10所述的装置,其特征在于,
所述DMA控制器还用于,确认所述第二DMA描述符中的结束标志指示为结束时,通过第二DMA描述符发送BD完毕后,完成本次DMA传输;
确认所述第二DMA描述符中的结束标志指示为未结束时,在通过第二DMA描述符发送BD完毕后,读取第三DMA描述符,并通过第三DMA描述符传输MSI。
12.如权利要求11所述的装置,其特征在于,所述CPU构造第一DMA描述符和第二DMA描述符时,还构造用于传输本次MSI的第三DMA描述符;
所述第三DMA描述符包含MSI占用的源地址、MSI占用的目的地址在本端的映射、MSI的长度以及结束标志,其中,所述结束标志指示为结束;
所述DMA控制器,还用于确认所述第三DMA描述符中的结束标志指示为结束时,通过第三DMA描述符发送MSI完毕后,完成本次DMA传输。
13.如权利要求8所述的装置,其特征在于,
所述CPU,还用于判断上次传输的报文数据占用的源地址是否支持硬件自动释放,如果不支持,则先释放掉上次传输的报文数据所占用的源地址;如果支持,则上次传输的报文数据占用的源地址在当次传输完成时已由硬件自动释放。
14.如权利要求8所述的装置,其特征在于,所述CPU在确定上次传输的报文数据占用的源地址已经释放之后,还用于判断本次传输的报文数据占用的源地址是否支持硬件自动释放,如果支持,则在所构造的第一DMA描述符中还包含本次传输的报文数据所占用的源地址支持硬件自动释放的标志,指示在本次DMA传输完成时通过硬件自动释放本次传输的报文数据占用的源地址;如果不支持,则在所构造的第一DMA描述符中还包含本次传输的报文数据所占用的源地址不支持硬件自动释放的标志。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510258206.9A CN104850517B (zh) | 2015-05-20 | 2015-05-20 | 一种dma传输报文数据的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510258206.9A CN104850517B (zh) | 2015-05-20 | 2015-05-20 | 一种dma传输报文数据的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104850517A CN104850517A (zh) | 2015-08-19 |
CN104850517B true CN104850517B (zh) | 2018-01-12 |
Family
ID=53850167
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510258206.9A Active CN104850517B (zh) | 2015-05-20 | 2015-05-20 | 一种dma传输报文数据的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104850517B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106874226B (zh) * | 2015-12-10 | 2020-05-12 | 重庆川仪自动化股份有限公司 | 基于stm32f4芯片的串口数据接收、发送、传输装置及方法 |
CN111666237B (zh) * | 2020-06-08 | 2022-06-28 | 王斌 | 具有高速缓存管理功能的dma控制器 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5828903A (en) * | 1994-09-30 | 1998-10-27 | Intel Corporation | System for performing DMA transfer with a pipeline control switching such that the first storage area contains location of a buffer for subsequent transfer |
US6298396B1 (en) * | 1998-06-01 | 2001-10-02 | Advanced Micro Devices, Inc. | System for loading a current buffer desciptor register with a value different from current value to cause a previously read buffer descriptor to be read again |
CN1384938A (zh) * | 1999-10-20 | 2002-12-11 | 因芬尼昂技术北美公司 | 链接表直接存储器存取控制器描述符的结构 |
CN1713164A (zh) * | 2005-07-21 | 2005-12-28 | 复旦大学 | 可自主处理多事务传输要求的dma控制器及数据传输方法 |
CN101976299A (zh) * | 2010-09-27 | 2011-02-16 | 南京信息工程大学 | 柔性力触觉再现的对称式板弹簧虚拟模型的建模方法 |
CN102411549A (zh) * | 2010-09-22 | 2012-04-11 | 株式会社东芝 | 存储器***、主机控制器以及dma的控制方法 |
-
2015
- 2015-05-20 CN CN201510258206.9A patent/CN104850517B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5828903A (en) * | 1994-09-30 | 1998-10-27 | Intel Corporation | System for performing DMA transfer with a pipeline control switching such that the first storage area contains location of a buffer for subsequent transfer |
US6298396B1 (en) * | 1998-06-01 | 2001-10-02 | Advanced Micro Devices, Inc. | System for loading a current buffer desciptor register with a value different from current value to cause a previously read buffer descriptor to be read again |
CN1384938A (zh) * | 1999-10-20 | 2002-12-11 | 因芬尼昂技术北美公司 | 链接表直接存储器存取控制器描述符的结构 |
CN1713164A (zh) * | 2005-07-21 | 2005-12-28 | 复旦大学 | 可自主处理多事务传输要求的dma控制器及数据传输方法 |
CN102411549A (zh) * | 2010-09-22 | 2012-04-11 | 株式会社东芝 | 存储器***、主机控制器以及dma的控制方法 |
CN101976299A (zh) * | 2010-09-27 | 2011-02-16 | 南京信息工程大学 | 柔性力触觉再现的对称式板弹簧虚拟模型的建模方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104850517A (zh) | 2015-08-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108494676B (zh) | 数据传输方法、装置、数据收发设备、***及存储介质 | |
EP3942422A1 (en) | System and method for facilitating efficient management of non-idempotent operations in a network interface controller (nic) | |
CN110083461B (zh) | 一种基于fpga的多任务处理***及方法 | |
US10908841B2 (en) | Increasing throughput of non-volatile memory express over fabric (NVMEoF) via peripheral component interconnect express (PCIe) interface | |
CN106257434B (zh) | 一种基于增强型外设互连协议总线的数据传输方法及装置 | |
US8166227B2 (en) | Apparatus for processing peripheral component interconnect express protocol | |
US9832086B2 (en) | Initiator apparatus, target apparatus, communication system, timeout detection method, and timeout detection program | |
US8953631B2 (en) | Interruption, at least in part, of frame transmission | |
JP2016032274A (ja) | ゲートウェイ装置 | |
CN109587732B (zh) | 一种服务质量流的传输方法及装置 | |
US20130185472A1 (en) | Techniques for improving throughput and performance of a distributed interconnect peripheral bus | |
CN109388597B (zh) | 一种基于fpga的数据交互方法及装置 | |
CN105162706A (zh) | 组播传输方法、装置及*** | |
CN104850517B (zh) | 一种dma传输报文数据的方法及装置 | |
CN103650401A (zh) | 一种移动终端内部通信方法 | |
KR102303424B1 (ko) | 랜덤 액세스 메모리를 포함하는 하나 이상의 처리 유닛을 위한 직접 메모리 액세스 제어 장치 | |
US8521943B2 (en) | Data transmission system and method of reading data | |
JP4231485B2 (ja) | ポイントツーポイント相互接続上のメッセージの配信技術 | |
US11157431B2 (en) | System, apparatus and method for multi-die distributed memory mapped input/output support | |
JP5728043B2 (ja) | ゲートウェイ装置 | |
CN102523168B (zh) | 一种传输报文的方法及装置 | |
JP2018137637A (ja) | 通信ネットワーク及び通信端末 | |
CN109324994B (zh) | 一种芯片互连方法及*** | |
JP6195209B2 (ja) | 情報処理装置、情報処理方法、及びプログラム | |
CN105227451B (zh) | 一种报文处理方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
EXSB | Decision made by sipo to initiate substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No. Applicant after: Xinhua three Technology Co., Ltd. Address before: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No. Applicant before: Huasan Communication Technology Co., Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |