可编程逻辑器件虚拟化的制作方法

文档序号:12464476阅读:157来源:国知局
可编程逻辑器件虚拟化的制作方法与工艺

本公开总体涉及具有能够承受部分重配置的可编程逻辑的集成电路的虚拟化。



背景技术:

本部分旨在向读者介绍可能涉及下面描述和/和声明保护的本公开各方面的现有技术各方面。相信此讨论有助于向读者提供背景信息,以便于更好地理解本公开的各方面。因此,应该理解要从这一角度阅读这些陈述,而非承认为现有技术。

集成电路用于若干电子器件并且被用于若干目的。某些集成电路包括可被编程为在制造后支持各种电路结构的可编程逻辑(例如现场可编程门阵列(FPGA)结构)。这些可编程逻辑器件可以包含能够被编程为执行各种功能的可编程逻辑电路。

某些可编程逻辑器件支持称为“部分重配置”的编程形式。部分重配置涉及将初始可编程逻辑设计编程到能够在运行时间期间快速重配置的可编程逻辑设备中。因此,尽管所述初始编程逻辑设计可能花费大量编程时间(例如,小时级),但部分重配置在运行时间期间可能更快(例如,秒级)。初始可编程逻辑设计可以包括一些能够在运行时间期间快速重编程的逻辑元件。这允许所述初始可编程逻辑支持许多不同的称为“角色(persona)”的部分重配置实现方式,以在运行时间期间快速编程。

因此,部分重配置允许可编程逻辑器件切换角色的时间比用新的初始可编程逻辑设计完全重编程可编程逻辑器件所花的时间更快。尽管如此,切换角色涉及的短时间对于某些用例可能造成讨厌的延迟。对于涉及相对频繁地切换角色的用例,此延迟的影响可能是严重的。



技术实现要素:

下面记载了本文公开的某些实施例的概述。应该理解介绍这些方面仅是为了给读者提供这些某些实施例的简要概述,并且这些方面不旨在限制本公开文件的范畴。实际上,本公开文件可以涵盖下面可能未记载的各方面。

本公开的系统、方法及器件可以通过在较大的可编程逻辑器件上虚拟运行较小的可编程逻辑器件,避免与部分重配置关联的某种延迟。例如,具有大量可编程逻辑结构的较大集成电路器件可以用来仿真“虚拟的”具有少量可编程逻辑结构的较小集成电路。从外部角度来看,虚拟的较小集成电路器件在许多方面可以类似于真实的较小集成电路器件操作。然而,通过利用较大集成电路器件的较大可编程区域,虚拟的较小集成电路器件可以显得较快地执行某些操作,例如部分重配置。譬如,可以分别用不同的角色编程较大集成电路器件的可编程逻辑结构的不同分区。为了在运行第一角色与运行第二角色之间切换,较大集成电路器件能够从使用第一角色已经被编程在其中的可编程逻辑结构的分区切换到使用第二角色已经被编程在其中的可编程逻辑结构的分区。角色之间的这一切换的时间可能比对真实的小集成电路器件执行将第一角色部分重编程为第二角色的部分重配置所花的时间更快。

实际上,这表现为执行以其他方式可能快于真实的较小集成电路器件的部分重配置的虚拟的较小集成电路器件。也就是说,即使真实的小集成电路器件可能具有足够的可编程逻辑结构,以一次仅用一个角色编程(这样第一角色与第二角色之间的切换会引起某种部分重配置编程延迟),在较大集成电路器件上仿真的虚拟的较小集成电路器件可以通过利用较大集成电路器件上的大量可编程逻辑结构,以避免部分重配置的某些延迟。实际上,在某些示例中,即使当第一角色正在较大集成电路器件的可编程逻辑的一个分区中运行时,也能将第二角色编程入另一分区。一旦已经编程第二角色,切换角色可能引起从第一分区切换到第二分区——可能快于编程第二角色的时间的转换。

在第一实施例中,一种器件包括可编程逻辑结构。所述可编程逻辑结构包括第一区域,其中第一角色配置为在第一区域中编程。所述可编程逻辑结构还包括第二区域,其中第二角色配置为在第二角色编程时间内,在第二区域中编程。该器件被配置为由主机控制,以在少于第二角色编程时间的时间内从运行第一角色切换到运行第二角色。

在第二实施例中,一种系统包括可编程逻辑结构和主机。该主机被配置为最初将所述可编程逻辑结构配置为多个分区。该主机还被配置为通过在所述多个分区的第一分区内编程第一角色来部分重配置可编程逻辑结构。该主机进一步被配置为运行第一角色。主机被配置为通过在运行第一角色时在所述多个分区的第二分区内编程第二角色来部分重配置所述可编程逻辑结构。主机还配置为从运行所述第一角色切换到运行所述第二角色,其中通过在运行所述第一角色时编程所述第二角色,至少部分隐藏所述第二角色的第一编程时间。

在第三实施例中,一种方法包括将第一角色编程入集成电路的第一分区。该方法还包括运行所述第一角色。该方法进一步包括在运行第一角色时在第一编程时间内将第二角色编程入集成电路的第二分区。所述方法包括在少于所述第一编程时间的时间内,从运行所述第一角色切换到运行所述第二角色。

可以结合本公开文件的各方面,对上面记载的特征进行各种细化。还可以将进一步的特征纳入这些各方面。可以单独或任意结合地进行这些细化及附加特征。譬如,可以单独或任意结合地地将下面讨论的与一个或多个所示实施例关联的各种特征并入上面描述的本发明的任一方面。上面给出的简要概述仅旨在使读者熟悉本公开文件的实施例的某些部分和上下文,而不是限于请求保护的主题。

附图说明

经阅读下面的详细描述并且经参考附图,可以更好地理解本公开文件的各方面,其中:

图1为示出根据实施例的使用具有内部主机的集成电路架构的系统的图;

图2为示出根据实施例的使用具有外部主机的集成电路架构的系统的图;

图3为示出根据实施例的包括具有已被分区的可分区可编程区域的现场可编程门阵列(FPGA)的系统的图;

图4为示出根据实施例的包括具有拥有共享资源的重叠分区的可分区可编程区域的集成电路的系统的图;

图5为示出根据实施例的使用较大集成电路器件编程及运行部分重配置角色的方法的流程图,以使较大集成电路器件编程表现为执行部分重配置的快于真实的较小集成电路器件的虚拟的较小集成电路器件;

图6为示出根据实施例的角色过程、过程的时序、过程期间集成电路的用户感知与过程期间集成电路之间的关系的图。

图7为示出根据实施例的角色过程、过程的时序、过程期间的集成电路的用户感知与过程期间集成电路之间的关系的另一个图。

具体实施方式

下面将描述一个或多个具体实施例。为了提供这些实施例的简明描述,本说明书中未描述实际的实现方式的所有特征。应该认识到,在开发任何此类实际的实现方式时,如在任意工程或设计项目中,必须进行若干实现方式特有的决策以实现开发人员的具体目标,例如遵循系统相关及业务相关的约束,其可能因实现方式而异。而且,应该认识到,此类开发计划可能复杂并且耗时,然而对于受益于本公开的那些本领域技术人员,却是设计、构造及制造的常规工作。

本公开涉及提高集成电路器件的感知性能。具体地,较大集成电路器件可以有效地仿真较小集成电路器件(“虚拟的”较小集成电路器件),其至少在某些方面执行快于较小集成电路器件的真实版本的部分重配置。在一个示例中,可以将初始可编程逻辑设计编程到较大集成电路器件的可编程逻辑。初始可编程逻辑设计可以具有多个分区(其可以是分离或可以是重叠的),其随后能够通过“部分重配置”被编程为特定角色(persona)。因此,即使当第一角色在第一分区内运行时,第二角色也能被编程入较大集成电路器件的第二分区内。表面上,较大集成电路器件的外观为虚拟的较小集成电路的外观,虚拟的较小集成电路具有比真实的较小集成电路相比更低的部分重配置延迟。也就是说,实际上,可以隐藏编程随后的角色的延迟。实际上,从第一角色切换到第二角色所涉及的时间可能少于将第一角色重编程为第二角色所花的时间,这是因为可能已经在其它分区内编程第二角色。

考虑到上述情况,图1和2示出了能够虚拟地减少与部分重配置关联的某些延迟的可编程逻辑器件虚拟化系统10的示例。系统10可以通过使用包括外围区域14和可编程区域16的真实集成电路器件12模拟虚拟集成电路器件来这样做。集成电路器件12因而可以理解为代表或包括可编程逻辑器件(PLD)。举例来说,集成电路12可以代表例如阿尔特拉公司的10或V FPGA的现场可编程门阵列(FPGA)器件。尽管在可编程区域16的一侧示意性示出了外围区域14,但应该理解至少在某些真实的实现方式中,外围区域14可以完全绕可编程区域16延伸。外围区域14支持可编程区域16,这样可以包括输入/输出(I/O)接口(例如发送器和接收器、存储器接口等等)和时钟及数据网络控制电路。可编程区域16可以包括任意适当的可编程逻辑结构(例如,现场可编程门阵列(FPGA)结构)。

在图1的示例中,主机18被片上设置在集成电路器件12的外围区域14中,而在图2中,主机18在集成电路器件12的外部。在图1和图2的示例中,主机18可以与设置在外围区域14中的控制器20接合。基于来自主机18的指令,在初始编程可编程区域16后,控制器20可以最初将可编程区域16和/或部分重配置可编程区域16编程至某些角色。

例如,存储器或存储器件22可以存储定义部分可重配置的初始可编程逻辑设计和/或各种部分可重配置角色的程序文件24。存储器器件22可以包括、但不限于随机存取存储器(RAM)、只读存储器(ROM)、闪存等。可以使用可编程逻辑设备设计软件,例如阿尔特拉公司的软件的版本,生成程序文件24。程序文件24中的初始可编程逻辑设计可以包括编程到可编程区域16中时可以在运行时间期间实现随后的部分重配置的逻辑。也就是说,初始可编程逻辑设计可以包括通过部分重配置在运行时间期间能够快速重配置以生成称为不同“角色”的具体程序实现方式的某些逻辑元件。如上简单提及的,部分重配置涉及将初始可编程逻辑设计编程到运行时间期间能够快速重配置的可编程逻辑器件中。因此,尽管初始可编程逻辑器件可能花费(例如,小时级)大量编程时间,但运行时间期间的部分重配置可能较快(例如,秒级)。因为初始可编程逻辑设计可以包含运行时间期间被快速重编程的若干逻辑元件,所以初始可编程逻辑设计可以支持许多不同的部分重配置角色。

因为对于某些用例,即使是对部分重配置角色进行编程的相对快的延迟可能也不是期望的,所以集成电路器件12可以用于仿真较小的“虚拟”集成电路器件,以避免某些此类延迟效应。举例来说,集成电路器件12可以是例如阿尔特拉公司的10可编程逻辑器件的集成电路器件,并可以用于仿真阿尔特拉公司的V可编程逻辑器件的一个或多个虚拟版本。通常,集成电路器件12可以是在可编程区域16中具有足够的可编程逻辑以支持在可编程区域16的不同分区中编程的多个部分重配置角色的任意适当的集成电路器件。

为此,可编程区域16还可被划分为能够分别用不同角色进行编程的分区。图3为示出具有以分区不重叠的方式划分的可编程区域16的集成电路器件12的图。在图3的特定示例中,可编程区域16被划分为四个分区45:第一分区41,第二分区42,第三分区43和第四分区44。应该理解这仅是一个示例,并且可编程区域16可被划分为更多分区或更少分区。某些情况下,可以用完全相同的基础初始可编程逻辑设计(例如,能够支持随后部分重配置为相同的部分重配置角色的逻辑设计)编程所有分区。其它情况下,可以用不同的基础初始可编程逻辑设计来编程分区(例如,程序文件24可以基于位于各分区45中的资源来指定分区45)。在一个示例中,程序文件24可以指定位于集成电路器件12上的第一分区41、第二分区42、第三分区43和第四分区44,以提供对某些特定的期望组件(例如,逻辑阵列块(LAB)、嵌入式存储器块、数字信号处理(DSP)块等)的访问。

通过选择性使用各分区45,集成电路器件12表面上可能表现为具有较快的部分重配置容量的“虚拟”的较小集成电路器件。在一个特定示例中,每个分区45的大小可以大致相等,并且可以拥有大致相等的资源和容量。在此情况下,每个分区45可以表现为支持大小约为原始集成电路器件12四分之一的虚拟集成电路器件的不同角色。在某些实施例中,每个分区45大小可以不同,和/或可以拥有不同数量的资源和容量。还可以用一个或多个角色编程每个分区45。例如,可以用第一角色编程第一分区41,可以用第二角色编程第二分区42,可以用第三角色编程第三分区43,可以用第四角色编程第四分区44。还可以用第五角色编程第一分区41。

分区45可以重叠或共享资源。图4为图示根据实施例的具有拥有共享资源的分区45的可编程区域16的集成电路器件12的图。在图4的具体示例中,可编程区域16被划分为三个分区,第一分区41、第二分区42和第三分区43。第一分区41和第三分区43共享资源52(例如,LAB、嵌入式存储器块、DSP块等)。可以用角色来编程每个分区45。例如,可以用第一角色编程第一分区41,可以用第二角色编程第二分区42,可以用第三角色编程第三分区43。因为第一分区41和第三分区43共享资源52,在编程第三分区43时第一分区41可以不运行,反之亦然。

现在转向在集成电路器件12的分区45上编程和运行角色,图5为示出根据实施例的编程和运行角色的方法70的流程图。方法70可以应用到被划分为多个分区45的集成电路器件12。首先,主机18可以将第一角色编程(框72)到第一分区41中。在这段时间期间,可能当前无角色正在运行。随后,主机18可以确定(节点74)是否将第一角色编程入第一分区41。若否,方法可以返回框72。

如果主机18确定(节点74)将第一角色编程入第一分区41(节点74),主机18可以运行(框76)第一角色。从外面的角度看,集成电路器件12可以表现为运行第一角色的虚拟的较小集成电路器件。因为真实的集成电路器件12可能具有比正在集成电路器件12上运行的虚拟的较小集成电路器件更多的资源(例如可编程结构),所以集成电路器件12可以利用第一角色正在运行的时间来准备角色上的未来部分重配置切换。例如,当第一角色正在运行时,主机18可以利用这些额外资源来将第二角色编程(框78)入第二分区42。在这段时间期间,第一分区41对用户可以表现为虚拟的较小的FPGA。也就是说,第一分区41可以表现为大小为集成电路器件12的一小部分(fraction)并且拥有集成电路器件12的一小部分资源的FPGA。主机18可以确定(节点80)是否将第二角色编程入第二分区42。若否,方法可以返回框78。若是,主机18可以确定(节点82)第一角色是否已结束运行。若否,方法可以返回框78。

主机18还可以将随后的角色编程入随后的分区。例如,当第一角色正在运行时,主机18可以将第三角色编程入第三分区43。在某些实施例中,主机18可以了解将要编程的每个角色的部分重配置编程时间。例如,主机18可以了解到,第四角色具有明显长于其它角色的编程时间的编程时间(例如,为4倍)。这些实施例中,在用较短的编程时间对角色编程之前,主机18可以开始在随后的分区中用明显较长的编程时间来编程角色。例如,在第三分区43中编程具有较短编程时间的第三角色之前,主机18可以在第四分区44中编程具有明显较长编程时间的第四角色。

如果主机18确定(节点82)第一角色已结束运行,主机18可以能够从运行第一角色切换到运行(框84)第二角色;切换可能发生得比编程第二角色所花的时间快。当第二角色运行时,主机18可以将随后的角色编程入随后的分区。例如,当第二角色运行时,主机18可以将第三角色编程入第三分区43。在某些实施例中,主机18可以将随后的角色编程到之前使用的未被编程或未运行的分区。例如,当第二角色正在运行时,主机18可以将第三角色编程入第一分区41。

图5描述的实施例可以将集成电路器件12分区,使得集成电路器件12可被识别为多个虚拟并且潜在独立的FPGA。而且,在角色正在运行时编程随后的角色可以“隐藏”随后的角色的编程时间,这样可以大大减少角色编程延迟。

现在转向图6,其为示出根据实施例的角色过程112、过程112的时序114、集成电路12在过程112期间的用户感知116和过程112期间的集成电路器件12之间的关系110的图。关系110假设如图3所示集成电路器件12被划分为四个分区45,每个角色的编程时间为时间T。在某些实施例中,关系110可以包括具有不同数目的分区45的集成电路器件12和/或具有不同编程时间的角色。最初,设计者可以寻求在时间t0处运行(框120)第一角色。在时间t0处,集成电路器件12对用户可以表现为不可访问,因为当主机18正在将第一角色编程入第一分区41时当前没有角色正在运行。在t0和t1之间,对于时间段T,主机18可以将第一角色(P1)编程(PRG)(项124)到第一分区41中。如上讨论的,用于编程角色的时间一般为秒级。

在时间t1处,主机18可以完成将第一角色编程到第一分区41中。主机18接着可以运行(项128)第一角色达从t1至t1’的一时间段T1,Run。在t1至t1’之间的时间段期间,第一分区41对于用户可以表现为虚拟的较小集成电路器件126。另外,用户可以感知虚拟的较小集成电路器件126正在运行第一角色。而且在t1至t1’之间的时间段期间,当第一角色在第一分区41上运行(项128)时,主机18可以将第二角色(P2)编程(项130)到第二分区42中。用户可以没有感知到主机18正在将第二角色编程(项130)到第二分区42中,相反可以仅感知第一角色正在虚拟的较小集成电路器件126(即第一分区41)上运行。

在时间t1’处,第一角色可以结束运行。如果编程第二角色,那么主机18可以运行(框132)第二角色。用户可以感知在时间段T2的从时间t1’至t2的时间从第一角色到第二角色的变化。如上讨论的,编程每个角色的时间可以是时间T。编程每个角色的时间可以是秒级。然而,因为主机18在第一角色在第一分区41中运行(项128)时将第二角色编程(项130)入第二分区42,所以可以对用户隐藏用于第二角色的编程时间。因此,T2可以代表从第一角色改变至第二角色的时间,并且可以不包括用于第二角色的编程时间。相反,用户可以感知第一角色几乎瞬间(即微秒规模)改变为第二角色。因此,T2可以是明显小于T的时间段(即用于第二角色的编程时间)。

主机18可以运行(项136)第二角色达从t2至t2’的一时间段T2,Run。在t2至t2’之间的时间段期间,第二分区42对于用户可以表现为虚拟的小FPGA 134。另外,用户可以感知虚拟的更小FPGA 134正在运行第二角色。而且在t2至t2’之间的时间段期间,当第二角色在第二分区42上运行(项136)时,主机18可以将第三角色(P3)编程(项138)到第三分区43中。用户可以并未感知到主机18正在将第三角色编程(项138)编程到第三分区43中,相反可以仅感知第二角色正在虚拟的较小FPGA 134(即第二分区42)上运行。

在时间t2’处,第二角色可以结束运行。如果编程第三角色,那么主机18可以运行(框140)第三角色。用户可以感知在从t2’至t3的时间的时间段T3内从第二角色到第三角色的变化。如上讨论的,编程每个角色的时间可以是时间T。编程每个角色的时间可以是秒级。然而,因为主机18在第二角色在第二分区42中运行(项136)时将第三角色编程(项138)到第三分区43中,所以可以对用户隐藏用于第三角色的编程时间。因此,T3可以代表从第二角色改变至第三角色的时间,可以不包括用于第三角色的编程时间。相反,用户可以感知第二角色几乎瞬间(即微秒规模)改变至第三角色。因此,T3可以是明显小于T的时间段(即用于第三角色的编程时间)。

主机18可以运行(项144)第三角色达从t3至t3’的一时间段T3,Run。在t3至t3’之间的时间段期间,第三分区43对于用户可以表现为虚拟的较小FPGA 142。另外,用户可以感知到虚拟的较小FPGA 142正在运行第三角色。而且在t3至t3’之间的时间段期间,当第三角色在第三分区43上运行(项144)时,主机18可以将第四角色(P4)编程(项146)到第四分区44中。用户可以并未感知到主机18正在将第四角色编程(项146)编程到第四分区44中,相反可以仅感知到第三角色正在虚拟的较小FPGA142(即第三分区43)上运行。

在时间t3’处,第三角色可以结束运行。如果编程第四角色,那么主机18可以运行(框148)第四角色。用户可以感知到在从t3’至t4的时间的时间段T4内从第三角色到第四角色的变化。如上讨论的,编程每个角色的时间可以是时间T。编程每个角色的时间可以是秒级。然而,因为主机18在第三角色在第三分区43中运行(项144)时将第四角色编程(项146)到第四分区44中,所以可以对用户隐藏用于第四角色的编程时间。因此,T4可以代表从第三角色改变到第四角色的时间并且可以不包括用于第四角色的编程时间。相反,用户可以感知到第三角色几乎瞬间(即微秒规模)改变至第四角色。因此,T4可以是明显小于T的时间段(即用于第四角色的编程时间)。

主机18可以运行(项152)第四角色达从t4至t4’的一时间段T4,Run。在t4至t4’之间的时间段期间,第四分区44对于用户可以表现为虚拟的较小FPGA 150。另外,用户可以感知到虚拟的较小FPGA 150正在运行第四角色。而且在t4至t4’之间的时段期间,当第四角色正在第四分区44上运行(项152)时,主机18可以将第五角色编程(项154)入第一分区41。如上讨论的,每个分区45可以具有多个角色。用户可以没有感知到主机18将第五角色(P5)编程(项154)到第一分区41中,相反可以仅感知到第四角色正在虚拟的较小FPGA 150(即第四分区44)上运行。

在时间t4’处,第四角色可以结束运行。如果编程第五角色,那么主机18可以运行(框156)第五角色。用户可以感知到在从t4’至t5的时间的时间段T5内从第四角色到第五角色的变化。如上讨论的,编程每个角色的时间是时间T。编程每个角色的时间可以是秒级。然而,因为主机18在第四角色在第四分区44中运行(项152)时将第五角色编程(项154)到第一分区41中,所以可以对用户隐藏用于第五角色的编程时间。因此,T5可以代表从第四角色改变至第五角色的时间,并且可以不包括用于第五角色的编程时间。相反,用户可以感知到第四角色几乎瞬间(即微秒规模)改变至第五角色。因此,T5可以是明显小于T的时间段(即用于第五角色的编程时间)。

当主机18运行(项160)第五角色时,第一分区41对于用户可以表现为虚拟的较小FPGA 158。另外,用户可以感知到虚拟的较小FPGA 158正在运行第四角色。

图6描述的实施例可以对集成电路器件12进行划分,这样可以将集成电路器件12识别为多个虚拟且潜在独立的FPGA。而且,在角色正在运行时编程随后的角色可以“隐藏”随后角色的编程时间,这样可以大大减少角色编程延迟。

现在转向图7,其为示出根据实施例的当角色具有不同编程时间时角色过程222、过程222的时序224、在过程222期间集成电路12的用户感知226和在过程222期间的集成电路器件12之间的关系220的图。关系220假设如图3所示将集成电路器件12划分为四个分区45,并且第一角色、第二角色和第三角色的编程时间各为时间T,而用于第四角色的编程时间为时间4T。关系220可以包括具有不同数目的分区45的集成电路器件12和/或具有不同编程时间的角色。最初,设计者可以寻求在时间t0运行(框230)第一角色。在时间t0处,集成电路器件12对于用户可以表现为不可访问,因为在主机18正在将第一角色编程到第一分区41中时当前没有角色正在运行。在t0和t1之间的时间段T,主机18可以将第一角色(P1)编程(项234)到第一分区41中。如上讨论的,编程角色的时间一般为秒级。

在时间t1处,主机18可以完成将第一角色编程到第一分区41中。主机18接着可以运行(项238)第一角色达从t1至t1’的一时间段T1,Run。在t1至t1’之间的时间段期间,第一分区41对于用户可以表现为虚拟的较小FPGA 236。另外,用户可以感知到虚拟的较小FPGA 236正在运行第一角色。而且在t1至t1’之间的时间段期间,当第一角色在第一分区41上运行(项238)时,主机18可以将第二角色(P2)编程(项240)到第二分区42中。用户可以没有感知到主机18正在将第二角色编程(项240)编程到第二分区42中,相反可能仅感知到第一角色正在虚拟的较小FPGA 236(即第一分区41)上运行。

在时间t1”(t1和t1’之间的时间)处,当第一角色继续在第一分区41中运行(项238)时,主机18可以结束将第二角色编程(项240)编程入第二分区42。主机18接着可以将第四角色(P4)编程(项242)到第四分区44中。因为主机18可以访问程序文件24并预先知道第四角色的编程时间明显长于其它三个角色的编程时间(即,在此示例中为4倍),所以主机18将第四角色编程(项242)到第四分区44中。

在时间t1’处,第一角色可以结束运行。如果编程第二角色,那么主机18可以运行(框244)第二角色。用户可以感知到在从t1’至t2的时间的时间段T2内从第一角色到第二角色的变化。如上讨论的,编程第二角色的时间可以是时间T。编程每个角色的时间可以是秒级。然而,因为当第一角色在第一分区41中运行(项238)时主机18将第二角色编程(项240)到第二分区42中,所以可以对用户隐藏用于第二角色的编程时间。因此,T2可以代表从第一角色改变至第二角色的时间并且可以不包括用于第二角色的编程时间。相反,用户可以感知到第一角色几乎瞬间(即微秒级)改变至第二角色。因此,T2可以是明显小于T的时间段(即用于第二角色的编程时间)。

主机18可以运行(项248)第二角色达从t2至t2’的一时间段T2,Run。在t2至t2’之间的时间段期间,第二分区42对于用户可以表现为虚拟的较小FPGA 246。另外,用户可以感知到虚拟的较小FPGA 246正在运行第二角色。而且在t2至t2’之间的时间段期间,当第二角色在第二分区42上运行(项136)时,主机18可以将第三角色(P3)编程(项250)到第三分区43中。用户可以没有感知到主机18将第三角色编程(项250)编程入第三分区43,相反可以仅感知第二角色在虚拟的较小FPGA 246(即第二分区42)上运行。

在时间t2”(t2和t2’之间的时间)处,当第二角色继续在第二分区42中运行(项248)时,主机18可以结束将第三角色编程(项250)到第三分区43中。主机18接着可以确定是否将第四角色编程到第四分区44中。若否,主机18可以将第四角色编程或继续编程(项242)到第四分区44中。因为主机18可以访问程序文件24并预先知道第四角色的编程时间明显长于其它三个角色的编程时间(即,在此示例中,为4倍),所以主机18将第四角色编程(项242)入第四分区44。

在时间t2’处,第二角色可以结束运行。如果编程第三角色,那么主机18可以运行(框252)第三角色。用户可以感知到在从t2’至t3的时间的时间段T3内从第二角色到第三角色的变化。如上讨论的,编程第三角色的时间可以是时间T。编程第三角色的时间可以是秒级。然而,因为当第二角色在第二分区42中运行(项248)时,主机18将第三角色编程(项250)入第三分区43,所以可以对用户隐藏用于第三角色的编程时间。因此,T3可以代表从第二角色改变至第三角色的时间并且不包括用于第三角色的编程时间。相反,用户可以感知到第二角色几乎瞬间(即微秒级)改变至第三角色。因此,T3可以是明显小于T的时间段(即用于第三角色的编程时间)。

主机18可以运行(项144)第三角色达从t3至t3’的一时间段T3,Run。在t3至t3’之间的时间段期间,第三分区43对于用户可以表现为虚拟的较小FPGA 254。另外,用户可以感知到虚拟的较小FPGA 254正在运行第三角色。主机18可以确定是否将第四角色编程入第四分区44。若否,当第三角色在第三分区43上运行(项256)时,主机18可以将第四角色编程或继续编程(项242)入第四分区44。用户可以没有感知到主机18正在将第四角色编程(项242)编程入第四分区44,相反可以仅感知在虚拟的较小FPGA 254(即第三分区43)上运行的第三角色。

在时间t3’处,第三角色可以结束运行。如果编程第四角色,那么主机18可以运行(框258)第四角色。用户可以感知到在从时间t3’至t4的时间的时间段T4内从第三角色到第四角色的变化。如上讨论的,编程第四角色的时间可以是时间4T。如上讨论的,编程角色的时间一般是秒级。然而,因为当第一角色、第二角色和第三角色运行时主机18可能已经将第四角色编程(项242)入第四分区44,所以可以对用户隐藏用于第四角色的编程时间。因此,T4可以代表从第三角色改变至第四角色的时间并且不包括用于第四角色的编程时间。相反,用户可以感知到第三角色几乎瞬间(即微秒级)改变至第四角色。因此,T4可以是明显小于4T的时间段(即用于第四角色的编程时间)。

当主机18运行(项262)第四角色时,第四分区44对于用户可以表现为虚拟的较小FPGA 260。另外,用户可以感知到虚拟的较小FPGA 260正在运行第四角色。

图7描述的实施例可以划分集成电路器件12,这样可以将集成电路器件12识别为多个虚拟且潜在独立的FPGA。而且,在角色运行时编程随后的角色可以“隐藏”随后角色的编程时间,这样可以大大减少角色编程延迟。

虽然本公开文件记载的实施例可以容易有各种更改和替换形式,本文通过举例在附图中示出并且详细描述了具体实施例。然而,应该理解本公开并不旨在限于公开的特定形式。如随后所附的权利要求定义的,本公开涵盖落入本公开件的精神及范畴内的所有更改、等同体和替代方式。

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