基于TVA的低功耗片上网络

第7章 使用最优自适应的低功耗片上网络

赛义德·T·穆罕默德,拉巴布·埃兹‐埃尔丁,马格迪·A·埃尔‐穆尔西和阿米尔· M·里法特

7.1 引言

片上系统(SoC)被引入以提供高性能解决方案,满足复杂超大规模集成电路日益增长的通信需求[1]。SoC通过重用预定义和预验证的知识产权核(IP核)来提高生产率[2]。SoC过去通过总线互连IP核,但共享介质总线可能损害吞吐量。随着SoC复杂性的增加,系统可扩展性、工作频率和功耗方面的限制正成为主要问题。大规模SoC导致互连需求显著增加,从而引起功耗和延迟的大幅上升。片上网络(NoC)是新一代SoC,被提出作为解决大规模 SoC[3–6]。片上网络由通过网络接口(NI)、交换机和通信信道互连的处理单元组成[7–9]。片上网络实现了片上互连导线的高可扩展性、可靠性和高性能[10]。在片上网络中,传统的互连方式(如点对点连线和总线,存在资源利用率低的问题)被交换机所取代,交换机将数据流片(数据包分段作为流量控制单元[11])从源到目的IP进行路由[12]。片上网络采用类似于计算机网络的路由算法(即 XY和奇偶算法[13, 14])。将片上网络交换机输入端口划分为一组虚拟通道(VC)可提高网络吞吐量[15, 16],,从而更好地利用网络带宽[17],并在高负载下改善延迟[18]。增加虚拟通道数量可提高吞吐量,但会以面积和功耗为代价。

随着互连网络复杂性的增加,功耗成为片上网络[19]的主要设计约束。由于便携式电池供电设备市场的快速增长,功耗正受到越来越多的关注。功耗与电池寿命[20]成反比,降低功耗可以延长电池的使用寿命。更长的电池寿命正成为一个日益严峻的技术挑战,如何在对性能影响最小的情况下降低功耗是关键的设计问题。动态功耗和漏电功耗是片上网络中功耗的主要组成部分。由于漏电功耗在当前和未来技术中占据主导地位,降低漏电功耗受到了广泛关注。长时间处于空闲状态的设备会泄漏大量功率。漏电功耗在片上网络的总功耗中占据了相当大的比例[21]。

许多研究论文讨论了降低片上网络功率[22–24]。其中很少有研究能够同时实现低功耗和高吞吐量片上网络。可停止时钟技术通过降低网络接口功耗[25]来减少片上网络的功耗。可停止时钟模块可以传输或停止每个子模块的本地输入时钟,从而在模块不运行时关闭其开关功耗。该技术仅关注动态功耗,而未考虑漏电功耗。Boomerang是另一种用于片上网络的节能方法 [26]。Boomerang会在使用前预先唤醒响应缓冲区。当缓冲区变空时,Boomerang会停用响应缓冲区以节省功耗。该技术仅考虑了内部缓冲区,对电路实现的细节描述不足。

本章的主要重点是提出一种使用两种技术的低漏电功率交换机。所提出的交换机降低了网络交换机的漏电功耗和动态功耗。该交换机支持高效电源门控,以降低功耗。还提出了采用自适应虚拟通道的基于流量的虚拟通道激活(TVA)算法,如图7.1所示。TVA是一种高效利用虚拟通道的算法。TVA算法能够在对网络吞吐量影响极小的情况下,有效降低漏电功耗。

示意图0

贡献: 本章有以下贡献:
- 介绍降低片上网络交换机功耗的有效技术。
- 介绍一种基于流量负载的虚拟通道激活/去激活新算法。
- 说明TVA算法的开销。

本章内容安排如下:第7.2节介绍了所提出的低漏电功率开关。第7.3节给出了TVA算法。在两个抽象级别上使用了两种类型的仿真器。第7.4节描述了采用低层次硬件电路仿真器进行功耗分析的方法。第7.5节展示了TVA参数的敏感性分析以及仿真结果。第7.6节包含架构级性能分析。最后,第7.7节给出了一些结论。

7.2 低漏电功率开关

所提出的交换机设计采用了两种漏电功耗降低技术,可独立控制每个模块以节省功率。交换机的每个端口均采用所提出的自适应虚拟通道技术设计,如第7.2.1节所示。交换端口模块采用电源门控以降低漏电功耗,如第7.2.2节所述。

7.2.1 自适应虚拟通道技术

自适应虚拟通道技术(AVC)被提出用于启用/禁用交换端口[27–29]上的适当数量的空闲虚拟通道。活动虚拟通道的最优数量

虚拟通道(VC)的数量根据片上网络流量状态确定(如第7.4节所述)。自适应虚拟通道(AVC)用于配置输入/输出端口。可用虚拟通道的数量被划分为2的幂单元的可配置虚拟通道。每个单元可以开启或关闭。图7.2展示了AVC多路复用树,其中虚拟通道位于树的叶节点,物理端口位于根节点(leveln)。level1的单元称为叶级虚拟通道单元(LVCs)(即LV C1… LV C2n),根级阶段单元(RVC)是将流量传递到物理通道的复用单元。阶段虚拟通道单元(SVCs)是连接LVCs与RVC的单元。该树结构采用二叉树形式以优化电路实现。虚拟通道数量等于 2g,其中g =,m +,n。每个 LVC的虚拟通道数为 2m ·,n为多路复用级数。树中LVC的数量为 2n ·,m和n为正整数,且m ≥ 1,n ≥ 0。树中较低层级的每两个单元连接到较高层级的一个单元。树中的单元总数由下式给出

k= 2(2n −1), (7.1)

该RVC由一个复用器 2× 1和一个授权电路 2 × 2组成,如图7.2所示。树中的每个 SVC包含一个仲裁器 2 × 2[30]和一个复用器 2 × 1。LVC由一个复用器 2m × 1和一个仲裁器 2m × 2m组成。在根节点处,仅有一个虚拟通道被授予物理端口。m和 n在设计交换机时引入了一个设计自由度。该树形结构可以通过 g种不同的实现选项来构建。m和 n定义了电路延迟与可配置性之间的权衡。当 n等于零时,树中仅包含 RVC,且所有虚拟通道同时工作。消除复用层级结构可以减少电路延迟,但配置虚拟通道的灵活性最低,且无法实现功耗节省,具体将在后续小节中描述。

示意图1

LVC被分组为LVC集合(LS)。每个 LS包含连接到特定SVC的LVCs。多路复用树的激活/去激活是基于LS的过程。非活动虚拟通道被电源门控,以降低漏电功耗,如第7.2.2节所述。n应最大化,以最大化电路可配置性、最小化电路面积并最大化节能,如第7.4节所述。

7.2.2 电源门控片上网络交换机

交换机的功耗可以定义为交叉开关、输入端口和输出端口功耗的总和。每个交换机组件的总功耗是漏电(Pleakage)、动态(Pdynamic)和短路功耗(PSC)的总和,定义如下:[31–33]

Ptotal= Pleakage+ Pdynamic+ PSC, (7.2)

Pdynamic= α.Cl.V²dd.f CLK, (7.3)

Pleakage= Ileakage.VDD, (7.4)

其中 α是开关活动因子。Pdynamic与负载电容Cl、供电电压VDD的平方以及工作频率f CLK的乘积成正比。通过减小总负载电容可以降低Pleakage。P dynamic与漏电流Ileakage成正比。电源门控是一种有效降低Pleakage的技术。

电源门控(PG)用于根据工作模式(输入或输出)启用/禁用工作端口的模块。假设该交换机具有 个端口,p个被设置为输入端口,q个被设置为输出端口。每个端口包含输入自适应虚拟通道(INAVC)、头部解码器、输出自适应虚拟通道(OUTAVC)以及 PG,如图7.1所示。交换端口中的每个模块都通过一个或多个电源门控电路进行电源门控。头部解码器和交叉开关各自仅需一个电源门控开关来激活/去激活。然而,IN/OUTAVC每个需要 k个电源门控开关,如图7.3所示。

利用电源门控将交换机端口配置为激活/非激活模式。PG在输入模式下激活输入自适应虚拟通道和头部解码器,如图7.3中突出所示。因此,输出自适应虚拟通道被停用。交叉开关在输入模式期间被激活。对于输出模式,仅激活输出自适应虚拟通道。PG用于执行两项任务:停用连接到单元的IN/OUTAVC的虚拟通道,并在操作模式期间停用头部解码器、交叉开关、输入自适应虚拟通道和输出自适应虚拟通道。头部解码器、交叉开关以及输入/输出AVC中的每个单元均配备一个电源门控开关。电源管理通过PG控制器以及睡眠晶体管来实现。在所需模式下启用/禁用交换端口并仅激活运行模块的灵活性提高了功率

示意图2

节省。在第7.2.2.1节中描述了睡眠控制器。电源切换的电路实现在第7.2.2.2节中介绍。

7.2.2.1 睡眠控制器

睡眠控制器用于控制交换端口的激活/去激活,将其配置为输入/输出模式,并在工作模式下激活虚拟通道。该控制器管理每个小区的睡眠晶体管,以及每个交换端口的头部解码器和交叉开关的两个睡眠晶体管。睡眠控制器单元具有三个输入和两个输出信号,如图7.4所示。一个ctrl_sleep信号用于启用/禁用交换端口,该信号会关闭整个交换机。 IO_req信号将交换端口配置为输入或输出工作模式。 nt信号(i位)指示片上网络流量的状态。

输出信号 inp_ctrl/out_ctrl用于控制输入/输出AVC的睡眠晶体管。当交换机处于活动模式且交换端口作为输入端口运行时,头部解码器和交叉开关被打开。需要为睡眠控制器的第一级inp_ctrl/out_ctrl的真值表找到一个通用规范表示。考虑到输入和输出的位数随流量负载的变化而变化,受控LVC的数量按图7.2所示进行索引。因此,树的上层单元具有最低索引零。索引从上到下递增。第级1底部LVC的索引是(2i−1)。该方程以最小项之和形式代数表达,并被视为两个信号inp_ctrl/out_cntrl的通用形式

inp_ctrlx(nto, nt1,… nti−1)= (0, 1…,x −1), 1 ≤ x ≤ 2i −1, (7.5)

示意图3

其中x是LVC的索引。该方程生成输出真值表的(2i − 1)列,每列控制level1中的一个LVC。当x= 0时,inp_cntrl0的列为零,表示无论流量负载如何,始终激活LVC1。在level1中开启一个子LVC需要激活该子节点的所有父级SVC。因此,每个具有偶数索引的LVC的真值表与从level1到RVC路径上所有父级SVCs的真值表相同。

输出信号 inp_ctrl/out_ctrl具有k位,具体取决于交换端口中的单元数量,如图7.4所示。 inp_cntrl和 out_cntrl信号分别用于根据需要激活的虚拟通道数量来管理输入和输出自适应虚拟通道中睡眠晶体管的状态。根据 inp_ctrl/out_ctrl信号的值,部分睡眠晶体管被打开以激活其连接的单元,其余睡眠晶体管则被关闭,以确保所连接的单元处于停用状态。

当ctrl_sleep信号为1时,inp_ctrl/out_ctrl的所有位均为1,因此所有睡眠晶体管被关闭。从而,无论IO_req和nt的值如何,交换端口都被强制关闭。当ctrl_sleep信号为0且IO_req信号为1时,睡眠控制器激活输入自适应虚拟通道、头部解码器和交叉开关。当ctrl_sleep信号为0且IO_req信号为0时,睡眠控制器激活输出自适应虚拟通道,并关闭其他模块。

在输入/输出模式期间,睡眠控制器根据输入信号nt计算inp_ctrl和out_ctrl信号的值,该输入信号激活特定数量的虚拟通道。虚拟通道的激活取决于流量负载,其可具有不同级别。流量负载级别的数量取决于激活虚拟通道的粒度,该粒度等于 2i。例如,当虚拟通道数量为八且m= 1时,存在四个流量负载级别(i= 2):“非常重”、“重”、“轻”和“非常轻”。对于 m= 2,仅有两个流量负载级别:“重”和“轻”。在非常高负载的流量配置文件下,通过开启所有单元来激活所有虚拟通道。

虚拟通道(VCs)的激活粒度为 2m。对于m= 1,采用二进制复用树,每次激活两个虚拟通道。对于m= 2,同时激活四个虚拟通道。对于较小的 m,由于可以以更高的粒度应用电源门控,因此可实现较大的节能效果。另一方面,随着m的增加,多路复用树的深度减少,从而降低了面积开销和关键路径延迟。所提出的分层切换提高了激活的灵活性

虚拟通道使交换机更能适应流量特征的变化。因此,减少m可增加节能效果。虚拟通道的激活通过第7.2.2.2节中介绍的电源切换实现。

7.2.2.2 电源切换的电路实现

电源切换模块由2(k+ 1)个睡眠晶体管组成。在所提出的架构中,睡眠晶体管采用PMOS晶体管实现,用于控制电源的通断。睡眠晶体管充当开关,在睡眠模式下关闭供电电压。另一方面,在活动模式下,睡眠晶体管处于导通状态,因此虚拟电源节点的值为VDD。睡眠晶体管的尺寸选择会影响电路性能以及节能效率。在选择睡眠晶体管尺寸时,存在功耗节省与性能之间的权衡。在活动模式下,睡眠晶体管会阻碍电源电流的流动,因此需要增大晶体管尺寸以维持电路性能。然而,增大睡眠晶体管尺寸会降低其抑制漏电流和功耗的能力。此外,较大的睡眠晶体管会使PG控制电路消耗更多的动态功耗。

流量负载信号 nt被假定在实际需要该信号来激活单元的时钟周期之前一个时钟周期到达目标交换机。这一假设允许仅用一个时钟周期将单元从睡眠到活动模式进行切换。从睡眠到活动模式的切换时间(TSA)必须小于或等于单元电路的关键路径延迟 td。当单元的虚拟电源电压节点达到90%时,该单元被视为已激活。方程(7.6)被用作最严格的设计约束,以确定睡眠晶体管的尺寸

TSA ≤ td, (7.6)

睡眠信号和控制信号由评估流量状态并相应改变信号值的算法发送。该算法在第7.3节中介绍。

7.3 基于流量的虚拟通道激活算法

任何片上网络的流量负载会根据IP核上运行的应用程序[34, 35]而上下波动。流量变化体现在到达虚拟通道分配器(VCA)的虚拟通道请求数量上。为了高效利用虚拟通道,应将任意时刻空闲的虚拟通道电源关闭。挑战在于如何根据流量变化自适应地控制电源门控单元。TVA旨在高效实现这一目标[36]。PG模块通过PG控制器控制从电源到每个虚拟通道的功率信号的通断。TVA算法位于VCA的核心。TVA利用VCA通过传递控制信号,根据输入流量负载来控制PG

示意图4

和睡眠信号到电源门控控制器。如图7.5所示,TVA主要由存储和逻辑组成。存储存储片上网络设置、本地虚拟通道和低功耗状态的状态。TVA逻辑根据虚拟通道分配器的请求数量确定交换机的流量状态。它启用所需数量的低功耗状态以服务传入的请求,并停用空闲的集合。TVA参数和变量在第7.3.1节中定义并讨论。TVA过程在第7.3.2节中介绍。

7.3.1 TVA 参数和变量

TVA定义了一组用于测量流量负载的参数和变量。参数用于保存设计时的值,并声明一些架构设置。参数在设计时完全可访问,并在运行时保持不变。变量则在局部用于保存运行时的值(即计数器),以实时反馈流量状态。变量在设计时不可访问。

7.3.1.1 TVA 参数

该网络通过参数化来优化算法,以在保持吞吐量的同时实现最低功率。所定义的网络参数包括:

  • startupType :表示片上网络的启动方式。提出了两种NoC初始化的启动选项。假设“v” LVCs,“HP”:在启动时通过启用所有v个本地虚拟通道实现最高性能。“LP”:在启动时通过关闭整个二叉树实现最低功耗。
  • HPTime :表示高性能时间,该参数仅在startupType= HP时使用,在此期间所有虚拟通道均处于开启状态,因此如果HPTime= ∞,交换端口的运行如同TVA不存在一样,代表基准设计点。
  • vcsPerCell :表示每个本地虚拟通道的虚拟通道数量。
  • numVCsPerPort :表示每个输入端口的虚拟通道数量。
  • lvcsPerSet :表示每个本地虚拟通道的低功耗状态的数量。

此外,定义了两个最大等待周期

  • maxWP :表示虚拟通道释放前流量的最大等待周期。它应小于交换机开启一个小区所需的时间。
  • maxIdlP :表示小区处于空闲状态的最长时间。VCA 应等待,在激活 低功耗状态 以服务流量时,持续时间应小于或等于 maxWP。此外,在关闭空闲的 链路段 之前,VCA 应等待由 maxIdlP 限定的时间。
7.3.1.2 TVA 内部变量

TVA中的变量可分为两类:架构变量和性能变量。架构变量与网络架构相关。性能变量控制网络效率和行为。

(a)架构变量:

两个三态数值标志指示LVC和LS状态

  • vcCellStatus :表示LVC状态。当LVC处于空闲状态(所有小区的虚拟通道均为空闲)时,其值为0;当LVC处于繁忙状态(所有小区的虚拟通道均在流量服务中)时,其值为1;当LVC处于部分繁忙pBusy状态(部分虚拟通道在服务中,部分未在服务中)时,其值为2。
  • ls状态 :表示低功耗状态的状态。当低功耗状态为空闲(所有小区的本地虚拟通道均为空闲)时,其值为0;当低功耗状态为繁忙(所有小区的本地虚拟通道均为繁忙)时,其值为1;当低功耗状态为部分繁忙pBusy(某些本地虚拟通道处于部分繁忙状态)时,其值为2。

使用六个数值变量来跟踪具有不同状态(空闲、部分繁忙或繁忙)的本地虚拟通道和链接段的数量。

  • numIdleL :空闲本地虚拟通道数量。
  • numBusyL :忙碌的本地虚拟通道数量。
  • numPBusyL :部分繁忙本地虚拟通道数量。
  • numIdleS :空闲的链路段数量。
  • numBusyS :忙碌的链路段数量。
  • numPBusyS :部分繁忙链路段数量。

(b)性能变量:

使用两个数值变量作为VCA等待周期的计数器。

  • idleP :空闲周期,表示低功耗状态保持空闲的时间长度。
  • tWP :流量等待周期,表示输入流量等待空闲信道的时间,TVA为每个等待服务的输入流量实例化一个tWP变量。

不同TVA变量的统计分析在第7.6节中介绍。7.6。任何交换机的流量负载通过评估idleP和tWP来确定。如果在maxIdlP期间没有流控单元到达交换机端口,则将空闲的链路段关闭以节省漏电功耗。如果有流量到达但没有空闲活动通道,流量将等待忙通道释放,此时不再激活其他LS。如果等待时间达到maxWP,则激活一个非活动的LS。关闭空闲虚拟通道单元对吞吐量的影响最小,同时降低了漏电功耗。以下部分提供了流程图以说明该算法。

7.3.2 TVA过程

所提出的算法可分为四个过程:启动(算法初始化)、虚拟信道请求处理、虚拟信道释放处理和分配后过程(PAP)。每个过程的详细信息如下所述:

7.3.2.1 启动

该算法根据启动类型的值来初始化架构和性能变量,如图7.6所示。它将所有单元开启或关闭。数据值DV1和DV2是依赖于设计的等待周期,分别赋给最大等待周期和最大空闲周期。这两个值都在0到激活一个单元并为其虚拟通道之一分配流量DV所需时间的范围内3 是启动选项的类型。高性能时间,每组低电压通道数,每端口虚拟通道数和每单元虚拟通道数由DV4, DV5, DV6,和DV7进行初始化。单元集总数v由numVCsPerPort vcsPerCell∗ lvcPerSet发起。

7.3.2.2 虚拟信道请求处理

每当流量到达请求虚拟通道的交换机输入端口时,请求处理将遵循以下路径之一,如图7.7所示。如果在活动的部分繁忙链路集中存在空闲虚拟通道,则将该虚拟通道分配给该流量。如果没有空闲虚拟通道(仅有繁忙的链路集),流量将等待,等待时间小于或等于最大等待周期。如果在等待期间有虚拟通道被释放

时间,流量被中断。该流量被分配到一个虚拟通道。如果没有可释放的虚拟通道,流量将等待直到maxWP。在这种情况下,VCA会搜索空闲低功耗状态。如果找到空闲低功耗状态,则将该流量分配给其一个虚拟通道。如果VCA未找到空闲单元,则会搜索关闭的低功耗状态。如果存在非活动的低功耗状态,VCA将激活该集合,并将其一个虚拟通道分配给该流量。如果未找到任何关闭的低功耗状态,则该流量需等待虚拟通道被释放。如果有新的虚拟通道请求到达时,前一个虚拟通道请求处理仍在进行中,则新请求将排队等待(先到先服务)。每次虚拟通道分配完成后,都会执行PAP。

7.3.2.3 虚拟信道释放处理

如图7.8所示,每当一个虚拟通道变为无流量时,它将被分配给等待中的流量,并更新架构变量。如果没有等待的流量,则执行PAP以更新状态。此后有两种可能情况:如果LS状态为空闲且startupType等于HP,则LS将在HPTime内等待进一步的流量请求。如果HPTime已过,且LS仍处于空闲状态或startupType为LP,则LS等待流量。当在超过maxIdlP时间后仍未将虚拟通道分配给输入的流控单元时,小区集将被关闭。当SVC没有与其输入端连接的活跃LVC时,它也将被关闭。因此,通往RVC的完整路径均进入关闭状态,以实现最大节能效果。如果虚拟通道释放后LS状态不再为空闲,则不进行任何操作,小区集继续准备响应后续的流量分配请求。当以HP模式启动端口(所有LS均开启)后,LS变为空闲状态时,VCA会先等待HPTime,然后开始计数 maxIdleP,以关闭LS。X-Idle节点在流程图中

是子过程的起点,在启动后仅运行一次,用于处理在以高优先级(所有虚拟通道均开启)启动端口后,低功耗状态变为空闲的情况。

7.3.2.4 分配后过程

PAP在虚拟通道分配后运行,以更新架构和性能变量并终止虚拟通道请求。分配后过程状态转换图如图7.9所示。PAP由两个子过程组成,顺序执行以更新本地虚拟通道变量和链路段变量。在单元级别,如果空闲虚拟通道数量等于每单元虚拟通道数,则本地虚拟通道变为空闲(vcCellStatus = 0);如果在用虚拟通道数量等于每单元虚拟通道数,则本地虚拟通道变为忙碌(vcCellStatus = 1);否则,本地虚拟通道变为部分繁忙(vcCellStatus = 2)。numIdleL、numBusyL和numPBusyL根据本地虚拟通道状态进行更新(例如,如果本地虚拟通道状态为空闲并变为忙碌,则numBusyL递增)

当空闲的LVC数量增加时,numIdleL递增;当空闲的LVC数量减少时,numIdleL递减。在集合级别上,如果空闲逻辑虚拟通道的数量等于lvcsPerSet,则链路段变为空闲(ls状态= 0)。如果繁忙LVC的数量等于lvcsPerSet,则链路段变为繁忙(ls状态 = 1)。否则,链路段变为部分繁忙(ls状态= 2)。numIdleS、numBusyS和 numPBusyS将根据LS的状态进行更新。下一部分将介绍自适应虚拟通道和电源门控的不同电路级实现选项,以及电路级仿真结果(即面积和漏电功耗)。

7.4 电路级实现

所提出的技术使用ADS工具实现。采用45nm工艺,供电电压为1V。在第7.4.1节中,介绍了交换端口各个模块的睡眠晶体管尺寸设计。第IN/OUT AVC的不同实现方式及其对漏电功耗的降低效果在第7.4.2节中讨论。第7.4.3节给出了传统和所提出的片上网络交换机中交换端口主要组件的漏电功耗以及总功耗。第7.4.4节提供了所提出的交换机在不同数量虚拟通道下的漏电功耗降低情况。

7.4.1 睡眠晶体管尺寸设计

考虑具有虚拟通道的交换端口。图TSA切换时间与小区关键路径延迟之间的权衡如图7.10所示。为了提高功率

为了节省功耗,需要减小睡眠晶体管的尺寸。另一方面,TSA不能大于td,因为只允许一个时钟周期将小区从睡眠到活动模式进行切换。更宽松的时序约束可以实现更大的漏电功耗降低。然而,我们的方案目标是最小化性能下降。

高性能和低功耗开关设计的最优尺寸由td和TSA曲线的交点确定。基于此,交换端口各组件中睡眠晶体管的宽度分别确定为:交叉开关0.15,头部解码器0.45,以及每个输入/输出AVC小区0.35µm。

7.4.2 多路复用树输入/输出AVC的深度

对于八个虚拟通道,有g= 3种实现选项

$$
\begin{cases}
option\ a: m= 3, n= 0, k= 0 \
option\ b: m= 2, n= 1, k= 2 \
option\ c: m= 1, n= 2, k= 6
\end{cases}
$$

(7.7)

对于选项 a,树形结构仅包含根节点。在选项 b 中,可用的虚拟通道被分为两组,每组使用四个虚拟通道。在选项 c 中,使用二进制复用树和两级多路复用将可用的虚拟通道分为四组。该树中共有六个单元,其中至少可以同时激活两个单元。

实现这三种选项所需的面积(包括睡眠控制器和睡眠晶体管的面积)如图7.11所示。选项c的多路复用树面积小于选项a和b的多路复用树面积。与选项a相比,选项b的面积减少了48.37%,选项c的面积减少了53.03%。选项c中输入门电容(睡眠控制器和睡眠晶体管)的开销占总端口电容的22.49%,而在选项b,该开销仅为8.7%。面积开销会增加动态功耗,但由于开销电路仅在重新配置时发生切换,其活动因子低于交换机。

层次树实现对降低交换机的功耗具有双重效果。在轻负载流量下,由于电源门控更高效,漏电功耗得以降低。此外,由于交换机的输入门电容减小,其动态功耗也随之降低。通过层次多路复用,交换机的动态功耗最多可降低54%。另一方面,层次树结构会增加电路的关键路径延迟,从而降低最大工作频率。三种实现选项的最大工作频率和漏电功耗列于表7.1中。

最大功率降低 Pmax−red通过(7.8)确定,其中 Pmax−leak等于所有虚拟通道处于关闭状态时未使用电源门控的漏电功耗。PG when all VCsare OFF.

$$
Pmax−red= \frac{Pwo−PG −Pwt−PG}{Pmax−leak}, (7.8)
$$

其中,Pwo−PG为未使用PG时的漏电功耗,Pwt−PG为使用PG后的漏电功耗。

随着级数增加,最大工作频率和漏电功耗均减少。与选项a相比,选项c的漏电功耗减少了87.12%。可采用管线阶段来维持工作频率,但切换延迟将增加。

7.4.3 片上交换机的功耗

使用ADS工具,确定了交换端口主要组件在活动模式和睡眠模式下的漏电功耗,如表7.2所示。采用分层多路复用树(m= 1和n= 2),当处于输入模式时,一个交换端口的功耗为1.66µW,在输出模式时为1.2µW。

传统片上网络交换机的每个交换端口在未使用分层多路复用树(m= 3)的情况下,其漏电功耗被确定为36.26µW。当所提出的交换机配置为具有三个输入端口(p= 3)和三个输出端口(q= 3)时,所提出的交换机在活动模式下的平均漏电功耗为8.78µW。采用所提出的技术后,所提出的交换机的漏电功耗相比传统片上网络交换机的功耗降低了75.7%。

7.4.4 使用不同虚拟通道数量的节能

当虚拟通道数量总数为八(p= 3),m= 1和n= 2,如图7.12所示,存在四个级别的流量负载。网络流量用于控制活动虚拟通道数量。由于n= 2,可同时激活两个、四个、六个或八个虚拟通道,具体取决于网络流量。不同网络流量特征下的漏电功耗降低情况如图7.12所示。

随着活动虚拟通道数量的减少,节能效果增加。当仅有两个虚拟通道同时激活时,节能最高可达81%。当没有虚拟通道被激活时,节能最多增加97%。自适应虚拟通道采用分层多路复用树显著降低了交换机的功耗。

为了评估 AVC在不同端口大小下的表现,假设采用具有16个虚拟通道和8个LVC(每个包含2个虚拟通道)的片上网络。 Pmax−red通过公式(7.9)计算,其中Pmax−leak确定为1963.2纳瓦。非活动虚拟通道单元的节能效果由此确定

表7.2 采用所提出技术的交换端口组件的漏电功耗
交换端口 组件
输入/输出AVC
头部解码器
交叉开关
输入期间总计 mode
输出期间总计 mode

对于偶数个虚拟通道= 2,4,6,8......16。功率数值列于表7.3中。Pwo−PG和P wt−PG分别列在第二列和第三列中。不活跃的虚拟通道数量增加会降低漏电功耗。根据AVC,在电路级,最小小区集大小为2个单元。在本章其余部分,“LS = 1”用于表示大小为1个单元的集合,“LS= 2”表示lvcsPerSet= 2。“LS = 1”情况能够有效利用虚拟通道,因为它避免了激活无用的本地虚拟通道,从而对吞吐量产生负面影响,这将在下一节中讨论。实现LS= 1情况的硬件开销较高。下一节将介绍为TVA开发的仿真器的特性以及算法操作状态。

表7.3 不同虚拟通道数量下启用和不启用电源门控的漏电功耗
活动虚拟通道数量
14
12
10
8
6
4
2
0

7.5 TVA的实现

网络互连路由与应用建模(NIRGAM)是一种基于SystemC的离散事件、周期精确仿真器,用于模拟片上网络并确定吞吐量和延迟[37]。NIRGAM已扩展以集成自适应虚拟通道并使用TVA。为了应用所提出的算法,需要确定虚拟通道数量每个交换机需要根据流量负载进行调整。仿真器代码已重新架构和开发,以满足我们的设计目标。AVC的新仿真器命名为(NIRGAM_AVC)。NIRGAM_AVC能够配置每交换端口的虚拟通道数量、maxWP、maxIdleP、vcsPerCell、lvcsPerSet以及startupType。不同的漏电功耗级别被设置为可重构(即4、8和12个虚拟通道的漏电功耗),这是NIRGAM在NIRGAM_AVC中新增的另一功能。所开发的仿真器使用(7.9)计算片上网络的总功率及功率降低Pmax−red,这意味着所有计算均基于实际电路级仿真提供。

NIRGAM_AVC的主要特征是活动虚拟通道数量会根据虚拟通道请求而变化。TVA在两种工作状态下运行:瞬态和稳态。当TVA启动(时间 = 0)时,所有链路段根据启动类型处于开启或关闭状态,瞬态开始。启动类型有两种取值:0 表示高优先级,1 表示低功耗。TVA的启动类型对性能和漏电功耗节省有明显影响。它为TVA提供了灵活性,以满足高性能设计需求。低功耗启动使端口以零个活动的本地虚拟通道开始,并在收到虚拟通道请求时开始开启链路段。随着片上网络运行,更多的链路段被开启或关闭以服务输入流量。因此,活动虚拟通道数量的变化较大。瞬态的特点是链路段切换次数较多,这被视为一种开销。另一方面,减少空闲链路开关的数量可以节省更多漏电功耗。当活动虚拟通道数量的变化变得相对不频繁时(即,在所考虑的片上网络中变化约10%),稳态开始。TVA审核空闲的链路开关和等待的流量,以决定开启或关闭链路段。活动虚拟通道数量的变化主要取决于单元大小和启动类型。随着单元大小增加,激活的虚拟通道数量增多。图7.13a 显示了在低功耗启动类型下,针对配置的片上网络不同单元大小,链路段 = 2 的活动虚拟通道数量随仿真时间的变化情况。

HP启动类型要求片上网络在HPTime期间以全部虚拟通道容量运行。不同 TVA采用HP启动类型的活动虚拟通道数量随仿真时间的变化如图7.13b所示。活动虚拟通道数量在HPTime结束前保持不变,之后所有空闲的低功耗状态将在maxIdleP(配置为0ns)加一个时钟周期后被停用(受限于电路级仿真)。 LS = 1始终采用较少的虚拟通道数量来处理流量。当使用LS= 1时,活动虚拟通道数量达到的稳态低于使用LS= 2的情况。由于需要激活(startupType=LP)或停用(startupType= HP)的虚拟通道数量是LS= 2情况的一半。

漏电功耗与虚拟通道数量的变化密切相关。不同单元尺寸下低功耗状态= 2的漏电功耗节省如图7.14a所示,其中采用低功耗启动类型且无空闲时间。在瞬态时段,当少量虚拟通道处于服务状态时,可实现高功耗节省。稳态阶段由于活动虚拟通道数量变化较小,表现为稳定的功耗水平。高优先级承诺所有虚拟通道在高性能时间内保持活动状态,导致在高性能时间期间漏电功耗节省为零,如图7.14b所示,对应不同的高优先级时段值。TVA的漏电功耗节省因非活动虚拟通道数量的变化而变化。瞬态下的漏电功耗节省在高性能时间期间(对于高优先级启动类型)为零,或(对于低功耗启动类型)极高。

NIRGAM_AVC根据一个名为PWR_CALC_TIME_STEP的可配置参数定义的步长来计算稳态下的功率值(即,在结果部分中,稳态从30纳秒开始,若 PWR_CALC_TIME_STEP配置为2纳秒,则功率值将在30、32、34纳秒等时间点进行计算)。平均稳态漏电功耗节省是不同时间步长下功率值的平均值。因此,在瞬态状态之后增加HPTime会导致稳态漏电功耗显著下降。

不使用TVA的网络吞吐量被视为基准吞吐量,用于通过(7.9)计算吞吐量降低。

$$
Thred= \frac{Thwo−TVA − Thwt−TVA}{Thwo−TVA}, (7.9)
$$

其中,Thred为吞吐量降低,Thwo−TVA为未使用 TVA时的吞吐量,Thwt−TVA为使用 TVA后的吞吐量。下一节将讨论吞吐量开销,NIRGAM_AVC中的新参数被修改以展示TVA的效率及其影响各参数对稳态漏电功耗和吞吐量降低的影响。通过NIRGAM_AVC关于TVA变量收集的统计信息也进行了展示和讨论。

7.6 TVA 仿真结果

使用TVA的片上网络的漏电功耗节省和吞吐量值与不同的TVA参数紧密相关。本节说明这些参数对功耗节省和吞吐量的影响。TVA采用NIRGAM_AVC实现,其片上网络配置如下:时钟频率为8吉赫,采用OE路由算法、恒定比特率(CBR)流量以及每端口16个虚拟通道。其他NIRGAM_AVC的新参数被改变以展示TVA的效率。在不使用TVA的情况下,网络吞吐量被视为参考吞吐量,用于通过(7.9)计算吞吐量降低。在本节其余部分中,展示了 4 × 4(16个Tile)、 8 × 8(64个Tile)和 16 × 16(256个Tile)网络的结果。TVA的吞吐量开销在第7.6.1节中进行了说明。启动类型在第7.6.2节中讨论。变量统计在第7.6.3节中显示。端口大小、叶单元大小和空闲周期对吞吐量降低和漏电功耗降低的影响分别在第7.6.4、7.6.5和7.6.6节中讨论。

7.6.1 吞吐量开销

该电路架构保证激活虚拟通道组的开销为一个时钟周期。切换开销会降低片上网络吞吐量。在NIRGEAM_AVC中,通过统计链路段被开启的次数,并将其加入总时钟周期数(与吞吐量成反比),从而确定TVA对吞吐量的影响。图7.15展示了不同TVA参数下针对链路段= 1和链路段= 2的归一化TVA吞吐量(ThTVA-Norm),其中Th TVA-Norm=(Thwt-TVA/Thwo-TVA)。图7.15a展示了在numVCsPerPort为= 16、启动类型为“LP”、maxIdleP为= 0的TVA方案下,不同单元大小的ThTVA-Norm。当 vcsPerCell为= 2时,链路段= 2的ThTVA-Norm为0.993,链路段= 1为0.938,这意味着由于开关操作导致的吞吐量下降不到7%。增加vcsPerCell可减少切换次数,从而提高ThTVA-Norm,当vcsPerCell为= 8时,链路段= 2和链路段= 1的Th TVA-Norm分别达到0.997和1。图7.15b展示了在numVCsPerPort为= 16、启动类型为=“LP”、vcsPerCell为= 2的TVA方案下,使用不同LSmaxIdleP值的影响。较高的单元组空闲时间会导致较低的开销,因为链路段保持开启状态更久。图7.15c 展示了在启动类型为= LP、maxIdleP为= 10ns、vcsPerCell为= 2的TVA方案下,不同端口大小的ThTVA-Norm。增大端口大小会增加空闲链路段的概率,从而带来额外开销。当numVCsPerPort分别为= 8、12和16时,链路段= 2的ThTVA-Norm分别为 0.997、0.997和0.995,而对应的另一链路段分别为0.993、0.996和0.996。

分别为LS = 1。当启动类型为“HP”且端口大小为=16NoC的maxIdleP为= 0 ns时,改变HPTime的影响如图7.15d所示。在HPTime期间,所有LS段均处于开启状态,因此增加的开销为零。增加HPTime会减少开销。10ns的HPTime对应于 LS = 2的ThTVA-Norm为0.985。超过瞬态的HPTime可提高吞吐量。对于HPTi me = 30ns,ThTVA-Norm得到提高,LS = 2达到0.995,而LS = 1达到0.959。尽管存在开销,TVA对片上网络的整体吞吐量影响极小,最大吞吐量下降仅为1.5%,对应于LS = 2。

ThTVA-Norm对于16个Tile、64个Tile和256个Tile的片上网络,在LS= 1和LS= 2情况下的表现如图7.16所示,适用于二维网格和二维环面拓扑结构。当采用二维环面拓扑时,256个Tile的片上网络的吞吐量下降最为严重,分别达到0.88%和2.65%;当采用二维网格拓扑时,吞吐量下降分别为0.69%和2.39%。其他NoC规模的吞吐量下降可忽略不计,即吞吐量下降小于3%。

7.6.2 TVA 启动类型

16、64和256个Tile的二维环面网络在不同启动类型下的片上网络平均漏电功耗降低和平均吞吐量下降如表7.4所示,其中每端口虚拟通道数= 16和每单元虚拟通道数 = 2对应低功耗状态= 2。增加

表7.4 二维环面片上网络中低功耗和高优先级的平均功耗节省与吞吐量降低
启动类型 (ns)
启动类型 (ns)
LP, 0
HP, 5
HP, 15
HP, 25
HP, 40
∗可忽略的增长

HPTime提高了功耗降低效果。对于LS= 2,在16个Tile、64个Tile和256个Tile的网络中,分别实现了84.1、78.3和72.2%的最高漏电功耗节省。实施LS= 1将16、64和256个Tile的二维环面片上网络的功耗节省分别提高至90%、83%和78.6%。相同配置下2D‐Mesh拓扑的片上网络结果列于表7.5中。HP启动类型分别在16个Tile、64个Tile和256个Tile的片上网络中实现了79.7%、75.6%和70.6%的最高漏电功耗降低。启动类型在对NoC吞吐量影响可忽略的情况下,实现了较高的漏电功耗降低。HP启动类型比LP实现了更高的功耗节省。LS= 1相比LS= 2额外节省了(5–9)%的漏电功耗。

对于高优先级启动,当高性能时间大于30纳秒时,漏电功耗节省显著降低,因为稳态在30纳秒后开始(针对测试的片上网络),例如当高性能时间为= 40纳秒时,在30、32、34纳秒⋯⋯40纳秒期间无节能效果。当高性能时间小于稳态开始时间时,可实现较高的节能效果。

表7.5 二维网格片上网络中低功耗和高优先级的平均功耗节省与吞吐量降低
启动
启动
LP, 0
HP, 5
HP, 15
HP, 25
HP, 40
∗可忽略的增加

7.6.3 TVA变量统计

代表LVC数量和LSs不同状态(即numIdleL、numBusySetc.)的TVA变量在第7.3.1.2节中给出。这些变量的直方图如图7.17所示。具有低功耗启动且 maxIdleP为=0 ns、LS = 2以及LVC = 2的二维网格片上网络。16个 Tile的片上网络中numIdleL、numBusyL、numPBusyL和关闭的LVCs出现次数(时钟周期数)如图7.17a所示。TVA将numIdleL的出现率降至0.39%,关闭单元的出现率为83%,均值为96,008个周期,标准差为149,491个周期。PAP在1000个周期内仅执行了34次。64个Tile的片上网络单元变量直方图如图7.17b所示。numIdleL出现1.34%,而关闭的LVCs占周期的80%,对应 μ= 448,008, σ= 662,421,PAP执行频率为每1000个周期1026次。256个 Tile的片上网络LVC状态变量的直方图如图7.17c所示,对应μ= 1,920,010, σ= 2,268,030,PAP频率等于6393。LS变量(numIdleS、numBusyS和numPBusyS)的直方图分别如图7.18a– c 所示。 LS= 1显示在 PAP执行频率方面有显著增加,片上网络在16个 Tile、64个Tile和256个Tile网络情况下的 PAP频率分别为1930、7086和 26,564。对于不同的NoC规模,TVA最大化关闭虚拟通道的存在时间,使其占时钟周期的(20–80)%,从而对节能产生积极影响。

7.6.4 每端口虚拟通道数

采用TVA 、低功耗启动类型、零最大空闲周期和每单元虚拟通道数= 2的二维环面拓扑片上网络被假设。针对numVCsPrtPort= 6,8… 16的不同NoC规模的稳态功耗和吞吐量降低百分比被报告于

表7.6 漏电功耗降低和吞吐量降低与numVCsPerPort的二维环面片上网络
端口大小
端口大小
6
8
10
12
14
16
单元总数1 可忽略的增加

表7.6.TVA在每端口虚拟通道数= 14时,分别对16个Tile、64个Tile和256个 Tile的片上网络实现了最高漏电功耗节省,分别为83.7%、78.9%和72.68%。每端口14个虚拟通道的漏电功耗节省高于每端口16个虚拟通道,因为在每端口14个虚拟通道的情况下,虚拟通道被划分为3个LS,每个包含4个虚拟通道,另一个LS仅包含2个虚拟通道;而每端口16个虚拟通道则具有4个LS,每个均包含4个虚拟通道。

表7.7 二维网格片上网络中每端口虚拟通道数对漏电功耗降低和吞吐量降低的影响numVCsPerPort
端口大小
端口大小
6
8
10
12
14
16
可忽略的增加

轻负载流量(即需要1或2个虚拟通道)时,TVA会关闭所有LS,并分配具有2个虚拟通道的LS,其对应的numVCsPerPort= 14,这意味着numVCsPerPort= 16比 numVCsPerPort= 14拥有更多的空闲虚拟通道。TVA在高负载流量下也能实现相同效果,当服务输入流量所需的虚拟通道数量不是4的倍数时,即5、6、9、10和13。二维网格片上网络采用相同设置以获得表7.7中列出的结果。14个虚拟通道的端口大小分别在16个Tile、64个Tile和256个Tile的网络中实现了79.1%、76.3%和70.1%的最高漏电功耗降低。增加numVC-sPerPort可提高吞吐量和漏电功耗节省,因为可用的虚拟通道更多,能够更好地服务流量,并且在流量较轻时可停用的虚拟通道数量也增加。

7.6.5 每个叶小区的虚拟通道数

二维环面片上网络在低功耗启动和最大空闲P= 0下的功率和吞吐量降低如表 7.8所示,针对不同的单元大小。如表中所示,吞吐量的变化较小。每单元虚拟通道数= 2分别在16个Tile、64个Tile和256个Tile的片上网络中实现了最高达83%、78%和72%的漏电功耗节省,对应低功耗状态= 2。 低功耗状态= 1使功耗节省至少提高5%,且对NoC吞吐量的影响可忽略不计。

vcsPerCell对2D‐Mesh NoC的影响与表7.9中报告的结果相似。主要区别在于,2D‐Mesh NoC的节能效果低于环面NoC,因为前者输入端口数量较少,意味着虚拟通道数量也较少。16、64和256个Tile的片上网络在LS= 2下分别实现了78.3%、75.3%和70.4%的漏电功耗降低,最大吞吐量下降为0.1%。

增加单元大小可以提高NoC吞吐量,因为可用于服务流量的虚拟通道数量增加了。而漏电功耗节省减少是增加vcsPerCell带来的负面影响,因为在流量较轻时,空闲虚拟通道与繁忙虚拟通道同时存在的概率更高,这意味着单元状态为PBusy,无法进入关闭状态。

表7.8 不同每单元虚拟通道数下二维环面片上网络的平均漏电功耗降低和吞吐量降低
单元大小
单元大小
2
4
8
∗可忽略的增加
表7.9 不同每单元虚拟通道数的二维网格片上网络的漏电功耗降低与吞吐量降低
单元大小
单元大小
2
4
8

7.6.6 单元最大空闲周期

增加maxIdleP意味着LVC将保持更长时间的空闲状态,这使得输入流量有机会在无需等待虚拟通道释放的情况下得到服务,从而提高吞吐量。然而,当 LS长时间处于空闲状态时,会消耗更多的漏电功耗。

功耗降低 ×吞吐量(PRT)是一项新提出的指标,用于展示采用 TVA的片上网络的功耗降低和性能。 PRT在表7.10中列出,针对采用 低功耗启动类型、每单元虚拟通道数= 2以及不同 最大空闲周期值的二维环面片上网络。最大空闲周期= 0纳秒实现了最高的 PRT值,分别为0.78吉瓦·字节每秒 (83% 功耗节省)、2.41吉瓦·字节每秒 (78% 功耗节省)和7.86吉瓦·字节每秒 (72% 功耗节省),对应16个Tile、64个Tile和256个Tile的片上网络,在 低功耗状态= 2。

表7.10 不同最大空闲周期二维环面拓扑下的功率降低 ×吞吐量
空闲时间(纳秒)
空闲时间(纳秒)
0
5
10

PRT在不同maxIdleP下的二维网格片上网络中的表现如表7.11所示。零空闲时间在 PRT上达到最高值,分别为0.55吉瓦·字节每秒(漏电功耗降低78.3%)、2.04吉瓦·字节 每秒(漏电功耗节省75.3%)和7.21吉瓦·字节每秒(漏电功耗节省70.4%),对应于16个 Tile、64个Tile和256个Tile的片上网络,针对= 2。使用零空闲周期可实现最高的漏电功耗节省,因为低功耗状态下的节点会立即被关闭,不会产生任何漏电功耗。

表7.11 不同最大空闲周期二维网格拓扑下的功率降低 ×吞吐量
空闲时间(纳秒)
空闲时间(纳秒)
0
5
10

7.7 结论

提出了一种低漏电功率开关以降低片上网络电路的功耗。所提出的交换机采用了两种技术来减少交换机的漏电功耗。电路级仿真表明,AVC 减少了交换端口的面积,从而将动态功耗最多降低了54%。功耗所提出的交换机在活动模式下的功耗相比传统片上网络交换机最多降低了 81.4%。在交换端口的非活动模式下,漏电功耗节省可增加至97%。

使用AVC,提出了一种基于流量的虚通道激活(TVA)算法,用于低功耗片上网络。TVA通过根据流量情况激活/停用虚拟通道,从而在目标吞吐量下最小化功耗。开发了NIRGAM_AVC仿真器,用于模拟采用TVA的片上网络。尽管存在虚通道切换开销,TVA对整体NoC吞吐量的影响可忽略不计。增加每个输入端口的虚拟通道数量可降低漏电功耗。TVA在不同拓扑结构和不同维度下均实现了显著的漏电功耗降低。TVA在不影响网络吞吐量的情况下,节省了16个Tile的二维环面片上网络84%的漏电功耗。TVA结合低功耗启动、零空闲时间和14个虚拟通道端口,在16个Tile的二维环面和二维网格片上网络中分别节省了78.9%和76.3 %的漏电功耗。当在256个Tile的中等规模二维环面和二维网格片上网络上运行,并采用14个虚拟通道输入端口大小时,片上网络分别实现72.7%和71.1%的功耗节省。TVA在二维环面拓扑下仅造成1.08%的可忽略吞吐量降低,在二维网格网络下为0.84%。TVA已在不同维度的多种拓扑结构下进行了评估。采用大小为1的虚通道单元组可使漏电功耗节省提高(5–8)%,同时吞吐量下降可忽略(小于)5%。当使用最小的单元和集合大小以及较短的空闲周期时,TVA的节能优势得以充分发挥。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值