基于片上网络功率控制的流量管理

2019-07-30 08:30石辉黄朝兵
现代计算机 2019年18期
关键词:断电报文损耗

石辉,黄朝兵

(武汉理工大学信息工程学院,武汉430070)

0 引言

随着晶体管的技术的不断发展,它的尺寸和提供的电压都越来越小,这使得漏电的现象越来越严重,在所有种类的漏电中,静态能量的损耗占了漏电中的大部分。例如,当65 纳米工艺中片上网络的功耗在整个系统能量损耗中占到了11.2%,到了32 纳米时片上网络占到的功耗已经达到了33.5%,在22 纳米技术时,在静态功耗在片上网络所有的损耗中更是占到了高达74%[1]。为了提高多处理器芯片的运行能力,让多核芯片运行时有更多的功率分配到计算资源节点中,减少片上网络的功率损耗已经变成了不容忽视的研究方向。

本文注意到在实际应用中,路由器中经过的报文在时间上的分布是不规则的。路由器在这时间分散的流量下会出现次数极多的通电和断电的过程,这样在功耗以及延迟当面都会对系统造成不小的影响,如果这种通电过程的次数出现的过多,电源门控技术就会起到反面的效果,不仅会损耗更多的能量,也会带来严重的延迟。

鉴于上述问题,本文提出了基于片上网络功率控制的流量管理,对片上网络中的流量进行管理。

1 电源门控技术

电源门控技术能够缓解漏电现象,但是电源门控技术在电路中起到作用有一个前提:电路中有足够长的空闲时间以至于弥补断电和通电过程产生的损耗。尽管片上网络被设计为在很高的节点之间流量传输运行,在实际的应用中节点之间的流量传输其实很小,这就造成了大量的资源浪费。其结构图如图1 所示[2-4]。

图1 片上网络路由器的电源门控结构图

电源门控技术的实现是在电路和电源之间放置一个交换开关,这个交换开关可以是高阈值晶体管。对于芯片上的路由器来说,当所有的数据路径(输入缓存和输出缓存)处于闲置状态时,交换开关就会处于断电状态,它仅仅需要一个简单的控制器就可以实现。这时相邻的路由器必须被告知这个路由器已经处于断电状态,不然传输的报文会在网络中丢失,因此使用握手信号告知相邻路由器此路由器已经处于断电状态很重要。当路由器处于断电状态时,它相邻的路由器会把相连的输出口关闭并把它标记为禁用状态。片右边的路由器处于断电状态,通过向左侧的路由器发送PG(Power-Gated)信号来告知左侧的路由器,随后左侧的路由器把与之相连的输出缓存标记为断电。在需要从断电状态恢复为通电状态时只需要相连的路由器发送WU(Wake-Up)信号。

2 流量管理的设计与实现

2.1 总体控制设计

整体控制设计流程图如图2 所示,局部控制器缓存数据包,当片上网络中所有的局部控中缓存的包的数量到达设定的阈值或者时间达到设置的阈值,把缓存的包注入到网络中。

图2 流量控制设计流程图

(1)局部控制器开始缓存从资源节点发来的包,对缓存的包的数量进行统计,每个局部控制器都把自己统计的数据传到局部控制器。

(2)全局控制器对所有局部控制器中的报文数量进行统计,当在阈值间隔时间内所有的报文的总量达到设定的阈值或者所有的报文的总量没有到设定的阈值但是间隔时间达到了设置间隔阈值时,全局控制器就会给局部控制器发送注入信号。

(3)局部控制器接收到全局控制器发来的控制信号后,开始把报文注入到网络中。

这样就实现了对流量在时间上的控制,在片上网络中使用电源门控技术之后,通过这种控制方式能够使得流量能够扎堆进入网络中,实现让路由器出现长时间的断电过程,弥补电源门控通电带来的损耗,降低整个片上网络产生的功率损耗。

2.2 局部控制器

为了不让报文在网络接口处立即进入网络,每个网络接口与路由器之间都会设置一个局部控制器,其结构如图3 所示。为了暂时缓存从网络接口发来的报文,局部控制器中包含一个缓存器,实现缓存报文的功能。局部控制器通过接受全局控制器发来的注入信号之后,会把缓存的报文注入到网络中。路由器发往网络接口的报文不会受到影响,在报文到达目标路由器之后,资源节点会直接接收到报文。

图3 局部控制器运行过程图

在结合局部控制器以及全局控制器之后就能够实现对流量在时间上进行控制。在资源节点产生数据包后,局部控制器开始缓存这些资源节点产出的数据包,全局控制器发出释放信号之后才让这些缓存的数据包注入到网络中,实现对流量在时间上进行控制。这种控制技术只需要很小的局部缓存器以及简单的控制电路就可以实现,在面积开销以及功耗开销上都比较小,对比片上网络运行时产生的开销可以忽略不计。

2.3 全局控制器

全局控制器的作用是进行决策以及对每个周期的阈值进行更新。这里定义两个参数:最大容量C 以及最大间隔时间T。这里的最大容量C 指的是所有局部控制器中所允许最大报文的总数,最大间隔时间T 指的是从上个周期结束的时间到本周期结束的时间。

这里对几个符号进行介绍:当前周期中允许的最大容量用Cm表示,在当前周期中所有局部控制器中的容量总数用Cc来表示。要对当前周期中最大报文容量的大小进行控制,需要一个容量的参考值来实现当前周期允许的最大容量Cm进行更新,这里的容量参考值用Cr表示。在实际应用中,用不同的最大容量来设置滑动窗口,来计算出现的最大注入率。这里存在的注入率表示在一定报文数量时存在的最大注入率,当注入率变小时可以知道这时网络中的包的总量变大但是注入率反而变小,也就说明报文容量变得更加大时在时间上的分散程度会更高,这里可以把注入率由大变小时的容量最为参考容量,以此来对当前允许最大容量Cm进行更新。

不同的最大容量阈值会对提出的基于时间集中的流量控制技术造成不同功率损耗以及时间延迟的影响,本文选取的容量阈值如图4 所示。

图4 不同报文容量下的最大注入率

间隔时间指的是从上一周期结束时刻到当前时间的差值,这里对几个符号进行介绍:当前周期中允许的最大间隔时间用Tm表示,当前间隔时间用Tc来表示。这里对当前周期中最大间隔的大小进行控制,需要一个间隔时间的参考值来实现当前周期允许的最大间隔时间Tm进行更新,间隔时间参考值用Tr表示。在实际应用中,用不同的间隔时间来设置滑动窗口,来计算出现的最大注入率。

不同的最大时间阈值会对提出的基于时间集中的流量控制技术造成不同功率损耗以及时间延迟的影响,本文选取的时间阈值如图5 所示。

这里的注入率表示在一定间隔时间时存在的最大注入率,当注入率变小时可以知道这时网络中的包的总量变大但是注入率反而变小,也就说明报文容量变得更加大时在时间上的分散程度会更高,所以这里可以把注入率由大变小时的容量最为参考容量。

图5 不同间隔时间下的最大注入率

全局控制器的实现过程如图6 所示。首先统计每个局部控制器中数据包的数量,然后分别把容量数据以及当前时间和阈值进行比较,当其中的一项高于阈值时,向所有的局部控制器发送释放信号,之后等待局部控制器释放数据包之后,接受所有局部控制器释放完毕的信号,当所有的都释放完毕之后释放缓存信号,随后统计局部控制器数据。

通过监控所有局部控制器中的容量以及当前的间隔时间,当其中一个值达到阈值时就向所有的局部控制器发送注入信号,当所有的局部控制器包都注入到网络中之后开始进入下一个周期。更新每个周期的阈值参数是为了适应网络中的流量,在流量较小时,报文在时间上的跨度就会变大,这时就会让阈值参数变小,从而尽可能减少这种控制对整个系统的延迟,来提高系统的运行性能。

2.4 整体控制实现

控制实现时对网络中的流量进行实时监控,具体的实现过程伪代码如下:

1:Initialize C;

2:Initialize T;

3:Initialize Cmto C;

4:Initialize Tmto T;

5:For each checking period

6:Initialize Cc,Tcas 0;

7:if Cc

8:if Tc

9:buffer packets;

10:else

11:ejecting packets

12:update Cm,Tmaccording to Cc

13:end

14: else

15:ejecting packets

16:update Cm,Tmaccording to Cc

17: end

18:end

在初始阶段,分别设置容量阈值和间隔时间阈值为前两节所说的容量参考值Cr以及间隔时间参考值用Tr。随后通过用全局控制器来对所有局部控制器中的流量以及当当前的时间间隔,当其中一个数值达到设置的阈值之后,向局部控制器发送信号,局部控制器接收到信号,开始把所有的报文注入到网络中,注入后向全局控制器发送信号,开始进入下一个周期。下一个周期开始时进行对最大容量以及最大间隔时间进行更新,设置新的阈值,使算法能够适应网络中的流量,随后进入下一个周期,其过程和上面相同。当其中一个值达到阈值就会向网络中注入报文,进而进入下一个周期。

在应用运行时,在路由器上使用传统中的电源门控技术,这里和传统电源门控技术的区别在于在没有报文之后不会立即进入断电状态,而是经过几个机器周期的检测之后,没有报文之后才会进入断电状态。这样的好处是不会因报文在网络中传输时出现延迟,从而使得路由器出现过多的频繁的不必要的通电断电过程。

3 实验结果及分析

本文中用到的仿真器是一个事件驱动的C++多处理器仿真器[5],本文使用11 个来自PARSEC[6]的基准检测程序进行验证,和电源门控技术的性能进行对比:

(1)No-PG:不使用电源门控技术。

(2)Conv-PG:传统的电源门控技术(路由器在没有报文经过时立即断电)。

(3)ConvOpt-PG:在电源门控技术的基础上使用提前通电技术以及等几个机器周期进行空闲检测技术来确定是否进入断电状态[7]。

里的功耗包括路由器的动态功耗以及静态功耗,在使用电源门控技术之后产生的通电过程的损耗以及使用本章提出方法的局部控制器的功耗。几种方法在仿真结果上运行功耗的对比如图7 所示。

在图7 中可以看到本章提出的方法能够有效的大幅度减少能量的损耗,原因就在于通过控制报文注入网络中的时间,使得所有的路由器会通电一段时间断电一段时间,使得大幅度降低静态功耗。相对比与No-PG、Conv-PG 和ConvOpt-PG 分别能够平均减少18%以及22%的功率损耗,本章提出的方法能够平均减少47%的能量损耗,可以看到能够极大降低功率的损耗。

这里的运行时间主要包括资源节点的运算时间以及报文在网络中的传输时间,在使用电源门控技术之后产生的通电过程的时间以及使用本章提出方法的局部控制器中报文的注入时间。在图中可以看到本章提出的方法对时间有一部分影响,原因在于报文从局部控制器注入到网络中需要一定的时间,以及由于网络中流量很大,报文在网络中传输时产生的延迟。从图中可以看出本文提出的方法相较于No-PG 平均多用了7%的运行时间,相较于其他两种方法分别消耗的运行时间5.6%以及3%,可以忽略。从这里可以看到提出的方法会对时间造成轻微的影响。运行时间的对比如图8 所示。

图7 几种方法下片上网络的功率损耗对比图

图8 几种方法运行时间的对比图

4 结语

本文研究了片上网络中使用电源门控技术对片上网络损耗的功率的影响。提出并验证了基于时间的流量管理方法。通过使用局部控制器以及全局控制器来对流量进行管理,使报文以抱团的形式进入网络中,结合电源门控技术能够大幅度减少路由器断电的次数和延长路由器的断电时间。通过仿真验证可以得到和理论的一致性,能够在很少影响运行时间的情况下大幅度降低片上网络的功率损耗。

猜你喜欢
断电报文损耗
基于J1939 协议多包报文的时序研究及应用
以太网QoS技术研究及实践
核电厂主泵专用变压器1级能效限值推算
单螺杆挤压膨化工艺优化对豆粕中赖氨酸损耗研究
基于报文类型的限速值动态调整
几种常见物体在5G频段的穿透损耗测试分析
用完洗衣机及时断电
浅析反驳类报文要点
5G传播损耗及链路预算
最怕孩子突然断电那一刻