CN111786897A - 一种周期性流表的基于小根堆的时间有序访问控制方法 - Google Patents
一种周期性流表的基于小根堆的时间有序访问控制方法 Download PDFInfo
- Publication number
- CN111786897A CN111786897A CN202010548022.7A CN202010548022A CN111786897A CN 111786897 A CN111786897 A CN 111786897A CN 202010548022 A CN202010548022 A CN 202010548022A CN 111786897 A CN111786897 A CN 111786897A
- Authority
- CN
- China
- Prior art keywords
- heap
- flow table
- ptr
- node
- state machine
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供了一种周期性流表的基于小根堆的时间有序访问控制方法。该方法包括:将时间敏感网络中的周期性流表调整为堆状态机形式,所述堆状态机中的一个节点对应周期性流表中的一个表项,所述堆状态机中的任一父节点的发送时间小于其左孩子和右孩子的发送时间,堆顶节点的发送时间最小;在所述堆状态机的堆顶节点的发送时间到达后,将所述堆顶节点对应表项的数据流发送出去。本发明的周期性流表的基于小根堆的时间有序访问控制方法解决了周期性流表重复表项的问题,该方法适合中、小规模的周期性流表进行时间有序的访问控制,比如1024条数据流以下的时间敏感网络。
Description
技术领域
本发明涉及计算机网络的确定性实时传输领域,尤其涉及一种周期性流表的基于小根堆的时间有序访问控制方法。
背景技术
时间敏感网络(Time-SensitiveNetworking,简称TSN)由IEEE 802.1 TSN Group在2012年提出并标准化,业已成为工业互联网基础设施转型升级的重要研究方向,被学术界和工业界广泛接受。周期性流表是TSN实现确定性实时传输的核心配置信息。周期性流表通常包含窗口(wi,即窗口持续的时间)、开始时间(oi,即窗口开始时间)、数据流(fi,即窗口持续时间内需要传输的调度报文)等表项。流表以开始时间为序,依次执行,在开始时间oi打开数据流fi对应队列的开关,在窗口持续时间wi内发送该数据流的报文,当窗口持续时间耗尽,队列开关关闭,这时别的队列开关打开,发送其它数据;当流表执行完最后一个表项,又从第一个表项开始,周期性地循环;流表的循环周期是所有数据流周期的最小公倍数(Least Common Multiple,简称LCM),称为宏周期。TSN通过周期性流表控制不同队列的门控开关,实现实时数据流在精准的时间内发送,从而保证数据传输的确定性和实时性。
上述现有技术中周期性流表的访问控制方法的缺点为:会导致表项的重复,图1示意了3条数据流的例子,3条数据流的宏周期为4ms,在宏周期内,数据流f1出现了4次,f2出现了2次,f3出现了1次,因此,由于表项的重复出现,3条数据流的周期性流表包含了7个表项。一般地,n个数据流f1,f2...,fn的空间复杂度为当宏周期与单个数据流的周期差别较大时,将导致数据流表项大量重复,造成存储空间的浪费。
发明内容
本发明的实施例提供了一种周期性流表的基于小根堆的时间有序访问控制方法,以克服现有技术的问题。
为了实现上述目的,本发明采取了如下技术方案。
一种周期性流表的基于小根堆的时间有序访问控制方法,包括:
将时间敏感网络中的周期性流表调整为堆状态机形式,所述堆状态机中的一个节点对应周期性流表中的一个表项,所述堆状态机中的任一父节点的发送时间小于其左孩子和右孩子的发送时间,堆顶节点的发送时间最小;
在所述堆状态机的堆顶节点的发送时间到达后,将所述堆顶节点对应表项的数据流发送出去。
优选地,所述堆状态机中的第i个父节点的左孩子是第2i个节点,右孩子是第2i+1个节点。
优选地,将所述堆顶节点对应表项的数据流发送出去之后,还包括:
将所述堆顶节点对应表项的数据流发送出去之后,将所述堆顶节点对应的表项的下次发送时间设置为周期性流表的周期加上其上次发送时间,根据各个表项的发送时间对所述周期性流表的堆状态机进行重新调整,形成新的堆状态机;
在所述新的堆状态机的堆顶节点的发送时间到达后,将所述新的堆状态机的堆顶节点对应表项的数据流发送出去。
优选地,所述的根据各个表项的发送时间对所述周期性流表的堆状态机进行重新调整,形成新的堆状态机,包括:
(1)设T表示周期性流表,T.length表示流表的长度即表项数;ptr和min均是流表表项的地址,即T[ptr]和T[min]分别表示取流表T中第ptr项和第min项的内容;Item表示一个表项的内容;start表示调整流表成堆状态机的信号,当start=1时表示流表需要重新调整成堆状态机,否则不需要;
(2)状态1:初始化各个信号,ptr=1表示指向流表的第一个表项,当start=1时转移到状态2;
(3)状态2:将表项T[ptr]与它的左孩子T[2*ptr]和右孩子T[2*ptr+1]进行比较,将开始时间(o)最小的表项地址赋值给min,当min=ptr时,说明堆堆状态机的调整已经完成,这时转移到状态1;当min≠ptr时,则还需要调整堆状态机,这时转移到状态3;
(4)状态3:将表项T[ptr]与T[min]通过item互换内容,ptr被设置为min,指向下一个待调整的节点,如果2ptr≤T.length,说明ptr的孩子节点存在,需要进行调整,这时转移到状态2;如果2ptr>T.length,说明ptr的孩子节点不存在,即ptr指向的表项在堆中是叶节点,堆状态机的调整已经完成,转移到状态1。
由上述本发明的实施例提供的技术方案可以看出,本发明实施例的周期性流表的基于小根堆的时间有序访问控制方法解决了周期性流表重复表项的问题,该方法适合中、小规模的周期性流表进行时间有序的访问控制,比如1024条数据流以下时间敏感网络。
本发明附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为现有技术中的一种有重复表项的周期性流表示例图;
图2为本发明实施例提供的一种基于小根堆的时间有序访问控制方法的四条数据流示例示意图;
图3为本发明实施例提供的一种三状态的周期性流表调整成堆的状态机示意图。
具体实施方式
下面详细描述本发明的实施方式,所述实施方式的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施方式是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的任一单元和全部组合。
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语)具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样定义,不会用理想化或过于正式的含义来解释。
为便于对本发明实施例的理解,下面将结合附图以几个具体实施例为例做进一步的解释说明,且各个实施例并不构成对本发明实施例的限定。
针对上述现有技术中周期性流表重复表项的问题,周期性流表无重复表项的时间有序访问控制方法对TSN交换机有着重要意义。因此,本发明实施例设计了一种周期性流表的基于小根堆的时间有序访问控制方法。它的最大特点是周期性流表在逻辑上是一个小根堆,图2为本发明实施例提供的一种基于小根堆的时间有序访问控制方法的四条数据流示例示意图,图3为三状态的周期性流表调整成堆的状态机示意图。图2(b)示意了4条数据流的周期性流表,即,任一父节点的发送时间都小于其左孩子和右孩子的发送时间,且第i个表项的左孩子是2i,右孩子是2i+1。该方法有如下特点:
(1)周期性流表的第一个表项总是对应按照时间有序的方式最先被发送的数据流;
(2)周期性流表中无重复数据流的表项,即每条数据流唯一对应周期性流表中的一个表项;
(3)每次访问完第一个表项后,需对下一次的访问重新调整周期性流表成堆,如果流表的长度L,那么调整成堆的时间复杂度为O(log L),图2中(c)和(d)示意了访问完第一个表项后调整成堆的过程。
该方法解决了周期性流表重复表项的问题,但每次访问后都需要O(log L)的时间重新调整成堆,因此,该方法适合中、小规模的周期性流表进行时间有序的访问控制,比如1024条数据流以下时间敏感网络。
下面结合附图2,3,对本发明的实施方式进行详细说明。应该强调的是,下述说明仅仅是示例性的,而不是为了限制本发明的范围及其应用。
步骤一:按照数据流的开始发送时间(o)将其组织成小根堆,配置到TSN交换机的周期性流表中,使得第i个表项的开始时间(o)比2i,2i+1两个表项的开始时间(o)都小,图2中4条数据流(a)经过步骤一后得到(b)所示的周期性流表。
步骤二:周期性流表被组织成小根堆后,堆顶的表项即第1个表项,就是按时间有序方式最先访问的表项(开始时间最小的表项),对应的数据流不妨设为fi,当它被发送后,累加上发送周期fi·period即为下次的发送时间,图2(b)中数据流f1在被发送后,它的下一次发送时间变为1080us=80us(f1·o)+1ms(f1·period),如图2(c)所示。
步骤三:当堆顶的表项被访问以后,它的下一次发送时间通常会破坏堆结构,如图2(c)所示,因而需要对周期性流表进行重新调整,使其成为新的小根堆,如图(d)所示。图3示意了面向嵌入式硬件平台如FPGA,调整成堆的过程,但该过程并不限于硬件的实现,也可以软件实现,具体工程如下:
(1)信号的定义:T表示周期性流表,T.length表示流表的长度即表项数;ptr和min均是流表表项的地址,即T[ptr]和T[min]分别表示取流表T中第ptr项和第min项的内容;Item表示一个表项的内容;start表示调整流表成堆的信号,当start=1时表示流表需要重新调整成堆,否则不需要。
(2)状态1:如图3中状态1所示,初始化各个信号,ptr=1表示指向流表的第一项,当start=1时转移到状态2。
(3)状态2:如图3中状态2所示,虚线框内是表项T[ptr]与它的左孩子T[2*ptr]和右孩子T[2*ptr+1]进行比较,将开始时间(o)最小的表项地址赋值给min。当min=ptr时,说明堆调整已经完成,这时转移到状态1;当min≠ptr时,说明仍需调整,这时转移到状态3。
(4)状态3:如图3中状态3所示,虚线框内表示表项T[ptr]与T[min]通过item互换内容,然后,ptr被设置为min,指向下一个待调整的节点。如果2ptr≤T.length,说明ptr的孩子节点存在,需要进行调整,这时转移到状态2;如果2ptr>T.length,说明ptr的孩子节点不存在,即ptr指向的表项在堆中是叶节点,调整已经完成,这时转移到状态1。
当步骤三完成后,周期性流表又一次被调整成堆,堆顶表项即为按时间有序方式对应即将被发送的数据流,该数据流被发送后,执行步骤二,紧接着执行步骤三调整成堆,然后又执行步骤二,周而复始。周期性流表的基于小根堆的时间有序访问控制方法实际上就是步骤二与步骤三的循环执行,仅当流表需要重新配置时执行步骤一。
综上所述,本发明实施例的周期性流表的基于小根堆的时间有序访问控制方法解决了周期性流表重复表项的问题,节省了流表的存储空间,尤其对嵌入式硬件平台(片上存储空间十分有限)具有重要意义;但调整成堆的过程需要对数级的时间复杂度,从而该方法适合中、小规模的周期性流表进行时间有序的访问控制,比如1024条数据流以下时间敏感网络。
本领域普通技术人员可以理解:附图只是一个实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置或系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置及系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
Claims (4)
1.一种周期性流表的基于小根堆的时间有序访问控制方法,其特征在于,包括:
将时间敏感网络中的周期性流表调整为堆状态机形式,所述堆状态机中的一个节点对应周期性流表中的一个表项,所述堆状态机中的任一父节点的发送时间小于其左孩子和右孩子的发送时间,堆顶节点的发送时间最小;
在所述堆状态机的堆顶节点的发送时间到达后,将所述堆顶节点对应表项的数据流发送出去。
2.根据权利要求1所述的方法,其特征在于,所述堆状态机中的第i个父节点的左孩子是第2i个节点,右孩子是第2i+1个节点。
3.根据权利要求2所述的方法,其特征在于,将所述堆顶节点对应表项的数据流发送出去之后,还包括:
将所述堆顶节点对应表项的数据流发送出去之后,将所述堆顶节点对应的表项的下次发送时间设置为周期性流表的周期加上其上次发送时间,根据各个表项的发送时间对所述周期性流表的堆状态机进行重新调整,形成新的堆状态机;
在所述新的堆状态机的堆顶节点的发送时间到达后,将所述新的堆状态机的堆顶节点对应表项的数据流发送出去。
4.根据权利要求3所述的方法,其特征在于,所述的根据各个表项的发送时间对所述周期性流表的堆状态机进行重新调整,形成新的堆状态机,包括:
(1)设T表示周期性流表,T.length表示流表的长度即表项数;ptr和min均是流表表项的地址,即T[ptr]和T[min]分别表示取流表T中第ptr项和第min项的内容;Item表示一个表项的内容;start表示调整流表成堆状态机的信号,当start=1时表示流表需要重新调整成堆状态机,否则不需要;
(2)状态1:初始化各个信号,ptr=1表示指向流表的第一个表项,当start=1时转移到状态2;
(3)状态2:将表项T[ptr]与它的左孩子T[2*ptr]和右孩子T[2*ptr+1]进行比较,将开始时间(o)最小的表项地址赋值给min,当min=ptr时,说明堆堆状态机的调整已经完成,这时转移到状态1;当min≠ptr时,则还需要调整堆状态机,这时转移到状态3;
(4)状态3:将表项T[ptr]与T[min]通过item互换内容,ptr被设置为min,指向下一个待调整的节点,如果2ptr≤T.length,说明ptr的孩子节点存在,需要进行调整,这时转移到状态2;如果2ptr>T.length,说明ptr的孩子节点不存在,即ptr指向的表项在堆中是叶节点,堆状态机的调整已经完成,转移到状态1。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010548022.7A CN111786897A (zh) | 2020-06-16 | 2020-06-16 | 一种周期性流表的基于小根堆的时间有序访问控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010548022.7A CN111786897A (zh) | 2020-06-16 | 2020-06-16 | 一种周期性流表的基于小根堆的时间有序访问控制方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111786897A true CN111786897A (zh) | 2020-10-16 |
Family
ID=72756642
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010548022.7A Pending CN111786897A (zh) | 2020-06-16 | 2020-06-16 | 一种周期性流表的基于小根堆的时间有序访问控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111786897A (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1894888A (zh) * | 2003-10-15 | 2007-01-10 | 高通股份有限公司 | 高速媒体接入控制和直接链路协议 |
CN105634986A (zh) * | 2014-11-30 | 2016-06-01 | 中国科学院沈阳自动化研究所 | 一种交换机实现方法与系统 |
US20180316557A1 (en) * | 2017-05-01 | 2018-11-01 | General Electric Company | Resilient network configuration for time sensitive traffic |
-
2020
- 2020-06-16 CN CN202010548022.7A patent/CN111786897A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1894888A (zh) * | 2003-10-15 | 2007-01-10 | 高通股份有限公司 | 高速媒体接入控制和直接链路协议 |
CN105634986A (zh) * | 2014-11-30 | 2016-06-01 | 中国科学院沈阳自动化研究所 | 一种交换机实现方法与系统 |
US20180316557A1 (en) * | 2017-05-01 | 2018-11-01 | General Electric Company | Resilient network configuration for time sensitive traffic |
Non-Patent Citations (1)
Title |
---|
苏里帆: "时间触发网络的调度算法研究", 《CNKI博士学位论文全文库》 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111786900B (zh) | 一种基于时间队列的时态感知流量整形器 | |
Prabhakaran et al. | Synchronization models for multimedia presentation with user participation | |
Lin et al. | Stability and persistent disturbance attenuation properties for a class of networked control systems: switched system approach | |
US7158964B2 (en) | Queue management | |
US20090138570A1 (en) | Method for setting parameters and determining latency in a chained device system | |
CN110990140B (zh) | 一种光电交换网络中分布式机器学习流的调度方法 | |
CN104660477A (zh) | 一种基于时间触发总线的星型拓扑网络搭建方法 | |
Zhu et al. | Supervisor synthesis for networked discrete event systems with communication delays and lossy channels | |
CN102103497A (zh) | 有限状态机执行装置和方法、在应用中的建立和使用方法 | |
CN100531129C (zh) | 用于在网络处理器中记帐的装置和方法 | |
US10038571B2 (en) | Method for reading and writing forwarding information base, and network processor | |
CN104243300A (zh) | 包处理方法以及包处理装置 | |
CN109347884A (zh) | 一种实时以太网到现场总线的转换方法及装置、存储介质 | |
CN110704438B (zh) | 一种区块链中布隆过滤器的生成方法及装置 | |
CN101902390B (zh) | 一种单播和多播集成调度装置、交换系统及方法 | |
US7558285B2 (en) | Data processing system and data interfacing method thereof | |
CN101027634A (zh) | 数据传送机制 | |
CN115022182A (zh) | 一种基于qsilp算法的列车通信网络实时流调度优化方法 | |
CN111786897A (zh) | 一种周期性流表的基于小根堆的时间有序访问控制方法 | |
US20190187927A1 (en) | Buffer systems and methods of operating the same | |
CN104796328B (zh) | 基于knx/eib总线的多接口或协议的数据通信装置的网关主机 | |
Chen et al. | The relevant research of CoE protocol in EtherCAT Industrial Ethernet | |
CN100469056C (zh) | 网络交换器的分组队列的运作方法 | |
Becker et al. | PNiQ: Integration of queuing networks in generalised stochastic Petri nets | |
CN105207958B (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20201016 |