CN117749718A - 基于ack和nop机制的dma传输保序处理方法和装置 - Google Patents
基于ack和nop机制的dma传输保序处理方法和装置 Download PDFInfo
- Publication number
- CN117749718A CN117749718A CN202311673723.3A CN202311673723A CN117749718A CN 117749718 A CN117749718 A CN 117749718A CN 202311673723 A CN202311673723 A CN 202311673723A CN 117749718 A CN117749718 A CN 117749718A
- Authority
- CN
- China
- Prior art keywords
- write
- message
- descriptor
- channel
- lro
- 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
- 230000007246 mechanism Effects 0.000 title claims abstract description 39
- 230000005540 biological transmission Effects 0.000 title claims abstract description 36
- 238000003672 processing method Methods 0.000 title claims abstract description 16
- 230000004044 response Effects 0.000 claims abstract description 65
- 238000012545 processing Methods 0.000 claims abstract description 25
- 238000012546 transfer Methods 0.000 claims description 15
- 238000000034 method Methods 0.000 claims description 10
- 230000000977 initiatory effect Effects 0.000 claims description 3
- 238000013461 design Methods 0.000 description 13
- 238000010586 diagram Methods 0.000 description 3
- 238000004321 preservation Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Landscapes
- Bus Control (AREA)
Abstract
本发明提供了一种基于ACK和NOP机制的DMA传输保序处理方法和装置,创建回写报文通道、回写描述符通道和中断通道,判断报文类型;如果是普通报文,通过回写报文通道进行报文回写,生成回写描述符,当接收到报文回写响应时通过回写描述符通道进行回写描述符回写;如果是LRO报文,报文回写传输次数大于生成的回写描述符数量时丢弃未生成回写描述符报文对应的报文回写响应,在LRO终结报文并且报文回写传输次数小于回写描述符次数时在回写报文通道中插入NOP数据;当接收到回写描述符响应信号时通过中断通道发起中断。本发明在多通道中实现普通报文和LRO报文与回写描述符、中断间的保序处理,减少回写延时,提升数据传输效率。
Description
技术领域
本发明属于网络交换卡领域,特别涉及一种基于ACK和NOP机制的DMA传输保序处理方法和装置。
背景技术
当前网卡技术朝着大带宽、高速率、低延时等方向高速发展,大量服务器采用10Gb/s甚至100Gb/s的网络交换芯片与互联网连接。如何设计出性能强大的网络交换卡成为现阶段亟需解决的问题,以适应支持大流量的网络数据,而DMA技术正是提升网络带宽性能的有效手段。
传统DMA引擎均采用单通道的模式进行数据的传输,回写数据和回写描述符进行串行传输模式,每回写完一帧报文后即回写对应的描述符,最后生成中断通知主机,完成该帧报文的传输,对于特殊接收数据报文(LRO报文)的单通道传输,只需要按报文回写描述符顺序发送即可达到设计要求,然而对于多通道,由于报文和回写描述符分开,这就需要在通道间利用可行的保序机制来保证报文和回写描述符之间的顺序。此外,现有技术的多通道DMA传输系统设计方案,尚且无法实现多通道之间的保序传输,以及普通报文和LRO报文在多通道之间的传输保序处理。
发明内容
本发明的目的在于提供一种基于ACK和NOP机制的DMA传输保序处理方法和装置,旨在采用ACK和NOP机制来解决基于多通道的保序问题。
根据本发明的第一方面,提供了一种基于ACK和NOP机制的DMA传输保序处理方法,包括:
在DMA引擎中创建回写报文通道、回写描述符通道和中断通道,并判断待传输的报文类型是普通报文还是LRO报文;
如果报文类型是普通报文,则通过所述回写报文通道进行报文回写操作,生成回写描述符,当接收到报文回写响应信号时通过所述回写描述符通道进行回写描述符回写操作;
如果报文类型是LRO报文,在报文回写传输次数大于生成的回写描述符数量时,丢弃未生成回写描述符的报文回写操作对应的报文回写响应信号,在所述LRO报文是LRO终结报文并且报文回写传输次数小于生成的回写描述符数量时,在所述LRO终结报文的回写报文通道中插入NOP数据;
当接收到回写描述符响应信号时,通过所述中断通道发起中断。
优选地,所述回写报文通道、回写描述符通道和中断通道分别通过独立的总线与PCIe接口处理单元进行通信。
优选地,所述当接收到报文回写响应信号时通过所述回写描述符通道进行回写描述符回写操作,进一步包括:
当PCIe接口处理单元接收完报文时,将报文回写响应信号返回所述DMA引擎,当所述DMA引擎接收到报文回写响应信号时,将生成的回写描述符通过所述回写描述符通道发送到PCIe接口处理单元。
优选地,所述丢弃未生成回写描述符的报文回写操作对应的报文回写响应信号,进一步包括:
在DMA引擎中中止报文回写响应信号,以使保留的报文回写响应信号数量与回写描述符的数量相等。
优选地,所述接收到回写描述符响应信号之前,所述方法还包括:
当PCIe接口处理单元接收到所述回写描述符时,将回写描述符响应信号返回所述DMA引擎。
根据本发明的第二方面,提供了一种基于ACK和NOP机制的DMA传输保序处理装置,包括:
判断单元,用于创建回写报文通道、回写描述符通道和中断通道,并判断待传输的报文类型是普通报文还是LRO报文;
普通报文响应单元,用于如果报文类型是普通报文,则通过所述回写报文通道进行报文回写操作,生成回写描述符,当接收到报文回写响应信号时通过所述回写描述符通道进行回写描述符回写操作;
LRO报文响应单元,用于如果报文类型是LRO报文,在报文回写传输次数大于生成的回写描述符数量时,丢弃未生成回写描述符的报文回写操作对应的报文回写响应信号,在所述LRO报文是LRO终结报文并且报文回写传输次数小于生成的回写描述符数量时,在所述LRO终结报文的回写报文通道中插入NOP数据;
中断单元,用于当接收到回写描述符响应信号时,通过所述中断通道发起中断。
相比于现有技术,本发明的技术方案采用ACK机制保证了LRO报文和回写描述符的顺序,采用NOP机制实现了LRO终结报文场景下的保序,将多通道设计的DMA引擎应用于网络接口卡中,增强了设计灵活性,尤其在多通道情况下解决了LRO报文和回写描述符的保序问题,且DMA的传输速率能够得到一定程度的提升。相比于增加接口带宽通过串行DMA回写模式来满足设计要求,本发明在实现相同规格的前提下,提升了带宽的利用效率并可以降低设计成本,同时减少回写延时,提升数据发送的效率。
本发明的其它特征和优点将在随后的说明书中阐述,并且部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可以通过在说明书、权利要求书以及附图中所指出的结构和流程来实现和获取。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单介绍,显而易见的是,下面描述中的附图是本发明的某些实施例,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获取其他的附图。
图1是根据本发明的DMA引擎保序的整体实现架构框图。
图2是根据本发明的基于ACK和NOP机制的DMA传输保序处理方法的总体流程图。
图3是根据本发明的普通报文实现方式示例图。
图4是根据本发明的普通报文的响应机制流程图。
图5是根据本发明的LRO报文在无有效回写描述符生成的情况下的实现方式示例图。
图6是根据本发明的与图5对应的LRO报文的响应机制流程图。
图7是根据本发明的LRO报文在流终结情况下的响应机制流程图。
具体实施方式
为了使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地说明,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获取的所有其他实施例,都属于本发明保护的范围。
基于以上分析,本发明提出了一种基于ACK和NOP机制的DMA传输保序处理方法和装置。参见图1,DMA引擎采用三个独立的通道进行回写设计,包括回写报文通道、回写描述符通道和中断通道,通道间采用基于ACK和NOP的机制来解决LRO报文回写的顺序问题,并保证普通报文和LRO报文在DMA过程中的传输顺序。每个通道均有独立的总线与接口处理单元PCIe_Proc进行通信,独立实现通道的回写功能。每个通道之间通过ACK机制来保证多通道报文之间回写的顺序,即按照报文、回写描述符和中断的顺序发送。对于LRO终结报文,在回写数据通道中插入NOP机制,通过与PCIe_Proc的交互来获取ACK响应,以实现LRO报文和回写描述符的顺序。
参见图2的流程图,本发明提供的所述基于ACK和NOP机制的DMA传输保序处理方法包括:
步骤101:在DMA引擎中创建回写报文通道、回写描述符通道和中断通道,并判断待传输的报文类型是普通报文还是LRO报文。
如上所述,DMA引擎采用三个独立的通道进行回写设计,包括回写报文通道、回写描述符通道和中断通道。每个通道均有独立的总线与PCIe_Proc进行通信,独立实现通道的回写功能。然后根据待传输的报文类型是普通报文还是LRO报文,分别采取不同的保序传输策略。
步骤102:如果报文类型是普通报文,则通过所述回写报文通道进行报文回写操作,生成回写描述符,当接收到报文回写响应信号时通过所述回写描述符通道进行回写描述符回写操作。
对于普通报文,其实现方式如图3所示,一帧报文对应一个或者多个描述符,报文的回写次数和回写描述符的数量相等,DMA引擎每次回写完一帧数据,生成一个回写描述符,待PCIe接口处理单元响应接收到报文PKT后,即报文回写响应信号。DMA引擎根据该ACK响应发送回写描述符。图4示出了普通报文的响应流程机制。
步骤103:如果报文类型是LRO报文,在报文回写传输次数大于生成的回写描述符数量时,丢弃未生成回写描述符的报文回写操作对应的响应信号,在所述LRO报文是LRO终结报文并且报文回写传输次数小于生成的回写描述符数量时,在所述LRO终结报文的回写报文通道中插入NOP数据。
对于LRO报文,其实现分为两种情况。
如图5所示,在第一种情况即无有效回写描述符生成的情况下,LRO报文回写的次数大于生成回写描述符的数量,DMA引擎需要在逻辑内部处理多余的ACK响应信号,以保证ACK有效数量等于回写描述符的数量,以此来保证报文和回写描述符的顺序。
图6示出了LRO报文第一种情况的响应流程机制。该种类型的报文每回写一笔数据,DMA引擎不会生成一个回写描述符,无需回写描述符报文,也不会响应中断,报文的ACK响应在DMA引擎中会被中止,以保证保留的ACK和回写描述符的一一对应关系。
在第二种情况即LRO流终结情况下,LRO终结报文集中回写描述符,该种情况下只有回写描述符,没有实际报文回写,报文回写传输次数小于描述符回写次数,即回写描述符的数量大于回写通道中报文回写的次数。图7示出了LRO报文第二种情况的响应流程机制。对于LRO终结报文流程,DMA引擎会生成一个NOP数据,在回写报文通道中插入NOP数据PKT(NOP),PCIe接口处理单元根据ACK回写对应的描述符,保证能够正确接收到ACK响应。
步骤104:当接收到回写描述符响应信号时,通过所述中断通道发起中断。
当PCIe接口处理单元接收到所述回写描述符时,将回写描述符响应信号返回所述DMA引擎。此时DMA引擎根据回写描述符的ACK响应来完成中断信号INT的回写。该中断信号的功能是通知CPU主机报文已经发送完成,可以使用报文数据。通过ACK响应实现回写报文、回写描述符和产生中断信号三者之间的保序机制。
可见,本发明提出的基于ACK和NOP机制的DMA传输保序处理方法,相比于现有技术,采用ACK机制保证了LRO报文和回写描述符的顺序,采用NOP机制实现了LRO终结报文场景下的保序,将多通道设计的DMA引擎应用于网络接口卡中,增强了设计灵活性,尤其在多通道情况下解决了LRO报文和回写描述符的保序问题,且DMA的传输速率能够得到一定程度的提升。相比于增加接口带宽通过串行DMA回写模式来满足设计要求,本发明在实现相同规格的前提下,提升了带宽的利用效率并可以降低设计成本,同时减少回写延时,提升数据发送的效率。
相应地,本发明在第二方面提供了一种基于ACK和NOP机制的DMA传输保序处理装置,包括:
判断单元,用于创建回写报文通道、回写描述符通道和中断通道,并判断待传输的报文类型是普通报文还是LRO报文;
普通报文响应单元,用于如果报文类型是普通报文,则通过所述回写报文通道进行报文回写操作,生成回写描述符,当接收到报文回写响应信号时通过所述回写描述符通道进行回写描述符回写操作;
LRO报文响应单元,用于如果报文类型是LRO报文,在报文回写传输次数大于生成的回写描述符数量时,丢弃未生成回写描述符的报文回写操作对应的报文回写响应信号,在所述LRO报文是LRO终结报文并且报文回写传输次数小于生成的回写描述符数量时,在所述LRO终结报文的回写报文通道中插入NOP数据;
中断单元,用于当接收到回写描述符响应信号时,通过所述中断通道发起中断。
上述装置可通过上述第一方面的实施例提供的基于ACK和NOP机制的DMA传输保序处理方法实现,具体的实现方式可以参见第一方面的实施例中的描述,在此不再赘述。
可以理解,上述实施例中描述的电路结构、名称和参数仅为举例。本领域技术人员还可以根据使用需要,对以上多个实施例的结构特征进行容易想到的组合和调整,而不应将本发明的构思限制于上述示例的具体细节。
尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种基于ACK和NOP机制的DMA传输保序处理方法,其特征在于,包括:
在DMA引擎中创建回写报文通道、回写描述符通道和中断通道,并判断待传输的报文类型是普通报文还是LRO报文;
如果报文类型是普通报文,则通过所述回写报文通道进行报文回写操作,生成回写描述符,当接收到报文回写响应信号时通过所述回写描述符通道进行回写描述符回写操作;
如果报文类型是LRO报文,在报文回写传输次数大于生成的回写描述符数量时,丢弃未生成回写描述符的报文回写操作对应的报文回写响应信号,在所述LRO报文是LRO终结报文并且报文回写传输次数小于生成的回写描述符数量时,在所述LRO终结报文的回写报文通道中插入NOP数据;
当接收到回写描述符响应信号时,通过所述中断通道发起中断。
2.根据权利要求1所述的基于ACK和NOP机制的DMA传输保序处理方法,其特征在于,所述回写报文通道、回写描述符通道和中断通道分别通过独立的总线与PCIe接口处理单元进行通信。
3.根据权利要求2所述的基于ACK和NOP机制的DMA传输保序处理方法,其特征在于,所述当接收到报文回写响应信号时通过所述回写描述符通道进行回写描述符回写操作,进一步包括:
当PCIe接口处理单元接收完报文时,将报文回写响应信号返回所述DMA引擎,当所述DMA引擎接收到报文回写响应信号时,将生成的回写描述符通过所述回写描述符通道发送到PCIe接口处理单元。
4.根据权利要求1所述的基于ACK和NOP机制的DMA传输保序处理方法,其特征在于,所述丢弃未生成回写描述符的报文回写操作对应的报文回写响应信号,进一步包括:
在DMA引擎中中止报文回写响应信号,以使保留的报文回写响应信号数量与回写描述符的数量相等。
5.根据权利要求1所述的基于ACK和NOP机制的DMA传输保序处理方法,其特征在于,所述接收到回写描述符响应信号之前,所述方法还包括:
当PCIe接口处理单元接收到所述回写描述符时,将回写描述符响应信号返回所述DMA引擎。
6.一种基于ACK和NOP机制的DMA传输保序处理装置,其特征在于,包括:
判断单元,用于创建回写报文通道、回写描述符通道和中断通道,并判断待传输的报文类型是普通报文还是LRO报文;
普通报文响应单元,用于如果报文类型是普通报文,则通过所述回写报文通道进行报文回写操作,生成回写描述符,当接收到报文回写响应信号时通过所述回写描述符通道进行回写描述符回写操作;
LRO报文响应单元,用于如果报文类型是LRO报文,在报文回写传输次数大于生成的回写描述符数量时,丢弃未生成回写描述符的报文回写操作对应的报文回写响应信号,在所述LRO报文是LRO终结报文并且报文回写传输次数小于生成的回写描述符数量时,在所述LRO终结报文的回写报文通道中插入NOP数据;
中断单元,用于当接收到回写描述符响应信号时,通过所述中断通道发起中断。
7.根据权利要求6所述的基于ACK和NOP机制的DMA传输保序处理装置,所述回写报文通道、回写描述符通道和中断通道分别通过独立的总线与PCIe接口处理单元进行通信。
8.根据权利要求7所述的基于ACK和NOP机制的DMA传输保序处理装置,所述普通报文响应单元,进一步用于:
当PCIe接口处理单元接收完报文时,将报文回写响应信号返回所述DMA引擎,当所述DMA引擎接收到报文回写响应信号时,将生成的回写描述符通过所述回写描述符通道发送到PCIe接口处理单元。
9.根据权利要求6所述的基于ACK和NOP机制的DMA传输保序处理装置,所述LRO报文响应单元,进一步用于:
在DMA引擎中中止报文回写响应信号,以使保留的报文回写响应信号数量与回写描述符的数量相等。
10.根据权利要求6所述的基于ACK和NOP机制的DMA传输保序处理装置,所述中断单元,进一步用于:
当PCIe接口处理单元接收到所述回写描述符时,将回写描述符响应信号返回所述DMA引擎。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311673723.3A CN117749718A (zh) | 2023-12-07 | 2023-12-07 | 基于ack和nop机制的dma传输保序处理方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311673723.3A CN117749718A (zh) | 2023-12-07 | 2023-12-07 | 基于ack和nop机制的dma传输保序处理方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117749718A true CN117749718A (zh) | 2024-03-22 |
Family
ID=90257127
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311673723.3A Pending CN117749718A (zh) | 2023-12-07 | 2023-12-07 | 基于ack和nop机制的dma传输保序处理方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117749718A (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103714027A (zh) * | 2014-01-10 | 2014-04-09 | 浪潮(北京)电子信息产业有限公司 | 一种直接内存存取控制器的数据传输方法及装置 |
US8880756B1 (en) * | 2013-07-01 | 2014-11-04 | Atmel Corporation | Direct memory access controller |
CN116755778A (zh) * | 2016-12-31 | 2023-09-15 | 英特尔公司 | 用于异构计算的系统、方法和装置 |
-
2023
- 2023-12-07 CN CN202311673723.3A patent/CN117749718A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8880756B1 (en) * | 2013-07-01 | 2014-11-04 | Atmel Corporation | Direct memory access controller |
CN103714027A (zh) * | 2014-01-10 | 2014-04-09 | 浪潮(北京)电子信息产业有限公司 | 一种直接内存存取控制器的数据传输方法及装置 |
CN116755778A (zh) * | 2016-12-31 | 2023-09-15 | 英特尔公司 | 用于异构计算的系统、方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6526446B1 (en) | Hardware only transmission control protocol segmentation for a high performance network interface card | |
US6421742B1 (en) | Method and apparatus for emulating an input/output unit when transferring data over a network | |
EP1750401B1 (en) | USB 1.1 over a high speed link | |
US20060132490A1 (en) | Method and system for high speed network application | |
CN111131091A (zh) | 一种面向片上网络的片间互连方法和系统 | |
US20200142854A1 (en) | Multilane heterogeneous serial bus | |
CN101557379B (zh) | 一种pcie接口的链路重组方法和装置 | |
CN111901164B (zh) | Ocp nic网卡的适配控制方法、装置、设备及系统 | |
CN108462620B (zh) | 一种吉比特级SpaceWire总线系统 | |
CN1276635C (zh) | 提供用于传送数据分组的串行总线通信协议的方法 | |
CN109710550B (zh) | 一种基于双缓存的帧长度不固定rs422数据通信系统 | |
US7822040B2 (en) | Method for increasing network transmission efficiency by increasing a data updating rate of a memory | |
CN117749718A (zh) | 基于ack和nop机制的dma传输保序处理方法和装置 | |
JP2003050788A (ja) | 高レベル・データ・リンク・コントローラから多数個のディジタル信号プロセッサ・コアに信号を分配するための装置と方法 | |
CN116346959A (zh) | 一种dpu场景弹性网卡高效实现方法及装置 | |
CN112148663A (zh) | 一种数据交换芯片及服务器 | |
CN101902436A (zh) | 板间通信方法、装置及系统 | |
US20060015774A1 (en) | System and method for transmitting data in storage controllers | |
CN117354254B (zh) | 一种基于lro超时和中断itr超时的联合中断控制方法和装置 | |
CN1581126A (zh) | Iic总线控制系统及其实现方法 | |
CN113064877B (zh) | 一种服务器多级管理单元大数据交互方法及系统 | |
EP3092570A1 (en) | Method for processing data in storage device and storage device | |
CN217640194U (zh) | 一种基于海光服务器的pcie切换电路 | |
CN112597094B (zh) | 一种提高rdma传输效率的装置及方法 | |
CN114124850B (zh) | 一种网络通信方法及装置、存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |