手机网站设计尺寸,电商网站开发视频,服装设计方案,宁波网站推广报价相关阅读
数字IC前端https://blog.csdn.net/weixin_45791458/category_12173698.html?spm1001.2014.3001.5482 引言 脉动结构#xff08;也称为脉动阵列#xff09;表示一种有节奏地计算并通过系统传输数据的处理单元(PEs)网络。这些处理单元有规律地泵入泵出数据以保持规则…相关阅读
数字IC前端https://blog.csdn.net/weixin_45791458/category_12173698.html?spm1001.2014.3001.5482 引言 脉动结构也称为脉动阵列表示一种有节奏地计算并通过系统传输数据的处理单元(PEs)网络。这些处理单元有规律地泵入泵出数据以保持规则的数据流。因此脉动阵列的特征是模块化和规则化这对于VLSI设计来说是一个重要的性质。脉动阵列可以作为与主机配合的协处理器从主机接收数据进行计算并将最终结果返回主机。这个操作类似心脏的血液流动因此被称为“脉动”。 典型情况下脉动阵列的所有处理单元是相同的且全流水的即PE包含寄存器等延时单元通常只包含局部互联。然而为了增加脉动阵列的实用性一些设计也存在放宽。这些放宽包括不仅使用局部互连还使用邻近接近但不是最近的互连使用数据广播操作以及在系统中使用不同的处理单元特别是在边界处。通过这些放宽措施可以为数字信号处理(DSP)应用设计一系列模块化、规则和高效的数据驱动阵列架构。 本文以串行FIR滤波器为例介绍了脉动阵列设计方法学其中可以使用线性映射或投影技术为任何给定的规则迭代算法设计多种流线架构。 脉动阵列设计方法学 流线架构是通过在规则依赖图上使用线性映射技术来设计的。依赖图中的边表示前置约束。一个依赖图(DG)如果在任何节点中某个方向上的边的存在意味着在依赖图中的所有节点在同一方向上都有相应的边那么该依赖图被称为规则依赖图。 作为一个例子考虑如下所示的3抽头FIR滤波器的依赖图如图1所示。 图1 FIR滤波器的依赖图空间表示 这个依赖图有3个基本的边用表示输入用向上的边用向量表示为(0, 1)系数用向右的边用向量表示为(1, 0)输出用下右下角移动的边用向量表示为(1, -1)。由于依赖图中的所有节点都包含这3种边因此该依赖图是规则的。 该依赖图对应于一个空间表示因为其中没有为任何计算分配时间不。映射技术将空间表示转换为空间-时间表示在空间-时间表示中每个节点被映射到某个处理单元并且被调度到某个时间步。 脉动阵列设计方法学将一个N维的依赖图映射到一个低维的脉动阵列。在本文中只考虑一级映射即将一个N维的依赖图映射到一个(N-1)维的脉动阵列对于FIR滤波器而言是将2维依赖图映射到1维脉动阵列。 下面定义脉动阵列设计中的基本向量
投影向量也称迭代向量如果两个节点间的距离为投影向量的整数倍则他们由同一个处理单元计算。处理器空间向量任何坐标为的节点由处理单元计算。调度向量任何坐标为的节点在时间步计算。硬件利用率这是因为同一个处理单元的两次计算相隔。 对于给定的问题可以通过选择不同的投影向量、处理器空间向量和调度向量来设计多种脉动阵列但这些向量必须满足以下推导出的两个可行性约束。 1、处理器空间向量和投影向量必须彼此正交内积为0。如果节点A和B间的距离等于投影向量的整数倍即则这两个节点由同一个处理单元计算所以即。 2、如果节点A和B被映射到同一个处理器那么其不能同时计算所以即。 另外将空间表示转换为空间-时间表示时引入处理器轴时间步轴。 将依赖图映射到脉动阵列时每个依赖图中的边对应脉动阵列中的一个延时边方向延时值为。 设计4输入移动、权重反向移动、输出保持 可以很容易地验证这些向量满足提到的两个可行性约束并且可得到
任何坐标为的节点由处理单元计算。任何坐标为的节点在时间步计算。硬件利用率为。 在空间-时间表示中处理器轴对应空间表示中的轴时间步轴对应空间表示中的轴。 将依赖图映射到脉动阵列时边映射的情况如表1所示。 表1 设计1的边映射情况
方向延迟输入: (0, -1)(1, 1)(1, -1)-11权重: (1, 0)11输出: (1, -1)02 表1中需要注意的是输入边选择用(0, -1)向量表示而不是(0, 1)向量表示这是为了避免出现负的延迟这种向量反转在输入边上不存在优先级约束时是可行的。 如数字IC前端学习笔记脉动阵列的设计方法学二-CSDN博客一文所说不能将处理器轴上的每一个值都对应一个单独的处理单元在输出后应该还能计算其他输出。根据不同的处理单元复用策略有以下三种情况。 情况1 图2给出了设计4的一种空间-时间表示。其中红线表示处于同一时间步的计算而蓝线表示处于同一处理单元的计算。 图2 情况1的FIR滤波器的空间-时间表示 可以看出总共需要使用5个在时间步0输出后继续在时间步1计算和这本应该是的任务时间步3计算和并最终在时间步5输出对于其他情况也是如此。 对于权重的权重输出连接到的权重输入。 对于输入由于每个输入只会被3个使用因此在某个在进行任务切换时不会使用其他传来的输入而是由输入端口获取输入例如对于其在输出后的下一个时间步不会使用传递来的输入而是从输入端口获得输入。 最后需要注意的是的累加计算是每隔2个或1个时间步进行的对于单个任务时是2个时间步对于任务切换时是1个时间步这种情况下硬件利用率应略高于前面分析的1/2。整体的脉动阵列每个时间步都会有一个有效结果输出。 图3给出了情况1的脉动阵列框图其中D代表有延时单元如寄存器的边2D表示两倍延迟。 图3 情况1的脉动阵列框图 情况1的具体实现如图4所示其中标出了一种权重的可能情况可以发现有些权重之间存在0数据比如和这是因为在单个任务中累加计算是每隔2个时间步进行而有些权重之间则是连续的比如和这是因为在任务切换时的计算是隔1个时间步进行而任务切换发生在的相关运算完成后。 图4 情况1的具体实现 情况1中需要设计为能在2个时间步累加和1个时间步累加之间切换这可能会导致更加复杂如果不想如此该怎么做很简单只要每个在任务切换时多等待一个时间步即可如情况2所示。 情况2 图5给出了设计4的一种空间-时间表示。其中红线表示处于同一时间步的计算而蓝线表示处于同一处理单元的计算。 图5 情况2的FIR滤波器的空间-时间表示 可以看出与情况1相比不同之处在于总共需要6个在时间步0输出后继续在时间步2计算和这本应该是的任务,时间步4计算和并最终在时间步6输出对于其他情况也是如此。 对于权重的权重输出连接到的权重输入。 对于输入由于每个输入只会被3个使用因此在某个在进行任务切换时不会使用其他传来的输入而是由输入端口获取输入例如对于其在输出后的2个时间步时不会使用传递来的输入而是从输入端口获得输入。 最后需要注意的是的累加计算是每隔2个时间步进行的这种情况下硬件利用率为1/2。整体的脉动阵列每个时间步都会有一个有效结果输出。 图6给出了情况2的脉动阵列框图其中D代表有延时单元如寄存器的边2D表示两倍延迟。 图6 情况2的脉动阵列框图 情况2的具体实现如图7所示其中标出了一种权重的可能情况可以发现权重之间存在0数据这是因为的累加计算是每隔2个时间步进行的。 图7 情况2的具体实现 情况1和情况2不仅使用了5个和6个还需要输入序列从不同的端口进入有没有什么情况能使设计4与之前的设计1、2、3那样只使用3个且无需多个输入端口呢情况3就展示了这种情况。 情况3 图8展示了情况3的空间-时间表示其中由完成的任务完成的任务以此类推。可以看出其中并没有用红线表示处于同一时间步的计算这是因为由于此时只有3个在时间步-1时不能开始的任务因为它需要在时间步0先完成的任务在时间步0时不能开始的任务因为它正在完成的任务。不能用时间步轴代表所有在同一时间步的计算需要更为巧妙的计算安排。 图8 情况3的FIR滤波器的空间-时间表示 根据表1输入由进入进而传递给最后传递给而权重由进入进而传递给最后传递给。由于输入在间的延迟为D某个输入在3个中的3次计算必须在连续的3个时间步进行且由于输出的累加计算是每隔2个时间步进行的有效的输入和权重每隔2个时间步进入。 综上所述给出了图9所示的FIR滤波器的空间-时间表示其中用红色标注出了每个计算的时间步。 图9 情况3的FIR滤波器的空间-时间表示标注时间步 可以看出与情况1和情况2相比不同之处在于只需要3个在时间步2输出后继续在时间步4计算和这本应该是的任务,时间步6计算和并最终在时间步8输出对于其他情况也是如此。 对于权重的权重输出连接到的权重输入且反馈回路上需要有一个延时边3D这么做的理由可以从图11中找到。 最后需要注意的是的累加计算是每隔2个时间步进行的这种情况下硬件利用率为1/2。整体的脉动阵列并不是每个时间步都会有一个有效结果输出。 图10给出了情况3的脉动阵列框图其中D代表有延时单元如寄存器的边3D表示两倍延迟。 图10 情况3的脉动阵列框图 情况3的具体实现如图11所示其中标出了一种权重的可能情况可以发现权重之间存在0数据这是因为的累加计算是每隔2个时间步进行的。 图11 情况3的具体实现