可重构性设计技术的发展
来源:电子工程专辑 作者: 时间:2003-02-24 19:00
可重构计算理论上是指在任何信息处理系统中,硬件模块能根据变化的数据流或算法进行重新配置或重新设置。但这一表述使用得太泛,几乎变得毫无意义,实际上对可重构性还没有一种得到公认的定义。
因此,在讨论可重构性问题时,最重要的是了解在什么时候会产生这个问题:重构可以发生在设计阶段、运用阶段、两个执行阶段之间或执行过程中。这些时间段的每一个都定义了一种独特的可重构系统类别。
最早的可重构计算系统甚至比数字计算机的出现还早。在数字逻辑电路出现之前,科学与工程计算大都是在可编程模拟计算机上完成的:大量的运算放大器、比较器、乘法器和无源元件通过一块插线板和接插线连接起来。通过这些元件的连接,使用者便可以实现一种网络,该网络的所有节点电压遵从一组微分方程。这样模拟计算机就变成了一种微分方程求解器,并具有可重构性。
随着这个时代的结束,模拟计算机开始与继电器组结合,以后又与数字计算机结合,形成了混合计算时代。这些计算设备可以在执行序列之间进行自我重构,实现了另一类重构性的早期形态。
可重构性真正向灵活流畅迈出的第一步是嵌入式数字计算机的出现。系统特性由RAM中的软件来定义,实现起来非常简单方便。在安装时甚至是工作时,通过改变系统的操作来响应数据改变的过程实际上只是加载不同应用程序的过程。这种做法还可以用于诸如紧密连接的计算机网络,其网络拓扑可适应数据流的改变,甚至计算机也可以根据应用要求的改变来相应改变其指令集。
![]() |
实验证明,在FPGA中实现可重构性可降低硬件尺寸或功耗,并提高性能。通常这两种优点相伴而生,不会单独存在。实际应用中,有几种特定的方法可以实现可重构的这些优点,硬件复用是其中最简单的一种。如果可以通过使用几种不同的非重叠操作模式实现对系统的组织,那么通过对可编程结构进行配置使之运行于一种模式,停止后重新配置使之运行于另一模式,这样可以减少硬件。
以手机的应用为例:在手机进行首次加电时,它进入搜索模式,这时它对相当宽的频谱进行检查以找到基站;在基站得到确认后,手机便进入截然不同的另一种模式,此刻它确立其在蜂窝内的身份和存在;如果手机发送或接收呼叫,它便又进入第三种模式。设置这些模式对于硬件设计工程师的重要意义在于,在每种情况下符号率逻辑(symbol-rate logic)所实现的功能有很大的不同。采用通用的SoC设计,每种模式会拥有大量的逻辑,且在任意时刻常常只有一个逻辑处于运行状态。通过复用某一种可编程结构,三种逻辑的每一种都能在同一结构上实现,并随模式的改变进行切换。
采用这种技术一般可降低系统实现所需的硅面积,但不一定能在性能上有所改进。实际应用中,如果改变可编程逻辑配置所需的时间较长,或所要求的功能不是具体的逻辑结构所能轻易实现的话,将导致速度很低并功耗增加的后果。在很多情况下,重叠硬件功能带来的优势并不能弥补固定逻辑的FPGA芯片面积和功耗变大的劣势。
另一方面,可重构性可以实现结构的简化。通常,如果对特殊的算法和特殊的数据集都能实现逻辑优化,就可以大大减小面积并提升性能。这方面一个最典型的应用例子是音频信号处理应用。音频系统使用FIR滤波器实现诸如均衡等功能,FIR滤波器通常是用卷积运算来实现,其运算过程是:一组不变系数与一组“移动”的输入数据相乘,其积求和,即形成标准的乘法累加操作。这是DSP使用乘法-累加硬件的主要原因。
当然,如果预先知道滤波器的系数,就可以不再用乘法器。可以用单一的组合逻辑实现变量与常数相乘,从而大大降低复杂度,并比乘法器在速度上大大加快。当调节系统声音控制旋钮时将产生一些问题,因为这将改变所有的滤波系数。但如果FIR用FPGA来实现,其结果必须对新的组合逻辑网络进行综合,并实现逻辑重构。这样,用可重构逻辑方法完成的滤波器阵列相比用固定逻辑或在DSP芯片上用软件来实现相同功能而言,前者能大大提升速度并降低功耗。
此外,通过一些简单的修改同样可以带来节省,明显的例子是稀疏矩阵(sparse matrix)的相乘或倒置。如果这一操作非常关键,需要首先考虑采用并行硬件方案来解决的话,那么通过只实现必需的数据通道,并设法复用最少量的复杂逻辑单元,就可以节省大量硬件。运行时间的可重构性使系统省去了不必要的特殊数据集通道,增加了执行循环的数量,同时在数据和约束条件允许的情况下,实现了硬件和中间结果的复用。
经验显示,如果能够对运行中的特殊数据集编译某个逻辑配置,就可以降低功耗并大大提高性能。但这种系统的实现需要有深思熟虑的预见性,并采用完全不同的系统设计方法和大量的运行时间控制软件。
尽管其实现的效果不错,但市场上绝大多数的可重构硬件采用的是完全不同的设计方式:在付运前或在初始化时进行硬件的配置来提供不同功能。
在某些需要处理设计变更的项目中,这常常是通过采用普通的FPGA来完成的。在当今设计周期加快、复杂性不断加大以及不确切的规范条件下,许多应用经常很难保证其初始设计完全正确,因此,能在最后时刻甚至在随后的产品现场应用中对设计进行修改具有很大的意义。而采用FPGA能实现这样的功能,尽管采用FPGA会带来成本、功耗和速度上的影响,但在某些应用中的关键逻辑部分还是必须采用FPGA。
[page]
这种思想最盛行的时候是在.com泡沫的后期,当时的网络公司急于用相比制造ASIC更短的时间向市场推出新功能。这些公司推出的系统大部分是由FPGA实现,这样,可重构性便在理论上缩短了产品面市时间。
可重构硬件的实现方法多种多样。但可以把它们具体归纳为几类:将功能转移由软件实现;由FPGA实现要求的功能;创建专用于执行阶段的可重构性逻辑结构;可重构性在传统SoC方法中的应用等。
将功能由软件实现或许是可重构性的最常见方法。它可以显著减少硬件的使用,可在某种程度上实现运行时间的优化,并可实现设计方案的灵活改变或特性的延伸。但在给定功能条件下,这种方法可能使功耗增加,成为无法实用的低性能方案。
但是,这也许无关紧要。在顾及性能优势的前提下,精明的设计工程师会把不受速度要求约束的所有软件功能都由硬件实现。嵌入式CPU内核及DSP内核的快速发展,促进了软件的发展,有时指令集架构上的小小变化会带来处理器性能的巨大提升。ARC Cores和Tensilica等CPU IP供应商已围绕这种可扩展性的思想建立了新的架构和工具集。指令集和数据通道设计的调整对应用产生了很大影响,这可由最近的EEMBC基准测试结果来说明。针对电信应用的基准测试由自动校正、卷积、FFT、维特比和其它任务组成,ARC和Tensilica公司的每个内核都可以通过处理器优化使性能提高约40倍。
可重构性的影响不只局限于通用CPU。正在开发面向蜂窝基站市场DSP核的ADI公司指出,尽管DSP内核普遍用于处理符号速率,以便解调输入数据,但对于诸如RAKE滤波等芯片速率功能来说,可编程DSP则难以胜任,一般采用固定的硬件来实现。不过,在SHARQ指令集中加入少量的多重MAC指令,可使这些算法的性能得到提高,这样厂商就可以把芯片速率处理引入到可编程DSP,向扩展那些基于软件的功能迈出了一大步,并大大增加了芯片速率处理的灵活性。
![]() |
上世纪90年代中期,可重构性的问题引起了Xilinx公司的关注,并开发了专门解决这些问题的FPGA系列产品。这些器件拥有可深度配置的存储器、在工作时进行局部重构的能力以及很多其它特性。但所有这些需要占用大量的硅面积,因此,该公司认为该产品没有市场而放弃推广。但是,这还是产生了一些积极意义,许多重要的功能最终应用在该公司以后几代器件中,包括 Virtex-II系列。
尽管期望的目标没能实现,但这使得Xilinx的一些工程师看到了潜在商机。一个从事这方面研究的小组离开该公司,组建了QuickSilver Technology公司,旨在开发商用可重构FPGA。但在遭遇到FPGA固有的局限性问题后,该公司发现重新开始设计反而比在以前的基础上更快。为此,公司开发了一种全新可编程逻辑结构,据称可避免SRAM可编程互连所存在的大量系统开销问题。QuickSilver公司对这一突破性成果保持了低调,但它已虎视眈眈地瞄准了蜂窝通信市场,声称在功耗上有很大改进,并且硅片面积占用更小,在可复用性方面也有很多优势。而竞争厂商认为这种方法由于达不到所要求的功率和速度,缺乏一定的吸引力。
与此同时,大学和业界的研究人员正在考虑采用折衷办法实现可重构硬件。他们指出即使把一个系统划分成多个不重叠模式和共享硬件,但还是有许多关键硬件模块将是所有模式可共用的。通过增大开销,用可编程逻辑来实现这些功能没有太大意义。相反,那些最受益于可重构技术的功能却非常少而且彼此很孤立。
为此,他们得出结论,最好的方法或许是采用SoC,利用先进的处理器和DSP内核把尽量多的功能转移到软件中,然后只在最能发挥可重构性优点的局部模块采用可重构配置。
这种方法可使SoC设计工程师把可配置逻辑结构简单地当成所用工具包中的又一个硬IP模块来使用。这类模块位
上一篇:不同贴片机间贴片程序的快速转换
下一篇:丝印机的保养与维修