CN113411152A - 一种用于tsn端系统支持高确定性网络报文接收的dma方法 - Google Patents

一种用于tsn端系统支持高确定性网络报文接收的dma方法 Download PDF

Info

Publication number
CN113411152A
CN113411152A CN202110631612.0A CN202110631612A CN113411152A CN 113411152 A CN113411152 A CN 113411152A CN 202110631612 A CN202110631612 A CN 202110631612A CN 113411152 A CN113411152 A CN 113411152A
Authority
CN
China
Prior art keywords
message
time
submission
dma
current
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
CN202110631612.0A
Other languages
English (en)
Other versions
CN113411152B (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.)
National University of Defense Technology
Original Assignee
National University of Defense Technology
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 National University of Defense Technology filed Critical National University of Defense Technology
Priority to CN202110631612.0A priority Critical patent/CN113411152B/zh
Publication of CN113411152A publication Critical patent/CN113411152A/zh
Application granted granted Critical
Publication of CN113411152B publication Critical patent/CN113411152B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04JMULTIPLEX COMMUNICATION
    • H04J3/00Time-division multiplex systems
    • H04J3/02Details
    • H04J3/06Synchronising arrangements
    • H04J3/0635Clock or time synchronisation in a network
    • H04J3/0685Clock or time synchronisation in a node; Intranode synchronisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Communication Control (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开一种用于TSN端系统支持高确定性网络报文接收的DMA方法,步骤包括:S1.配置提交控制表以及地址信息表;S2.判断是否接收到时间敏感报文,如果是跳转至S3;否则跳转至S4;S3.取出对应的报文缓冲区地址,通过DMA将报文写入主存的缓冲区中,并遍历提交控制表,寻找到第一个符合当前流id的目标表项,更新就绪状态;S4.计算全局时间与调度周期开始时间之间的差值,判断是否等于提交偏移时刻,如果是且处于就绪状态则跳转至S5;S5.取出对应的描述符地址,并通知DMA提交对应的描述符,更新对应表项的就绪状态。本发明能够降低报文接收的抖动、提高接收报文的延时确定性,从而提高报文的端到端确定性。

Description

一种用于TSN端系统支持高确定性网络报文接收的DMA方法
技术领域
本发明涉及时间敏感网络(Time Sensitive Networking,TSN)中DMA(DirectMemory Access,直接存储器访问技术领域,尤其涉及一种用于TSN端系统支持高确定性网络报文接收的DMA方法。
背景技术
在工业控制、自动驾驶、智能电网等应用场景中,存在一类对延时和抖动有着严格要求的周期性实时流量,即为时间敏感流,属于时间敏感流量的报文即为时间敏感报文。某些应用中时间敏感流对端到端确定性也提出了严格要求,例如自动驾驶系统中的时间敏感流要求端到端延时在100微秒至250微秒之间,端到端抖动在数十微秒以下,其中端到端确定性是指发送端任务发送的报文能够在指定的时间窗口内到达接收任务。端到端确定性作为一种系统级的属性,其需要由端系统上的确定性和网络内的确定性共同保证。
为保证时间敏感流量在网络内的传输确定性,IEEE 802.1Q TSN工作组提出时间敏感网络(Time Sensitive Networking,TSN),它在标准以太网的基础上引入了时间同步、确定性分组转发、帧复制及冗余消除技术、资源预留等功能。TSN通过在标准以太网上引入时间因素,将“事件触发”的标准以太网升级成为“时间触发”的以太网。TSN同步交换机和端系统网卡的时间,以及各个网络节点的时间与全局时间对齐,并将全局时间划分成等长的时间槽。由于时间敏感流是周期性的、静态的,一条时间敏感流可以用源端、目的端、周期、报文长度、截止时间五元组来描述,因此每条时间敏感流量都能够被预先规划,得到一个调度计划。TSN中由调度计划规定,在一个调度周期内,每条时间敏感流在哪个时间槽由哪个交换机转发出去,以使时间敏感流的QoS得到保证,其中调度周期即TSN网络内所有时间敏感流的周期的最小公倍数。
在端系统上,报文从物理链路到任务内存需要依次经过网卡交换、DMA引擎、网卡驱动、协议栈,其中网卡从物理链路上接收到报文,进行交换处理后,通过DMA引擎将报文写到主存;接着网卡驱动处理报文,并将报文交给TCP/IP协议栈;协议栈完成处理后,应用就能够通过系统调用如rcvmsg()等接收到报文。DMA引擎是保证端系统确定性的重要一环,DMA引擎采用DMA技术将网卡上的报文写入内存。DMA是I/O设备在无需CPU干预的情况下直接与内存交换数据的一种数据传输方式,与DMA技术相对应的可编程I/O技术,它需要CPU提供一组指令来控制管理I/O系统,以完成I/O设备与内存之间的数据交换。与可编程I/O相比,DMA传输数据无需CPU的参与,因而能够大大降低CPU的工作负载。
标准DMA引擎与网卡驱动是通过描述符机制和中断机制交换数据,其过程具体如下:
1、在DMA引擎接收报文之前,网卡驱动首先会在内存初始化描述符环,DMA引擎将描述符环从内存取到网卡存储结构内。描述符环是DMA引擎和网卡驱动交换报文的关键数据结构,由一个个描述符组织成环形结构。描述符包括一个指向报文缓冲区的指针,即报文缓冲区的物理地址。描述符可以看做报文缓冲区的摘要,报文缓冲区才是真正存放报文的地方。描述符的具体数据结构与网卡相关,但其关键字段大致相同,包括报文缓冲区的地址和状态位。状态位用于指示该描述符指向的报文缓冲区内是否有报文。
2、当报文到达DMA引擎后,DMA引擎从网卡的存储结构内取出一个预取的空闲描述符,分配给该报文,更新描述符的关键字段,如将描述符的状态字段置为“有报文”等。此时DMA引擎更新的是网卡上存储的描述符,主存内的描述符并未更新。接着DMA引擎将该报文写到这个空闲描述符所指向的报文缓冲区内。
3、当DMA引擎写到内存中的报文数量达到预先设定的阈值,或接收中断定时器过期时,DMA引擎将使用的描述符回写到内存。接着向CPU发送一个接收中断,CPU响应中断,调用网卡驱动注册的中断处理函数处理中断,完成中断上半部分的处理。在中断的下半部分,驱动注册的下半部分处理函数会根据描述符上的状态位和指针处理报文缓冲区内的报文。
但是,上述标准DMA引擎的工作过程是“事件触发”型的,即当DMA引擎写到内存中的报文数量达到预先设定的阈值,或接收中断定时器过期这两个事件发生时,DMA引擎才会回写描述符,即向驱动提交报文,并发送中断通知CPU进行下一步的报文处理,而这两个事件到达发生的时间不能够被确定,报文入站的速率、报文的大小等都可能会产生影响,从而导致报文的确定性降低,即端系统网卡上的标准DMA引擎不具备确定性报文传输的能力。
发明内容
本发明要解决的技术问题就在于:针对现有技术存在的技术问题,本发明提供一种实现方法简单、成本低、效率以及灵活性强的用于TSN端系统支持高确定性网络报文接收的DMA方法,能够降低报文接收的抖动、提高接收报文的延时确定性,从而提高报文的端到端确定性。
为解决上述技术问题,本发明提出的技术方案为:
一种用于TSN端系统支持高确定性网络报文接收的DMA方法,步骤包括:
S1.配置用于控制DMA提交描述符的提交时间的提交控制表,以及用于存储描述符地址、报文缓冲区地址的地址信息表,所述提交控制表中每个表项分别对应一个时间敏感报文;
S2.判断是否接收到时间敏感报文,如果是跳转至步骤S3;否则跳转至步骤S4;
S3.根据接收到的报文所属流的流id,从所述地址信息表中取出对应的所述报文缓冲区地址,通过DMA将接收到的报文写入主存的缓冲区中,遍历所述提交控制表,寻找到第一个符合当前流id的目标表项并更新所述目标表项的就绪状态;
S4.计算全局时间与调度周期开始时间之间的差值,判断所述差值是否等于所述提交控制表中当前表项的提交偏移时刻,所述提交时刻偏移为对应描述符提交时刻在调度周期内的偏移,如果是且当前表项处于就绪状态则跳转至步骤S5;
S5.根据当前流id从所述地址信息表中取出对应的描述符地址,并通知DMA提交对应的描述符,更新所述提交控制表中对应表项的就绪状态。
进一步的,所述步骤S1中还包括初始化所述提交控制表的提交指针,由所述提交指针指向当前最近需要提交的表项,将所述提交指针初始化为指向所述提交控制表的第一个表项。
进一步的,所述提交控制表的表项按照所述提交时刻偏移从小至大的顺序排列。
进一步的,所述步骤S3包括:
S301.接收时间敏感报文以及所属流的流id,根据所述流id从所述地址信息表中读取当前流对应的报文缓冲区地址;
S302.将接收到的时间敏感报文及读取的所述报文缓冲区地址一并发送给DMA写逻辑;
S303.通过DMA将接收到的时间敏感报文按照所述缓冲区地址写入主存的缓冲区中;
S304.遍历所述提交控制表,寻找到第一个符合当前流id的目标表项,并更新寻找到的目标表项的就绪状态。
进一步的,所述步骤S304包括:
S341.判断当前表项的流id是否是当前接收到的流id,如果是跳转至步骤S343,否则跳转至步骤S342;
S342.读取所述提交控制表的下一个表项,返回步骤S341;
S343.将所述提交控制表中当前表项的就绪状态置为已就绪状态,以表示当前表项对应的报文已经被DMA写到了主存的报文缓冲区当中。
进一步的,所述步骤S4包括:
S401.读取全局时间以及当前调度周期开始时间,计算所述全局时间与所述当前调度周期开始时间之间的差值,即为当前时间在调度周期开始时间内的偏移;
S402.从所述提交控制表中读取所述提交指针当前指向的表项;
S403.判断计算得到的所述差值是否等于当前表项的所述提交偏移时刻;如果是跳转至步骤S404;否则跳转至步骤S2;
S404.判断当前表项的就绪状态是否为已就绪状态,如果是,判定当前表项对应的时间敏感报文已经被写到了主存,跳转至步骤S5,否则判定当前表项对应的时间敏感报文还未到达,返回步骤S2。
进一步的,所述步骤S5包括:
S501.根据当前表项的流id,从所述地址信息表中读取出当前流的描述符地址;
S502.将所述描述符地址发送给DMA写逻辑,以指示DMA写逻辑将对应描述符的状态位置为有报文状态;
S503.将所述提交控制表当前表项的就绪状态重置为未就绪状态,以表示当前表项对应的描述符及报文已经提交到主存当中。
进一步的,所述步骤S5中更新所述提交控制表中所述提交指针的指向位置时,具体将所述提交指针加一,以使得指向所述提交控制表的下一个表项。
一种计算机装置,包括处理器以及存储器,所述存储器用于存储计算机程序,所述处理器用于执行所述计算机程序,所述处理器用于执行所述计算机程序,以执行如上述方法。
一种存储有计算机程序的计算机可读存储介质,所述计算机程序执行时实现如上述方法。
与现有技术相比,本发明的优点在于:
1、本发明在标准DMA引擎的基础上引入时间因素,使用提交控制表控制DMA引擎提交描述符的提交时间,使“事件触发”型的标准DMA引擎具有“时间触发”的特性,配合使用轮询描述符而非等待中断的方式接收报文,使报文的接收只与描述符提交的时间有关,而与其他因素如报文的长度、数量等因素无关,使得驱动和应用接收报文更加具有确定性,能够降低应用接收时间敏感流的抖动、提高其延时确定性,从而提高时间敏感流的端到端确定性。
2、本发明采用时间触发式进行描述符回写及报文提交,通过控制描述符状态位的回写时机,来控制报文被提交给上层软件的时机,使得时间敏感流量的提交符合网络调度计划,解决了时间敏感流延时确定性的“最后一英里”问题。
附图说明
图1是本实施用于TSN端系统支持高确定性网络报文接收的DMA方法的实现流程示意图。
图2为本实施例中确定性DMA引擎报文接收逻辑结构原理示意图。
图3为本实施例中地址信息表的配置示意图。
图4为本实施例中提交控制表的配置示意图。
图5为本发明在具体应用实施例中实现TSN端系统支持高确定性网络报文接收的DMA方法的详细流程图。
具体实施方式
以下结合说明书附图和具体优选的实施例对本发明作进一步描述,但并不因此而限制本发明的保护范围。
如图1所示,本实施例用于TSN端系统支持高确定性网络报文接收的DMA方法的步骤包括:
S1.配置用于控制DMA提交描述符的提交时间的提交控制表,以及用于存储描述符地址、报文缓冲区地址的地址信息表,提交控制表中每个表项分别对应一个时间敏感报文,由提交指针指向最近所需要提交的当前表项;
S2.判断是否接收到时间敏感报文,如果是跳转至步骤S3;否则跳转至步骤S4;
S3.根据接收到的时间敏感报文所属流的流id,从地址信息表中取出对应的报文缓冲区地址,流id为时间敏感流的标识号,通过DMA将接收到的时间敏感报文写入主存的缓冲区中,并遍历提交控制表,寻找到第一个符合当前流id的目标表项,更新寻找到的目标表项的就绪状态,返回步骤S2;
S4.计算全局时间与调度周期开始时间之间的差值,判断差值是否等于提交控制表中当前表项的提交偏移时刻,提交时刻偏移为对应描述符提交时刻在调度周期内的偏移,如果是且当前表项处于就绪状态则跳转至步骤S5;
S5.根据当前流id从地址信息表中取出对应的描述符地址,并通知DMA提交对应的描述符,更新提交控制表中对应表项的就绪状态,以及更新提交控制表中提交指针,返回步骤S2。
本实施例在标准DMA引擎的基础上引入时间因素,使用提交控制表控制DMA引擎提交描述符的提交时间,使“事件触发”型的标准DMA引擎具有“时间触发”的特性,报文的DMA接收过程能够结合报文在网络内的调度计划,配合使用轮询描述符而非等待中断的方式接收报文,使报文的接收只与描述符提交的时间有关,而与其他因素如报文的长度、数量等因素无关,使得驱动和应用接收报文更加具有确定性,能够降低应用接收时间敏感流的抖动、提高其延时确定性,从而提高时间敏感流的端到端确定性。
如图2所示,本实施例具体在DMA引擎中添加提交控制模块,由提交控制模块接收时间敏感报文及其流id,根据流id从地址信息表中取出对应的缓冲区地址,通过DMA将报文写入主存,并更新提交控制表中的就绪状态;当提交控制模块没有报文需要处理时,读取网络时间和调度周期开始时间,轮询提交控制表,在提交控制表指定的时间,通过流id从地址信息表中取出对应的描述符地址,通知DMA提交描述符,此时报文才真正被提交给上层软件。
上述采用时间触发式进行描述符回写及报文提交,每条时间敏感流使用专用的描述符和报文缓冲区,上层软件轮询描述符的状态位,通过控制描述符状态位的回写时机,来控制报文被提交给上层软件的时机,使得时间敏感流量的提交符合网络调度计划,解决了时间敏感流延时确定性的“最后一英里”问题。
本实施例上述地址信息表具体定义为记录每条时间敏感流所对应的描述符及缓冲区的物理地址,地址信息表中表项数目等于时间敏感流的条数,每条流占用一个专用描述符和专用缓冲区。
地址信息表中各个字段具体定义如下:
(1)流id表示时间敏感流的编号。
(2)描述符地址表示某条流所占用的专用描述符的物理地址,DMA写逻辑根据该物理地址将描述符提交至内存。
(3)缓冲区地址表示某条流所占用的专用缓冲区的物理地址,DMA写逻辑根据该物理地址将报文写到内存。
如图3所示,在具体应用实施例中地址信息表包含三条时间敏感流,即该提交控制模块总共接收三条时间敏感流,其流id分别为f1、f2、f3。驱动为三条时间敏感流分别分配专用的描述符和报文缓冲区,并将描述符和报文缓冲区的物理地址配置到地址信息表。
本实施例上述提交控制表具体定义为由提交控制表控制描述符提交的时刻,并记录描述符就绪状态,表中表项数目等于一个调度周期内接收的关键报文的数目。如果一条流在一个调度周期内会被接收k次,那么该流在提交控制表内存在k个表项。由提交指针指向提交控制表的任意一个表项,该表项对应的描述符是最近一个将要被回写至主存描述符,即该表象对应的报文是最近一个将要被提交的报文。
提交控制表中各个字段具体定义如下:
(1)提交时刻偏移表示描述符提交时刻在调度周期内的偏移,该偏移加上调度周期开始时刻即为该流对应的描述符的提交时刻。提交时刻表的表项按照提交时刻偏移从小至大的顺序排列。
(2)流id表示时间敏感流的编号。
(3)就绪状态表示描述符是否被提交到内存。状态为yes表示报文已经被传送到内存,但描述符还未提交。状态为no表示①报文未被传送到内存,或②报文已被传送到内存且描述符已提交。
如图4所示,在具体应用实施例中在一个调度周期内,提交控制模块将接收来自三条时间敏感流的四个报文,其中流f1在一个调度周期内有两个报文,因此提交控制表有四个表项,其中提交时刻偏移字段为每个报文相对调度周期开始时间的相对提交时间,则使用4个表项就能够控制f1、f2、f3三条流在系统运行期间所有报文的提交时间。其中就绪状态使用1表示yes,即报文准备就绪;0表示no,即报文未就绪或描述符已回写。
在具体应用实施例中,提交控制表的生成与配置具体由网卡驱动完成,调度工具为网络中的时间敏感流生成调度计划,驱动根据调度计划配置此终端的提交控制表,使得每个报文在终端上的提交时间遵循网络调度计划,保证时间敏感流在终端的确定性。
步骤S1按照上述配置地址信息表、提交控制表后,然后对提交控制表进行初始化,初始化提交控制表的提交指针,将提交指针初始化为指向提交控制表的第一个表项。
由于时间敏感报文到达的顺序并非提交控制表规定的顺序,因此当有新的时间敏感报文到达提交控制模块时,提交控制模块从提交指针当前指向的位置开始遍历提交控制表,寻找到第一个符合报文流id的表项。
本实施例中,步骤S3具体包括:
S301.接收时间敏感报文以及所属流的流id,根据流id从地址信息表中读取当前流对应的报文缓冲区地址;
S302.将接收到的时间敏感报文及读取的报文缓冲区地址一并发送给DMA写逻辑;
S303.通过DMA将接收到的时间敏感报文按照缓冲区地址写入主存的缓冲区中;
S304.遍历提交控制表,寻找到第一个符合当前流id的目标表项,并更新寻找到的目标表项的就绪状态。
当接收到时间敏感报文时,按照上述步骤控制DMA将报文写入主存,同时轮询提交控制表,寻找提交控制表中符合当前流id的表项,将该表项的就绪状态更新为已就绪状态,以表明该表项对应的报文已写入主存。
本实施例中,步骤S304具体包括:
S341.判断当前表项的流id是否是当前接收到的流id,如果是跳转至步骤S343,否则跳转至步骤S342;
S342.读取提交控制表的下一个表项,返回步骤S341;
S343.将提交控制表中当前表项的就绪状态置为已就绪状态,以表示当前表项对应的报文已经被DMA写到了主存的报文缓冲区当中。
如图3所示,在具体应用实施例中提交控制指针从0开始移动,当控制指针值为0时,指向表项1({toffset1,f1,no});如果提交控制模块已经接收并提交表项1的报文和描述符、接收表项2的报文但未提交描述符,那么此时控制指针的值为1,指向表项2({toffset2,f2,yes});如果此时提交控制模块又接收到流1的报文,则从表项2开始遍历并匹配流id,找到流id为f1的第一个表项为表项4,即将表项4由{toffset4,f1,no}更新为{toffset4,f1,yes}。
本实施例中,步骤S4具体包括:
S401.读取全局时间以及当前调度周期开始时间,计算全局时间与当前调度周期开始时间之间的差值,即为当前时间在调度周期开始时间内的偏移;
S402.从提交控制表中读取提交指针当前指向的表项;
S403.判断计算得到的差值是否等于当前表项的提交偏移时刻;如果是跳转至步骤S404;否则跳转至步骤S2;
S404.判断当前表项的就绪状态是否为已就绪状态,如果是,判定当前表项对应的时间敏感报文已经被写到了主存,跳转至步骤S5,否则判定当前表项对应的时间敏感报文还未到达,返回步骤S2。
当没有时间敏感报文需要处理时,按照上述步骤计算全局时间与当前调度周期开始时间之间的差值,该差值即为当前时间在调度周期开始时间内的偏移,通过判断该差值是否等于当前表项的提交偏移时刻以及就绪状态,判定出当前表项对应的报文是否已经被写到了主存以及当前已达到提交时刻,进而控制DMA提交描述符。
本实施例中,步骤S5包括:
S501.根据当前表项的流id,从地址信息表中读取出当前流的描述符地址;
S502.将描述符地址发送给DMA写逻辑,以指示DMA写逻辑将对应描述符的状态位置为有报文状态;
S503.将提交控制表当前表项的就绪状态重置为未就绪状态,以表示当前表项对应的描述符及报文已经提交到主存当中。
上述步骤S5中更新提交控制表中提交指针的指向位置时,具体将提交指针加一,以使得指向提交控制表的下一个表项。提交指针具体初始为0,指向提交控制表的第一个表项;当提交指向当前指向的表项的偏移时刻过期时,提交指针的值加一;每当提交指针的值加一,就指向提交控制表的下一个表项,当提交指针的值等于提交控制表的表项数目时,又回滚到0,即指向提交控制表的第一个表项。
本实施例通过驱动将描述符和报文缓冲区映射到用户空间,用户空间的应用程序轮询描述符,一旦描述符的状态字段被置位,则认为该描述符对应的报文缓冲区内已经有报文,应用接收报文后,自行重置描述符状态字段。由于每条时间敏感流只有一个专用缓冲区,因此如果应用没有及时将报文取走,DMA有可能会写入新的报文,覆盖旧的报文。
以下以本发明在具体应用实施例中采用上述方法实现TSN端系统网络报文接收DMA为例,对本发明进行进一步说明。
如图5所示,本实施例实现TSN端系统网络报文接收DMA方法的详细步骤如下:
第1步,网卡驱动配置提交控制表和地址信息表。
第2步,提交控制模块初始化提交控制表的提交指针,使提交指针指向提交控制表的第一个表项。
第3步,判断当前是否有时间敏感报文输入,如有跳转至步骤4;否则跳转至步骤12。
第4步,提交控制模块接收时间敏感报文及其该报文所属流的流id。
第5步,根据流id从地址信息表中读取该流id对应的报文缓冲区的物理地址。
第6步,将接收到的时间敏感报文及其报文缓冲区的物理地址一并发送给DMA写逻辑,由DMA写逻辑把报文写到位于主存的报文缓冲区当中。
第7步,提交控制模块从提交控制表中读取提交指针当前指向的表项。
第8步,判断当前表项的流id是否是当前接收到的流id。如是跳转至步骤10;否则跳转至步骤9。
第9步,读取提交控制表的下一个表项,跳转至步骤8。
第10步,将该表项的就绪状态置为yes,即表示该表项对应的报文已经被DMA写到了主存的报文缓冲区当中。
第11步,将读取的提交控制表表项写回提交控制表,跳转至步骤22。
第12步,提交控制模块读取全局时间以及当前调度周期的开始时间。
第13步,计算全局时间与当前调度周期开始时间之间的差值,该差值即当前时间在调度周期开始时间内的偏移。
第14步,从提交控制表读取提交指针当前指向的表项。
第15步,判断计算得到的差值是否等于表项的提交偏移时刻。若是跳转至步骤15;否则跳转至步骤3。
第16步,判断表项的就绪状态是否为yes,若是,说明当前表项对应的时间敏感报文已经被写到了主存,那么跳转至步骤17;否则,说明当前表项对应的时间敏感报文还未到达,那么跳转至步骤3。
第17步,根据当前表项的流id,从地址信息表中取出该流的描述符的物理地址。
第18步,将描述符的物理地址发送给DMA写逻辑,指示DMA写逻辑将该描述符的状态位置为“有报文”。
第19步,将提交控制表当前表项的就绪状态重置为no,表示该表项对应的描述符及报文已经提交到主存当中。
第20步,将提交控制表表项写回提交控制表。
第21步,将提交指针加一,使之指向提交控制表的下一个表项。
第22步,判断系统是否出现异常,如是则结束;否则跳转至步骤3。上述系统异常具体包括硬件断电、硬件停止工作等。
本实施例还提供计算机装置,包括处理器以及存储器,存储器用于存储计算机程序,处理器用于执行计算机程序,处理器用于执行计算机程序,以执行上述DMA方法。
本实施例还提供存储有计算机程序的计算机可读存储介质,计算机程序执行时实现如上述的DMA方法。
上述只是本发明的较佳实施例,并非对本发明作任何形式上的限制。虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明。因此,凡是未脱离本发明技术方案的内容,依据本发明技术实质对以上实施例所做的任何简单修改、等同变化及修饰,均应落在本发明技术方案保护的范围内。

Claims (10)

1.一种用于TSN端系统支持高确定性网络报文接收的DMA方法,其特征在于,步骤包括:
S1.配置用于控制DMA提交描述符的提交时间的提交控制表,以及用于存储描述符地址、报文缓冲区地址的地址信息表,所述提交控制表中每个表项分别对应一个时间敏感报文;
S2.判断是否接收到时间敏感报文,如果是跳转至步骤S3;否则跳转至步骤S4;
S3.根据接收到的报文所属流的流id,从所述地址信息表中取出对应的所述报文缓冲区地址,通过DMA将接收到的报文写入主存的缓冲区中,遍历所述提交控制表,寻找到第一个符合当前流id的目标表项并更新所述目标表项的就绪状态;
S4.计算全局时间与调度周期开始时间之间的差值,判断所述差值是否等于所述提交控制表中当前表项的提交偏移时刻,所述提交时刻偏移为对应描述符提交时刻在调度周期内的偏移,如果是且当前表项处于就绪状态则跳转至步骤S5;
S5.根据当前流id从所述地址信息表中取出对应的描述符地址,并通知DMA提交对应的描述符,更新所述提交控制表中对应表项的就绪状态。
2.根据权利要求1所述的用于TSN端系统支持高确定性网络报文接收的DMA方法,其特征在于,所述步骤S1中还包括初始化所述提交控制表的提交指针,由所述提交指针指向当前最近需要提交的表项,将所述提交指针初始化为指向所述提交控制表的第一个表项。
3.根据权利要求1所述的用于TSN端系统支持高确定性网络报文接收的DMA方法,其特征在于:所述提交控制表的表项按照所述提交时刻偏移从小至大的顺序排列。
4.根据权利要求1所述的用于TSN端系统支持高确定性网络报文接收的DMA方法,其特征在于,所述步骤S3包括:
S301.接收时间敏感报文以及所属流的流id,根据所述流id从所述地址信息表中读取当前流对应的报文缓冲区地址;
S302.将接收到的时间敏感报文及读取的所述报文缓冲区地址一并发送给DMA写逻辑;
S303.通过DMA将接收到的时间敏感报文按照所述缓冲区地址写入主存的缓冲区中;
S304.遍历所述提交控制表,寻找到第一个符合当前流id的目标表项,并更新寻找到的目标表项的就绪状态。
5.根据权利要求4所述的用于TSN端系统支持高确定性网络报文接收的DMA方法,其特征在于,所述步骤S304包括:
S341.判断当前表项的流id是否是当前接收到的流id,如果是跳转至步骤S343,否则跳转至步骤S342;
S342.读取所述提交控制表的下一个表项,返回步骤S341;
S343.将所述提交控制表中当前表项的就绪状态置为已就绪状态,以表示当前表项对应的报文已经被DMA写到了主存的报文缓冲区当中。
6.根据权利要求1~5中任意一项所述的用于TSN端系统支持高确定性网络报文接收的DMA方法,其特征在于,所述步骤S4包括:
S401.读取全局时间以及当前调度周期开始时间,计算所述全局时间与所述当前调度周期开始时间之间的差值,即为当前时间在调度周期开始时间内的偏移;
S402.从所述提交控制表中读取所述提交指针当前指向的表项;
S403.判断计算得到的所述差值是否等于当前表项的所述提交偏移时刻;如果是跳转至步骤S404;否则跳转至步骤S2;
S404.判断当前表项的就绪状态是否为已就绪状态,如果是,判定当前表项对应的时间敏感报文已经被写到了主存,跳转至步骤S5,否则判定当前表项对应的时间敏感报文还未到达,返回步骤S2。
7.根据权利要求1~5中任意一项所述的用于TSN端系统支持高确定性网络报文接收的DMA方法,其特征在于,所述步骤S5包括:
S501.根据当前表项的流id,从所述地址信息表中读取出当前流的描述符地址;
S502.将所述描述符地址发送给DMA写逻辑,以指示DMA写逻辑将对应描述符的状态位置为有报文状态;
S503.将所述提交控制表当前表项的就绪状态重置为未就绪状态,以表示当前表项对应的描述符及报文已经提交到主存当中。
8.根据权利要求1所述的用于TSN端系统支持高确定性网络报文接收的DMA方法,其特征在于,所述步骤S5中更新所述提交控制表中所述提交指针的指向位置时,具体将所述提交指针加一,以使得指向所述提交控制表的下一个表项。
9.一种计算机装置,包括处理器以及存储器,所述存储器用于存储计算机程序,所述处理器用于执行所述计算机程序,其特征在于,所述处理器用于执行所述计算机程序,以执行如权利要求1~8中任意一项所述方法。
10.一种存储有计算机程序的计算机可读存储介质,其特征在于,所述计算机程序执行时实现如权利要求1~8中任意一项所述的方法。
CN202110631612.0A 2021-06-07 2021-06-07 一种用于tsn端系统支持高确定性网络报文接收的dma方法 Active CN113411152B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110631612.0A CN113411152B (zh) 2021-06-07 2021-06-07 一种用于tsn端系统支持高确定性网络报文接收的dma方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110631612.0A CN113411152B (zh) 2021-06-07 2021-06-07 一种用于tsn端系统支持高确定性网络报文接收的dma方法

Publications (2)

Publication Number Publication Date
CN113411152A true CN113411152A (zh) 2021-09-17
CN113411152B CN113411152B (zh) 2022-07-26

Family

ID=77676709

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110631612.0A Active CN113411152B (zh) 2021-06-07 2021-06-07 一种用于tsn端系统支持高确定性网络报文接收的dma方法

Country Status (1)

Country Link
CN (1) CN113411152B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115118670A (zh) * 2022-06-29 2022-09-27 北京物芯科技有限责任公司 一种tsn网络的门控方法、交换机及存储介质
CN115277600A (zh) * 2022-08-09 2022-11-01 北京物芯科技有限责任公司 一种tsn网络的门控方法、门控装置、芯片及交换机

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110024339A (zh) * 2017-11-06 2019-07-16 华为技术有限公司 报文转发方法、转发设备和网络设备
CN111525973A (zh) * 2020-03-23 2020-08-11 腾讯科技(深圳)有限公司 时间同步方法、装置、计算机可读介质及电子设备
CN111935034A (zh) * 2020-08-05 2020-11-13 上海映驰科技有限公司 用于时间敏感网络的流预留方法、系统和计算机设备
US10853308B1 (en) * 2018-11-19 2020-12-01 Xilinx, Inc. Method and apparatus for direct memory access transfers
CN112217733A (zh) * 2019-07-09 2021-01-12 中兴通讯股份有限公司 一种报文处理方法及相关装置
CN112838904A (zh) * 2021-01-08 2021-05-25 中国电子技术标准化研究院 Tsn网络延迟抖动测量装置及方法

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110024339A (zh) * 2017-11-06 2019-07-16 华为技术有限公司 报文转发方法、转发设备和网络设备
CN112202685A (zh) * 2017-11-06 2021-01-08 华为技术有限公司 报文转发方法、转发设备和网络设备
US10853308B1 (en) * 2018-11-19 2020-12-01 Xilinx, Inc. Method and apparatus for direct memory access transfers
CN112217733A (zh) * 2019-07-09 2021-01-12 中兴通讯股份有限公司 一种报文处理方法及相关装置
WO2021004210A1 (zh) * 2019-07-09 2021-01-14 中兴通讯股份有限公司 一种报文处理方法及相关装置
CN111525973A (zh) * 2020-03-23 2020-08-11 腾讯科技(深圳)有限公司 时间同步方法、装置、计算机可读介质及电子设备
CN111935034A (zh) * 2020-08-05 2020-11-13 上海映驰科技有限公司 用于时间敏感网络的流预留方法、系统和计算机设备
CN112838904A (zh) * 2021-01-08 2021-05-25 中国电子技术标准化研究院 Tsn网络延迟抖动测量装置及方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
IEEE: ""802.1CM-2018 - IEEE Standard for Local and metropolitan area networks -- Time-Sensitive Networking for Fronthaul"", 《IEEE STD 802.1CM™-2018》 *
WEI QUAN: ""On-line Traffic Scheduling optimization in IEEE 802.1Qch based Time-Sensitive Networks"", 《 2020 IEEE 22ND INTERNATIONAL CONFERENCE ON HIGH PERFORMANCE COMPUTING AND COMMUNICATIONS; IEEE 18TH INTERNATIONAL CONFERENCE ON SMART CITY; IEEE 6TH INTERNATIONAL CONFERENCE ON DATA SCIENCE AND SYSTEMS 》 *
张弛等: "时间敏感网络关键技术与标准化现状", 《自动化仪表》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115118670A (zh) * 2022-06-29 2022-09-27 北京物芯科技有限责任公司 一种tsn网络的门控方法、交换机及存储介质
CN115277600A (zh) * 2022-08-09 2022-11-01 北京物芯科技有限责任公司 一种tsn网络的门控方法、门控装置、芯片及交换机

Also Published As

Publication number Publication date
CN113411152B (zh) 2022-07-26

Similar Documents

Publication Publication Date Title
CN113411152B (zh) 一种用于tsn端系统支持高确定性网络报文接收的dma方法
EP0798638B1 (en) Periodic process scheduling method
JP2566726B2 (ja) データ処理方法および装置
US20060072563A1 (en) Packet processing
US7032226B1 (en) Methods and apparatus for managing a buffer of events in the background
US7269179B2 (en) Control mechanisms for enqueue and dequeue operations in a pipelined network processor
US20150288624A1 (en) Low-latency processing in a network node
US20130159568A1 (en) Recovering dropped instructions in a network interface controller
US20130024864A1 (en) Scalable Hardware Mechanism to Implement Time Outs for Pending POP Requests to Blocking Work Queues
EP2406723A1 (en) Scalable interface for connecting multiple computer systems which performs parallel mpi header matching
US10038571B2 (en) Method for reading and writing forwarding information base, and network processor
US7293158B2 (en) Systems and methods for implementing counters in a network processor with cost effective memory
US8650336B2 (en) Direct memory access (DMA) device with event mover that moves event from event calendar to expired event queue without management of central processing unit
JP4066617B2 (ja) データの完全性を伴いデータネットワークに接続される記憶装置システム
WO2012094862A1 (zh) 操作系统的任务调度方法、装置及计算机
US7552232B2 (en) Speculative method and system for rapid data communications
WO2024113996A1 (zh) 一种对主机io处理的优化方法、装置、设备及非易失性可读存储介质
CN112559219A (zh) 一种物联网离线消息管理方法、装置、设备及存储介质
US20080263171A1 (en) Peripheral device that DMAS the same data to different locations in a computer
CN100469055C (zh) 转发报文的处理方法及处理装置
CN116633875B (zh) 一种多业务耦合并发通信的时间保序调度方法
CN102045234B (zh) 路由地址映射信息的缓存及超时处理方法和隧道路由器
CN111158930A (zh) 一种基于Redis的高并发延时任务系统和处理方法
US20230229500A1 (en) Parallel and distributed computing system
KR19980079676A (ko) 메시지 도착 통지를 위한 소스 및 수신지 개시 인터럽트 시스템

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
GR01 Patent grant
GR01 Patent grant