CN104850517A - 一种dma传输报文数据的方法及装置 - Google Patents

一种dma传输报文数据的方法及装置 Download PDF

Info

Publication number
CN104850517A
CN104850517A CN201510258206.9A CN201510258206A CN104850517A CN 104850517 A CN104850517 A CN 104850517A CN 201510258206 A CN201510258206 A CN 201510258206A CN 104850517 A CN104850517 A CN 104850517A
Authority
CN
China
Prior art keywords
dma
message data
dma descriptor
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.)
Granted
Application number
CN201510258206.9A
Other languages
English (en)
Other versions
CN104850517B (zh
Inventor
邓士恩
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou H3C Technologies Co Ltd
Original Assignee
Hangzhou H3C Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hangzhou H3C Technologies Co Ltd filed Critical Hangzhou H3C Technologies Co Ltd
Priority to CN201510258206.9A priority Critical patent/CN104850517B/zh
Publication of CN104850517A publication Critical patent/CN104850517A/zh
Application granted granted Critical
Publication of CN104850517B publication Critical patent/CN104850517B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • G06F13/30Handling 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/16Memory 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传输报文数据的方法及装置
技术领域
本发明涉及通信技术领域,特别涉及一种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描述符中还包含本次传输的报文数据所占用的源地址不支持硬件自动释放的标志。
CN201510258206.9A 2015-05-20 2015-05-20 一种dma传输报文数据的方法及装置 Active CN104850517B (zh)

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 true CN104850517A (zh) 2015-08-19
CN104850517B 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)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106874226A (zh) * 2015-12-10 2017-06-20 重庆川仪自动化股份有限公司 基于stm32f4芯片的串口数据接收、发送、传输装置及方法
CN111666237A (zh) * 2020-06-08 2020-09-15 王斌 具有高速缓存管理功能的dma控制器

Citations (6)

* Cited by examiner, † Cited by third party
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的控制方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
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 南京信息工程大学 柔性力触觉再现的对称式板弹簧虚拟模型的建模方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106874226A (zh) * 2015-12-10 2017-06-20 重庆川仪自动化股份有限公司 基于stm32f4芯片的串口数据接收、发送、传输装置及方法
CN106874226B (zh) * 2015-12-10 2020-05-12 重庆川仪自动化股份有限公司 基于stm32f4芯片的串口数据接收、发送、传输装置及方法
CN111666237A (zh) * 2020-06-08 2020-09-15 王斌 具有高速缓存管理功能的dma控制器

Also Published As

Publication number Publication date
CN104850517B (zh) 2018-01-12

Similar Documents

Publication Publication Date Title
CN110083461B (zh) 一种基于fpga的多任务处理系统及方法
CN108132897B (zh) 一种基于zynq平台软核的srio控制器
CN108107827B (zh) 一种基于zynq平台软核的srio控制方法
CN113742269B (zh) 用于epa设备的数据传输方法、处理设备和介质
US9170963B2 (en) Apparatus and method for generating interrupt signal that supports multi-processor
CN101937413B (zh) 一种i2c总线的通信方法
CN102073611A (zh) 一种i2c总线控制系统及方法
JP2017520052A (ja) ユニバーサルシリアルバス(usb)通信システムおよび方法
CN104850517A (zh) 一种dma传输报文数据的方法及装置
US10095643B2 (en) Direct memory access control device for at least one computing unit having a working memory
CN105512005A (zh) 控制/远程节点与总线监控节点同步工作的电路及方法
CN112422485B (zh) 一种传输控制协议的通信方法及装置
CN102346717B (zh) 一种ipmi消息传输装置、系统及计算机设备
CN103885910A (zh) 多设备在主模式下进行iic通信的方法及系统
KR20050080704A (ko) 프로세서간 데이터 전송 장치 및 방법
CN105183677A (zh) 基于异步非透明桥的数据传输方法及系统
CN101989250B (zh) 一种串行通信的方法和系统
CN115189977A (zh) 一种基于axi协议的广播传输方法、系统及介质
CN103744816B (zh) 通用串行总线设备以及其数据传输方法
CN105022707B (zh) 接口单元装置
CN103117955A (zh) 消息传输方法及装置、系统
US20160162199A1 (en) Multi-processor communication system sharing physical memory and communication method thereof
CN203616748U (zh) 一种解决不同优先级dma传输竞争问题的接口电路
WO2022178882A1 (zh) 一种基于usb的通信方法和装置
CN111124987B (zh) 一种基于pcie的数据传输控制系统和方法

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

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.

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant