可重构性设计技术的发展

可重构计算理论上是指在任何信息处理系统中,硬件模块能根据变化的数据流或算法进行重新配置或重新设置。但这一表述使用得太泛,几乎变得毫无意义,实际上对可重构性还没有一种得到公认的定义。

  因此,在讨论可重构性问题时,最重要的是了解在什么时候会产生这个问题:重构可以发生在设计阶段、运用阶段、两个执行阶段之间或执行过程中。这些时间段的每一个都定义了一种独特的可重构系统类别。

  最早的可重构计算系统甚至比数字计算机的出现还早。在数字逻辑电路出现之前,科学与工程计算大都是在可编程模拟计算机上完成的:大量的运算放大器、比较器、乘法器和无源元件通过一块插线板和接插线连接起来。通过这些元件的连接,使用者便可以实现一种网络,该网络的所有节点电压遵从一组微分方程。这样模拟计算机就变成了一种微分方程求解器,并具有可重构性。

  随着这个时代的结束,模拟计算机开始与继电器组结合,以后又与数字计算机结合,形成了混合计算时代。这些计算设备可以在执行序列之间进行自我重构,实现了另一类重构性的早期形态。

  可重构性真正向灵活流畅迈出的第一步是嵌入式数字计算机的出现。系统特性由ram中的软件来定义,实现起来非常简单方便。在安装时甚至是工作时,通过改变系统的操作来响应数据改变的过程实际上只是加载不同应用程序的过程。这种做法还可以用于诸如紧密连接的计算机网络,其网络拓扑可适应数据流的改变,甚至计算机也可以根据应用要求的改变来相应改变其指令集。

  在基于sram的大型fpga出现以后,才第一次对目前大多数人所谈论的可重构计算展开研究。通过对器件所拥有的逻辑单元与互连结构进行改变,可以创建出适合芯片要求的任意逻辑网表。研究人员很快选定这种器件(即fpga),并开始实验时间配置的可重构性:创建用于特殊算法的硬线连接数字网络。

  实验证明,在fpga中实现可重构性可降低硬件尺寸或功耗,并提高性能。通常这两种优点相伴而生,不会单独存在。实际应用中,有几种特定的方法可以实现可重构的这些优点,硬件复用是其中最简单的一种。如果可以通过使用几种不同的非重叠操作模式实现对系统的组织,那么通过对可编程结构进行配置使之运行于一种模式,停止后重新配置使之运行于另一模式,这样可以减少硬件。

  以手机的应用为例:在手机进行首次加电时,它进入搜索模式,这时它对相当宽的频谱进行检查以找到基站;在基站得到确认后,手机便进入截然不同的另一种模式,此刻它确立其在蜂窝内的身份和存在;如果手机发送或接收呼叫,它便又进入第三种模式。设置这些模式对于硬件设计工程师的重要意义在于,在每种情况下符号率逻辑(symbol-rate logic)所实现的功能有很大的不同。采用通用的soc设计,每种模式会拥有大量的逻辑,且在任意时刻常常只有一个逻辑处于运行状态。通过复用某一种可编程结构,三种逻辑的每一种都能在同一结构上实现,并随模式的改变进行切换。

  采用这种技术一般可降低系统实现所需的硅面积,但不一定能在性能上有所改进。实际应用中,如果改变可编程逻辑配置所需的时间较长,或所要求的功能不是具体的逻辑结构所能轻易实现的话,将导致速度很低并功耗增加的后果。在很多情况下,重叠硬件功能带来的优势并不能弥补固定逻辑的fpga芯片面积和功耗变大的劣势。

  另一方面,可重构性可以实现结构的简化。通常,如果对特殊的算法和特殊的数据集都能实现逻辑优化,就可以大大减小面积并提升性能。这方面一个最典型的应用例子是音频信号处理应用。音频系统使用fir滤波器实现诸如均衡等功能,fir滤波器通常是用卷积运算来实现,其运算过程是:一组不变系数与一组“移动”的输入数据相乘,其积求和,即形成标准的乘法累加操作。这是dsp使用乘法-累加硬件的主要原因。

  当然,如果预先知道滤波器的系数,就可以不再用乘法器。可以用单一的组合逻辑实现变量与常数相乘,从而大大降低复杂度,并比乘法器在速度上大大加快。当调节系统声音控制旋钮时将产生一些问题,因为这将改变所有的滤波系数。但如果fir用fpga

  • 可重构性设计技术的发展已关闭评论
    A+
发布日期:2019年07月02日  所属分类:参考设计