新闻中心

EEPW首页 > EDA/PCB > 设计应用 > 可重构计算:高效灵活的计算技术

可重构计算:高效灵活的计算技术

作者:时间:2010-08-18来源:网络收藏

第二种情况是利用有限的资源处理大规模应用。如果某个规模较大的应用在实现时所需的逻辑资源超过了逻辑器件可以供给的最大资源量,这时系统会将大的应用划分为多个在执行时具有先后次序的子部分。在应用执行过程中,某个先执行的子部分完成工作后,可以在其占据的器件资源上按次序配置后续的应用子部分,以此来保证应用的正确实现,如图4所示。

本文引用地址:http://www.eepw.com.cn/article/191609.htm


运行时可重构技术研究的深入和成熟还能够促进其他相关领域的技术得到长足进展,例如进化硬件和系统容错技术等。但在当前,运行时可重构技术还面临着一些关键问题亟待解决:

可重构逻辑器件的支持。可重构技术的发展对可重构逻辑器件有着很强的依赖性。当前的器件功能和性能都有了很大提升,已经能够对运行时可重构技术提供相关支持。例如,运行时可重构需要能够在不影响任务正常执行的情况下,对器件的空闲资源进行配置。相应的,当前的商业可重构逻辑器件能够提供部分重构(partial-reconfiguration)的能力。但是现在存在的最大问题在于器件配置过程耗费的时间比较长。随着芯片上的可重构逻辑资源数量越来越多,相应的配置文件规模也越来越大,配置过程需要毫秒量级的时间,但是可重构逻辑器件上的应用是以微/纳秒量级的时间在执行,因此配置过程成为了整个系统的瓶颈。经常会发生应用执行到一半,但后续功能还没有配置好的情况。这时候应用的执行可能会使用到错误的配置,因此它必须等待,这极大地降低了系统性能。还有一种可重构逻辑器件能够为运行时可重构技术提供支持,它被称做多上下文(multi-context)器件。这种器件的特点在于,它将器件的多个配置文件存储在芯片上,当需要发生功能切换时,能够在单周期内完成器件的配置。但是这种器件技术目前尚未成熟。

软/硬件任务的划分。在可重构计算系统中,存在着可重构逻辑器件和通用处理器两大部分。如何使一个应用高效运行在可重构计算系统上,首先就需要对应用进行任务划分,将软/硬件任务分别映射到通用处理器和可重构逻辑器件上执行。在任务的划分中,要充分考虑到任务执行的特征,把那些负担繁重并且性能要求高的计算任务划分为硬件任务,同时把那些不适合用硬件加速执行的任务和对硬件资源进行管理的任务划分为软件任务。软/硬件任务间的通信是一个需要重点思考的问题。当前的很多可重构计算系统采用的都是软/硬件任务非并行执行的方式。当软件任务执行到某个点的时候,会将应用执行的控制权交给可重构逻辑器件,然后软件任务会一直等待可重构逻辑器件将计算结果和控制权返回给通用处理器再继续执行。这无疑降低了系统的性能。更先进的做法是软件任务可以和硬件任务并行执行,两者间以中断或者其他方式互相通告状态和传递数据。但是这么做会引入数据一致性、任务间同步等问题,加大了系统管理的难度。软/硬件任务的划分一直以来都是在嵌入式系统研究中的难点,它的好坏直接影响到了应用的执行性能,但至今还是缺乏成熟的算法支持。

任务调度的支持。任务调度是传统操作系统中的关键技术。在运行时可重构计算系统中,调度算法的好坏也直接影响到系统性能的高低。特别是针对大规模应用中的硬件任务不能够一次性地配置到器件上的情况,任务调度显得尤其重要。任务调度主要有两个目的:一个是优化器件的配置序列,另一个是充分利用器件上的资源。任务调度器应该尽可能地将要同时执行或者先后执行次序比较紧密的任务一次性地调度到器件上,同时在将任务调出器件的时候也要考虑到任务是否会在后续执行中又被使用到。调度器对配置序列进行优化,能够减少配置过程带来的时间开销,减轻配置时间太长给系统带来的瓶颈影响。器件上的资源是非常宝贵的,在任务繁重的时候应该保证有尽可能多的资源加入到计算当中。而且在对器件进行部分配置的时候,也要重点考虑将那些当前空闲的资源配置为新的功能,以减少后面可能会导致的“抖动”(器件上的现有功能被新的配置覆盖后,应用执行过程又需要该功能时只能再次将该功能重新配置到器件上)。另外,如果应用对于能耗要求较高,任务调度还需要注意到器件上各个时钟域里的资源利用情况,可以将功能集中实现在某一区域以达到降低能耗的目的。在后续的运行时可重构技术的研究探索中,还有可能涉及到软/硬件任务迁移(migration)的情况,这就对调度器提出了更高的要求。

未来方向

上述是当前的运行时可重构研究中需要解决的几个关键问题,国内外已经有很多的机构都在潜心研究,希望能有所突破。虽然目前可重构已经有了很大的发展,但是为了能够将它应用到更广阔的空间,还需要做更多的工作。

并行的可重构计算系统架构。虽然可重构计算系统有着较高性能和极强的灵活性,但在很多应用场合中,还是会碰到一些问题。首先还是器件问题。相对于通用处理器,当前的主流可重构逻辑器件的频率仍旧较低,这就对进一步加快应用执行性能产生了阻碍。其次,可重构计算系统不能很好地处理大型应用。因为系统处理能力和资源数量的约束,可重构计算系统对于大型应用的实现还存在着很多问题。最后是应用领域的独特需求。目前在很多可重构计算系统适用的应用领域中,如穿戴计算、汽车电子等,系统分布化已经成为了趋势,可重构计算系统务必要能够满足应用需求。基于以上几点,开发并行的可重构计算系统架构已经成为今后必然的趋势。并行的可重构计算系统中包含有多个可重构计算系统,它们彼此间以可重构的网络相连接。并行可重构计算系统中存在着三个层次上的并行:第一是单个系统中可重构逻辑器件上的多个硬件任务间的并行;第二是单个系统中通用处理器上的软件任务和可重构逻辑器件上的硬件任务间的并行;第三是各个系统间软/硬件任务的并行。并行可重构计算系统中还存在着两个层次上的重构:一个是单个系统内部的器件重构,另一个是各个系统间的互连重构。并行可重构计算系统的结构要比传统的分布式并行系统复杂很多,给系统管理和应用带来了很多新的难题。

统一的应用开发模型。当前可重构计算系统没有被广泛应用,还有一个很重要的因素就是现在的可重构计算系统并没有提供给应用开发者统一的应用开发模型。因为可重构计算系统中有软件任务和硬件任务的区分,而在应用开发者中占绝大多数的软件程序员们缺乏对硬件平台的理解和编写硬件任务的能力。同时,软件程序员和硬件设计者之间的沟通又往往不够充分。这些都导致了应用开发者利用可重构计算技术时的困难重重。又因为目前可以构成可重构计算系统的硬件资源门类繁多,在一个系统上开发的应用缺乏良好的移植性,所以没有一个很好的方法能够帮助开发者们快速高效地开发应用。基于以上两点,现在需要做的是将可重构计算系统的底层实现对应用开发者透明化,通过提供给应用开发者们统一的应用开发模型,使他们能够按照惯常的开发流程进行可重构计算系统上的应用开发。他们编写的代码具有一定的可移植性,经过可重构系统集成开发环境处理后,可以直接在相应的可重构计算系统上运行。这个“统一化”的过程是复杂和困难的,但是如果希望可重构计算技术能够深入人心,让广大应用开发者认可并使用可重构计算技术,那么这个过程就是必需的。

可重构计算技术是一项新兴的能够有效提高系统计算能力的技术。它的诞生是为了满足人们对计算性能永无穷尽的需求,在很多领域都有着广阔的应用前景。目前,可重构计算技术的研究尚处于初级阶段,还有很多技术难题没有得到圆满解决。但是在可以预见的将来,伴随着可重构逻辑器件技术的不断进步,可重构计算技术一定能够在更多的场合被应用,发挥出更多的效用。


上一页 1 2 3 4 下一页

评论


相关推荐

技术专区

关闭