可重配置fpga上可抢占硬件多任务系统及其实现方法

文档序号:6471323阅读:178来源:国知局
专利名称:可重配置fpga上可抢占硬件多任务系统及其实现方法
技术领域
本发明涉及一种FPGA的应用技术,具体地说是一种可重配置FPGA上可抢占硬件 多任务系统及其实现方法。
背景技术
实时系统在汽车电子,航天电子,工业控制等领域中有着广泛的应用。在实时系统 中,计算机系统的运算必须在要求的时间范围内完成,否则其运算结果没有意义,或者会造 成灾难性后果。动态部分可重配置FPGA是一种越来越被广泛使用的运算器件,其允许在运 行过程中动态地对器件的一部分运算逻辑进行改变,而不影响其它部分的正常运行,即动 态部分重配置。与在处理器上的软件程序相比,使用FPGA实现运算功能的速度非常快,运 算能力非常强。同时,与使用专门硬件实现的运算相比,动态可重配置FPGA具有很强的灵 活性,可以根据系统的动态需求改变其功能以适应当前的需求,因而可以大大降低系统硬 件成本,体积和功耗等。虽然动态部分可重配置FPGA已经得到了广泛的使用,但是目前还 无法应用于实时系统中,因为在现有的基于动态部分可重配置FPGA的运算系统中,均无法 实现可抢占式的硬件任务调度,也就是说,当动态部分可重配置FPGA被配置上一个或多个 硬件任务以后,必须等到这些任务执行结束才能配置新的硬件任务。如果强行配置上新的 硬件任务以后,原来在运行的硬件任务的运行信息将会丢失,从而丢失该任务以完成的计 算结果。这些都使基于动态部分可重配置FPGA的运算系统无法被应用到实时系统中去。
在实现可抢占多硬件任务系统的过程中,最重要的问题是如何实现高速的硬件任 务抢占与恢复。与软件任务不同,硬件任务是用过将比特流(bitstream)下载到FPGA可重 配置逻辑上的某个区域来实现。为了实现硬件任务的抢占,还需要对硬件任务的比特流进 行回读,并将读回的比特流进行分析来提取硬件任务的状态信息,并进行保存。在恢复一个 被抢占的硬件任务时,则需要将硬件任务被抢占时所保存的状态信息融入改硬件任务的比 特流中,然后再进行下载。因此,实现可抢占多硬件任务系统存在两个问题
系统设计者需要知道硬件任务的比特流格式。然后,许多支持运行时部分可重配 置的FPGA器件,尤其是一些新器件,并没有公开比特流格式,因此人们无法对这些器件上 运行的硬件任务的状态信息的保存与恢复。 即使知道了硬件任务的比特流格式,对硬件任务进行抢占和恢复的开销非常大, 具体的说,硬件任务比特流的下载,回读,状态信息的提取都是非常耗时的过程,硬件任务 进行抢占和恢复的开销对于多数对运行时间比较敏感的实时系统是无法适用的。

发明内容
针对现有技术中可重配置FPGA的计算系统无法进行可抢占式硬件任务调度的缺 陷,本发明要解决的技术问题在于提供一种在可以实现支持高速硬件任务抢占与恢复的多 硬件任务系统的可重配置FPGA上可抢占硬件多任务系统及其实现方法。
为解决上述技术问题,本发明采用的技术方案是
本发明可重配置FPGA上可抢占硬件多任务系统,在可重配置FPGA内部包括可 重配置逻辑模块,用于根据不同的应用需要配置硬件任务模块,每个硬件任务模块通过其 通信接口与总线宏相连接;硬件任务访问控制器,通过总线宏与可重配置逻辑模块相连; ICAP控制器,通过ICAP接口与可重配置逻辑模块相连,并连接到处理器本地总线上;外部 存储器控制器,与FPGA外部存储器相联,并连接到处理器本地总线上;微处理器,内部运行 软件管理程序,微处理器通过总线宏与硬件任务访问控制器相连接。 所述硬件任务访问控制器内部包括时钟控制器,用于产生所有硬件任务的时钟 信号,在硬件任务的抢占阶段,停止被抢占硬件任务的时钟,为其他硬件任务继续提供时 钟;状态访问控制器,通过直接连接的数据通路来访问硬件任务用于存放状态信息的寄存 器;块存储器(BRAM),用于保存硬件任务内的状态信息。 本发明可重配置FPGA上可抢占硬件多任务系统的实现方法包括以下步骤
微处理器发出信号,要求任务i运行;判断目前可重配置区域是否有足够的空间 能容纳任务i运行;如果没有足够的空间,则选择一个正在执行的任务j ;硬件任务访问控 制器停止任务j的时钟,读取硬件任务j用于存放状态信息的寄存器,并保存到其内部的 BRAM上;在外部存储器控制器和ICAP控制器的控制下,将硬件任务i的比特流从外部存储 器控制器通过处理器本地总线读取至ICAP控制器;判断任务i是否是曾经被执行并被抢占 的任务;如果是,则将任务j的状态信息写入其相应的状态寄存器。 如果任务不是曾经被执行并被抢占的任务,则硬件任务访问控制器重新启动硬件 任务j的时钟,任务j开始运行;如果目前可重配置区域有足够的空间能容纳任务i运行, 则转至在外部存储器控制器和ICAP控制器的控制下,将硬件任务i的比特流从外部存储器 控制器通过处理器本地总线读取至ICAP控制器步骤。
本发明具有以下有益效果及优点 1.大大降低了硬件任务抢占时的时间开销。本发明在硬件任务的抢占过程中, 只需要将指定的用于存储硬件任务状态的寄存器中的数据读出并进行保存,而不需要将整 个硬件任务所有的比特流回读出来,进而不需要对读回的比特流进行分析和状态信息的提 取,大大降低了硬件任务抢占时的时间开销。 2.硬件任务恢复时比特流下载的时间短。在硬件任务的恢复过程中,只需要将 硬件任务的比特流下载到FPGA的可重配置区域,再将抢占该硬件任务时所保存的其状态 信息写入到指定的用于存储硬件任务状态的寄存器中,硬件任务即可接着其被抢占时的状 态继续运行,而不需要先将硬件任务的比特流文件由微处理器读入FPGA片内,再将硬件任 务状态信息融合进比特流文件,最后才将带有硬件任务被抢占时状态信息的比特流下载到 FPGA的可重配置区域,因此硬件任务恢复时比特流下载的时间被大大的縮短,而且系统设 计者不需要知道比特流文件的格式,便可以完成硬件任务抢占与恢复的过程。


图1为本发明系统结构框图; 图2为本发明系统中硬件任务访问控制器的结构框图;
图3为本发明系统中硬件任务访问控制器的状态转换图;
图4为本发明系统中硬件任务访问控制器的控制过程流程图。
具体实施例方式
如图1所示,为本发明系统的结构框图。在可重配置FPGA内部包括可重配置逻 辑模块、硬件任务访问控制器、ICAP控制器、外部存储器控制器以及微处理器,其中可重配 置逻辑模块根据不同的应用需要配置硬件任务模块,每个硬件任务模块通过其通信接口与 总线宏相连接;硬件任务访问控制器通过总线宏与可重配置逻辑模块相连;ICAP控制器通 过ICAP接口与可重配置逻辑模块相连,并连接到处理器本地总线上;外部存储器控制器与 FPGA外部存储器相联,并连接到处理器本地总线上;微处理器内部运行软件管理程序,微 处理器通过总线宏与硬件任务访问控制器相连接。 本发明系统可以在可重配置逻辑模块上同时放置执行若干个硬件任务模块,每个 硬件任务模块通过其通信接口与总线宏相连接,从而实现了硬件任务间的通信。所有的硬 件任务使用一个统一的格式模板,这个格式模板定义了统一的通信接口 (UCI),以及统一信 息状态存储格式。所有的硬件任务通信接口通过总线宏(Bus Macro)进行连接,从而实现 各个硬件任务之间的通信。 如图2所示,所述硬件任务访问控制器内部包括时钟控制器、状态访问控制器以 及块存储器(BRAM),其中时钟控制器用于产生所有硬件任务的时钟信号,在硬件任务的抢 占阶段,停止被抢占硬件任务的时钟,为其他硬件任务继续提供时钟;状态访问控制器通过 直接连接的数据通路来访问硬件任务用于存放状态信息的寄存器;块存储器,用于保存硬 件任务内的状态信息。 本发明系统中,硬件任务访问控制器通过总线宏对对硬件任务运行状态信息的访 问,具体的说,可以读取和写入硬件任务的运行状态信息,硬件任务访问控制器内部包含 一块块存储器(BRAM),用来存储读取出来的硬件任务的状态信息。FPGA的微处理器硬核 (Hard Core)通过总线宏与硬件任务访问控制器相连,运行于微处理器硬核的软件系统控 制硬件任务访问接口模块的操作。 本发明系统具有一个ICAP(内部通信访问口 )控制器模块,ICAP(内部通信访问
口)是Xilinx FPGA提供的用于对可重配置逻辑部分进行重配置的接口。与此同时本发明
系统还具有一个外部存储器控制器模块,用以对外部存储器进行读写控制。ICAP控制器模
块、外部存储器控制器模块以及微处理器硬核都挂接在具有高速通信能力的处理器本地总
线上(PLB),因此ICAP控制器模块和外部存储器控制器模块可以在运行于微处理器硬核上
的软件系统的控制下,进行高速的数据交换。 如图4所示,本发明系统的实现方法包括以下步骤 假设现在要运行任务i,由软件管理程序发出信号,要求任务i运行; 判断目前可重配置区域是否有足够的空间能容纳任务i运行; 如果没有足够的空间,则选择一个正在执行的任务j ; 硬件任务访问控制器停止任务j的时钟,读取硬件任务j用于存放状态信息的寄 存器,并保存到其内部的BRAM上; 在外部存储器控制器和ICAP控制器的控制下,将硬件任务i的比特流从外部存储 器控制器通过处理器本地总线读取至ICAP控制器。
判断任务i是否是曾经被执行并被抢占的任务;
如果是,则将任务j的状态信息写入其相应的状态寄存器。 如果任务不是曾经被执行并被抢占的任务,则硬件任务访问控制器重新启动硬件 任务j的时钟,任务j开始运行。 如果目前可重配置区域有足够的空间能容纳任务i运行,则转至在外部存储器控 制器和ICAP控制器的控制下,将硬件任务i的比特流从外部存储器控制器通过处理器本地 总线读取至ICAP控制器步骤。 本发明方法基于任务定制访问结构,在硬件任务抢占时进行状态信息的保存,具 体的说,所有的硬件任务使用一个统一的格式来放置与运行时状态相关的信息。在硬件任 务的抢占过程中,只需要将指定的用于存储硬件任务状态的寄存器中的数据读出并进行保 存,而不需要将整个硬件任务所有的比特流回读出来,进而不需要对读回的比特流进行分 析和状态信息的提取。因为一个硬件任务的比特流的大小与其状态信息的大小之比通常 为几万比一,因此本发明的方法大大降低了硬件任务抢占时的时间开销。在硬件任务的恢 复过程中,只需要将硬件任务的比特流下载到FPGA的可重配置区域,再将抢占该硬件任务 时所保存的其状态信息写入到指定的用于存储硬件任务状态的寄存器中,硬件任务即可接 着其被抢占时的状态继续运行,而不需要先将硬件任务的比特流文件由微处理器读入FPGA
片内,再将硬件任务状态信息融合进比特流文件,最后才将带有硬件任务被抢占时状态信 息的比特流下载到FPGA的可重配置区域,因此硬件任务恢复时比特流下载的时间被大大 的縮短,而且,系统设计者不需要知道比特流文件的格式,便可以完成硬件任务抢占与恢复 的过程。 如图3所示,硬件任务的状态转化过程如下一个硬件任务首先在"初始化"状态 中,将其比特流文件准备好,并进入"等待"状态;根据软件系统的调度,当其要开始执行时, 通过状态转换"任务开始或恢复"进入"比特流下载"状态,进行硬件任务比特流文件的下 载,然后进入"写入状态信息"状态,以将其状态信息写入硬件任务的状态寄存器,然后进入 "恢复时钟"状态,由硬件任务访问控制器恢复该硬件任务的时钟信号,最后进入"执行"状 态;当硬件任务被抢占时,由"执行"状态进入"停止时钟",由硬件任务访问控制器停止该硬 件任务的时钟信号,然后进入"保存状态信息"状态,由硬件任务访问控制器将硬件任务的 状态信息读出并保存到其内部的BRAM中,最后进入"等待"状态,等待软件系统调度器再次 调度其执行。
权利要求
一种可重配置FPGA上可抢占硬件多任务系统,其特征在于可重配置FPGA内部包括可重配置逻辑模块,用于根据不同的应用需要配置硬件任务模块,每个硬件任务模块通过其通信接口与总线宏相连接;硬件任务访问控制器,通过总线宏与可重配置逻辑模块相连;ICAP控制器,通过ICAP接口与可重配置逻辑模块相连,并连接到处理器本地总线上;外部存储器控制器,与FPGA外部存储器相联,并连接到处理器本地总线上;微处理器,内部运行软件管理程序,微处理器通过总线宏与硬件任务访问控制器相连接。
2. 按权利要求1所述的可重配置FPGA上可抢占硬件多任务系统,其特征在于所述硬 件任务访问控制器内部包括时钟控制器,用于产生所有硬件任务的时钟信号,在硬件任务的抢占阶段,停止被抢占 硬件任务的时钟,为其他硬件任务继续提供时钟;状态访问控制器,通过直接连接的数据通路来访问硬件任务用于存放状态信息的寄存器;块存储器(BRAM),用于保存硬件任务内的状态信息。
3. —种可重配置FPGA上可抢占硬件多任务系统的实现方法,其特征在于包括以下步骤微处理器发出信号,要求任务i运行;判断目前可重配置区域是否有足够的空间能容纳任务i运行; 如果没有足够的空间,则选择一个正在执行的任务j ;硬件任务访问控制器停止任务j的时钟,读取硬件任务j用于存放状态信息的寄存器, 并保存到其内部的BRAM上;在外部存储器控制器和ICAP控制器的控制下,将硬件任务i的比特流从外部存储器控 制器通过处理器本地总线读取至ICAP控制器;判断任务i是否是曾经被执行并被抢占的任务;如果是,则将任务j的状态信息写入其相应的状态寄存器。
4. 按权利要求3所述的可重配置FPGA上可抢占硬件多任务系统的实现方法,其特征在于如果任务不是曾经被执行并被抢占的任务,则硬件任务访问控制器重新启动硬件任务 j的时钟,任务j开始运行。
5. 按权利要求3所述的可重配置FPGA上可抢占硬件多任务系统的实现方法,其特征在于如果目前可重配置区域有足够的空间能容纳任务i运行,则转至在外部存储器控制器 和ICAP控制器的控制下,将硬件任务i的比特流从外部存储器控制器通过处理器本地总线 读取至ICAP控制器步骤。
全文摘要
本发明涉及一种可重配置FPGA上可抢占硬件多任务系统及其实现方法,系统包括可重配置逻辑模块,通过通信接口与总线宏相连接;硬件任务访问控制器,通过总线宏与可重配置逻辑模块相连;ICAP控制器,通过ICAP接口与可重配置逻辑模块相连;外部存储器控制器,与FPGA外部存储器相联;微处理器,通过总线宏与硬件任务访问控制器相连;方法为要求任务i运行;判断是否有容纳任务i运行的空间;如没有则选择正在执行的任务j;停止任务j时钟,读取硬件任务j;将硬件任务i的比特流从外部存储器控制器读取至ICAP控制器;判断任务i是否是曾经被执行并被抢占的任务;如果是,则将任务j的状态信息写入状态寄存器。本发明降低了硬件任务抢占时的时间开销,硬件任务恢复时比特流下载的时间短。
文档编号G06F9/48GK101727423SQ20081022813
公开日2010年6月9日 申请日期2008年10月17日 优先权日2008年10月17日
发明者于戈, 关楠, 吕鸣松, 张轶, 邓庆绪 申请人:东北大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1