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

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

文章目录

  • VLSI数字信号处理系统——第四章重定时
    • 一.引言
    • 二.定义与性质
      • 1.重定时的定量描述
      • 2.重定时的性质
    • 三.不等式求解系统
    • 四.重定时技术
      • 1.割集重定时和流水线
      • 2.时钟周期最小化的重定时
      • 3.使寄存器数最小化的重定时(略)
    • 五.结论

一.引言

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

系统的时不变性
重定时基于系统的时不变性,也就是说时不变系统才可使用重定时(更严格的说是,时不变计算节点才可进行重定时)。即输入x(n)x(n)x(n)延时kkk个周期将导致输出y(n)y(n)y(n)也延时相同的kkk个周期。

在时不变系统中,延时算子用DDD表示,DkD^kDk表示延时kkk个周期,kkk为非负整数。任一节点的每一条输入边都减少一个DkD^kDk,则其每一条输出边必增加一个DkD^kDk;反之,每一条输出边都减少一个DkD^kDk,则其每一条输入边必增加一个DkD^kDk。

重定时的应用
重定时具有缩短系统时钟周期的功能,如下图从A)至D)所示,重定时使系统在不改变寄存器数目的前提下关键路径长度从4u.t.4u.t.4u.t.减少至2u.t.2u.t.2u.t.。

重定时具有减少系统中寄存器数目的功能,如下图从A)至D)所示,重定时使系统在不改变时钟周期的前提下寄存器数目从5个减少为3个。

重定时的本质
重定时是一个改变系统延时的数目和分布的一个规则,通过大规模计算优化,给出1)时钟周期最小,2)寄存器最少,3)两者混合的某个折衷,三个不同的系统重定时方案。

二.定义与性质

1.重定时的定量描述

为了进行自动重定时(让计算机来处理),必须告诉计算机每一个节点所需进行的重定时情况,只需为每个节点赋予一个整数值kkk,输入边加上kkk个延时,输出边减去kkk个延时,kkk为可正可负可为零的整数。

如上图示,UUU和VVV两个相连节点的情况,分别为每个节点赋予一个整数值r(U)r(U)r(U)和r(V)r(V)r(V),边的权值就是边上延时的数目。重定时过程中,边eee为节点UUU的输出边,所以边eee的权值需要减去r(U)r(U)r(U)个延时,同时边eee又是节点VVV的输入边,所以需要再加上r(V)r(V)r(V)个延时,所以重定时之后新边的延时为(重定时方程):

因为自然界就没有延时为负数的情况,只有当DFG中所有边的wr(e)w_{r(e)}wr(e)​都是非负时,所设定的节点值才是合法的,所进行的重定时才是可以实现的。

2.重定时的性质

性质一:重定时的路径:p=V0→e0V1→e1⋯→ek−2Vk−1→ek−1Vkp=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_kp=V0​→e0​V1​→e1​⋯→ek−2​Vk−1​→ek−1​Vk​的权重是wr(p)=w(p)+r(Vk)−r(V0)w_r(p)=w(p)+r(V_k)-r(V_0)wr​(p)=w(p)+r(Vk​)−r(V0​)。

性质二:重定时不改变环路中的延时数。因为wr(p)=w(p)+r(Vi)−r(Vi)=wr(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的迭代边界。

性质四:每一个节点的重定时值增加同一个常数jjj不会改变从GGG到GrG_rGr​的映射。因为wr(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)。

三.不等式求解系统

一开始并不知道为每个节点赋予什么样的值才是合理的或者说是最佳的,错误的赋值可能会产生wr(e)w_{r(e)}wr(e)​为负的情况,所以需要不等式方程组的约束条件。如下图所示,总共四个节点,假设为每个节点所赋的值为r(i)r(i)r(i),i=1,2,3,4i=1,2,3,4i=1,2,3,4。共有5 条边,进行重定时之后的边的权值计算如下:


这是一个多元一次不等式方程组,求解这个方程组所得的解,就是合法的重定时实现。另外,可以设定多个目标,比如系统时钟周期和寄存器个数等,在此不等式方程组的约束条件下,搜索出使得规定目标最小化的解。

不等式求解的方法可以参考最短路径算法,如Bellman-Ford算法、Floyd-Warshall算法等。具体算法如A.2与A.3所示。




四.重定时技术

1.割集重定时和流水线

割集重定时:割集重定时是重定时的一种特殊情况。割集将产生两个不相邻的子图G1G_1G1​与G2G_2G2​,从G1G_1G1​到G2G_2G2​的每条边都增加kkk个延时,从G2G_2G2​到G1G_1G1​的每条边都减少kkk个延时。

如下图4-4所示,a)中虚线为一个割集,将DFG分为G1G_1G1​与G2G_2G2​,如图b),对于k=1k=1k=1的割集重定时结果如图c)。

割集重定时可以认为图G1G_1G1​中每个节点重定时的值都为jjj,而子图G2G_2G2​中每个节点重定时的值为j+kj+kj+k。由性质四可知,jjj的值是不重要的,只需将k=1k=1k=1带入,就可以产生图4-4中割集重定时的映射。

流水线:流水线也是割集重定时的一个特殊情况,此处没有G2G_2G2​到G1G_1G1​的边,即流水线应用到了一个无环路的单向前馈割集情况。

如下图4-6所示,a)中虚线为一个单向前馈割集,将DFG分为G1G_1G1​与G2G_2G2​,如图b),对于k=2k=2k=2的割集重定时结果如图c),因为没有G2G_2G2​到G1G_1G1​的边,所以G1G_1G1​到G2G_2G2​的每条边增加2个延时。

N-slow与割集重定时:割集重定时通常与减速(slow-down)结合使用。首先用N个延时取代DFG中的每个延时,以产生DFG的N倍减速系统(即N-1个空操作或0样点在每个有用信号样点后交替插入,每N个周期处理一个样本点,采样率降为1/N),然后对N倍减速的DFG进行割集重定时。

如下图4-7所示,a)为100阶格型滤波器,关键路径为101个加法器和两个乘法器,最小抽样周期是105u.t.105u.t.105u.t.。该电路的2倍减速为图b)所示,割集重定时可以得到图c),此时关键路径有两个加法器和两个乘法器,计算时间为6u.t.6u.t.6u.t.,因为电路时2倍减速的,则最小抽样周期是12u.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)是从节点UUU到节点VVV的任一路径上寄存器的最少数目,而D(U,V)D(U,V)D(U,V)是从UUU到VVV以W(U,V)W(U,V)W(U,V)为权重的、所有路径中最长的计算时间。定义如下:

其计算方法为:
(1)令M=tmaxnM = t_{max}nM=tmax​n,此处tmaxt_{max}tmax​是GGG中节点的最长计算时间,nnn是GGG中的节点数。
(2)构成一个新图G′G'G′,它与GGG相同,只是对所有的边U→eVU \stackrel{e}{\rightarrow} VU→eV,其权重用w′(e)=Mw(e)−t(U)w'(e) = Mw(e) - t(U)w′(e)=Mw(e)−t(U)代替。
(3)求解G′G'G′上所有UUU、VVV对的最短路径问题,可用Floyd-Warshall算法。令S’UVS’_{UV}S’UV​为从U到V的最短路径。
(4)若U≠VU ≠ VU​=V,则W(U,V)=⌈SUV′M⌉W(U,V) = \lceil {S'_{UV}\over M} \rceilW(U,V)=⌈MSUV′​​⌉,D(U,V)=MW(U,V)−SUV′+t(V)D(U,V)=MW(U,V)-S'_{UV}+t(V)D(U,V)=MW(U,V)−SUV′​+t(V)。
若U=VU = VU=V,则W(U,V)=0W(U,V) = 0W(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→eVU \stackrel{e}{\rightarrow} VU→eV来说,都有r(U)−r(V)≤w(e)r(U) - r(V) ≤ w(e)r(U)−r(V)≤w(e)。
(2)(关键路径约束)对G中所有的顶点UUU、VVV来说,r(U)−r(V)≤W(U,V)−1r(U) - r(V) ≤ W(U,V) - 1r(U)−r(V)≤W(U,V)−1,以满足D(U,V)>cD(U,V) >cD(U,V)>c。

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

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

五.结论

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

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

  1. VLSI数字信号处理系统——第五章展开

    VLSI数字信号处理系统--第五章展开 作者:夏风喃喃 参考: (1) VLSI数字信号处理系统:设计与实现 (美)Keshab K.Parhi/著 (2) socvista https://wenk ...

  2. VLSI数字信号处理系统——第六章折叠

    VLSI数字信号处理系统--第六章折叠 作者:夏风喃喃 参考: (1) VLSI数字信号处理系统:设计与实现 (美)Keshab K.Parhi/著 (2) socvista https://wenk ...

  3. VLSI数字信号处理系统——第十三章位级运算架构

    VLSI数字信号处理系统--第十三章位级运算架构 作者:夏风喃喃 参考: (1) VLSI数字信号处理系统:设计与实现 (美)Keshab K.Parhi/著 (2) socvista https:/ ...

  4. VLSI数字信号处理系统——第十四章冗余运算

    VLSI数字信号处理系统--第十四章冗余运算 作者:夏风喃喃 参考: (1) VLSI数字信号处理系统:设计与实现 (美)Keshab K.Parhi/著 (2) socvista https://w ...

  5. VLSI数字信号处理系统——第九章滤波器和变换中的算法强度缩减

    VLSI数字信号处理系统--第九章滤波器和变换中的算法强度缩减 作者:夏风喃喃 参考: (1) VLSI数字信号处理系统:设计与实现 (美)Keshab K.Parhi/著 (2) socvista ...

  6. VLSI数字信号处理系统——第二章迭代边界

    VLSI数字信号处理系统--第二章迭代边界 作者:夏风喃喃 参考:VLSI数字信号处理系统:设计与实现 (美)Keshab K.Parhi/著 文章目录 VLSI数字信号处理系统--第二章迭代边界 一 ...

  7. VLSI数字信号处理系统——第一章数字信号处理系统导论

    VLSI数字信号处理系统--第一章数字信号处理系统导论 作者:夏风喃喃 参考:VLSI数字信号处理系统:设计与实现 (美)Keshab K.Parhi/著 文章目录 VLSI数字信号处理系统--第一章 ...

  8. VLSI数字信号处理系统——第十章流水线结构的并行自适应递归滤波器

    VLSI数字信号处理系统--第十章流水线结构的并行自适应递归滤波器 作者:夏风喃喃 参考: (1) VLSI数字信号处理系统:设计与实现 (美)Keshab K.Parhi/著 (2) socvist ...

  9. 《VLSI数字信号处理系统设计与实现》(1)

    相关课程:王中风<数字信号处理的VLSI实现> 相关教材:<VLSI数字信号处理系统设计与实现> 第1章:数字信号处理系统导论 数字设计的目标是在尽可能提高性能的同时保持低廉的 ...

最新文章

  1. 添加流程_艾多美手机商城苹果ios系统的主屏幕添加流程
  2. 扫地机器人粘住老鼠板怎么办_家里老鼠的危害性及如何有效灭鼠
  3. Android【FileInputStream、FileOutputStream---本地文件I/O操作-读写操作模板(btnWrite方法、btnRead方法)】
  4. 【Python】学习笔记总结7(简单爬虫)
  5. java中四种线程池及poolSize、corePoolSize、maximumPoolSize
  6. Python re module的使用
  7. linux应用开发:日志记录
  8. 单体应用架构——垂直应用架构———分布式架构———SOA架构———微服务架构
  9. web高德maker动画_Web Maker —我如何构建一个快速的离线前端游乐场
  10. 4种语义分割数据集Cityscapes上SOTA方法总结
  11. html新建通用loading,漂亮实用的页面loading(加载)封装代码
  12. aws rds 加密_AWS RDS SQL Server中的加密备份和还原
  13. 生成26个大小写字母和0-9的六位随机验证码(python3.X)
  14. 过滤钩子驱动程序一(微软DDK文档,FLASHSKY翻译)
  15. linux光盘属于什么设备,Linux系统中,光盘的设备文件为
  16. Gentoo安装教程(Systemd+Gnome)
  17. 基础呀基础,用二极管防止反接,你学会了吗?
  18. IPSec的IKEv1和IKEv2协议
  19. 空气净化器什么牌子好,家用空气净化器哪个牌子好推荐
  20. shell 脚本中常见的 if [ $? -ne 0 ]; 意思

热门文章

  1. 软件测试常用的工具及生命周期篇
  2. android bmob 朋友圈,仿微信朋友圈视频效果 – MVideo
  3. 中国大型钢铁制造商选用 NEXTSENSE 质量检测系统
  4. 我们来看看犀牛建模到底有哪些技巧1(先说切块思想)转载
  5. 《R in action》《R语言实战》源代码_2
  6. 新闻付费,为何困难重重
  7. Mobile Debian on mobile devices
  8. 三星平台fimc驱动详解
  9. 什么是死锁及死锁的必要条件和解决方法
  10. UML图的种类和示例