一种配置成在硬件中实施完整的进化算法的不受约束的可配置的硬件逻辑装置,该配置的硬件逻辑装置具有:(a)产生个体的初始总体的总体产生装置;(b)对个体的初始总体实施适应性测试的适应性评估装置;(c)基于适应性测试的结果选择初始总体的个体的选择器装置;(d)从所选择的个体中繁殖个体进一步的总体的繁殖装置;(f)进一步设置成从个体的进一步总体中提供单个优先选择的个体的适应性评估装置。以及本发明专利技术还提供了实施上述装置的方法。(*该技术在2022年保护过期,可自由使用*)
【技术实现步骤摘要】
遗传程序设计(GP)系统一般以在通用计算机上运行的程序实现。观察表明,随着问题变得更加棘手,传统计算机的性能得到了极大地增强,从而进一步刺激了这项工作的发展。尽管人们一直不断地提高现代的CPU的性能,但是仍然使用多个处理器以利用GP可以并行化的事实。通过在硬件中直接实施GP系统,目的是足够大地提高性能因素以使它能够处理更加棘手的问题。本专利技术说明了如何使用硬件编译技术在硬件中实施GP系统。首先描述了硬件和硬件编译语言。接着一般性地描述了GP系统并讨论了为成功地将GP装配到场可编程的门阵列(FPGA)中必须进行的设计决策。这之后选择某些实例性问题以练习实施。接着给出运行该系统的结果和与常规的实施方式的比较。下面简要一般性地概述FPGA。这之后描述硬件编译系统的高级语言。在此并不准备全面地描述该工具,而是仅描述最重要的特征,特别是哪些影响后面的设计决策的特征。这些介绍希望使哪些很少或没有FPGA实践经验的人更容易地理解后面的某些讨论。更全面的数据文件可能位于各个制造商的站点上。FPGA是一类可编程的硬件装置,包括可配置的逻辑块(CLB)的阵列和可配置的互连。FPGA的一般模型在附附图说明图1中示出。每个CLB包括两个函数发生器(F&G)和两个触发器(FF)。内部输送和控制逻辑(H)连接函数发生器和触发器。CLB的一般模型在附图2中示出。这些装置的结构通过装入配置位模式实现。在作为在此所使用的实例性装置的Xlinx XCV4000 FPGA中,可将位模式编程在芯片上的静态RAM中。在每次给芯片重新配置电源时都必须完成这些。使用对配置信息进行高级描述的软件工具产生配置位模式。Handel-C是一种设计成将以类C语言写成的程序编译为同步硬件的硬件转换系统的高级语言。Handel-C的输出是可用于形成FPGA的配置数据的文件。Celoxica创作了Handel-C。Handel-C具有类似C的语法。这就使得该工具受到没有硬件经验的软件工程师欢迎,因为他们能够快速地将软件算法转换为硬件,而不必详细学习关于FPGA或VHDL。VHDL是标准硬件设计语言。它代表VHSIC硬件设计语言。VHSIC本身的意思是非常高速的集成电路(VeryHigh Speed Integrated Circuit)。使用硬件的一个优点是能够直接利用并行性。这与在使用时间分片实现的单个的CPU计算机上可实施的仿真的软件并行性相反。Handel-C具有支持代码并行性的其它结构。如下的块par{a=10;b=20;}会产生在单个时钟周期中将值10赋值给a和将20赋值给b的硬件。通过使用功能阵列或者通过产生直接插入代码(inline code),可以产生并行执行的较大的功能性块。使用如下的结构可以复制该硬件,这种结构会产生10个并行赋值操作。par(i=0;i<10;i++){a=b;}为使充分利用该硬件,Handel-C要求程序员说明所有的数据的宽度例如是5位宽度的带符号的整数,因此能够表示在-15和+15之间的值,int 5 count;Handel-C支持单整数数据类型。在硬件和外界之间的通信可以使用接口进行。这些接口指定为输入和输出,并指定从接口中写或读用一个时钟周期。这种语言允许设计者指向特定的硬件,分配输入和输出管脚、指定信号的时序和一般性地控制低电平硬件接口细节。宏可用于帮助指向特定的装置。根据Handel-C文献资料,关于语句时限的简单的规则是“赋值需要1个时钟周期,其余自由”。这意味着使用组合逻辑构造表达,并且仅在执行赋值时对数据进行计时。例如,Handel-C可以产生用于在单个时钟周期中执行的如下的语句的硬件。y=((x*x)+3*x);这个特征使得容易根据时钟周期预测性能。但是,存在的损失是,表达式越复杂,要求实施该不等式的逻辑越深。反过来,因为与深度逻辑相关的传播延迟的缘故,这又限制了该设计能够运行的最大时钟速率。在实际中这意味着设计者需要相对时钟速率交换时钟周期,并且这通常是迭代过程。因为Handel-C指向硬件,在与常规的ANSI-C编译器相比时存在某些编程限制。在设计通过Handel-C能够编译的代码时需要考虑这些。这些限制中的某些限制特别影响GP系统的构键。首先,没有栈可用,因此该语言不能直接支持递归函数。这又意味着主要依赖于递归的标准GP不能未经修改地实施。其次,对在FPGA上使用标准逻辑单元能够实施的存储器的大小存在限制,因为以硅产业(slicon real estate)实施存储器比较昂贵。然而,某些FPGA具有Handel-C能够使用的内部RAM。例如,Xlinx Virtex和Spartan系列支持Handel-C允许用户说明为RAM或R0M的内部存储器。例如,如下的定义说明128个单元的RAM块,每个单元8个位的宽,它可作为正常的阵列存取,ram int 8 mem;使用RAM或ROM的限制在于除了每个时钟周期一次之外不能存取它,因此限制了存取它的代码的并行执行的潜力。第三,不允许表达式具有附带的作用,因为这会破坏单周期赋值规则。因此不允许如下的代码,a=++b;需要将它重写为b=b+1;a=b;Handel-C支持两个目标。第一个目标是允许不需要使用任何硬件就可开发和测试代码的仿真器目标。这由调试程序和其它的工具支持。第二个目标是输入到安置和路由工具的网表的合成。网表是门和它们的连接的形式描述。安置和路由是将网表转换为硬件设计的过程。这允许将设计转换为特定的芯片的配置数据。在附图3中示出了该过程的概图。从该仿真器中中可进行循环计数分析,并通过Handel-C编译器产生门计数估计。为获得明确的时序信息和实际的硬件用途,需要调用安置和路由工具。FPGA已经用于实施GP系统的一部分。在“Register-basedGenetic Programming on FPGA computing platforms”(M I Heywoodand A N Zincir-Heywood;Genetic Programming,Proceedings ofEuro GP 2000 Volume 1802 of LNCS,pages 44-59,Edinburgh 15-16April 2000;Springer-Verlag)中所描述的系统使用更传统的FPGA工具进行仿真。在他的文章中提出使用FPGA仅用于评估个体、交互执行情况和交叉情况。Koza等人使用FPGA加快分类网络的适应性(fitness)的评估“Evolving sorting networks using genetic programming and therapidly configurable Xillinx 6216 field-programmable gatearray”(John R Koza et al;Proceedings of the 31st AsilomarConference on Signals,System and Computers;IEEE Press,1997)。在这篇文章中仅使用FPGA执行适应性评估。通过主机形成初始总体(population),然后将个体下载到FPGA,并指令本文档来自技高网...
【技术保护点】
一种在硬件中实施完整的进化算法的在配置时不受约束的可配置的硬件逻辑装置,配置的硬件逻辑装置包括: (a)总体产生装置,具有输出并设置成在该输出中产生个体的初始总体; (b)适应性评估装置,具有输入和第一和第二输出,该总体产生装置的输出连接到适应性评估装置的输入,并且该适应性评估装置设置成对个体的初始总体实施适应性测试并在适应性评估装置的第一输出中提供适应性测试结果和相应的个体; (c)选择器装置,该选择器装置具有输入和输出,并被设置成基于从适应性评估装置的输出连接到该选择器装置的输入的适应性测试结果和相应的个体来选择初始总体的一个或多个个体,并在选择器装置的输出中提供所选择的一个或多个个体; (d)繁殖装置,该繁殖装置具有连接到选择器装置的输出上的输入,并被设置成从所选择的一个或多个个体中繁殖个体的进一步的总体,且具有将所述多个个体进一步的总体连接到适应性评估装置的输入上的输出; (e)该适应性评估装置进一步设置成在它的第二输出从个体的进一步总体中提供单个的优选的个体。
【技术特征摘要】
...
【专利技术属性】
技术研发人员:PN马丁,
申请(专利权)人:马科尼英国知识产权有限公司,
类型:发明
国别省市:GB[英国]
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。