用于在可编程逻辑阵列中动态执行功能的系统和方法技术方案

技术编号:3410866 阅读:209 留言:0更新日期:2012-04-11 18:40
一种可重配置逻辑阵列(RLA)系统(104),包括RLA(108)和用于循环地对该RLA重新编程的编程器(112)。将一个所需逻辑比该RLA中包含的逻辑更多的功能(F)划分成多个功能块(FB1、FB2、FB3)。编程器包含软件(144),所述软件(144)将该RLA划分成位于两个存储区(SR1、SR2)之间的功能区(FR)。接着,编程器顺序地使用该功能的功能块对功能区进行编程,从而功能块在存储区之间的交替的方向上进行处理。当编程器使用下一个功能块重新配置功能区并且重新配置一个用于接收下一个功能块的输出的存储区时,将从当前功能块传向下一个功能块的数据保存在另一个存储区。

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术一般地涉及逻辑设备领域。更特别地,本专利技术涉及。
技术介绍
最近,诸如现场可编程门阵列(FPGA)之类的可编程逻辑设备已经发展成为能够在逐循环(cycle-by-cycle)的基础上动态地重新配置从而在每个循环内执行逻辑功能或者其中部分逻辑功能的设备。随着这种可重配置FPGA(RFPGA)的增长速度,目前RFPGA被看作是适合应用在专用集成电路(ASIC)和其它集成电路(IC)中的元件。例如,用于需要对某些数据进行迭代操作以产生期望输出的应用的IC就是一种可以从RFPGA的利用中受益的IC。这种应用的例子包括通信协议处理和图像处理以及其他处理。使用RFPGA来执行一个或多个功能(否则这些功能就由固定逻辑来执行)的一个好处是通常会减小执行这些功能所需的芯片面积。例如,某个功能可以被划分成10个功能块,所述功能块串联在一起,从而一个功能块的输出成为下一个功能块的输入,依此类推。使用传统的固定逻辑,所有这10个功能块通常按照它们合适的数据流顺序被依次放置在芯片上。然而,使用RFPGA的解决方案,这10个功能块可以用一个单片RFPGA替代,循环地对该RFPGA进行重新配置,从而按照合适的顺序依次处理这10个功能块中的每一功能块。通常,该10个功能块的功能的处理如下进行。将RFPGA配置为用于第一功能块,并且将该功能的输入数据传送到RFPGA、即第一功能块中。然后,将第一功能块的输出从该功能块传出并存储在RFPGA中创建的某些存储单元中。这些存储单元存储第一功能块的输出以将其用作该功能的第二功能块的输入,所述第二功能块是通过重新配置RFPGA中除存储单元以外的部分而创建的。同时,将RFPGA的一部分重新配置为用于第二功能块,将RFPGA的其它部分重新配置为用于存储第二功能块的输出的存储单元,该第二功能块的输出也是第三功能块的输入。将该过程重复用于第三到第九功能块。用于第十(最后)功能块的过程稍有不同,即将第十功能块的输出传送给RFPGA的外部I/O(输入/输出)单元,在该外部I/O中将该输出传送给IC的其它部分。尽管使用RFPGA串行地处理多个功能块在原理上比较简单,但是传统的RFPGA重配置技术难以使完成特定功能所需的RFPGA的各种配置中的每一种配置最优化。然而,优化IC设计非常重要。优化RFPGA配置的困难主要归因于传统技术对从一个逻辑配置(即功能块)传送给下一个逻辑配置的数据进行处理的方式。图1分别示出了当RFPGA 20配置为用于一个包含3个或更多功能块的功能的第M功能块时的配置。按照惯例,当前功能块,即在特定时间配置在RFPGA 20中的功能块,将称为第M功能块。因此,如果第M功能块是第二功能块,则第一功能块被称为第“M-1”功能块,第三功能块被称为第“M+1”功能块,第四功能块被称为第“M+2”功能块,依此类推。除第一功能块和最后功能块以外的每个功能块都与第“M-1”存储单元和第“M”存储单元相关联,其中第“M-1”存储单元包括第“M-1”功能块的输出,其是第M功能块的输入,而第“M”存储单元包括第“M”功能块的输出。第一功能块不需要任何第“M-1”存储单元,因为第一功能块的输入通过I/O单元24来自位于RFPGA 20外部的电路(未示出),而最后功能块不需要任何“M”存储单元,因为最后功能块的输出将从RFPGA中传送出去。当重配和处理进行时,将同样的命名方式适用于每个功能块的循环周期。例如,如果参考循环表示为第“M”循环,则紧挨着的前一循环是第“M-1”循环,而下一循环是第“M+1”循环。RFPGA 20通常包括彼此通过互连资源32相互连接的可配置逻辑块(CLB)28或者其它可(重)编程逻辑单元的阵列。CLB 28是诸如逻辑门之类的可重配置功能单元,用于实现期望功能的每个功能块的逻辑和存储从一个功能块传给下一个功能块的数据所需的存储单元。每个编程为功能单元的CLB 28显示成一个含有“F”的正方形,每个编程为一个相应的第“M-1”存储单元的CLB显示成一个含有“M-1”的正方形,以及每个编程为一个相应的第“M”存储单元的CLB显示成一个含有“M”的正方形。RFPGA 20与I/O单元24进行电通信,所述I/O单元24提供了RFPGA与诸如存储器、处理器、通信电路或其他电路之类的其他电路(未示出)之间的通信。如图1所示,常规RFPGA编程技术导致第一功能块的存储单元M-1和存储单元M的位置分散于CLB 28阵列上,其局部地优化了穿过功能单元的逻辑路径。但是,当负责使用每组功能块和存储单元重配置(编程)RFPGA 20的编程器36使用第二(和随后的)功能块和相应的存储位置对RFPGA 20重新编程时,该方法开始出现某种问题。为了对RFPGA 20重新编程,编程器36必须考虑分散的存储单元M的位置以不干扰存储于该处的数据,所述数据是下一个功能块的输入。对功能块及其存储单元的优化处理受到了来自前一功能块的存储单元的分散特性的妨碍。存储单元M-1、M的分散特性也降低了由RFPG 20处理的功能的整体性能和循环周期。从存储单元到下一功能块的最差情况输入点的延迟长度成为RFPGA 20循环周期的限制因素。此外,取决于每次循环的通路延迟,每次循环的循环周期会有所不同。这会导致由最糟的循环频率来决定所述功能的整体处理速度。这个问题直接依赖于确定该功能的操作频率的存储单元的位置分布。编程器用于将存储单元放置在合适位置以实现快速循环周期的能力不仅依赖于当前功能块配置的要求,而且依赖于所有后续功能块配置的要求。也就是说,用于当前功能块配置的存储单元的位置影响用于下一个功能块配置的存储单元的位置,该位置又影响用于随后的功能块配置的存储单元的位置,依此类推。这造成可能选项的组合爆炸(combinatorial explosion),对于各可能选项,编程器必须找到每个循环的最大循环周期和整体循环周期。对于复杂的功能块,传统的RFPGA编程器可能需要花费几个小时生成用于一个功能块配置或者循环周期的可行方案。显而易见,得到用于多个功能块配置的可行方案可能需要巨大数量的时间。所以存在以高效方式配置功能块的需求。
技术实现思路
在一个方面,本专利技术针对一种用于处理一个逻辑功能的系统,所述逻辑功能包括多个功能块,每个功能块都有输出数据。该系统包括第一存储区、第二存储区和一个可重配置逻辑阵列,在所述可重配置逻辑阵列中定义了一个位于第一和第二存储区以外区域的功能区。编程器可以与可重配置逻辑阵列进行通信,并且有效地配置为在循环的基础上使用多个功能块中的功能块对功能区编程,以便将多个功能块中的后续功能块的输出以交替的方式存储在第一存储区和第二存储区中。在另一个方面,本专利技术针对一种对一个划分成多个功能块的功能进行处理的方法。该方法包括以下步骤,用于使用多个功能块中的第一功能块对可重配置逻辑阵列进行编程,从而多个功能块中的第一功能块在第一方向上进行处理。接着,在第一方向上对多个功能块中的第一功能块进行处理。使用多个功能块中的第二功能块对可重配置逻辑阵列进行编程,从而多个功能块中的第二功能块在和第一方向完全相反的第二方向上进行处理。在第二方向上对多个功能块中的第二功能块进行处理。附图说明为了阐述本专利技术,附图示出了本专利技术的一种目前来说本文档来自技高网
...

【技术保护点】
一种用于处理逻辑功能的系统,所述逻辑功能包含多个各自具有输出数据的功能块,所述系统包含:(a)第一存储区;(b)第二存储区;(c)可重配置逻辑阵列,其中定义了位于所述第一存储区和第二存储区之外的功能区;以及( d)编程器,其与所述可重配置逻辑阵列进行通信,并且有效地配置为循环地使用所述多个功能块中的功能块对所述功能区进行编程,以便将所述多个功能块中的后续功能块的输出以交替的方式存储在所述第一存储区和第二存储区中。

【技术特征摘要】
【国外来华专利技术】...

【专利技术属性】
技术研发人员:肯尼思J古德诺克拉伦斯R奥格尔维克里斯托弗B雷诺兹杰克R史密斯塞巴斯蒂安T文特朗
申请(专利权)人:国际商业机器公司
类型:发明
国别省市:US[美国]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1