FPGA功能模式切换的制作方法

文档序号:16736105发布日期:2019-01-28 12:38阅读:479来源:国知局
FPGA功能模式切换的制作方法

本申请要求保护于2017年6月29日提交的美国临时申请no.62/526,477的权益和优先权。该美国临时申请no.62/526,477由此通过引用全部并入在本文中。

本发明的实施例一般涉及现场可编程门阵列(fpga)的领域,并且具体地涉及在需要fpga重配置的环境中对fpga器件的使用。



背景技术:

本文中提供的背景技术是用于一般地呈现本发明的公开内容的上下文的目的。在当前被命名为发明人的工作在本背景技术章节中描述以及该工作被描述为在提交时可能不能够另外作为现有技术的说明书的方面的程度上,该工作既不是明确表示也不是暗示被承认作为针对本发明的该当前公开内容的现有技术。

fpga的重配置通过各种方法来执行。然而,存在对克服常规方法的约束和/或缺点的持续需求。



技术实现要素:

本发明的实施例一般涉及现场可编程门阵列(fpga)的领域,并且具体地涉及在需要fpga重配置的环境中对fpga器件的使用。

在本发明的实施例中,一种装置包括:非易失性存储器设备;复杂可编程逻辑器件(cpld),其耦合到非易失性存储器设备;现场可编程门阵列(fpga),其耦合到cpld;以及,主机,其耦合到fpga;其中,该装置触发从fpga中的fpga图像到另一fpga图像的切换。

在本发明的另一实施例中,一种方法包括:通过装置来触发从现场可编程门阵列(fpga)中的fpga图像到另一fpga图像的切换;在本文中,该装置包括:非易失性存储器设备;复杂可编程逻辑器件(cpld),其耦合到非易失性存储器设备;现场可编程门阵列(fpga),其耦合到cpld;以及,主机,其耦合到fpga。

在本发明的又一实施例中,一种制品包括:非暂时性计算机可读介质,其具有存储于其上的指令,该指令可操作用于准许装置执行包括以下的方法:通过装置来触发从现场可编程门阵列(fpga)中的fpga图像到另一fpga图像的切换,其中,该装置包括:非易失性存储器设备;复杂可编程逻辑器件(cpld),其耦合到非易失性存储器设备;现场可编程门阵列(fpga),其耦合到cpld;以及,主机,其耦合到fpga。

应该理解的是,如所要求保护的,前述一般描述和以下具体实施方式都只是示例性和解释性的,并且不对本发明进行限制。例如,前述一般描述呈现经简化的发明内容,以便提供对本文中描述的一些方面的基本理解。本发明内容不是对要求保护的主题的全面概述。本发明内容并非旨在标识要求保护的主题的关键或者重要元素,也并非旨在描述其范围。本发明内容的唯一目的是以简化的形式来呈现一些概念,作为之后呈现的更详细的描述的序言。

并入并且构成本说明书的部分的附图示出了本发明的一个(若干个)实施例,并且这些附图与说明书一起,用于解释本发明的原理。

附图说明

参照附图描述本发明的非限制性和非穷尽性实施例,其中,除非另外指定,否则贯穿各种附图,相似的附图标记是指相似的部分。

然而,应该注意的是,附图仅示出了本发明的典型实施例,并且因此不被视为限制本发明的范围,这是因为本发明可以容许其它等效的实施例。

图1是根据本发明的实施例的第一场景的框图。

图2是根据本发明的实施例的第二场景的框图。

图3是根据本发明的实施例的第三场景的框图。

图4是根据本发明的实施例的方法的流程图。

具体实施方式

在以下具体实施方式中,出于解释的目的,阐明了各种具体细节以提供对本发明的各种实施例的全面理解。本领域技术人员将认识到,本发明的这些各种实施例仅为示出性的,并非旨在以任意方式进行限制。本发明的其它实施例将容易地使受益于本公开内容的本领域技术人员想到它们。

此外,出于清楚的目的,没有示出或描述本文中描述的实施例的常规特征中所有的常规特征。本领域技术人员将容易认识到,在任何这种实际实施方式的研发中,可能需要许多特定于实施方式的判定来实现特定的设计目标。这些设计目标将随一个实施方式到另一个实施方式和一个研发人员到另一个研发人员而变化。此外,将认识到的是,这种研发努力可能是复杂并耗时的,但是对于受益于本公开内容的本领域技术人员而言仅为常规的工程任务。本文中公开的各种实施例并非旨在限制本文的公开内容的范围和精神。

参照附图在本文中描述了用于实现本发明的原理的示例性实施例。然而,本发明不限于具体描述和示出的实施例。本领域技术人员将认识到,在不偏离本发明的基本概念的情况下,许多其它实施例是可能的。因此,本发明原理的范围扩展到落入所附权利要求的范围内的任何工作。

如本文中使用的,本文中的术语“一”和“一个”不表示数量上的限制,而是表示存在所引用的项中的至少一个。

在以下说明书和权利要求书中,术语“包括”和“包含”用于开放式结尾的形式,并因此应该被解释成意为“包括但不限于……”。此外,术语“耦合”(或“被耦合”)旨在表示间接或直接的电连接(或者间接或直接的光连接)。因此,如果一个设备耦合到另一设备,则该连接可以通过直接电(或光)连接,或通过经由其它设备和/或其它连接的间接电(或光)连接。

本发明的实施例呈现了可以在如下系统中使用的机制,所述系统用于具有fpga(现场可编程门阵列)设备、cpld(或者用于相同目的的任意等同的设备)、以及闪存设备(即,闪速存储器设备、或者用于相同目的的任意设备、或者任意适合的非易失性存储器设备)。多个fpga图像存储在闪存设备中。cpld(复杂可编程逻辑器件)用于存储和选择将哪个fpga图像加载到fpga中。本发明的实施例呈现了系统可以选择哪个fpga图像可以被加载到fpga器件中的机制。以下为其中使用本发明的示例场景。

(1)场景a:加载哪个fpga图像的主机控制的手动选择;

(2)场景b:当当前fpga图像损坏时fpga自动配置;和/或

(3)场景c:当当前fpga图像部分工作但是到主机的连接消失或者失败时fpga自动配置;

图1是根据本发明的实施例的在装置105的fpga功能模式切换之前的第一场景(场景a)的框图100。图1还示出了根据本发明的实施例的在装置105的fpga功能模式切换之后的第一场景(场景a)的框图108。场景a涉及将哪个fpga图像加载到fpga器件中的主机控制的手动选择(如由主机执行的)。

在本发明的实施例中,装置105包括闪存设备110、cpld115、fpga120以及主机125。闪存设备110通信地耦合到和/或电耦合到cpld115。cpld115通信地耦合到和/或电耦合到fpga120。主机125通信地耦合到和/或电耦合到fpga120。

闪存设备110存储fpga图像130。例如,fpga图像130包括ra版本1(135a),其为fpga120中的当前图像;以及ra版本2(135b),其为fpga120中的当前图像的另一版本。fpga120中的当前图像的版本数量可以变化,如点符号140所象征性地示出的。

fpga图像130还包括rs版本1(145a),其为用于fpga120的目标新图像;以及rs版本2(145b),其为用于fpga120的目标新图像的另一版本。用于fpga120的目标新图像的版本数量可以变化,如点符号150所象征性地示出的。

cpld115选择fpga图像并将其加载到fpga器件120中。cpld115将fpga图像存储到闪存设备110中。

在图100中,fpga120当前存储是当前fpga图像的ra版本1(135a)。cpld115先前选择(152)当前图像135a并且将该当前图像135a加载(152)到fpga120中。

主机125可以例如为中央处理单元(cpu)、服务器或者另一类型的计算机、或者另一类型的主机设备。主机125提供软件控制模式切换,所述软件控制模式切换用于提供fpga功能模式切换,使得主机125提供将哪个fpga图像从闪存设备加载到fpga120中的主机控制的手动选择。主机125控制从fpga120中的当前图像135a到fpga120中的目标新图像145a的切换。

fpga120包括切换控制逻辑155,其将fpga120中的当前图像135a切换为fpga120中的目标新图像145a。

以下为场景a步骤。

在步骤1(160)中,主机125触发从当前图像(ra)135a到目标新图像(rs)145a的切换。

在步骤2(165)中,fpga120内的切换控制逻辑155告诉cpld155加载新目标图像145a。

在步骤3(170)中,cpld115选择目标新图像145a并将其加载到fpga120中。

切换控制逻辑155通过切换接口175通信地耦合到和/或电耦合到cpld115。cpld115通过fpga配置接口176通信地耦合到和/或电耦合到fpga120。fpga配置接口176还在图2和图3中示出。

在图108中示出了fpga功能模式切换之后的场景a。在图108中,目标新图像145a已被加载到fpga120中。

图2是根据本发明的实施例的在装置205中的当前fpga图像损坏时fpga自动配置之前的第二场景(场景b)的框图200。图2还示出了根据本发明的实施例的在装置205的fpga自动重配置之后的第二场景(场景b)的框图208。场景b涉及当fpga(例如,fpga220)中的当前fpga图像损坏时fpga自动重配置。

在本发明的实施例中,装置205包括闪存设备110、cpld215、fpga220以及主机225。分别参照图1中的闪存设备110、cpld115、fpga120以及主机125来类似地对闪存设备110、cpld215、fpga220以及主机225的特征和/或功能进行讨论。以下还讨论了闪存设备110、cpld215、fpga220以及主机225的额外特征和/或功能。

闪存设备110通信地耦合到和/或电耦合到cpld215。cpld215通信地耦合到和/或电耦合到fpga220。主机225通信地耦合到和/或电耦合到fpga220。

闪存设备110存储fpga图像130。例如,fpga图像130包括ra版本1(135c),其为fpga220中的默认fpga图像;以及ra版本2(135d),其为fpga220中的当前fpga图像。fpga120中的当前fpga图像的版本数量可以变化,如点符号140所象征性地示出的。

fpga图像130还包括rs版本1(145a),其为用于fpga120的目标新图像;以及rs版本2(145b),其为用于fpga120的目标新图像的另一版本。用于fpga120的目标新图像的版本数量变化,可以如点符号150所象征性地示出的。

在图200中,fpga220当前存储ra版本2(当前fpga图像)135d。cpld215先前选择(252)当前fpga图像135d并且将该当前fpga图像135d加载(252)到fpga220中。

主机225控制从fpga220中的当前fpga图像135d到fpga220中的目标新图像145a的切换。

当失去来自心跳发生器262的心跳信号265时,cpld215加载默认fpga图像135c。

以下为场景b步骤。

在步骤1(260)中,心跳发生器262(在fpga220中)持续地生成心跳信号265,心跳发生器262将心跳信号265发送到cpld215。

在步骤2(267)中,心跳监视器268(在cpld215中)监视来自fpga设备220的心跳信号265。在当前fpga图像135d损坏时,心跳发生器262停止生成心跳信号265。

在步骤3(270)中,心跳监视器268检测到失去来自fpga设备220的心跳信号265。在步骤3(270)中,cpld215将默认图像135c加载(272)到fpga220中。

在步骤4(285)中,cpld215将默认图像切换信号286发送到新的fpga图像135c中的逻辑287。信号286指示在fpga220中已发生对默认fpga图像135c的切换。

在步骤5(290)中,报告292由逻辑287发送到主机125。报告292向主机225指示在fpga220中已发生对默认fpga图像135c的切换。主机125然后可以发起到fpga220中的向新目标fpga图像145a的切换。

图3是根据本发明的实施例的装置305的fpga自动重配置之前的第三场景(场景c)的框图300。图3还示出了根据本发明的实施例的装置305的fpga自动重配置之后的第三场景(场景c)的框图308。场景c涉及当fpga中的当前fpga图像部分工作但是到主机的连接失去或者失败时fpga自动重配置。

在本发明的实施例中,装置305包括闪存设备110、cpld315、fpga320以及主机325。分别参照图1中的闪存设备110、cpld115、fpga120以及主机125类似地对闪存设备110、cpld315、fpga320以及主机325的特征和/或功能进行讨论。闪存设备110通信地耦合到和/或电耦合到cpld315。cpld315通信地耦合到和/或电耦合到fpga320。主机325通信地耦合到和/或电耦合到fpga320。

闪存设备110存储fpga图像130。例如,fpga图像130包括是fpga320中的默认fpga图像的ra版本1(135c)和是fpga320中的当前fpga图像的ra版本2(135d)。fpga320中的当前fpga图像的版本的数量可以变化,如点符号140所象征性地示出的。

fpga图像130还包括是用于fpga320的目标新图像的rs版本1(145a)和是用于fpga320的目标新图像的另一版本的rs版本2(145b)。用于fpga320的目标新图像的版本的数量可以变化,如点符号150所象征性地示出的。

cpld315将默认fpga图像135c加载到fpga320中,其中,来自主机325中的心跳(heartbeat)发生器的心跳信号消失。

fpga320当前将ra版本2(当前fpga图像)135d存储在图300中。cpld115先前选择了(352)当前图像135a并且先前将当前图像135a加载(352)到了fpga320中。

主机325控制从fpga320中的默认图像到fpga320中的目标图像145a的切换。

场景c的步骤如下。

在步骤1(360)中,主机侧(即,主机325)中的心跳发生器362连续生成心跳信号365,并且心跳发生器362将心跳信号365发送到fpga器件320。

在步骤2(367)中,fpga器件320将心跳信号365传递到cpld315。fpga器件320包括心跳通过逻辑368,其将心跳信号365从主机325传递到cpld315。

在步骤3(369)中,心跳监视器370(在cpld315中)监视来自fpga器件320的心跳信号365。当当前fpga图像135d正在部分地工作,但主机连接372(例如,pcie链路或快速外围组件互连链路)消失或变得有缺陷时,来自主机325的心跳信号365不被fpga320接收。

在步骤4(375)中,心跳监视器370检测到来自fpga320的心跳信号365消失。cpld315将默认图像135c加载(377)到fpga320中。

在步骤5(380)中,cpld315将默认图像切换信号382发送到新fpga图像135c中的逻辑384。信号382指示对默认fpga图像135c的切换已发生于fpga320中。

在步骤6(385)中,关于对默认fpga图像135c的切换已发生于fpga320中的报告386从逻辑384发送到主机325。主机325然后可以发起fpga320中的到新目标fpga图像145a的切换。

图4是根据本发明的实施例的方法400的流图。

在405处,fpga存储当前fpga图像。

在410处,发生触发fpga中的fpga图像到另一fpga图像的切换的事件。

事件410可以是主机控制的手动选择。在415处,执行主机控制的手动选择以将fpga图像(在fpga中)切换为另一fpga图像。

事件410可以是当前fpga图像(在fpga中)变为损坏的。在420处,当当前fpga图像(在fpga中)损坏时,执行fpga自动配置。

事件410可以是到主机的连接遭受失败。在425处,当当前fpga图像(在fpga中)正在部分地工作,但到主机的连接失败时,执行fpga自动配置,其中,主机通信地耦合到和/或电耦合到fpga。

本发明的实施例一般涉及现场可编程场阵列(fpga)领域,并且具体地涉及在需要fpga重配置的环境中对fpga器件的使用。

在本发明的实施例中,一种装置包括:非易失性存储器设备;复杂可编程逻辑器件(cpld),其耦合到非易失性存储器设备;现场可编程门阵列(fpga),其耦合到cpld;以及主机,其耦合到fpga;其中,该装置触发fpga中的fpga图像到另一fpga图像的切换。

在本发明的另一实施例中,一种方法包括:由装置触发现场可编程门阵列(fpga)中的fpga图像到另一fpga图像的切换;本文的装置包括:非易失性存储器设备;复杂可编程逻辑器件(cpld),其耦合到非易失性存储器设备;现场可编程门阵列(fpga),其耦合到cpld;以及主机,其耦合到fpga。

在本发明的又一实施例中,一种制品包括非暂时性计算机可读介质,其具有存储于其上的指令,所述指令可操作以准许装置执行包括以下的方法:由所述装置触发现场可编程门阵列(fpga)中的fpga图像到另一fpga图像的切换;其中,该装置包括:非易失性存储器设备;复杂可编程逻辑器件(cpld),其耦合到非易失性存储器设备;现场可编程门阵列(fpga),其耦合到cpld;以及主机,其耦合到fpga。

本文使用词语“示例性”(或“示例”)来意指充当示例、实例或说明。本文中被描述为“示例性”或“示例”的任何方面或实施例或设计不一定被解释为与其他方面或实施例或设计相比是优选的或具有优势的。类似地,示例是仅出于清楚和理解的目的而在本文中被提供的,并且并不旨在以任何方式限制主题创新或其部分。应当意识到的是,可以呈现大量的另外或替代的示例,但是出于简洁的目的和/或出于聚焦于主题创新的细节的目的,已将他们省略。

如本文使用的,术语“组件”、“系统”、“模块”、“元素”和/或类似的术语旨在指代与计算机相关的实体,其可以是硬件、硬件和软件的组合、软件或执行中的软件。例如,组件或元素可以是但不限于是在处理器上运行的进程、处理器、对象、实例、可执行文件、执行线程、程序和/或计算机。例如,在计算机上运行的应用和计算机二者都可以是组件。一个或多个组件可以驻留在进程和/或执行线程内,并且组件可以位于一台计算机上和/或被分布在两台或更多台计算机之间。

本发明的前述实施例被提供为说明和描述。他们不旨在将本发明限于所描述的精确形式。具体而言,预期的是,可以用硬件、软件、固件和/或其他可用功能组件或构造块来等同地实现本文描述的发明的功能实施方式,并且网络可以是有线的、无线的或有线和无线的组合。

也在本发明的范围内的是实现如下的程序或代码,所述程序或代码能被存储在具有存储于其上的指令的非暂时性机器可读介质(或非暂时性机器可读介质或非暂时性计算机可读介质或非暂时性计算机可读介质)中,所述指令准许方法(或准许计算机)以执行以上描述的发明技术中的任一者),或者所述程序或代码能被存储在包括非暂时性计算机可读介质(非暂时性计算机可读介质)的制品中,在所述介质上存储有用于执行发明技术的实施例的计算机可读指令。依照本文讨论的教导,以上描述的实施例和方法的其他变型和修改是可能的。

包括摘要中描述的内容的本发明的示出的实施例的以上描述并非旨在穷举本发明或将本发明限于所公开的精确形式。虽然本文出于说明的目的描述了本发明的具体实施例和示例,但是在本发明的范围内各种等同修改是可能的,如相关领域技术人员将认识到的。

依照以上详细描述可以对本发明进行这些修改。所附权利要求中使用的术语不应当被解释为将本发明限于说明书和权利要求中公开的具体实施例。相反,本发明的范围要完全由所附权利要求确定,所述权利要求要根据权利要求解释的建立的原则来解释。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1