提出一种可进化IP核的设计和实现方法。这种IP核采用进化硬件的设计思想,将遗传算法运用于硬件电路的设计中,使电路能根据当前的环境自动进行内部电路的时化,从而生成最有效的电路,并能在普通的FPGA器件上实现。可进化IP核以HDL源泉代码的形式表示,与普通IP核的复用方式相同,可被综合到不同的目标可重构器件中去,大大减少了复杂系统的设计时间,提高了设计的利用率,是可进化硬件一个颇具潜力的发展方向。
随着信息技术的飞速发展,计算机系统面临的问题越来越复杂,如何保证复杂系统的可靠性成为一个不容忽视的问题。可进化硬件给我们提供了一个很好的解决方案。可进化硬件EHW(Evolvable Hardware)是将进化算法和可编程逻辑元件融合在一起而产生的一种新的硬件研究流派。当所使用的环境发生变化时,或被放置于未知的环境中时,这种硬件会自动地改变内部结构,使之经常处于最适合状态,快速高效地完成规定的任务。
可编程门阵列(FPGA)以其独有的优点为国外多数研究人员用作硬件进化平台。EHW利用FPGA的在线可编程技术(ISP)及动态重构技术,将FPGA的配置信息作为染色体,通过遗传算法(GA)对其进行反复的适应度计算,交叉和变异,最终进化出符号环境要求的个体(即电路配置),从而使电路适合环境的变化。
与此同时,随着FPGA技术的发展,芯片的性能越来越强、规模越来越大、开发的周期越来越长,使得芯片设计业正面临一系列新的问题:设计质量难以控制,设计成本也越来越高。IP(Intelligence Property)技术解决了当今芯片设计业所面临的难题。IP是指可用来生成ASIC和PLD的逻辑功能块,又称IP核(IP Core)或虚拟器件(VC)。设计者可以重复使用已经设计并经过验证的IP核,从而专注于整个系统的设计,提高设计的效率和正确性,降低成本。目前数字IP已得到了充分的发展,可以很方便地购买到IP核并整合到SoC的设计中。
因此,可以考虑将进化硬件的思想应用于IP核的设计中,设计一种可进化的IP核,根据当前的环境进化出相应的电路,并能够在普通的可重构器件中实现。
1 什么是可进化IP核
从进化硬件的经验可知,系统通常只有一部分是适应性的(可进化的),另一部分可以通过传统的不可变的电路来实现。同样,使用IP核构造的系统也是有些IP核是可进化的,有些IP核是不可变的。可进化的那些IP核称为可进化组件或可进化IP核。
可进化IP核像普通的IP核一样被存储在组件库中,在被下载并放在一个可重构器件中后,它们将自动地进化它们的内部电路。当不再需要适应性行为时,可以从可重构器件中删除可进化IP核。可进化IP核和普通IP核的复用方式相同。
2 可进化IP核的一般体系结构
如图1所示,可进化IP核由可重构电路,基因单元和控制器构成(本文中可重构电路是指可进化IP核内的一个部分;可重构器件是指整个可重构平台,如FPGA)。这里要强调的是,基因单元不包含适应度计算,它只实现基因的操作、染色体存储和适应度存储。适应度的计算和环境由其它的核来提供。基因单元生成一些配置并上载到可重构电路中去,环境对这些配置进行评估,并将适应度值发送给IP核。可进化IP核实际上是一个由环境控制的电路生成器。
环境(由其它核提出)和可进化IP核之间的通信如下:首先IP核被初始化(生成初始化种群),然后进入如下无限循环——当环境发生变化后,环境计算当前电路配置的适应度,并判断电路是否适应环境。如果染色体存储器中的配置不可用,则向IP核发出控制信息,IP核开始进化。即基因单元把硬件配置信息作为染色体,根据适应度对其进行交叉、变异等遗传操作,生成一个新的种群。环境对新种群进行适应度计算,并判断是否有满足当前环境的个体(配置)。若没有,向IP核发控制信息,遗传单元继续对电路配置进行进化,直至有满足当前环境的配置为止;若有,则将适应度值发给IP核,IP核用这个新生成的最优配置来重配置可重构电路,并在染色体存储器中保存当前最优配置及其适应度值,等待来自环境的下一个请求。
环境总是要求下载当前最优的进化电路,因此,IP核必须保存目前为止最优的配置,并且在需要的时候提供出去。可进化IP核总是屏蔽重构过程,因此它对于外部环境来说是不可见的。
对于一些特殊的应用,必须为它们开发专用的可进化IP核,因为反映应用的要求基因单元和可重构电路的体系结构将使进化过程优于一个随机的搜索。由于适应度计算是在IP核外进行的,因此IP核原则上支持动态适应度函数和无限的进化。可进化IP核可以用软件实现。
3 可进化IP核的实现
3.1 实现中的问题
可复用的IP核通常有软核、固核和硬核三种。本文讨论的是软核。本文的目标是,设计和实现以HDL源代码(例如,VHDL)表示的可进化IP核。其优点是IP核的表示独立于平台,这样它们就可以在各种不同的目标结构中运行。要解决的主要问题是,可进化的IP核的内部可重构电路的自动重构(因为它们是可进化的)。
当一个可进化IP核从一个组件库中被下载到可重构器件的一个指定位置时,它的内部可重构电路必须进行重构。这就意味着这个可重构器件中的一些可编程块必须能配置这个可重构器件的其它内部可编程块。另外,这个可进化IP核(它的基因单元)能被放置于这个可编程阵列(即可重构器件)的任何位置,也就是说,这个可重构器件中必须支持内部重构。
FPGA以其动态可重构的优点,无疑是可进化IP核的最佳实现平台。然而,通常的FPGA并不支持内部重构,而只允许通过一个特殊的配置接口外部重构(如图2)。目前,只存在一种支持内部重构的平台,就是单元阵列,但这种芯片目前还相当少。因此,为了在普通FPGA器件实现可进化IP核,使之能在实际应用中发挥作用,必须采用其它的一些方法。硬件虚拟化是基于FPGA的系统常用的一种设计技术。从这个思想出发,本文采用了一个被称为虚拟可重构电路的技术来实现可进化硬件中的内部可重构电路。但文中对设计虚拟可重构电路的概念进行了扩展。
3.2 虚拟可重构电路
一些FPGA芯片支持部分重构,也就是允许可重构系统的一部分重构,而不影响其余部分的运行。部分重构的优点在于,其重构所花的时间比全部重构更少。本文以支持部分重构的Xilinx Virtex FPGA为例,来说明虚拟可重构电路的实现。IP核可以动态地下载到FPGA或从FPGA删除。所有的操作都通过Virtex重构端口和Jbits接口来完成。当一个可进化IP核被下载时,它的重构位串在指定位置构靠下列单元;虚拟可重构电路、基因单元和控制器。
图2表明,虚拟可重构电路实际上是一种在普通FPGA上实现的新的可重构电路。本例中由八个可编程元素构成,由Virtex单元(slice)实现。Virtex单元实现新的可编程元素阵列、新的布线电路和新的配置存储器。虚拟电路能内部重构,但如果有其它新的配置存储器与之连接,也可从FPGA的I/O引脚配置。
这种方法的优点在于:可根据具体的应用需要准确地设计可编程元素阵列、布线电路和配置存储器。虚拟可重构电路的重构方式和粒度能准确地反映具体应用的需要。通过虚拟可重构电路,很容易把领域知识插入到基因单元和可重构电路的体系结构中,从而获得电路软件模型的精确实现。
图3给出了一个虚拟可编程元素的例子。这个虚拟可重构电路由8个这样的元素构成,有4个输入和2个输出。这些虚拟可编程元素称为可重配置功能块CFB(Configurable Functional Blocks)。每个CFB对应一个配置位串(这里的位串为6位),其中两个配置位决定了CFB的功能,其它四位定义了输入的连接信息。布线电路由多路器组成,它们由配置存储器中的位串控制。配置存储器由Virtex单元构成,一个Virtex单元包含两个触发器,用于存储配置位串中的两位。配置存储器的所有位都连到多路器,多路器控制布线和CFB中功能的选择。
虚拟可重构电路中CFB的数量由具体的应用决定。虚拟可重构电路用结构级VHDL语言来描述,但是一些基本的电路(例如“MAX”电路)用行为级来描述。虚拟可重构能在不同的目标器件下综合,目标器件并不需要支持部分重构。
3.3 基因单元和控制器
基因单元和控制器的实现通常有两种选择:采用普通微处理器实现,或者设计一个专用的电路来实现。
专用的电路是指一种进化算法的硬件实现,目前在可进化硬件领域已经开发了很多这样的实现。这种算法的优点是电路的进化速度快,适合于复杂的应用。
采用微处理器实现时,可以购买或免费获得现成的微处理器软核,如Xilinx提供的MicroBlaze和PicoBlaze微控制器IP核,Altera生产Nios核,等等。此外,如果给出的目标可重构器件中有片上处理器,可以使用片上处理器,Xilinx Virtex II Pro XC2VP50芯片包含四个PowerPC处理器。处理器必须通过编程来执行程序,它们能和核周围的环境进行通信并完成对染色体的基因操作。此外,处理器还负责内部虚拟可重构电路的重构。
4 结论
文中定义了数字系统设计的一个新的抽象级别,并将一些组件的方法引入可进化硬件的设计。为了实现可进化IP核,使用一种虚拟可重构电路。这种方法在门的数量方面代价稍大,但却能大大加快进化硬件的速度。
可进化IP核的设计目的主要是以合理的代价实现适应性和高性能实时系统,最常见的如图像压缩。本文提出的核的结构和接口都只是最基本的,实际应用中还可进行扩充。例如,还可以给核扩充一个读配置的端口,这个对于某些应用来说是必需的。或者在可进化IP核中包含两个虚拟可重构电路RC1和RC2。RC1实现当前最优的进化电路。电路不断进化在RC2中完成。如果RC2中进化出更好的电路,就把它的配置送入RC1,然后RC1以一系列数字电路的形式表现出对变化的环境的最佳的响应。
与以往的方法相比,本文提出的方法具有更强的适应性和可移植性。可进化IP核以HDL源代码的形式表示,易于重用和修改。此外,进化的配置位串也可以作为一种变化的IP核在其它应用中被重用。可进化IP核缩短了电路设计的时间,提高了设计的利用率,促进可进化硬件向实用化的发展。
责任编辑:gt
全部0条评论
快来发表一下你的评论吧 !