VLSI数字信号处理系统——第四章重定时

VLSI数字信号处理系统——第四章重定时

作者:夏风喃喃
参考:
(1) VLSI数字信号处理系统:设计与实现 (美)Keshab K.Parhi/著
(2) socvista https://wenku.baidu.com/u/socvista?from=wenku

一.引言

重定时
重定时就是一种,在保持系统的功能不变的前提下,改变系统延时(寄存器)数目和分布的方法。流水线也是重定时的一个特例。重定时在同步电路设计中有很多应用,包括缩短系统的时钟周期减少系统中寄存器的数目降低系统的功耗逻辑综合的规模

系统的时不变性
重定时基于系统的时不变性,也就是说时不变系统才可使用重定时(更严格的说是,时不变计算节点才可进行重定时)。即输入 x ( n ) x(n) x(n)延时 k k k个周期将导致输出 y ( n ) y(n) y(n)也延时相同的 k k k个周期。
在这里插入图片描述
在时不变系统中,延时算子用 D D D表示, D k D^k Dk表示延时 k k k个周期, k k k为非负整数。任一节点的每一条输入边都减少一个 D k D^k Dk,则其每一条输出边必增加一个 D k D^k Dk;反之,每一条输出边都减少一个 D k D^k Dk,则其每一条输入边必增加一个 D k D^k Dk

重定时的应用
重定时具有缩短系统时钟周期的功能,如下图从A)至D)所示,重定时使系统在不改变寄存器数目的前提下关键路径长度从 4 u . t . 4u.t. 4u.t.减少至 2 u . t . 2u.t. 2u.t.
在这里插入图片描述
重定时具有减少系统中寄存器数目的功能,如下图从A)至D)所示,重定时使系统在不改变时钟周期的前提下寄存器数目从5个减少为3个。
在这里插入图片描述
重定时的本质
重定时是一个改变系统延时的数目和分布的一个规则,通过大规模计算优化,给出1)时钟周期最小,2)寄存器最少,3)两者混合的某个折衷,三个不同的系统重定时方案。

二.定义与性质

1.重定时的定量描述

为了进行自动重定时(让计算机来处理),必须告诉计算机每一个节点所需进行的重定时情况,只需为每个节点赋予一个整数值 k k k,输入边加上 k k k个延时,输出边减去 k k k个延时, k k k为可正可负可为零的整数
在这里插入图片描述
如上图示, U U U V V V两个相连节点的情况,分别为每个节点赋予一个整数值 r ( U ) r(U) r(U) r ( V ) r(V) r(V),边的权值就是边上延时的数目。重定时过程中,边 e e e为节点 U U U的输出边,所以边 e e e的权值需要减去 r ( U ) r(U) r(U)个延时,同时边 e e e又是节点 V V V的输入边,所以需要再加上 r ( V ) r(V) r(V)个延时,所以重定时之后新边的延时为(重定时方程):
在这里插入图片描述
因为自然界就没有延时为负数的情况,只有当DFG中所有边的 w r ( e ) w_{r(e)} wr(e)都是非负时,所设定的节点值才是合法的,所进行的重定时才是可以实现的。

2.重定时的性质

性质一:重定时的路径: p = V 0 → e 0 V 1 → e 1 ⋯ → e k − 2 V k − 1 → e k − 1 V k p=V_0 \stackrel{e_0}{\rightarrow} V_1\stackrel{e_1}{\rightarrow}\cdots\stackrel{e_{k-2}}{\rightarrow}V_{k-1}\stackrel{e_{k-1}}{\rightarrow}V_k p=V0e0V1e1ek2Vk1ek1Vk的权重是 w r ( p ) = w ( p ) + r ( V k ) − r ( V 0 ) w_r(p)=w(p)+r(V_k)-r(V_0) wr(p)=w(p)+r(Vk)r(V0)

性质二:重定时不改变环路中的延时数。因为 w r ( p ) = w ( p ) + r ( V i ) − r ( V i ) = w r ( p ) w_r(p)=w(p)+r(V_i)-r(V_i)=w_r(p) wr(p)=w(p)+r(Vi)r(Vi)=wr(p)

性质三:重定时不改变DFG的迭代边界。因为环路延时不会变化,而迭代边界又只与环路相关,所以重定时不能改变DFG的迭代边界。

性质四:每一个节点的重定时值增加同一个常数 j j j不会改变从 G G G G r G_r Gr的映射。因为 w r ( p ) = w ( p ) + ( r ( U ) + j ) − ( r ( V ) + j ) = w ( p ) + r ( U ) − r ( V ) w_r(p)=w(p)+(r(U)+j)-(r(V)+j)=w(p)+r(U)-r(V) wr(p)=w(p)+(r(U)+j)(r(V)+j)=w(p)+r(U)r(V)

三.不等式求解系统

一开始并不知道为每个节点赋予什么样的值才是合理的或者说是最佳的,错误的赋值可能会产生 w r ( e ) w_{r(e)} wr(e)为负的情况,所以需要不等式方程组的约束条件。如下图所示,总共四个节点,假设为每个节点所赋的值为 r ( i ) r(i) r(i) i = 1 , 2 , 3 , 4 i=1,2,3,4 i=1234。共有5 条边,进行重定时之后的边的权值计算如下:
在这里插入图片描述
在这里插入图片描述
这是一个多元一次不等式方程组,求解这个方程组所得的解,就是合法的重定时实现。另外,可以设定多个目标,比如系统时钟周期和寄存器个数等,在此不等式方程组的约束条件下,搜索出使得规定目标最小化的解。

不等式求解的方法可以参考最短路径算法,如Bellman-Ford算法、Floyd-Warshall算法等。具体算法如A.2与A.3所示。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

四.重定时技术

1.割集重定时和流水线

割集重定时:割集重定时是重定时的一种特殊情况。割集将产生两个不相邻的子图 G 1 G_1 G1 G 2 G_2 G2,从 G 1 G_1 G1 G 2 G_2 G2的每条边都增加 k k k个延时,从 G 2 G_2 G2 G 1 G_1 G1的每条边都减少 k k k个延时。

如下图4-4所示,a)中虚线为一个割集,将DFG分为 G 1 G_1 G1 G 2 G_2 G2,如图b),对于 k = 1 k=1 k=1的割集重定时结果如图c)。
在这里插入图片描述
割集重定时可以认为图 G 1 G_1 G1中每个节点重定时的值都为 j j j,而子图 G 2 G_2 G2中每个节点重定时的值为 j + k j+k j+k。由性质四可知, j j j的值是不重要的,只需将 k = 1 k=1 k=1带入,就可以产生图4-4中割集重定时的映射。

流水线:流水线也是割集重定时的一个特殊情况,此处没有 G 2 G_2 G2 G 1 G_1 G1的边,即流水线应用到了一个无环路的单向前馈割集情况。

如下图4-6所示,a)中虚线为一个单向前馈割集,将DFG分为 G 1 G_1 G1 G 2 G_2 G2,如图b),对于 k = 2 k=2 k=2的割集重定时结果如图c),因为没有 G 2 G_2 G2 G 1 G_1 G1的边,所以 G 1 G_1 G1 G 2 G_2 G2的每条边增加2个延时。
在这里插入图片描述
N-slow与割集重定时:割集重定时通常与减速(slow-down)结合使用。首先用N个延时取代DFG中的每个延时,以产生DFG的N倍减速系统(即N-1个空操作或0样点在每个有用信号样点后交替插入,每N个周期处理一个样本点,采样率降为1/N),然后对N倍减速的DFG进行割集重定时。

如下图4-7所示,a)为100阶格型滤波器,关键路径为101个加法器和两个乘法器,最小抽样周期是 105 u . t . 105u.t. 105u.t.。该电路的2倍减速为图b)所示,割集重定时可以得到图c),此时关键路径有两个加法器和两个乘法器,计算时间为 6 u . t . 6u.t. 6u.t.,因为电路时2倍减速的,则最小抽样周期是 12 u . t . 12u.t. 12u.t.
在这里插入图片描述
注意:虽然N-slow和割集重定时可以使关键路径减小,从而提高了时钟频率,但因为使用了N倍减速,所以采样率减小为1/N,采样周期增大了N倍,N个周期处理1个样本,硬件利用率只有1/N。

2.时钟周期最小化的重定时

W(U,V)与D(U,V)
W ( U , V ) W(U,V) W(U,V)是从节点 U U U到节点 V V V的任一路径上寄存器的最少数目,而 D ( U , V ) D(U,V) D(U,V)是从 U U U V V V W ( U , V ) W(U,V) W(U,V)为权重的、所有路径中最长的计算时间。定义如下:
在这里插入图片描述
其计算方法为:
1)令 M = t m a x n M = t_{max}n M=tmaxn,此处 t m a x t_{max} tmax G G G中节点的最长计算时间, n n n G G G中的节点数。
2)构成一个新图 G ′ G' G,它与 G G G相同,只是对所有的边 U → e V U \stackrel{e}{\rightarrow} V UeV,其权重用 w ′ ( e ) = M w ( e ) − t ( U ) w'(e) = Mw(e) - t(U) w(e)=Mw(e)t(U)代替。
3)求解 G ′ G' G上所有 U U U V V V对的最短路径问题,可用Floyd-Warshall算法。令 S ’ U V S’_{UV} SUV为从U到V的最短路径。
4)若 U ≠ V U ≠ V U=V,则 W ( U , V ) = ⌈ S U V ′ M ⌉ W(U,V) = \lceil {S'_{UV}\over M} \rceil W(U,V)=MSUV D ( U , V ) = M W ( U , V ) − S U V ′ + t ( V ) D(U,V)=MW(U,V)-S'_{UV}+t(V) D(U,V)=MW(U,V)SUV+t(V)
U = V U = V UV,则 W ( U , V ) = 0 W(U,V) = 0 W(U,V)=0 D ( U , V ) = t ( U ) D(U,V) = t(U) D(U,V)=t(U)

约束
W(U,V)和D(U,V)的值用于确定是否存在一个能够达到期望时钟周期的重定时的解。给定一个期望的时钟周期c,当下列约束成立,则存在一个可行的重定时的解。
1)(可行性约束)对G的每条边 U → e V U \stackrel{e}{\rightarrow} V UeV来说,都有 r ( U ) − r ( V ) ≤ w ( e ) r(U) - r(V) ≤ w(e) r(U)r(V)w(e)
2)(关键路径约束)对G中所有的顶点 U U U V V V来说, r ( U ) − r ( V ) ≤ W ( U , V ) − 1 r(U) - r(V) ≤ W(U,V) - 1 r(U)r(V)W(U,V)1,以满足 D ( U , V ) > c D(U,V) >c D(U,V)c

时钟周期最小化的重定时的解
根据约束所列出的不等式组有解,则此解为可行的重定时解,使电路能在预期的时钟周期c下工作。对不等式求解见本文《三.不等式求解系统》。

3.使寄存器数最小化的重定时(略)

五.结论

本章重点在流水线重定时和割集重定时,说起来流水线重定时又是割集重定时的特例,也就是说流水线重定时相当于将割集重定时的割集限制为单向割集的情况。同步系统可以利用重定时来缩小关键路径或时钟周期、减少存储或延时元件数目、或者降低功耗。最短路径算法可以用来得到重定时的解,如果这个解存在的话。

  • 4
    点赞
  • 16
    收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:技术黑板 设计师:CSDN官方博客 返回首页
评论

打赏作者

夏风喃喃

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值