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

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

Info

Publication number
CN101727423B
CN101727423B CN2008102281343A CN200810228134A CN101727423B CN 101727423 B CN101727423 B CN 101727423B CN 2008102281343 A CN2008102281343 A CN 2008102281343A CN 200810228134 A CN200810228134 A CN 200810228134A CN 101727423 B CN101727423 B CN 101727423B
Authority
CN
China
Prior art keywords
task
hardware
hardware task
controller
reconfigurable
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN2008102281343A
Other languages
English (en)
Other versions
CN101727423A (zh
Inventor
关楠
邓庆绪
于戈
吕鸣松
张轶
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Intelligent Technology Co Ltd
Original Assignee
Northeastern University China
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Northeastern University China filed Critical Northeastern University China
Priority to CN2008102281343A priority Critical patent/CN101727423B/zh
Publication of CN101727423A publication Critical patent/CN101727423A/zh
Application granted granted Critical
Publication of CN101727423B publication Critical patent/CN101727423B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)
  • Advance Control (AREA)

Abstract

本发明涉及一种可重配置FPGA上可抢占硬件多任务系统及其实现方法,系统包括可重配置逻辑模块,通过通信接口与总线宏相连接;硬件任务访问控制器,通过总线宏与可重配置逻辑模块相连;ICAP控制器,通过ICAP接口与可重配置逻辑模块相连;外部存储器控制器,与FPGA外部存储器相联;微处理器,通过总线宏与硬件任务访问控制器相连;方法为:要求任务i运行;判断是否有容纳任务i运行的空间;如没有则选择正在执行的任务j;停止任务j时钟,读取硬件任务j;将硬件任务i的比特流从外部存储器控制器读取至ICAP控制器;判断任务i是否是曾经被执行并被抢占的任务;如果是,则将任务i的状态信息写入状态寄存器。本发明降低了硬件任务抢占时的时间开销,硬件任务恢复时比特流下载的时间短。

Description

可重配置FPGA上可抢占硬件多任务系统及其实现方法
技术领域
本发明涉及一种FPGA的应用技术,具体地说是一种可重配置FPGA上可抢占硬件多任务系统及其实现方法。
背景技术
实时系统在汽车电子,航天电子,工业控制等领域中有着广泛的应用。在实时系统中,计算机系统的运算必须在要求的时间范围内完成,否则其运算结果没有意义,或者会造成灾难性后果。动态部分可重配置FPGA是一种越来越被广泛使用的运算器件,其允许在运行过程中动态地对器件的一部分运算逻辑进行改变,而不影响其它部分的正常运行,即动态部分重配置。与在处理器上的软件程序相比,使用FPGA实现运算功能的速度非常快,运算能力非常强。同时,与使用专门硬件实现的运算相比,动态可重配置FPGA具有很强的灵活性,可以根据系统的动态需求改变其功能以适应当前的需求,因而可以大大降低系统硬件成本,体积和功耗等。虽然动态部分可重配置FPGA已经得到了广泛的使用,但是目前还无法应用于实时系统中,因为在现有的基于动态部分可重配置FPGA的运算系统中,均无法实现可抢占式的硬件任务调度,也就是说,当动态部分可重配置FPGA被配置上一个或多个硬件任务以后,必须等到这些任务执行结束才能配置新的硬件任务。如果强行配置上新的硬件任务以后,原来在运行的硬件任务的运行信息将会丢失,从而丢失该任务以完成的计算结果。这些都使基于动态部分可重配置FPGA的运算系统无法被应用到实时系统中去。
在实现可抢占多硬件任务系统的过程中,最重要的问题是如何实现高速的硬件任务抢占与恢复。与软件任务不同,硬件任务是用过将比特流(bitstream)下载到FPGA可重配置逻辑上的某个区域来实现。为了实现硬件任务的抢占,还需要对硬件任务的比特流进行回读,并将读回的比特流进行分析来提取硬件任务的状态信息,并进行保存。在恢复一个被抢占的硬件任务时,则需要将硬件任务被抢占时所保存的状态信息融入改硬件任务的比特流中,然后再进行下载。因此,实现可抢占多硬件任务系统存在两个问题:
系统设计者需要知道硬件任务的比特流格式。然后,许多支持运行时部分可重配置的FPGA器件,尤其是一些新器件,并没有公开比特流格式,因此人们无法对这些器件上运行的硬件任务的状态信息的保存与恢复。
即使知道了硬件任务的比特流格式,对硬件任务进行抢占和恢复的开销非常大,具体的说,硬件任务比特流的下载,回读,状态信息的提取都是非常耗时的过程,硬件任务进行抢占和恢复的开销对于多数对运行时间比较敏感的实时系统是无法适用的。
发明内容
针对现有技术中可重配置FPGA的计算系统无法进行可抢占式硬件任务调度的缺陷,本发明要解决的技术问题在于提供一种在可以实现支持高速硬件任务抢占与恢复的多硬件任务系统的可重配置FPGA上可抢占硬件多任务系统及其实现方法。
为解决上述技术问题,本发明采用的技术方案是:
本发明可重配置FPGA上可抢占硬件多任务系统,在可重配置FPGA内部包括:可重配置逻辑模块,用于根据不同的应用需要配置硬件任务模块,每个硬件任务模块通过其通信接口与总线宏相连接;硬件任务访问控制器,通过总线宏与可重配置逻辑模块相连;内部通信访问口控制器,通过内部通信访问口接口与可重配置逻辑模块相连,并连接到处理器本地总线上;外部存储器控制器,与FPGA外部存储器相联,并连接到处理器本地总线上;微处理器,内部运行软件管理程序,微处理器通过总线宏与硬件任务访问控制器相连接。
所述硬件任务访问控制器内部包括:时钟控制器,用于产生所有硬件任务的时钟信号,在硬件任务的抢占阶段,停止被抢占硬件任务的时钟,为其他硬件任务继续提供时钟;状态访问控制器,通过直接连接的数据通路来访问硬件任务用于存放状态信息的寄存器;块存储器(BRAM),用于保存硬件任务内的状态信息。
本发明可重配置FPGA上可抢占硬件多任务系统的实现方法包括以下步骤:
微处理器发出信号,要求任务i运行;判断目前可重配置区域是否有足够的空间能容纳任务i运行;如果没有足够的空间,则选择一个正在执行的任务j;硬件任务访问控制器停止任务j的时钟,读取硬件任务j用于存放状态信息的寄存器,并保存到其内部的BRAM上;在外部存储器控制器和内部通信访问口控制器的控制下,将硬件任务i的比特流从外部存储器控制器通过处理器本地总线读取至内部通信访问口控制器;判断任务i是否是曾经被执行并被抢占的任务;如果是,则将任务i的状态信息写入其相应的状态寄存器。
如果任务不是曾经被执行并被抢占的任务,则硬件任务访问控制器重新启动硬件任务i的时钟,任务i开始运行;如果目前可重配置区域有足够的空间能容纳任务i运行,则转至在外部存储器控制器和内部通信访问口控制器的控制下,将硬件任务i的比特流从外部存储器控制器通过处理器本地总线读取至内部通信访问口控制器步骤。
本发明具有以下有益效果及优点:
1.大大降低了硬件任务抢占时的时间开销。本发明在硬件任务的抢占过程中,只需要将指定的用于存储硬件任务状态的寄存器中的数据读出并进行保存,而不需要将整个硬件任务所有的比特流回读出来,进而不需要对读回的比特流进行分析和状态信息的提取,大大降低了硬件任务抢占时的时间开销。
2.硬件任务恢复时比特流下载的时间短。在硬件任务的恢复过程中,只需要将硬件任务的比特流下载到FPGA的可重配置区域,再将抢占该硬件任务时所保存的其状态信息写入到指定的用于存储硬件任务状态的寄存器中,硬件任务即可接着其被抢占时的状态继续运行,而不需要先将硬件任务的比特流文件由微处理器读入FPGA片内,再将硬件任务状态信息融合进比特流文件,最后才将带有硬件任务被抢占时状态信息的比特流下载到FPGA的可重配置区域,因此硬件任务恢复时比特流下载的时间被大大的缩短,而且系统设计者不需要知道比特流文件的格式,便可以完成硬件任务抢占与恢复的过程。
附图说明
图1为本发明系统结构框图;
图2为本发明系统中硬件任务访问控制器的结构框图;
图3为本发明系统中硬件任务访问控制器的状态转换图;
图4为本发明系统中硬件任务访问控制器的控制过程流程图。
具体实施方式
如图1所示,为本发明系统的结构框图。在可重配置FPGA内部包括可重配置逻辑模块、硬件任务访问控制器、内部通信访问口控制器、外部存储器控制器以及微处理器,其中可重配置逻辑模块根据不同的应用需要配置硬件任务模块,每个硬件任务模块通过其通信接口与总线宏相连接;硬件任务访问控制器通过总线宏与可重配置逻辑模块相连;内部通信访问口控制器通过内部通信访问口与可重配置逻辑模块相连,并连接到处理器本地总线上;外部存储器控制器与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是否是曾经被执行并被抢占的任务;
如果是,则将任务i的状态信息写入其相应的状态寄存器。
如果任务不是曾经被执行并被抢占的任务,则硬件任务访问控制器重新启动硬件任务i的时钟,任务i开始运行。
如果目前可重配置区域有足够的空间能容纳任务i运行,则转至在外部存储器控制器和ICAP控制器的控制下,将硬件任务i的比特流从外部存储器控制器通过处理器本地总线读取至ICAP控制器步骤。
本发明方法基于任务定制访问结构,在硬件任务抢占时进行状态信息的保存,具体的说,所有的硬件任务使用一个统一的格式来放置与运行时状态相关的信息。在硬件任务的抢占过程中,只需要将指定的用于存储硬件任务状态的寄存器中的数据读出并进行保存,而不需要将整个硬件任务所有的比特流回读出来,进而不需要对读回的比特流进行分析和状态信息的提取。因为一个硬件任务的比特流的大小与其状态信息的大小之比通常为几万比一,因此本发明的方法大大降低了硬件任务抢占时的时间开销。在硬件任务的恢复过程中,只需要将硬件任务的比特流下载到FPGA的可重配置区域,再将抢占该硬件任务时所保存的其状态信息写入到指定的用于存储硬件任务状态的寄存器中,硬件任务即可接着其被抢占时的状态继续运行,而不需要先将硬件任务的比特流文件由微处理器读入FPGA片内,再将硬件任务状态信息融合进比特流文件,最后才将带有硬件任务被抢占时状态信息的比特流下载到FPGA的可重配置区域,因此硬件任务恢复时比特流下载的时间被大大的缩短,而且,系统设计者不需要知道比特流文件的格式,便可以完成硬件任务抢占与恢复的过程。
如图3所示,硬件任务的状态转化过程如下:一个硬件任务首先在“初始化”状态中,将其比特流文件准备好,并进入“等待”状态;根据软件系统的调度,当其要开始执行时,通过状态转换“任务开始或恢复”进入“比特流下载”状态,进行硬件任务比特流文件的下载,然后进入“写入状态信息”状态,以将其状态信息写入硬件任务的状态寄存器,然后进入“恢复时钟”状态,由硬件任务访问控制器恢复该硬件任务的时钟信号,最后进入“执行”状态;当硬件任务被抢占时,由“执行”状态进入“停止时钟”,由硬件任务访问控制器停止该硬件任务的时钟信号,然后进入“保存状态信息”状态,由硬件任务访问控制器将硬件任务的状态信息读出并保存到其内部的BRAM中,最后进入“等待”状态,等待软件系统调度器再次调度其执行。

Claims (4)

1.一种可重配置FPGA上可抢占硬件多任务系统,其特征在于可重配置FPGA内部包括:
可重配置逻辑模块,用于根据不同的应用需要配置硬件任务模块,每个硬件任务模块通过其通信接口与总线宏相连接;
硬件任务访问控制器,通过总线宏与可重配置逻辑模块相连;
内部通信访问口控制器,通过内部通信访问口与可重配置逻辑模块相连,并连接到处理器本地总线上;
外部存储器控制器,与FPGA外部存储器相联,并连接到处理器本地总线上;
微处理器,内部运行软件管理程序,微处理器通过总线宏与硬件任务访问控制器相连接;
所述硬件任务访问控制器内部包括:
时钟控制器,用于产生所有硬件任务的时钟信号,在硬件任务的抢占阶段,停止被抢占硬件任务的时钟,为其他硬件任务继续提供时钟;
状态访问控制器,通过直接连接的数据通路来访问硬件任务用于存放状态信息的寄存器;
块存储器(BRAM),用于保存硬件任务内的状态信息。
2.一种可重配置FPGA上可抢占硬件多任务系统的实现方法,其特征在于包括以下步骤:
微处理器发出信号,要求任务i运行;
判断目前可重配置区域是否有足够的空间能容纳任务i运行;
如果没有足够的空间,则选择一个正在执行的任务j;
硬件任务访问控制器停止任务j的时钟,读取硬件任务j用于存放状态信息的寄存器,并保存到其内部的BRAM上;
在外部存储器控制器和内部通信访问口控制器的控制下,将硬件任务i的比特流从外部存储器控制器通过处理器本地总线读取至内部通信访问口控制器;
判断任务i是否是曾经被执行并被抢占的任务;
如果是,则将任务i的状态信息写入其相应的状态寄存器。
3.按权利要求3所述的可重配置FPGA上可抢占硬件多任务系统的实现方法,其特征在于:
如果任务不是曾经被执行并被抢占的任务,则硬件任务访问控制器重新启动硬件任务i的时钟,任务i开始运行。
4.按权利要求3所述的可重配置FPGA上可抢占硬件多任务系统的实现方法,其特征在于:
如果目前可重配置区域有足够的空间能容纳任务i运行,则转至在外部存储器控制器和内部通信访问口控制器的控制下,将硬件任务i的比特流从外部存储器控制器通过处理器本地总线读取至内部通信访问口控制器步骤。
CN2008102281343A 2008-10-17 2008-10-17 可重配置fpga上可抢占硬件多任务系统及其实现方法 Expired - Fee Related CN101727423B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2008102281343A CN101727423B (zh) 2008-10-17 2008-10-17 可重配置fpga上可抢占硬件多任务系统及其实现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2008102281343A CN101727423B (zh) 2008-10-17 2008-10-17 可重配置fpga上可抢占硬件多任务系统及其实现方法

Publications (2)

Publication Number Publication Date
CN101727423A CN101727423A (zh) 2010-06-09
CN101727423B true CN101727423B (zh) 2011-12-07

Family

ID=42448329

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008102281343A Expired - Fee Related CN101727423B (zh) 2008-10-17 2008-10-17 可重配置fpga上可抢占硬件多任务系统及其实现方法

Country Status (1)

Country Link
CN (1) CN101727423B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8627057B2 (en) * 2010-12-22 2014-01-07 Intel Corporation Reconfigurable sensing platform for software-defined instrumentation
CN103488531B (zh) * 2013-09-26 2016-08-17 中国船舶重工集团公司第七一六研究所 一种基于多核处理器和fpga的软硬件混合实时任务调度方法
CN103677917A (zh) * 2013-12-10 2014-03-26 中国航空工业集团公司第六三一研究所 基于fpga重配置技术的可定制嵌入式处理系统
WO2015113211A1 (zh) * 2014-01-28 2015-08-06 华为技术有限公司 一种可重入资源调度方法、设备及系统
CN110162378B (zh) 2018-02-13 2023-12-29 华为技术有限公司 一种资源调度的方法、装置、设备及系统
CN108647368B (zh) * 2018-03-13 2021-09-17 北京航空航天大学 基于fpga的动态部分重构系统及方法
CN109445863B (zh) * 2018-11-01 2021-12-17 郑州云海信息技术有限公司 一种基于fpga的数据处理方法、装置、设备及介质
CN114398304A (zh) * 2022-03-01 2022-04-26 山西银河电子设备厂 一种解决srio接口阻塞的方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1490724A (zh) * 2002-10-18 2004-04-21 上海贝尔有限公司 一种用于嵌入式系统软件开发的虚拟机装置
CN101251819A (zh) * 2007-12-11 2008-08-27 浙江大学 一种适用于多处理器核系统芯片的调试方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1490724A (zh) * 2002-10-18 2004-04-21 上海贝尔有限公司 一种用于嵌入式系统软件开发的虚拟机装置
CN101251819A (zh) * 2007-12-11 2008-08-27 浙江大学 一种适用于多处理器核系统芯片的调试方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
张丽霞等.基于单片机的FPGA并行多任务配置.《电子技术》.2008,48-50. *

Also Published As

Publication number Publication date
CN101727423A (zh) 2010-06-09

Similar Documents

Publication Publication Date Title
CN101727423B (zh) 可重配置fpga上可抢占硬件多任务系统及其实现方法
DE102018126650A1 (de) Einrichtung, verfahren und systeme für datenspeicherkonsistenz in einem konfigurierbaren räumlichen beschleuniger
CN101226487B (zh) 基于嵌入式Linux操作系统的内核级线程库的实现方法
US7865696B2 (en) Interface including task page mechanism with index register between host and an intelligent memory interfacing multitask controller
US7856632B2 (en) iMEM ASCII architecture for executing system operators and processing data operators
CN110088737A (zh) 将并发程序转换为可部署在基于fpga的云基础设施上的硬件的综合路径
JP2003524969A5 (zh)
US7908603B2 (en) Intelligent memory with multitask controller and memory partitions storing task state information for processing tasks interfaced from host processor
US20150347654A1 (en) Extracting system architecture in high level synthesis
JP3934493B2 (ja) 集積回路及びシステム開発方法
Reichenbach et al. Heterogeneous computing utilizing FPGAs: a new and flexible approach integrating dedicated hardware accelerators into common computing platforms
Kirchhoff et al. A Real‐Time Capable Dynamic Partial Reconfiguration System for an Application‐Specific Soft‐Core Processor
US20050172088A1 (en) Intelligent memory device with wakeup feature
CN112948136A (zh) 一种嵌入式操作系统异步日志记录的实现方法
US7823161B2 (en) Intelligent memory device with variable size task architecture
WO2021113007A1 (en) Apparatus and methods for virtualization
CN103136162B (zh) Asic片内云架构及基于该架构的设计方法
CN100492299C (zh) 一种嵌入式软件开发的方法及系统
US10629161B2 (en) Automatic multi-clock circuit generation
CN109753713B (zh) 基于内部实体状态转移的数字电路功能建模方法及系统
US20050177671A1 (en) Intelligent memory device clock distribution architecture
CN111651382A (zh) 基于局部总线的数据采集系统的并行化存储实现方法
CN101539849B (zh) 一种处理器以及一种寄存器选通方法
Jerraya Hardware/software interface codesign for cyber physical systems
CN111158796B (zh) 一种液压控制软件的数据处理方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20170605

Address after: The 200438 Shanghai Yangpu District State Road 1688 No. 52 Lane 703

Patentee after: Shanghai Intelligent Technology Co., Ltd.

Address before: 110004 Heping Road, Heping District, Liaoning, Shenyang, Lane No. 11, No. 3

Patentee before: Northeastern University

TR01 Transfer of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20111207

Termination date: 20171017

CF01 Termination of patent right due to non-payment of annual fee