一种共享式TSN整形调度装置

文档序号:31603620发布日期:2022-09-21 09:45阅读:153来源:国知局
一种共享式TSN整形调度装置
一种共享式tsn整形调度装置
技术领域
1.本发明涉及tsn网络调度技术领域,特别是涉及一种共享式tsn整形调度装置。


背景技术:

2.时间敏感网络(time sensitive networking, tsn)技术通过在标准以太网的基础上引入时间同步、确定性分组转发、帧复制与消除等功能,对传统以太网在实时性、容错性方面进行增强,旨在为时间敏感流量提供确定性、可靠性的服务,在航空航天、5g、高端装备制造等领域有良好的应用前景。
3.时间敏感网络中同时存在着多种具有不同实时性和确定性服务需求的流量类型,例如具有硬实时要求的时间敏感流量(hard real time
ꢀ‑ꢀ
hrt流,即802.1qbv标准定义的scheduled traffic流量)、具有软实时要求的时间敏感流量(soft real time
ꢀ–ꢀ
srt流,如802.1qav标准定义的音视频类srt流)、以及对实时性没有要求的尽力而为流量(be流)。不同类型的流量对于tsn交换芯片的整形调度具有不同的需求,对于具有硬实时需求的时间敏感类流量(具有周期性特征),要求tsn交换芯片具有时间同步能力并且能提供具备精确时间感知能力的整形调度器来确保流量在每一跳交换节点的准确输入输出时间窗口。而对于具有软实时需求,对tsn交换芯片整形调度的时间精确度则要求较低。 为了支持多种具有不同实时性和确定性需求的流量,要求tsn交换芯片可提供灵活的整形调度支撑。但是现有tsn交换芯片通常只实现少量固定的整形调度机制,无法针对流量不同服务等级(实时性、确定性)需求进行灵活调整。
4.此外,为了保障时间敏感流量的实时性和确定性,tsn交换芯片通常需要采用片上存储资源对流量的分组数据和分组描述符进行缓存。随着各类实时应用场景中时间敏感流量的数目越来越多,例如在车载网络中,随着车上传感器数量成倍的提升,网络中时间敏感流的数目成倍增长。流量数目的增长直接导致片上存储资源成为了制约时间敏感网络交换芯片设计的瓶颈,尤其是嵌入式应用场景中芯片资源受限情况下,传统基于端口优先级队列的分布式分组缓存与调度方法显然是对片上有限存储资源的极大浪费。
5.为提高缓存资源利用率,现有的tsn交换芯片上常采用集中式分组缓存实现多个输出端口共享,以提高缓冲区资源的利用率,但其输出调度仍然采用标准提出的优先级队列的方式对分组描述符进行缓存。为支持交换极端处理情况,各优先级队列需要设置的深度要与集中缓存所能存储的分组数量保持一致,从而导致各端口分组描述符缓存仍然存在大量的浪费。此外,为了保障时间敏感流量的调度实时性和确定性,各端口还需要为每个队列设置门控表来控制队列打开和关闭时间,该控制信息不仅带来了较大的存储开销,而且给交换机的管理配置增加了复杂度。
6.因此,提供一种可以按需灵活保障不同程度的数据传输实时性和确定性同时,有效降低tsn交换所需的逻辑资源和存储资源和管理控制复杂度的共享式tsn整形调度装置是本领域技术人员亟待解决的问题。


技术实现要素:

7.本发明的目的在于提供一种共享式tsn整形调度装置,该装置结构简单,安全、有效、可靠且操作简便,该装置可以按需灵活保障不同程度的数据传输实时性和确定性同时,有效降低tsn交换所需的逻辑资源和存储资源和管理控制复杂度。
8.基于以上目的,本发明提供的技术方案如下:一种共享式tsn整形调度装置,包括:分组集中处理模块和分组集中缓存模块;所述分组集中处理模块包括:输入处理模块、分组处理子模块、共享式tsn整形调度器和输出处理模块;所述分组集中缓存模块分别与所述输入处理模块和所述输出处理模块连接;若干个依次排列的所述分组处理子模块分别与所述输入处理模块和所述共享式tsn整形调度器连接;所述共享式tsn整形调度器与所述输出处理模块连接;所述输入处理模块用于通过所述分组处理子模块向所述共享式tsn整形调度器输入分组描述符。
9.优选地,所述分组描述符内包括:分组调度所需信息;所述分组调度所需信息包括:分组所属的流id、分组集中缓存id、分组入队优先级、分组到达时间、分组长度、分组输入端口号和分组输出端口号。
10.优选地,所述共享式tsn整形调度器包括:流分类模块、分组描述符缓存模块、分组描述符集中调度模块和端口轮询调度模块;所述流分类模块与所述分组描述符缓存模块连接,所述流分类模块用于根据所述分组调度所需信息识别分组后将所述分组描述符输送至对应的所述分组描述符缓存模块;所述分组描述符集中调度模块一端与所述分组描述符缓存模块连接,另一端与所述端口轮询调度模块连接。
11.优选地,所述分组描述符缓存模块包括:分组描述符缓存处理子模块和分组描述符缓存子模块;所述分组描述符缓存处理子模块包括:hrt分组描述符缓存处理子模块、srt分组描述符缓存处理子模块和be分组描述符缓存处理子模块;所述分组描述符缓存子模块包括:hrt分组描述符缓存子模块和srt&be分组描述符缓存子模块;所述hrt分组描述符缓存处理子模块与所述hrt分组描述符缓存子模块连接;所述srt分组描述符缓存处理子模块和所述be分组描述符缓存处理子模块均与所述srt&be分组描述符缓存子模块连接。
12.优选地,所述分组描述符缓存处理子模块还包括:hrt分组描述符缓存地址表和srt分组延迟计算信息表;所述hrt分组描述符缓存地址表与所述hrt分组描述符缓存处理子模块连接;所述srt分组延迟计算信息表与所述srt分组描述符缓存处理子模块连接。
13.优选地,所述分组描述符集中调度模块包括:hrt分组调度表、srt分组调度表和be分组调度表;所述hrt分组调度表与所述分组描述符集中调度模块连接;
所述srt分组调度表一端与所述srt分组描述符缓存处理子模块连接,另一端与所述分组描述符集中调度模块连接;所述be分组调度表一端与所述be分组描述符缓存处理子模块连接,另一端与所述分组描述符集中调度模块连接。
14.优选地,所述分组描述符集中调度模块包括:hrt分组描述符调度子模块、hrt分组调度向量表、srt分组描述符调度子模块、be分组描述符调度子模块、输出描述符寄存器对和端口时间感知调度模块;所述输出描述符寄存器对设有若干个;若干个输出描述符寄存器对包括:第一输出描述符寄存器对、第二输出描述符寄存器对和第三输出描述符寄存器对;所述hrt分组描述符调度子模块通过所述第一输出描述符寄存器对与所述端口时间感知调度模块连接;所述hrt分组描述符调度子模块与所述hrt分组调度向量表连接;所述srt分组描述符调度子模块通过所述第二输出描述符寄存器对与所述端口时间感知调度模块连接;所述be分组描述符调度子模块通过所述第三输出描述符寄存器对于所述端口时间感知调度模块连接。
15.优选地,所述分组描述符集中调度模块还包括:计时模块;所述计时模块分别与所述hrt分组描述符调度子模块、所述srt分组描述符调度子模块和端口时间感知调度模块连接;所述计时模块用于生成交换机当前所处的时间槽号,并将当前时间槽号分别输出至所述hrt分组描述符调度子模块和所述srt分组描述符调度子模块;计时模块还用于生成每个新时间槽开始信号,并将所述新时间槽开始信号输出至所述端口时间感知调度模块。
16.优选地,所述时间感知调度包括:hrt调度子模块、srt调度子模块、be调度子模块和调度控制子模块;所述调度控制子模块分别与所述hrt调度子模块、所述srt调度子模块和所述be调度子模块连接;所述调度控制子模块用于在空闲状态下调用所述hrt调度子模块,进入hrt调度状态;所述hrt调度子模块用于在进入hrt状态后,执行hrt调度;所述调度控制子模块还用于在满足第一预设条件时调用所述srt调度子模块,进入srt调度状态;所述srt调度子模块用于在进入srt调度状态后,执行srt调度;所述调度控制子模块还用于在满足第二预设条件时调用所述be调度子模块,进入be调度状态;所述be调度子模块用于在进入be调度状态后,执行be调度。
17.优选地,所述端口轮询调度模块用于将各端口的所述分组描述符按照端口轮询调度的方式分别输出到对应的所述端口输出模块。
18.本发明所提供的共享式tsn整形调度装置,设置有分组集中处理模块和分组集中缓存模块;分组集中处理模块中设置有输入处理模块、分组处理子模块、共享式tsn整形调度器和输出处理模块;其中,分组集中缓存模块分别与输入处理模块和输出处理模块连接;若干个依次排列的分组处理子模块分别与输入处理模块和共享式tsn整形调度器连接;共享式tsn整形另一端与输出处理模块连接;输入处理模块用于通过分组处理子模块向共享式tsn整形调度器输入分组描述符;工作过程中,用户通过多个端口向输入处理模块输入分组数据;输入处理模块提取分组的关键字段作为分组描述符输出至若干个分组处理子模块中进行处理,同时将分组数据缓存到分组集中缓存区;经过若干个分组处理子模块处理后,将处理后的分组描述符输出至共享式tsn整形调度器中;共享式tsn整形调度器对分组描述符进行集中调度;调度完成后,共享式tsn整形调度器将调度完成的分组描述符中的分组缓存id输出至端口输出模块,端口输出模块从分组集中缓存模块中读取分组数据并输出。本发明通过对不同类型的分组采用对应的共享式调度方法,能够按需灵活保障不同程度的数据传输实时性和确定性同时,有效降低tsn交换所需的逻辑资源和存储资源以及管理控制复杂度。
附图说明
19.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
20.图1为本发明实施例提供的一种共享式tsn整形调度装置的结构示意图;图2为本发明实施例提供的一种共享式tsn整形调度器的结构示意图;图3为本发明实施例提供的srt分组调度表索引的示意图,其中(a)表示时间槽为0(初始时间槽)时srt分组调度表索引所指向的表项位置,其中(b)表示时间槽为1时srt分组调度表索引所指向的表项位置,其中(c)表示时间槽为m-1时srt分组调度表索引所指向的表项位置,其中(d)表示时间槽为m时srt分组调度表索引所指向的表项位置;图4为本发明实施例提供的分组描述符集中调度模块的结构示意图;图5为本发明实施例提供的端口时间感知调度模块工作状态示意图。
具体实施方式
21.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
22.本发明实施例采用递进的方式撰写。
23.本发明实施例提供了一种共享式tsn整形调度装置。主要解决现有技术中,现有tsn交换芯片无法针对流量不同服务等级(实时性、确定性)需求进行灵活调整整形调度策略,和现有tsn交换机采用的基于分组描述符的端口独立优先级队列调度存在的逻辑资源和存储资源利用率低且管理控制复杂度高的问题。
24.一种共享式tsn整形调度装置,包括:分组集中处理模块和分组集中缓存模块;分组集中处理模块包括:输入处理模块、分组处理子模块、共享式tsn整形调度器和输出处理模块;分组集中缓存模块分别与输入处理模块和输出处理模块连接;若干个依次排列的分组处理子模块分别与输入处理模块和共享式tsn整形调度器连接;共享式tsn整形调度器与输出处理模块连接;输入处理模块用于通过分组处理子模块向共享式tsn整形调度器输入分组描述符。
25.本发明所提供的共享式tsn整形调度装置,设置有分组集中处理模块和分组集中缓存模块;分组集中处理模块中设置有输入处理模块、分组处理子模块、共享式tsn整形调度器和输出处理模块;其中,分组集中缓存模块分别与输入处理模块和输出处理模块连接;若干个依次排列的分组处理子模块分别与输入处理模块和共享式tsn整形调度器连接;共享式tsn整形调度器另一端与输出处理模块连接;输入处理模块用于通过分组处理子模块向共享式tsn整形调度器输入分组描述符;工作过程中,用户通过多个端口向输入处理模块输入分组数据;输入处理模块提取分组的关键字段作为分组描述符输出至若干个分组处理子模块中进行处理,例如分组过滤、分组查表交换等,同时将分组数据缓存到分组集中缓存区;经过若干个分组处理子模块处理后,将处理后的分组描述符输出至共享式tsn整形调度器中;共享式tsn整形调度器对分组描述符进行集中调度;调度完成后,共享式tsn整形调度器将调度完成后的分组描述符中的分组缓存id输出至端口输出模块,端口输出模块从分组集中缓存模块中读取分组数据并输出。本发明所公开的调度装置是通过可编程的端口共享式集中整形调度方法,可按需灵活保障不同程度的数据传输实时性和确定性同时,同时能够最大化流量整形调度所需的逻辑资源和片上存储资源利用率的同时获得接近于端口独立优先级队列的分布式tsn调度的实时性和确定性,节约大量芯片逻辑资源和端口优先级队列资源,并且降低端口整形调度的管理控制复杂度。
26.优选地,分组描述符内包括:分组调度所需信息;分组调度所需信息包括:分组所属的流id、分组集中缓存id、分组入队优先级、分组到达时间、分组输入端口号和分组输出端口号。
27.实际运用过程中,分组描述符需包含分组调度所需的信息,包括分组所属的流id(flowid),分组在集中缓存中的缓存id(bufid),分组入队优先级(queueid,分组在交换机输出端口排队的队列号,可根据queueid来区分分组类型),分组到达接收端口的时间(arrivetime),分组输入端口号(inport),分组输出端口号(outport)。
28.优选地,共享式tsn整形调度器包括:流分类模块、分组描述符缓存模块、分组描述符集中调度模块和端口轮询调度模块;流分类模块与分组描述符缓存模块连接,流分类模块用于根据分组调度所需信息识别分组后将分组描述符输送至对应的分组描述符缓存模块;分组描述符集中调度模块一端与分组描述符缓存模块连接,另一端与端口轮询调度模块连接。
29.实际运用过程中,在共享式tsn整形调度器中,设置有流分类模块、分组描述符缓
存模块、分组描述符集中调度模块和端口轮询调度模块;流分类模块与分组描述符缓存模块连接;分组描述符集中调度模块一端与分组描述符缓存模块连接,另一端与端口轮询调度模块连接。
30.工作过程中,流分类模块针对分组描述符中的queueid字段对分组进行识别,并根据分组所属的流类型(如hrt、srt、be)将分组描述符送往对应的分组描述符缓存处理模块,以3bit的queueid为例,可设置7、6为hrt,5、4、3为srt、2、1、0为be,用户通过编程可控制分组所属的流类型;分组描述符缓存模块根据分组的流类型(如hrt、srt、be)对对应的分组描述符缓存处理,缓存处理完成后,均对应的发送至分组描述符集中调度模块;分组描述符集中调度模块根据流类型(如hrt、srt、be)对分组描述符缓存中存储的分组描述符进行集中调度,调度完成后输出至端口轮询调度模块中;端口轮询调度模块将分组描述符按照端口轮询调度的方式分别输出。
31.优选地,分组描述符缓存模块包括:分组描述符缓存处理子模块和分组描述符缓存子模块;分组描述符缓存处理子模块包括:hrt分组描述符缓存处理子模块、srt分组描述符缓存处理子模块和be分组描述符缓存处理子模块;分组描述符缓存子模块包括:hrt分组描述符缓存子模块和srt&be分组描述符缓存子模块;hrt分组描述符缓存处理子模块与hrt分组描述符缓存子模块连接;srt分组描述符缓存处理子模块和be分组描述符缓存处理子模块均与srt&be分组描述符缓存子模块连接。
32.实际运用过程中,分组描述符缓存模块包括有分组描述符缓存处理子模块和分组描述符缓存子模块;其中,分组描述符缓存处理子模块中包括:hrt分组描述符缓存处理子模块、srt分组描述符缓存处理子模块和be分组描述符缓存处理子模块;分组描述符缓存子模块中包括:hrt分组描述符缓存子模块和srt&be分组描述符缓存子模块(即srt和be类型的分组描述符共用一个分组描述符缓存子模块);hrt分组描述符缓存处理子模块与hrt分组描述符缓存子模块连接;srt分组描述符缓存处理子模块和be分组描述符缓存处理子模块均与srt&be分组描述符缓存子模块连接。工作过程中,本领域常规技术人员根据实际需要将分组描述符缓存处理子模块划分为hrt分组描述符缓存处理子模块、srt分组描述符缓存处理子模块和be分组描述符缓存处理子模块,以针对性的对hrt、srt和be类型的分组描述符进行缓存处理;其中,hrt分组描述符缓存处理子模块、srt分组描述符缓存处理子模块和be分组描述符缓存处理子模块分别根据分组描述符中的分组所属的流id(flowid)获取对应分组描述符中的分组在集中缓存中的缓存id(bufid),并分别将对应的分组在集中缓存中的缓存id(bufid)存入hrt分组描述符缓存子模块连接和srt&be分组描述符缓存子模块中。
33.优选地,分组描述符缓存处理子模块还包括:hrt分组描述符缓存地址表和srt分组延迟计算信息表;hrt分组描述符缓存地址表与hrt分组描述符缓存处理子模块连接;srt分组延迟计算信息表与srt分组描述符缓存处理子模块连接。
34.实际运用过程中,hrt分组描述符缓存处理子模块根据分组描述符中flowid字段
查hrt分组描述符缓存地址表,格式如表1所示,获得分组描述符缓存id(dbufid),并将hrt分组描述符中的bufid存入到dbufid对应的hrt分组描述符缓存(格式如表2所示)中。
35.表1 hrt分组描述符缓存地址表格式表2 hrt分组描述符缓存格式srt分组描述符缓存处理子模块根据分组描述符中inport字段、outport字段和queueid字段(分组描述符中inport字段、outport字段和queueid字段可以组成如图2所示的srt_key1)查找srt分组延迟计算信息表,格式如表3所示,索引到该分组在本节点中的最大驻留时间maxresidencetime。根据maxresidencetime、分组描述符中的arrivetime、分组长度length以及空闲配额向量计算得到应该延迟输出的时间槽数量delayslot_in_maxresidencetime。其中空闲配额向量为整个调度窗口内各时间槽中所剩余的分组发送配额(以字节为单位),例如交换节点的整个调度窗口为100000ns,每个时间槽的长度为10000ns,即整个调度窗口包含10个时间槽timeslot0至timeslot9。每个时间槽中所剩的空闲配额为时间槽所能输出的总分组配额(时间槽长度*输出端口速率)减去该时间槽中hrt流量已经占用的配额(该配额在用户进行hrt流量静态规划即可获得)。空闲配额向量的初始值由用户编程配置,网络运行过程中,分组描述符缓存处理子模块在新的调度窗口开始时加载该向量的初始值,在处理每个srt分组描述符时首先根据分组到达时间arrivetime所在的时间槽(arrivetime/ timeslot_len)和查表获得的maxresidencetime所包含的时间槽(maxresidencetime/timeslot_len)索引空闲配额向量中对应时间槽,以上文中时间槽参数为例,假设arrivetime为10000ns,即对应时间槽为timeslot1,而maxresidencetime为20000ns,即可最大延迟2个时间槽,分组描述符缓存处理子模块需索引timeslot1、timeslot2所对应空闲配额向量。而后根据用户编程选择的策略来选择具有足够空闲配额(即空闲配额大于等于分组长度length)的时间槽。一般常用策略为最大延迟策略,即选择具有空闲配额的最大时间槽,该策略可以最大保障具有较小最大驻留时间的分组(即最紧急分组)能获得更多可用配额。最后根据所选择的时间槽确定当前分组描述符需要延迟的时间槽数量delayslot_in_maxresidencetime,并更新对应时间槽的空闲配额值(当前空闲配额值减去分组长度length)。如果索引的所有时间槽中都没有足够的空闲配额可用,则将该分组描述符置为丢弃。
36.表3 srt分组输出延迟计算信息表格式
根据计算得到的delayslot_in_maxresidencetime、交换机当前所在的时间槽timeslot_curr、outport字段和queueid字段(延迟输出的时间槽数量、交换机当前所在的时间槽和分组描述符中的outport字段和queueid字段组成图2所示的srt_key2)查找srt分组调度表,格式如表4所示,获得对应的队列中的最后一个分组描述符缓存id(dbufid_tail)。srt分组调度表采用轮询索引,通过记录当前时间槽timeslot_curr的索引指针,该指针随着交换机时间槽的递增依次进行偏移(如图3所示)。根据该指针和计算所得的delayslot_in_maxresidencetime来定位正确的表项位置。如果dbufid_tail不为空,则将srt分组描述符中的bufid存入到dbufid_tail所对应的srt&be分组描述符缓存区,格式如表5所示,同时将所查找表项的dbufid_tail更新为bufid。如果dbufid_tail为空,则将所查找表项的dbufid_head和dbufid_tail都更新为bufid。
37.表4 srt&be分组描述符缓存格式表5 srt分组调度表格式
be分组描述符缓存处理子模块根据分组描述符中outport字段和queueid字段查找be分组调度表,格式如表6所示,获得对应的队列中的最后一个分组描述符缓存id(dbufid_tail)。如果dbufid_tail不为空,则将be分组描述符中的bufid存入到dbufid_tail所对应的srt&be分组描述符缓存区,同时将所查找表项的dbufid_tail更新为bufid。如果dbufid_tail为空,则将所查找表项的dbufid_head和dbufid_tail都更新为bufid。
38.表6 be分组调度表格式优选地,分组描述符集中调度模块包括:hrt分组调度表、srt分组调度表和be分组调度表;hrt分组调度表与分组描述符集中调度模块连接;srt分组调度表一端与srt分组描述符缓存处理子模块连接,另一端与分组描述符
集中调度模块连接;be分组调度表一端与be分组描述符缓存处理子模块连接,另一端与分组描述符集中调度模块连接。
39.实际运用过程中,分组描述符集中调度模块中设置有hrt分组调度表、srt分组调度表和be分组调度表;hrt分组调度表与分组描述符集中调度模块连接;srt分组调度表一端与srt分组描述符缓存处理子模块连接,另一端与分组描述符集中调度模块连接;be分组调度表一端与be分组描述符缓存处理子模块连接,另一端与分组描述符集中调度模块连接。
40.优选地,分组描述符集中调度模块包括:hrt分组描述符调度子模块、hrt分组调度向量表、srt分组描述符调度子模块、be分组描述符调度子模块、输出描述符寄存器对和端口时间感知调度模块;输出描述符寄存器对设有若干个;若干个输出描述符寄存器对包括:第一输出描述符寄存器对、第二输出描述符寄存器对和第三输出描述符寄存器对;hrt分组描述符调度子模块通过第一输出描述符寄存器对与端口时间感知调度模块连接;hrt分组描述符调度子模块与hrt分组调度向量表连接;srt分组描述符调度子模块通过第二输出描述符寄存器对与端口时间感知调度模块连接;be分组描述符调度子模块通过第三输出描述符寄存器对于端口时间感知调度模块连接。
41.实际运用过程中,hrt分组描述符调度子模块根据交换机当前时间槽timeslot_curr、端口号outport和队列号queueid查询如表7所示的hrt分组调度表,该表在系统启动时根据hrt流量的规划结果静态配置。上述查询关键字中timeslot_curr是模块的输入,outport和queueid则是根据查询hrt分组调度向量表,格式如表8所示,获得的当前时间槽的调度向量schvector生成,调度向量按照端口轮询排列,队列按照严格优先级由高到低排列,即(p_q, p+1_ q, .., p+i_q, p_q-1, .., p+i_q-j),p_q代表p号端口q号队列。如果该向量中对应位为1则表示在当前时间槽对应端口的队列中有分组需要调度,否则不需要调度。hrt分组描述符调度模块通过遍历该查询向量生成hrt分组调度表的查询关键字(或者根据该关键字直接生成对应存储访问地址)。
42.表7 hrt分组调度表格式
表8 hrt分组调度向量表格式hrt分组描述符调度模块根据查询获得的hrt分组描述符缓存id(dbufid)访问hrt分组描述符缓存,获得分组在集中缓存区缓存的bufid。如果获得的bufid为空,则代表当前分组还未到达交换机或者分组还未调度就绪,继续调度下一端口描述符。如果获得的bufid非空,则判断对应端口的hrt输出描述符寄存器是否就绪,未就绪表示寄存器中的描述符还未被端口时间感知调度模块调度输出。如果寄存器就绪则将bufid写入寄存器,并将当前时间槽的调度向量中对应位置0,否则继续读取下一端口描述符。当前时间槽的调度向量完整查询一次后判断调度向量是否为全0,全0则代表当前时间槽所有规划的hrt分组已经完成调度,输出hrt分组调度结束信号hrt_finish给端口时间感知调度模块。否则继续从头查询该调度向量中非0位对应的端口队列,直至调度向量为全0。
43.srt分组描述符调度子模块根据交换机当前时间槽timeslot_curr、端口号outport和队列号queueid形成查表关键字srt_key3(如图2、4所示)查询如表6所示的srt分组调度表。或者由srt分组描述符调度模块记录srt分组调度表的轮询地址(随时间槽增加如图3所示依次偏移),根据交换机当前时间槽timeslot_curr对应的srt分组调度表指针,以端口号outport和队列号queueid为偏移量直接生成srt分组调度表的查询地址。
44.基于查询获得的srt分组描述符缓存首尾id(dbufid_head,dbufid_tail)判断对应端口输出队列srt分组缓存情况。如果dbufid_head和dbufid_tail都为空,表示该端口队列中无srt分组需调度,可直接开始下一端口的srt分组调度表查询;如果dbufid_head和dbufid_tail相等且不为空,表示该端口队列中仅一个srt分组需调度,将该dbufid_head存入空闲的srt输出描述符缓存寄存器(每个端口需要至少2各寄存器缓存srt输出描述符以保障srt分组调度的连贯性),同时将srt分组调度表中当前端口队列的表项dbufid_head和dbufid_tail置为空,如果无空闲寄存器可用则直接开始下一端口的srt分组调度表查询;如果dbufid_head和dbufid_tail不相等且都不为空,则表示该端口队列有多个分组需要调度,此时将dbufid_head存入空闲的srt输出描述符缓存寄存器,并根据dbufid_head查询srt&be分组描述符缓存获得下一个srt分组描述符缓存id(bufid_next),将srt分组调度表中当前端口队列的表项dbufid_head表项值修改为bufid_next,如果无空闲寄存器可用则直接开始下一端口的srt分组调度表查询。如果dbufid_head和dbufid_tail只有一个为空时,表示错误状态。srt分组描述符调度子模块按找上述调度方式轮询各端口、各队列,直到交换机进入了调度时间槽中的保护带时间段(时间槽中不能调度srt和be分组的时间段)。
45.be分组描述符调度模块根据交换机端口号outport和队列号queueid查询(或者根据该关键字直接生成对应存储访问地址)如表6所示的be分组调度表。基于查询获得的be分
组描述符缓存首尾id(dbufid_head,dbufid_tail)判断对应端口输出队列be分组缓存情况。be分组调度和上述srt分组调度采用相同的流程,差异在于be输出描述符寄存器各端口可只需一个,srt输出描述符寄存器需要多个是为保障srt调度的连贯性,防止预留的带宽被be抢占。
46.优选地,分组描述符集中调度模块还包括:计时模块;计时模块分别与hrt分组描述符调度子模块、srt分组描述符调度子模块和端口时间感知调度模块连接;计时模块用于生成交换机当前所处的时间槽号,并将当前时间槽号分别输出至hrt分组描述符调度子模块和srt分组描述符调度子模块;计时模块还用于生成每个新时间槽开始信号,并将新时间槽开始信号输出至端口时间感知调度模块。
47.实际运用过程中,还设置有计时模块(图中未显示),工作人员根据调度起始时间、调度周期长度、时间槽长度等配置参数计算交换机当前系统时间(网络时间同步后的时间)所处的时间槽号,计算公式为((系统当前时间-调度起始时间)%调度周期长度)/时间槽长度。并分别将计算好的当前时间槽号输出至hrt分组描述符调度子模块和srt分组描述符调度子模块中;同时将每个新时间槽开始信号newtimeslot输出至端口时间感知调度模块。
48.优选地,时间感知调度包括:hrt调度子模块、srt调度子模块、be调度子模块和调度控制子模块;调度控制子模块分别与hrt调度子模块、srt调度子模块和be调度子模块连接;调度控制子模块用于在空闲状态下调用hrt调度子模块,进入hrt调度状态;hrt调度子模块用于在进入hrt状态后,执行hrt调度;调度控制子模块还用于在满足第一预设条件时调用srt调度子模块,进入srt调度状态;srt调度子模块用于在进入srt调度状态后,执行srt调度;调度控制子模块还用于在满足第二预设条件时调用be调度子模块,进入be调度状态;be调度子模块用于在进入be调度状态后,执行be调度。
49.实际运用过程中,端口时间感知调度模块根据新调度时间槽开始信号newtimeslot进行每个时间槽内的分组调度。其工作状态机如图5所示,当新时间槽开始后进入hrt调度状态,在该状态循环查询hrt输出描述符寄存器调度输出hrt分组描述符,直到收到hrt_finish有效信号或者当前时间槽调度累计时间到达hrt调度最大窗口时间(该参数为静态配置参数)进入srt调度状态。在srt调度状态循环查询srt输出描述符寄存器,调度输出srt分组描述符,直到srt输出描述符寄存器中无描述符需调度进入be调度状态,或者收到调度复位信号或者进入当前时间槽的保护带时间段进入空闲状态。在be调度状态循环查询be输出描述符寄存器,调度输出be分组描述符,同步判断是否srt输出描述符寄存器中有描述符需调度,有则进入srt调度状态,或者收到调度复位信号或者进入当前时间槽的保护带时间段进入空闲状态。
50.优选地,端口轮询调度模块用于将各端口的分组描述符按照端口轮询调度的方式分别输出到对应的端口输出模块。
51.实际运用过程中,端口轮询调度模块将各端口的分组描述符按照端口轮询调度的方式分别输出至对应的端口输出模块中。需要说明的是,轮询(polling)是一种cpu决策如何提供周边设备服务的方式,又称“程控输入输出”(programmed i/o)。轮询法的概念是:由cpu定时发出询问,依序询问每一个周边设备是否需要其服务,有即给予服务,服务结束后再问下一个周边,接着不断周而复始。
52.在本技术所提供的实施例中,应该理解到,所揭露的方法和装置,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个模块或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或模块的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
53.另外,在本发明各实施例中的各功能模块可以全部集成在一个处理器中,也可以是各模块分别单独作为一个器件,也可以两个或两个以上模块集成在一个器件中;本发明各实施例中的各功能模块既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
54.本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令及相关的硬件来完成,前述的程序指令可以存储于计算机可读取存储介质中,该程序指令在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(read only memory,rom)、磁碟或者光盘等各种可以存储程序代码的介质。
55.应当理解,本技术中如若使用了“系统”、“装置”、“单元”和/或“模块”,仅是用于区分不同级别的不同组件、元件、部件、部分或装配的一种方法。然而,如果其他词语可实现相同的目的,则可通过其他表达来替换该词语。
56.还需要说明的是,在本文中,诸如术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括上述要素的物品或者设备中还存在另外的相同要素。
57.以上对本发明所提供的一种共享式tsn整形调度装置进行了详细介绍。对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1