首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

一种降低DSP芯片总线功耗的设计方案(2)

一种降低DSP芯片总线功耗的设计方案(2)

4 最小海明距离编码算法
(1)局部化原理
      局部化原理分为时间局部性原理和空间局部性原理。我们根据计算机的空间局部性原理,也就是说由于在相对较短的一段时间内,处理器会重复访问相对集中的一部分数据,因此在总线上传输的数据有这样一个特点:总线上传输的地址具有一定的连续性,也就是说,在一段时间内,总线上的数据具有连续性(如0000, 0001, 0010, 0011, .) 。随着多媒体技术和DSP技术的广泛应用,现代高速处理器更是具有这样的特点,在大部分数字处理算法中,需要进行大量的乘加运算,通常这些数据都是存放在连续地址的存储器内,对此加以利用,就可以找到一些方法来降低总线的功耗。
(2) 算法目标
      通过一个合理的编码方案,尽可能地减少当有相同间隔的连续地址在总线上传输时总线上的翻转,从而达到降低总线功耗的目的。
(3) 编码算法数学模型
      由于在前面已经确定了算法的目的,因此建立了一个取得编码的数学模型。算法的中心思想在于:将对于连续地址(更广泛地说是指固定步长)的两个码字的编码采取变化,使得在总线上传输的两个相邻的数据之间的海明距离变小,从而减少总线的翻转次数。因此,可以将对于任意间隔固定步长两个码字的海明距离降到最低,即为1。
      定义一个无向图G,定义总线宽度是N,总线上可能出现的所有的数据则有2N个,将其命名为M ( 1 ) , M ( 2 ) ,M(2N )作为图的2N 个节点,当且仅当两个节点M ( s)和M ( t(0 < s, t < 2N + 1)所对应的编码的海明距离为1时,存在一条无向边连接这两个节点,这样就构成了一个无向图,因此,我们的目标就是在这个无向图中找到一个Hamilton圈,使得所有连续地址的编码顺次在这条轨上出现,从而当总线上顺次出现连续地址时,总线翻转减少。
      也就是说,我们需要在一个有2个节点的无向图中找到一个Hamilton圈,然后将地址依次对应到每个节点上。在一个有n个节点的无向图中搜索一个Hamilton圈本来是一个NP问题但是,由于这里n = 2N ,并且两个节点之间的连接关系有一定的特殊性,因此,在这样一个特定条件下在O ( n)的复杂度内完全可以实现。
5 算法及其证明
(1)构造算法
①首先构造一个地址为两位的排列,如图3所示。两位地址构造,圆圈代表编码,只有海明距离为1的点之间才有连线。
②当n = k时成立,利用n = k的编码序列作为基础,构造n = k + 1的编码序列。
注意:由于当我们构造一个n = k + 1情况下的编码时,是利用一个已经完成的n = k的编码,因此当选用不同的n = k的编码,所得到的n = k + 1的编码也是不同的。

(2)证明。在这里,采用归纳的方法来证明算法的正确性
①在N = 2的情况下,可以很容易找到一个解(图4) 。
②当N = K有解时,由于K≥2,因此,在N = K的Hamilton圈中至少有一条边可以满足扩展时的需要。由构造的方法可知,可以将N = K + 1情况下所有的点包含,因此,这样构造出的Hamilton圈是符合我们要求的。
③同时,我们可以通过在扩展时选用不同的边,可以构造出所有满足要求的Hamilton圈。可见,在总线编码这种特殊的模型下,在图中搜索到一条Hamilton圈是可行的。


6 设计的实现及硬件译码器的选择
(1)设计的实现方法
      在具体的实现上,我们采用将编码算法固化的方法来实现这一方案。在DSP芯片的地址产生器的输出端增加一个译码器,通过译码器对程序产生的地址进行一次映射,由于这种映射是一一对应的映射,因此对于程序员编写程序没有任何影响;存储器的设计人员也不需要考虑译码器的问题,只需要采用Bus-Invert Code译码器代替通常采用的译码器。
      这样就可以兼顾两者的优点:当总线上传输的地址是连续地址时,地址译码器输出的地址码是一个海明距离很小的序列,可以减少总线的翻转次数;当总线上传输的地址不是连续地址时,也就是说是一个较为随机的序列,如果两个数据之间的海明距离比较大时,Bus-Invert Code电路就可以发挥作用,使海明距离大于总线宽度一半的编码序列,从而降低总线传输的功耗。
(2)举例
      以一个0~16的序列在总线上传输为例,左边一列是常规方法的译码结果,右边一列为采用新方法的结果。

      通过本例可以很明显地看出当总线上的数据出现连续序列时,可以大大降低总线上的翻转次数,从而降低总线功耗。
7 实验结果
      首先取得总线模型翻转时在Hspice上的仿真结果。
      图5中显示的是总线在翻转时电流的变化图,我们可以清晰地看出当总线翻转时电流的变化非常大,而图6则显示的是总线在翻转时电压的变化图,通过这两幅图可以得出结论,总线翻转时的功耗远大于保持原状态所需的功耗,因此通过减少翻转的方法降低总线功耗是一个有效的途径。通过在公司的ls0201DSP芯片上的仿真测试,得到如表1的结果。
      从表1可以看出,对于新的设计方案降低总线的功耗是有效的。其中,编码算法对于地址译码器的数据线的优化最为突出,这是由于DSP芯片自身的特点造成的。DSP处理器执行的程序中需要执行大量的乘加运算,需要独立的地址生成器生成大量的连续地址,从而极利于编码算法对其优化。因此,可以说新的设计方案对于全面降低DSP芯片内总线的功耗是有效的。
表1 模拟仿真结果


8 结论
      DSP芯片,需要综合考虑总线上传输指令地址和数据两种情况,新方案兼顾了两种编码器的优点。针对超哈佛总线结构的DSP芯片的特点,利用编码算法对指令地址的传输情况进行优化,并用硬件上Bus2Invert Code对数据传输情况进行改良。试验结果证明新方案对于降低超哈佛总线结构的DSP芯片总线功耗是十分有效的;而在既传输数据又传输指令的普林斯顿总线上,新方案在传输指令和传输数据两种情况下都可以降低总线功耗,达到了试验的目的,证明通过多种编码器来降低DSM总线上的功耗是一种可行的办法。
继承事业,薪火相传
返回列表