一种基于fpga的自适应星载计算机及应用所述计算机实现内部资源动态分配的方法

文档序号:6333205阅读:389来源:国知局
专利名称:一种基于fpga的自适应星载计算机及应用所述计算机实现内部资源动态分配的方法
技术领域
本发明涉及一种基于FPGA的星载计算机及应用所述计算机实现内部资源动态分配的方法,属于航天航空数据处理技术领域。
背景技术
现代小卫星的集成度越来越高,这要求其星载计算机能够在并行多任务的环境下,具有强大的计算和数据处理能力。普通星载计算机完全依赖处理器进行计算,效率低且无法满足小卫星技术发展的需求。而可重构星载计算机利用处理器和专用电路共同进行计算,具有很强的计算能力,但是对可重构FPGA资源缺乏有效的管理,因此,在星上硬件资源非常有限的条件下,传统意义上的可重构星载计算机无法很好地适用于多进程、多任务的工作环境,此外,传统的可重构星载计算机通过上传FPGA硬件配置文件来进行硬件升级,但是由于FPGA的硬件配置文件较大,会占用大量宝贵的星地通信时间。

发明内容
本发明的目的是解决传统可重构星载计算机无法有效管理可重构FPGA资源的问题,提供了一种基于FPGA的自适应星载计算机及应用所述计算机实现内部资源动态分配的方法。 本发明是通过下述方案予以实现的一种基于FPGA的自适应星载计算机,它包括SRAM型FPGA、PR0M型FPGA配置芯片和Flash存储器,SRAM型FPGA的内部资源包括主控单元和重构单元阵列两部分,其中主控单元包括一个处理器和FPGA片内配置端口,重构单元阵列由n个大小完全相等的重构单元组成,PROM型FPGA配置芯片的配置输出端口与SRAM型FPGA的片外配置输入端口相连,Flash存储器的控制输入输出端口与处理器的外部存储器控制输入输出端口相连,其中,n为大于0的整数, 所述的基于FPGA的自适应星载计算机实现内部资源动态分配的方法,SRAM型
FPGA支持部分重构技术, 内部资源动态分配的过程为 步骤一、处理器将SRAM型FPGA内部的n个重构单元都设置成空闲状态; 步骤二、当星载计算机启动一个线程时,处理器根据所述线程需要的硬件电路,将
处于空闲状态的重构单元构造成相应的硬件电路,并将该重构单元置为占用状态;当所述
硬件电路不能够被一个重构单元所容纳时,则选择物理地址相邻的两个或多个处于空闲状
态的重构单元作为一个整体,并将所述整体构造成相应的硬件电路,处理器将涉及到的重
构单元置为占用状态; 步骤三、当所述线程结束或者终止时,处理器将构造有所述硬件电路的重构单元的内容清除,使其恢复到空闲状态。 本发明由于采用部分重构技术,使基于FPGA的可重构计算机能够对内部资源进行动态分配,并能针对不同的星上任务完全自主地调整自身硬件电路结构,从而最大程度 的发挥可重构计算机的潜能。本发明简化设计流程,极大的增加设计的灵活性,减少星载电 子系统的硬件开销,提高对星上FPGA资源的利用效率,能够提高计算机在处理并行多任务 时的性能。


图1是一种基于FPGA的自适应星载计算机的结构示意图;图2是具体实施方式
五 的流程图。
具体实施例方式
具体实施方式
一 下面结合图1具体说明本实施方式。 一种基于FPGA的自适应星 载计算机包括SRAM型FPGA1、PR0M型FPGA配置芯片5和Flash存储器2, SRAM型FPGA1的 内部资源包括主控单元1-1和重构单元阵列1-2两部分,其中主控单元1-1包括一个处理 器1-1-1和FPGA片内配置端口 1-1-2,重构单元阵列1-2由n个大小完全相等的重构单元 1-2-1组成,PROM型FPGA配置芯片5的配置输出端口与SRAM型FPGA1的片外配置输入端 口相连,Flash存储器2的控制输入输出端口与处理器1-1-1的外部存储器控制输入输出 端口相连,其中,n为大于0的整数。 当SRAM型FPGA1的重构端口被触发或者SRAM型FPGA1上电复位时,FPGA配置芯 片5对SRAM型FPGA1进行配置,在FPGA配置芯片5中仅包含主控单元1_1的配置信息,因 此在配置结束后重构单元1-2-1不具备任何功能。
具体实施方式
二 下面结合图1具体说明本实施方式。本实施方式与具体实施方 式一所述的一种基于FPGA的自适应星载计算机的区别在于,所述Flash存储器2用于存储 用户应用程序执行代码和功能电路的配置文件,每种功能电路的配置文件可调用任一重构 单元1-2-1构建硬件电路。 Flash存储器2是近些年发展起来的新型非易失性存储器,它具有掉电数据不丢 失、快速的数据存取速度、电可擦除、容量大、在线可编程、价格低廉以及多达十万次的擦写 次数和较高的可靠性等诸多优点。 本实施方式所述的基于FPGA的自适应星载计算机可以采用下述容错设计处理 器1-1-1定期通过FPGA片内配置端口 1-1-2回读配置文件,并将回读的配置文件与Flash 存储器2中的原始的配置文件进行对比,如果不同,则将配置文件刷写到SRAM型FPGA1中, 修复相应的错误部分,使SRAM型FPGA1复位。 容错功能的优良与否直接影响到星载计算机的稳定性,采用上述容错设计,能够 增强本实施方式所述的基于FPGA的自适应星载计算机的稳定性。
具体实施方式
三下面结合图1具体说明本实施方式。本实施方式与实施方式一 所述的一种基于FPGA的自适应星载计算机的不同之处在于,它还包括看门狗电路4,看门 狗电路4由看门狗芯片实现,处理器1-1-1的喂狗信号输出端口与看门狗电路4的喂狗信 号输入端口相连,看门狗电路4的复位信号输出端口与SRAM型FPGA1的复位信号输入端口 相连。 —种基于FPGA的自适应星载计算机,除了采用配置文件回读与刷写机制外,还
5可以采用看门狗电路实现容错设计,本实施方式所述的基于FPGA的自适应星载计算机采 用看门狗电路实现容错设计,该电路周期性地接收来自处理器1-1-1的喂狗信号,如果在 一定时间内没有接收到喂狗信号,则该电路会产生复位信号,在该信号的触发下,SRAM型 FPGA1复位并自动从PROM型FPGA配置芯片5中重新载入配置信息。 本实施方式与具体实施方式
二中所述的两种容错机制可以同时使用,在同时使用 时能够使得星载计算机的可靠性得到显著提高。
具体实施方式
四下面结合图1具体说明本实施方式。本实施方式与具体实施方 式一及具体实施方式
三所述的基于FPGA的自适应星载计算机的不同之处在于,它还包括 SRAM存储器3,SRAM存储器3的控制输入输出端口与处理器的外部存储器控制输入 输出端口相连。 本实施方式增加了用于存储数据的SRAM存储器3,扩展了 SRAM型FPGA1片内数据 存储空间。
具体实施方式
五下面结合图2具体说明本实施方式。本实施方式所述的是基于具体实施方式
一至四任意一种基于FPGA的自适应星载计算机实现内部资源动态分配的方 法的过程为 步骤一、处理器1-1-1将SRAM型FPGA1内部的n个重构单元1-2-1都设置成空闲 状态; 步骤二、当星载计算机启动一个线程时,处理器1-1-1根据所述线程需要的硬件 电路,将处于空闲状态的重构单元1-2-1构造成相应的硬件电路,并将该重构单元1-2-1置 为占用状态;当所述硬件电路不能够被一个重构单元1-2-1所容纳时,则选择物理地址相 邻的两个或多个处于空闲状态的重构单元1-2-1作为一个整体,并将所述整体构造成相应 的硬件电路,处理器1-1-1将涉及到的重构单元1-2-1置为占用状态; 步骤三、当所述线程结束或者终止时,处理器1-1-1将构造有所述硬件电路的重 构单元1-2-1的内容清除,使其恢复到空闲状态。
上述方法的具体实现过程可以为 PROM型FPGA配置芯片5对主控单元1-1进行配置,处理器1-1-1从Flash存储 器2中载入软件程序并执行,系统创建一个n个bit长的状态列表,其中每一位对应一个重 构单元1-2-1的状态,'0'表示该重构单元1-2-1被占用,'1'表示该重构单元1-2-1处于 空闲状态,初始化时重构单元1-2-1的状态列表的所有位都被置'l',其中,bit中文名称是 位,是用以描述电脑数据量的最小单位; 当处理器1-1-1接收到硬件电路的支持申请时,搜索状态列表,将处于空闲状态 的重构单元1-2-1构造成相应的硬件电路,并将状态列表的相应bit置'0';当所述硬件电 路不能够被一个重构单元1-2-1所容纳时,则选择物理地址相邻的两个或多个处于空闲状 态的重构单元1-2-1作为一个整体,并将所述整体构造成相应的硬件电路,将这些个重构 单元1-2-1的相应bit置'0,; 当处理器1-1-1接收到硬件电路注销请求时,将已经构造有硬件电路的重构单元 1-2-1的内容清除,使其恢复到空闲状态,状态列表的相应bit置'1',表示该单元状态为空 闲,以便于其他任务使用; 以重构单元1-2-1为单位,按照当前具体任务对SRAM型FPGA1的内部资源进行动态管理,可以充分利用星上有限的SRAM型FPGA1硬件资源,从而在最大程度上发挥可重 构计算机的潜能,此外自适应星载计算机能够根据当前任务,自我调整计算机的电路结构, 不需要设计者预先规划和设计计算机的具体结构,从而能更符合星上并行多任务的工作环 境。 基于FPGA的自适应星载计算机实现内部资源动态分配的方法,使所述的自适应 星载计算机能够进行在轨升级,实现星载计算机在轨升级的方法为 自适应星载计算机的电路结构由当前运行在计算机上的具体任务决定,根据任务 的改变,对星上软件进行重注即完成对计算机硬件的升级。 相对于SRAM型FPGA1的硬件配置信息,软件重注所需要上传的信息较少,摆脱了 星地通讯速率的影响,与传统的可重构星载计算机相比,自适应星载计算机的在轨升级机 制更加简单可靠,并消除了软硬件不同步的风险。
具体实施方式
六本实施方式是对具体实施方式
五所述的基于FPGA的自适应星 载计算机实现内部资源动态分配的方法的进一步限定,在步骤二中它增加了以下步骤处 理器1-1-1将处于空闲状态的重构单元1-2-1构造成硬件加速电路。 本实施方式,是SRAM型FPGA内有足够的重构单元时,利用所述重构单元为进程构 造硬件加速电路,从而创建具有硬件加速电路支持的高效执行进程。 如果SRAM型FPGA1内没有足够的重构单元1_2_1,为其创建没有硬件加速电路支 持的进程,保证星上任务的完整。
具体实施方式
七本实施方式是对具体实施方式
五或六所述的基于FPGA的自适 应星载计算机实现内部资源动态分配的方法的进一步限定,在步骤二中它增加了以下步
骤 当所述进程出现错误时,注销该进程,并将该进程涉及到的、已经构造有硬件电路 的重构单元1-2-1的内容清除,然后重建该进程。
具体实施方式
八本实施方式是对具体实施方式
七所述的基于FPGA的自适应星 载计算机实现内部资源动态分配的方法的进一步限定,在步骤二中它增加了以下步骤
当重构单元1-2-1受到空间辐射影响电路功能出现错误时,处理器1-1-1将注销 相应进程,并将所述进程对应的重构单元1-2-1改回空闲状态,然后重新建立所述进程。
由于太空中的高能粒子会导致星载计算机中的核心器件SRAM型FPGA1产生瞬时 性损伤,采用本实施方式所述的方法,能够对重构单元1-2-1的瞬时性损伤进行修复。
具体实施方式
九本实施方式是对具体实施方式
八所述的基于FPGA的自适应星 载计算机实现内部资源动态分配的方法的进一步限定,在步骤二中它增加了以下步骤
当重构单元1-2-1受到空间辐射影响电路功能出现错误,且出现的是无法修复的 错误时,处理器1-1-1注销相应进程,并将所述重构单元1-2-1置为永久占用状态,然后重 新建立所述进程。 由于太空中的高能粒子会导致星载计算机中的核心器件SRAM型FPGA1产生永久 性损伤,计算机注销相应进程,将该重构单元1-2-1置为占用并永久性的从资源列表中删 除,再次重新建立进程,系统自动寻找另一个空闲的重构单元1-2-1构建相应的硬件电路, 采用本实施方式所述的方法,能够实现对重构单元1-2-1的永久性损伤的修复。
因为重构单元1-2-1是动态分配的,少量重构单元1-2-1的缺失不会对系统的性能造成明显影响。自适星载计算机可以利用SRAM型FPGA1内部的资源实现容错设计,较之 常规的冷热备份,具备更高的系统空间适应能力,避免了系统多硬件设备对卫星带来的影 响。
具体实施方式
十本实施方式是对具体实施方式
五、六、八或九所述的基于FPGA 的自适应星载计算机实现内部资源动态分配的方法的进一步限定,所述的硬件电路是数字 电路,它是协处理器电路、快速傅里叶变换电路、超越函数电路、总线控制器电路、定时器电 路或算法硬件加速模块电路。
权利要求
一种基于FPGA的自适应星载计算机,它包括SRAM型FPGA(1)、PROM型FPGA配置芯片(5)和Flash存储器(2),其特征是SRAM型FPGA(1)的内部资源包括主控单元(1-1)和重构单元阵列(1-2)两部分,其中主控单元(1-1)包括一个处理器(1-1-1)和FPGA片内配置端口(1-1-2),重构单元阵列(1-2)由n个大小完全相等的重构单元(1-2-1)组成,PROM型FPGA配置芯片(5)的配置输出端口与SRAM型FPGA(1)的片外配置输入端口相连,Flash存储器(2)的控制输入输出端口与处理器(1-1-1)的外部存储器控制输入输出端口相连,其中,n为大于0的整数。
2. 根据权利要求1所述的一种基于FPGA的自适应星载计算机,其特征是它还包括看 门狗电路(4),看门狗电路(4)由看门狗芯片实现,处理器(1-1-1)的喂狗信号输出端口与 看门狗电路(4)的喂狗信号输入端口相连,看门狗电路(4)的复位信号输出端口与SRAM型 FPGA(l)的复位信号输入端口相连。
3. 根据权利要求1或2所述的一种基于FPGA的自适应星载计算机,其特征是它还包 括SRAM存储器(3),SRAM存储器(3)的控制输入输出端口与处理器(1_1_1)的外部存储器 控制输入输出端口相连。
4. 基于权利要求1所述的一种基于FPGA的自适应星载计算机实现内部资源动态分配 的方法,其特征是内部资源动态分配的过程为步骤一、处理器(1-1-1)将SRAM型FPGA (1)内部的n个重构单元(1_2_1)都设置成空 闲状态;步骤二、当星载计算机启动一个线程时,处理器(1-1-1)根据所述线程需要的硬件电 路,将处于空闲状态的重构单元(1-2-1)构造成相应的硬件电路,并将该重构单元(1-2-1) 置为占用状态;当所述硬件电路不能够被一个重构单元(1-2-1)所容纳时,则选择物理地 址相邻的两个或多个处于空闲状态的重构单元(1-2-1)作为一个整体,并将所述整体构造 成相应的硬件电路,处理器(1-1-1)将涉及到的重构单元(1-2-1)置为占用状态;步骤三、当所述线程结束或者终止时,处理器(1-1-1)将构造有所述硬件电路的重构 单元(1-2-1)的内容清除,使其恢复到空闲状态。
5. 根据权利要求4所述的基于FPGA的自适应星载计算机实现内部资源动态分配的 方法,其特征是在步骤二中,还包括以下步骤处理器(1-1-1)将处于空闲状态的重构单元 (1-2-1)构造成硬件加速电路。
6. 根据权利要求4或5所述的基于FPGA的自适应星载计算机实现内部资源动态分配 的方法,其特征是在步骤二中,还包括以下步骤当所述进程出现错误时,注销该进程,并将 该进程涉及到的、已经构造有硬件电路的重构单元(1-2-1)的内容清除,然后重建该进程。
7. 根据权利要求6所述的基于FPGA的自适应星载计算机实现内部资源动态分配的方 法,其特征是在步骤二中,当重构单元(1-2-1)受到空间辐射影响电路功能出现错误时,处理器 (1-1-1)将注销相应进程,并将所述进程对应的重构单元(1-2-1)改回空闲状态,然后重新 建立所述进程。
8. 根据权利要求7所述的基于FPGA的自适应星载计算机实现内部资源动态分配的方 法,其特征是在步骤二中,当重构单元(1-2-1)受到空间辐射影响电路功能出现错误,且出现的是 无法修复的错误时,处理器(1-1-1)注销相应进程,并将所述重构单元(1-2-1)置为永久占 用状态,然后重新建立所述进程。
9.根据权利要求4、5、7或8所述的基于FPGA的自适应星载计算机实现内部资源动态 分配的方法,其特征是在步骤二中,所述的硬件电路是数字电路,它是协处理器电路、快速 傅里叶变换电路、超越函数电路、总线控制器电路、定时器电路或算法硬件加速模块电路。
全文摘要
一种基于FPGA的自适应星载计算机及应用所述计算机实现内部资源动态分配的方法,属于航天航空数据处理技术领域,解决了传统可重构星载计算机无法有效管理可重构FPGA资源的问题。本发明的星载计算机采用SRAM型FPGA实现,所述SRAM型FPGA的内部资源包括主控单元和由n个大小完全相等的重构单元组成的重构单元阵列,并且SRAM型FPGA支持部分重构技术。本发明的内部资源动态分配方法是当星载计算机启动一个线程时,主控单元根据线程需要的硬件电路,将处于空闲状态的重构单元构造成相应的硬件电路;当所述线程结束或者终止时,主控单元将构造有所述硬件电路的重构单元的内容清除,使其恢复到空闲状态。本发明实现了计算机对内部资源的动态分配,适用于星上数据处理。
文档编号G06F9/50GK101788927SQ20101030047
公开日2010年7月28日 申请日期2010年1月20日 优先权日2010年1月20日
发明者兰盛昌, 刘源, 叶东, 孙兆伟, 张世杰, 徐国栋, 曹星惠, 杨正贤, 董晓光, 赵丹 申请人:哈尔滨工业大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1