CN105683939A - 用于在诸如fpga的动态可重新配置硬件装置以及诸如cpu的指令集处理器上同时执行进程的计算平台、可重新配置硬件装置和方法、以及相关的计算机可读介质 - Google Patents
用于在诸如fpga的动态可重新配置硬件装置以及诸如cpu的指令集处理器上同时执行进程的计算平台、可重新配置硬件装置和方法、以及相关的计算机可读介质 Download PDFInfo
- Publication number
- CN105683939A CN105683939A CN201480056005.4A CN201480056005A CN105683939A CN 105683939 A CN105683939 A CN 105683939A CN 201480056005 A CN201480056005 A CN 201480056005A CN 105683939 A CN105683939 A CN 105683939A
- Authority
- CN
- China
- Prior art keywords
- reconfigure
- hardware unit
- manager
- hardware
- dynamically
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7867—Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
- G06F15/7871—Reconfiguration support, e.g. configuration loading, configuration switching, or hardware OS
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4411—Configuring for operating with peripheral devices; Loading of device drivers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5044—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
- Logic Circuits (AREA)
Abstract
一种计算平台,其包括:诸如现场可编程门阵列FPGA这样的可重新配置硬件装置,和被布置成与可重新配置硬件装置进行通信的至少一个处理器,被布置成在至少一个处理器上被执行且被布置成对包括多个进程的至少一个应用程序的执行进行管理的操作***,其中,该计算平台还包括:重新配置管理器和任务管理器,该重新配置管理器被布置成基于要执行的进程以及即时可用的可重新配置硬件装置资源而在运行时动态地重新配置可重新配置硬件装置,其中,重新配置通过对硬件装置进行编程来物理地改变可重新配置硬件装置资源,该任务管理器被布置成与重新配置管理器进行队列通信以及在至少一个处理器和可重新配置硬件装置中的任一个上调度进程。
Description
技术领域
本发明一般地涉及具有至少一个处理器以及可重新配置硬件装置的计算平台,更具体地,涉及基于用户偏好、要执行的进程以及即时可用的可重新配置硬件装置资源来动态地对可重新配置硬件装置进行重新配置的计算平台及方法。
背景技术
通常,针对特定、专用且单一的应用程序来设计具有可重新配置硬件装置的计算平台的硬件配置。虽然应用程序的配置可以包括多个硬件功能,但是通常并不将该配置设计成允许不同的且不相关的应用程序在可重新配置硬件装置的情况下同时共享相同的资源。
美国专利申请2009/0187756公开了一种用于可重新配置计算平台的动态硬件和软件多任务方法,该可重新配置计算平台包括诸如现场可编程门阵列FPGA这样的可重新配置硬件装置以及诸如专用硬件/软件操作***和中间件这样的软件且能够支持所述方法,即多任务方法。
所公开的计算平台是包括一个或更多个指令集处理器(ISP)以及诸如FPGA这样的可重新配置门阵列的异构多处理器平台,该异构多处理器平台适于动态硬件/软件多任务。
该美国专利申请中所承认的根本问题是基于服务质量(QoS)度量从ISP向可重新配置硬件或者从可重新配置硬件向ISP动态地交换任务的调度问题。该方法包括其中任务被分割以在硬件上被执行或以软件被执行的功能模型。描述了任务的执行要求基础的ISP和硬件的虚拟化以确保软件和硬件功能相同从而能够在运行时期间从硬件向ISP或者从ISP向硬件动态地交换任务。
对于描述用于基于前提条件确定抢占式(pre-emptive)调度,即在处理器和硬件装置中任一个上调度任务的方法已经做了大量工作。美国专利申请2009/0187756公开了一种灵活使用计算平台的可用资源的方法。
该方法包括以下步骤:首先对可重新配置装置进行配置,使得其能够执行第一多个硬件任务,随后在计算平台上基本上同时执行应用程序的第一组任务,中断第一组任务的执行,其中当执行任务时发生中断。
在下文中,对可重新配置硬件装置进行重新配置使得能够执行至少一个新的硬件任务而非第一多个硬件任务中的一个任务,然后在平台上基本同时执行第二组任务以进一步执行应用程序,其中应用程序包括多个任务,可以作为处理器上的软件任务或者作为可重新配置硬件装置上的硬件任务来选择性地执行若干任务。
上面提到的美国专利申请的主要方面在于:硬件任务和软件任务的执行可以被中断且被重新部署在异构平台上的任意位置,以及可以使任务执行继续。由于使用QoS度量,因而能够实时地执行以上操作。上述操作对硬件和软件基础设施以及软件中间件的实现进行约束和限制以对所执行的任务、片(tile)和路由基础设施的重新配置进行管理。
所公开的方法和计算平台的缺点在于:由于可重新配置硬件装置被配置成使得其能够执行多个硬件任务,因此可重新配置硬件装置应当在尺寸上相对较大。这导致可重新配置硬件装置资源的浪费,这是因为没有利用硬件装置的、被配置为执行如下任务的部分:这些任务随后在处理器上被调度而不是在硬件装置上被调度。
所公开的方法和计算平台的另外的缺点是在可重新配置硬件装置上要被执行的任务的类型方面缺乏灵活性。在突然出现不属于第一多个硬件任务中的任务的情况下,不能在可重新配置硬件装置上执行这些任务。同样地,硬件装置的功能被绑定至最初的第一组多个硬件任务。
因此,本发明的目的是提供一种能够在处理器上或在硬件装置上更灵活地调度进程的计算平台和方法,并且其中,更有效地利用硬件装置的容量。
本发明的另外的目的是保持当前的软件平台开发和执行流程以及提供用于将硬件进程无缝地纳入具有与软件进程相同的执行特性的程序执行中的手段。
发明内容
为了实现该目的,根据本发明的第一方面,本发明提供了一种计算平台,其包括:可重新配置硬件装置,例如现场可编程门阵列FPGA;至少一个处理器,其被布置成与可重新配置硬件装置进行通信;以及操作***,其被布置成在至少一个处理器上被执行以及被布置成对包括多个进程的至少一个应用程序的执行进行管理。
该计算平台还包括:第一编程并发进程执行框架,其包括在至少一个可重新配置硬件装置上的一个或多个预定义的可重新配置区域;路由基础设施,其被布置成在框架内交换数据;可重新配置基础设施,其被布置成对可重新配置区域重新编程;以及可重新部署且即时可用的用户定义的硬件功能的库,其中,硬件功能与并发执行框架中的预定义的可重新配置区域相兼容;以及重新配置管理器,其被布置成基于要执行的进程和即时可用的可重新配置硬件装置资源而在运行时动态地重新配置可重新配置硬件装置,其中,重新配置通过对硬件装置进行编程来物理地改变可重新配置硬件装置资源;以及任务管理器,其被布置成与重新配置管理器和ISP进行队列通信以及调度至少一个处理器和至少一个可重新配置硬件装置中的任一个上的进程,其中ISP作为可重新配置硬件装置的一部分是以物理实例的形式或者作为软核。
本发明基于以下原理:可以在运行时即被编程期间改变可重新配置硬件装置即FPGA的各个块的功能,使得功能与要执行的进程匹配。
在本发明的上下文中,可重新配置硬件装置通常包括多个可配置逻辑块和用于互连可配置逻辑块的互连结构。可重新配置硬件装置可以是逻辑门阵列,例如FPGA。对硬件装置进行重新配置意味着对逻辑块的功能进行编程,即,例如通过使用作为超高速集成电路硬件描述语言VHDL设计的合成结果的部分比特流来改变FPGA的实际硬件设计。同样地,重新配置被视为包括FPGA结构的功能的实现。
在一个示例中,重新配置管理器被布置成对FPGA的逻辑块进行分割和分配。为了有效地对FPGA进行重新配置,发明人注意到,这些功能应当基于用户偏好、要执行的进程以及即时可用的可重新配置硬件装置资源。提供了将FPGA逻辑划分成多个分区的FPGA分割文件,该多个分区例如是相等分区。
每个分区被用作被分配给硬件的进程的执行环境。接下来,提供了FPGA功能块,即限定某个任务所要求的功能的功能块。针对FPGA的特定分区对这些功能块进行编译。在一个示例中,重新配置管理器还被布置成对将功能块实例化和释放至针对相应功能块所保留的分区进行控制。
很多不同的应用程序适合于使用根据本发明的计算平台。特别地,具有有限空间或诸如移动电话这样的资源的应用程序同时要求灵活性和强大的计算引擎,例如多媒体应用程序。
可以在单个壳体中实现根据本发明的计算平台,其中,包括至少一个处理器和可重新配置硬件装置,例如具有集成的ISP的FPGA或者具有软核ISP装置平台的纯FPGA结构,或者可以在多个壳体中实现根据本发明的计算平台,例如与可重新配置硬件装置分隔开的至少一个处理器。
调度资源共享是在指令集处理器上运行进程的应用程序的特性。发明人注意到,在给出根据本发明的方法和执行框架的情况下,可重新配置硬件装置的可重新配置特性允许以与在应用程序处理器中常见的方式相似的方式来使用硬件装置的资源。
根据本发明的方法提供以下可能性:维护当前的软件平台开发和执行流程,以及提供无缝地纳入硬件执行的进程的手段,其包括动态创建和移除。在一个实施方式中,利用中间件和自主操作的数据路由机制来解决任务管理和数据流处理。
作为可重新配置硬件装置的一部分,至少一个处理器可以例如以物理实例的形式或者作为软核。
在本发明的一个实施方式中,处理器被布置成经由计算平台中所包括的硬件管理单元而与可重新配置硬件装置进行通信,其中,硬件管理单元还被布置成实现直接进程间通信。
直接进程间通信意味着例如FPGA中的各个功能块,即运行进程的处理单元,能够在没有诸如操作***这样的处理器干预的情况下进行通信,即彼此共享数据。此外,各个功能块可以与处理器上运行的进程直接进行通信,反之亦然。进程间通信还为进程提供使它们的动作同步的可能性。
在另外的实施方式中,硬件管理单元至少部分地被包括在可重新配置硬件装置中。
在另外的实施方式中,可重新配置硬件装置包括多个用户定义的分区,每个分区可以由重新配置管理器动态地重新配置,其中,重新配置管理器可以物理地改***件资源。
分区被定义为FPGA中的多个可配置逻辑块,其中,每个片被布置成利用进程来执行任务。分区的分配,即大小和位置,以及对这些分区的编程是重新配置管理器的职责。为了提高FPGA的效率,重新配置管理器被布置成在FPGA结构上彼此紧密地布置具有执行需要彼此共享数据的进程的功能的分区。
在一个示例中,动态地重新配置可重新配置硬件装置是基于分区的大小、要执行的进程以及可重新配置分区的数量来进行的。
上面提到的示例的优点在于:由于分区的大小与需要执行的分区的功能匹配,因此能够更有效地利用PFGA的资源。这导致以下情况:与现有技术***相比,有可能在可重新配置硬件装置上调度更多的进程。如在现有技术***中那样,FPGA的某些部分被编程有实际上多余的功能,因为要执行的进程不需要该功能。
在本发明的另一实施方式中,操作***还包括内核,以及其中,重新配置管理器和任务管理器被包括在内核中。
上面提到的实施方式的优点在于计算平台可以容易地与具有已知内核的已知操作***集成。
在本发明的又另一实施方式中,计算平台还包括用于可重新配置硬件装置和处理器的存储器,其中,存储器包括表示可重新配置硬件装置的逻辑功能的逻辑构造块,其中,重新配置管理器被布置成利用存储器中的逻辑构造块而在运行时动态地重新配置可重新配置硬件装置。
上面提到的实施方式的优点在于终端用户能够修改存储器中的逻辑构造块,重新配置管理器使用所述构造块以例如通过使用包括这些构造块的库来对FPGA进行编程。通过更新存储器中的可用逻辑构造块的库来容易地添加新的功能或者修改逻辑构造块的功能。
在第二方面中,本发明提供了一种用于动态地重新配置计算平台的方法,该平台包括:可重新配置硬件装置,例如现场可编程门阵列FPGA;处理器,其被布置成与可重新配置硬件装置进行通信;以及操作***,其被布置成在处理器上被执行且被布置成对包括多个进程的至少一个应用程序的执行进行管理。
该方法包括以下步骤:由重新配置管理器基于用户偏好、要执行的进程以及即时可用的可重新配置硬件装置资源而在运行时动态地重新配置可重新配置硬件装置,其中重新配置是通过对硬件装置进行编程来物理地改变可重新配置硬件装置资源来实现的;以及由与重新配置管理器通信的任务管理器在所述处理器和可重新配置硬件装置中的任一个上调度进程。
在该方面的实施方式中,该方法还包括经由计算平台中所包括的硬件管理单元进行直接进程间通信的步骤。
在另外的实施方式中,可重新配置硬件装置包括多个分区,每个分区可以由重新配置管理器动态地重新配置,其中,动态地重新配置可重新配置硬件装置的步骤包括通过动态地对硬件装置进行编程来物理地改变分区的硬件资源。
在另一个实施方式中,可重新配置硬件装置包括多个分区,每个分区可以由重新配置管理器动态地重新配置,其中,动态地重新配置可重新配置硬件装置的步骤包括通过动态地对硬件装置进行编程来物理地改变分区的硬件资源。
在又另一个实施方式中,动态地重新配置可重新配置硬件装置的步骤还包括以下步骤:基于要执行的进程来确定分区的大小;在所述可重新配置硬件装置上分配所述大小;以及利用与要执行的进程相对应的功能来对分区进行编程。在一个示例中,该方法还包括管理可重新配置硬件装置上的片的步骤。
在一个示例中,动态地重新配置可重新配置硬件装置的步骤是由操作***中所包括的内核来执行的。
在第三方面中,本发明提供了一种存储包括内核的操作***的计算机可读介质,该操作***当在包括诸如现场可编程门阵列FPGA这样的可重新配置硬件装置以及被布置成与所述可重新配置硬件装置进行通信的处理器的计算平台上被执行时,执行包括以下步骤的方法:由重新配置管理器基于用户偏好、要执行的进程以及即时可用的可重新配置硬件装置资源而在运行时动态地重新配置可重新配置硬件装置,其中重新配置是通过对硬件装置进行编程来物理地改变可重新配置硬件装置资源;以及由与重新配置管理器通信的任务管理器在所述处理器和可重新配置硬件装置中的任一个上调度进程。
在第四方面中,本发明提供了一种可重新配置硬件装置,例如现场可编程门阵列FPGA,其包括并发进程执行框架,该并发进程执行框架包括一个或多个预定义的可重新配置区域,其中,可重新配置硬件装置被布置成在根据本发明的计算平台中操作。
现将参照附图更详细地说明本发明,附图仅用于说明本发明且不得被解释为限制本发明。
附图说明
图1示意性地示出了根据本发明的实施方式的、随时间演进的异构可重新配置计算平台的典型应用程序;
图2示意性地示出了根据本发明的适合于与计算平台一起使用的通用进程通信网络;
图3示意性地示出了根据本发明的包括多核处理器和可配置硬件装置的计算平台的示例。
具体实施方式
图1示意性地示出了根据本发明的实施方式的异构可重新配置计算平台1的典型应用程序。
这样的平台的特征在于:其包括多个处理单元,例如ISP、FPGA、DSP和/或GPU2、GPU3、GPU4。所标识的进程—整个应用程序的一部分—具有可以在计算平台内的任意处理单元2、3、4上被执行的功能,任意处理单元是可重新配置硬件装置,例如现场可编程门阵列“FPGA#1”4,或者是至少一个处理器“CPU#1”2和/或“CPU#2”3。
异构可重新配置计算平台1适合于并行运行若干应用程序。每个应用程序包括一个或更多个进程。随着时间5的流逝,表征应用程序的进程的配置可以根据时间参考点T06处的环境变化而变化。应用程序仅在附图标记为CPU#1的CPU处映射了进程。在时间参考点T17时,应用程序的同一架构处于适当的位置上,但是进程被动态地重新部署在附图标记为CPU#12、CPU#23和FPGA#14的不同处理单元处。这些应用程序包括连续或并行的多个进程。在时间参考点T28处,应用程序的进程架构已经改变,且在不同的处理单元上对进程进行动态地重新部署和重新配置。
计算平台1上运行的进程管理器被布置成在“CPU#1”2、“CPU#2”3和“FPGA1”4中的任一个上调度这些进程。
为了动态地重新配置应用程序,对于该目标处理单元而言,功能的实现必须可用。由终端用户即程序员基于适合于特定应用程序的参数,即基于要执行的进程以及即时可用的可重新配置硬件装置资源,来确定处理网络内的实际分割、资源分配和功能指派。
在该环境下,进程和线程实现处理单元上所执行的编程功能。基于所施加的输入数据和内部状态,进程和线程产生输出数据。方法学的可重新配置特性允许以下操作:将功能从一个处理单元重新部署至另一个处理单元,重新使用计算平台的资源。当由于例如变化的功率要求、性能要求、资源要求或优先级要求而改变应用程序的执行环境时,重新部署和重新配置是有重大意义的。
图2示意性地示出了根据本发明的适合于与计算平台1一起使用的通用进程通信网络21。
网络通常包括多个节点,即“PN#1”22、“PN#2”23、“PN#3”24、“PN#4”25、“PN#5”26以及分别相对应的队列27至32。节点表示作为例如进程、线程的进程功能,并且可以在异构平台1的任意处理单元部分上被执行,任意处理单元例如是至少一个处理器即指令处理器以及可重新配置硬件装置即可编程装置。
节点22至26利用它们的队列27至32彼此通信或者与环境通信。这些队列临时地缓存数据并且允许数据驱动的进程同步。可替选地,经由线程来组织进程同步。在这种情况下,队列使得能够异步地运行进程。包括节点和队列的网络被表示为进程网络。一般地,在异构平台1上运行的每个应用程序可以被视为被建模为处理网络。
动态可重新配置的异构处理网络1在任意处理单元上执行应用程序期间允许重新布置处理网络。通过使用进程执行管理器来保证数据和应用程序执行的完整性。
对于软件实现而言,上述操作例如由OS来管理。相对于管理FPGA执行而言,可编程装置或FPGA上的动态可重新配置部分的实现并非是平凡的,而是要求非平凡方法。FPGA装置的典型使用给予其上电功能以及在平台的整个操作周期期间保持执行同一功能。
动态部分重新配置需要FPGA上以及ISP上的基础设施来部分地修改装置的功能且保持所执行的未改变进程的功能完整性。在程序执行期间在重新配置管理器的控制下动态地执行部分FPGA重新配置,给予可编程装置上的进程的执行与指令集处理器上的进程执行类似的行为。在一个示例中,这包括FPGA上的受控执行框架以及用于在重新配置管理器的控制下重新配置可编程装置的一部分的专用重新配置基础设施。
图3示意性地示出了根据本发明的、包括多核处理器即指令集处理器42以及可编程逻辑装置即可配置硬件装置43的计算平台41的示例。
利用根据进程45、46、47的执行位置以软件或硬件实现的队列,来实现各个进程45、46、47之间的交互。利用标准的软件实现方法来隐含地实现去往和来自软件队列的数据的路由49。数据在硬件中的队列之间或者在硬件与软件之间的路由49要求数据路由的物理实现。在一个示例中,去往和来自数据队列的路由基础设施49是动态可重新配置框架44的一部分。
指令集处理器***42能够执行多个进程45。在作为OS的一部分的重新配置管理器的控制下,执行软件进程执行的重新配置。可编程逻辑装置43被布置成准确并发地执行进程46、47。可以借助于部分重新配置技术对在可编程逻辑装置43上执行这些进程46、47的物理位置进行重新编程。并发执行框架44、部分重新配置技术、重新配置管理器和进程管理器一起使得能够实现动态可重新配置进程执行框架44。
所提出的动态可重新配置进程执行框架44在不为任一规范而折衷标准的开发方法的情况下,通过为硬件和软件进程45、46、47提供类似的行为来无缝地便利典型软件开发环境中的可编程逻辑硬件的集成。该方法使得开发人员能够利用用于硬件功能和软件功能两者的抽象应用程序编程接口,从单一实现环境在异构处理平台上解决应用程序开发。必须针对进程能够在其上被执行的每个处理单元来实现基础功能。基础设施提供了处理硬件和软件两者中的实现方面的手段以便利照顾到所有低层细节的方法。
在上文中已经借助于若干示例说明了本发明。如本领域技术人员将理解的,在不背离如在所附权利要求中限定的本发明的范围的情况下,可以实现若干修改和添加。
Claims (19)
1.一种计算平台,包括:
-至少一个能够重新配置的硬件装置,例如现场可编程门阵列FPGA;
-诸如物理实体或被实现为软核的至少一个处理器,其被布置成与所述能够重新配置的硬件装置进行通信;
-操作***,其被布置成在所述至少一个处理器上被执行且被布置成对包括多个进程的至少一个应用程序的执行进行管理,其中,所述计算平台还包括:
-第一编程并发进程执行框架,其包含于所述至少一个能够重新配置的硬件装置内,且包括所述至少一个能够重新配置的硬件装置上的一个或多个预定义的能够重新配置的区域以及被布置成在所述框架内交换数据的路由基础设施,所述计算平台还包括被布置成对所述能够重新配置的区域进行重新编程的能够重新配置的基础设施;
-能够重新部署且即时可用的用户定义的硬件功能的库,其中,所述硬件功能与所述并发执行框架中的所述预定义的能够重新配置的区域相兼容;
-重新配置管理器,其被布置成基于要执行的进程以及即时可用的能够重新配置的硬件装置资源而在运行时动态地重新配置所述能够重新配置的硬件装置,其中,所述重新配置通过对所述硬件装置进行编程来物理地改变所述能够重新配置的硬件装置资源;
-任务管理器,其被布置成与所述重新配置管理器进行队列通信以及在所述至少一个处理器和所述至少一个能够重新配置的硬件装置中的任一个上调度所述进程。
2.根据权利要求1所述的计算平台,其中,所述路由基础设施被布置成利用数据队列而在所述框架内交换数据。
3.根据前述权利要求中任一项所述的计算平台,其中,所述任务管理器还被布置成根据编程环境而动态地重新布置要执行和调度的所述进程。
4.根据前述权利要求中任一项所述的计算平台,其中,所述能够重新配置的硬件装置包括多个片,每个片能够由所述重新配置管理器实时动态地重新配置,其中,动态地重新配置所述能够重新配置的硬件装置包括通过动态地对所述硬件装置进行编程来物理地改变所述片的硬件资源。
5.根据权利要求4所述的计算平台,其中,所述路由基础设施被布置成在所述多个片之间交换数据。
6.根据权利要求4和5中任一项所述的计算平台,其中,动态地重新配置所述能够重新配置的硬件装置包括基于要执行的进程来确定所述片的大小,在所述能够重新配置的硬件装置上分配所述大小,以及利用与所述要执行的进程相对应的功能对所述片进行编程。
7.根据权利要求4至6中任一项所述的计算平台,其中,所述重新配置管理器还被布置成管理所述能够重新配置的硬件装置上的所述片。
8.根据前述权利要求中任一项所述的计算平台,其中,所述操作***还包括内核,以及其中,所述重新配置管理器和所述任务管理器包含于所述内核中。
9.根据前述权利要求中任一项所述的计算平台,其中,所述计算平台还包括用于所述能够重新配置的硬件装置和所述处理器的共享存储器,其中,无论是否在所述至少一个处理器和所述能够重新配置的硬件装置上调度所述进程,所述进程都利用所述共享存储器来交换数据。
10.一种用于动态地重新配置计算平台的方法,所述平台包括:至少一个能够重新配置的硬件装置,例如现场可编程门阵列FPGA;处理器,其被布置成与所述至少一个能够重新配置的硬件装置进行通信;以及操作***,其被布置成在所述处理上被执行且被布置成对包括多个进程的至少一个应用程序的执行进行管理,其中,所述计算平台还包括:
-第一编程并发进程执行框架,其包含于所述至少一个能够重新配置的硬件装置内,且包括所述至少一个能够重新配置的硬件装置上的一个或多个预定义的能够重新配置的区域以及被布置成在所述框架内交换数据的路由基础设施,所述计算平台还包括被布置成对所述能够重新配置的区域进行重新编程的能够重新配置的基础设施;
-能够重新部署且即时可用的用户定义的硬件功能的库,其中,所述硬件功能与所述并发执行框架中的所述预定义的能够重新配置的区域相兼容;
-重新配置管理器,其被布置成基于要执行的进程以及即时可用的能够重新配置的硬件装置资源而在运行时动态地重新配置所述能够重新配置的硬件装置,其中,所述重新配置通过对所述硬件装置进行编程来物理地改变所述能够重新配置的硬件装置资源;
-任务管理器,其被布置成与所述重新配置管理器进行队列通信且在所述至少一个处理器和所述至少一个能够重新配置的硬件装置中的任一个上调度所述进程,
所述方法包括以下步骤:
-由重新配置管理器基于用户偏好、要执行的进程以及即时可用的能够重新配置的硬件装置资源而在运行时动态地重新配置所述能够重新配置的硬件装置,其中,所述重新配置通过对所述硬件装置进行编程来物理地改变所述能够重新配置的硬件装置资源;
-由与所述重新配置管理器通信的任务管理器在所述处理器和所述可重新配置硬件装置中的任一个上调度所述进程,以及
-利用所述路由基础设施而在所述框架内交换数据。
11.根据权利要求10所述的方法,其中,在所述框架内交换数据的所述步骤包括利用数据队列而在所述框架内通过使用所述路由基础设施来交换数据。
12.根据权利要求10和11中任一项所述的方法,还包括经由所述计算平台中所包含的硬件管理单元而进行直接进程间通信的步骤。
13.根据权利要求10至12中任一项所述的方法,其中,所述能够重新配置的硬件装置包括多个片,每个片能够由所述重新配置管理器来动态地重新配置,其中,动态地重新配置所述能够重新配置的硬件装置的所述步骤包括通过动态地对所述硬件装置进行编程来物理地改变所述片的硬件资源。
14.根据权利要求13所述的方法,其中,在所述框架内交换数据的所述步骤包括在所述能够重新配置的硬件装置中所包含的所述多个片之间交换数据。
15.根据权利要求10至14中任一项所述的方法,其中,动态地重新配置所述能够重新配置的硬件装置的所述步骤还包括以下步骤:
-基于要执行的进程来确定所述片的大小,
-在所述能够重新配置的硬件装置上分配所述大小,以及
-利用与所述要执行的进程相对应的功能来对所述片进行编程。
16.根据权利要求10至15中任一项所述的方法,还包括管理所述能够重新配置的硬件装置上的所述片的步骤。
17.根据权利要求10至16中任一项所述的方法,其中,动态地重新配置所述能够重新配置的硬件装置的所述步骤是由所述操作***中所包含的内核来执行的。
18.一种存储包括内核的操作***的计算机可读介质,所述操作***当在包括诸如现场可编程门阵列FPGA这样的能够重新配置的硬件装置以及被布置成与所述能够重新配置的硬件装置进行通信的处理器的计算平台上被执行时执行包括以下步骤的方法:
-由重新配置管理器基于用户偏好、要执行的进程以及即时可用的能够重新配置的硬件装置资源而在运行时动态地重新配置所述能够重新配置的硬件装置,其中,所述重新配置通过对所述硬件装置进行编程来物理地改变所述能够重新配置的硬件装置资源;
-由与所述重新配置管理器通信的任务管理器在所述处理器和所述能够重新配置的硬件装置中的任一个上调度所述进程;
-利用所述能够重新配置的硬件装置内所包含的路由基础设施而在所述框架内交换数据。
19.一种诸如现场可编程门阵列FPGA这样的能够重新配置的硬件装置,其包括并发进程执行框架,所述并发进程执行框架包括一个或多个预定义的能够重新配置的区域,其中,所述执行框架被布置成在根据权利要求1至9中任一项所述的计算平台中进行操作。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
NL2011315A NL2011315C2 (en) | 2013-08-19 | 2013-08-19 | A computing platform, a reconfigurable hardware device and a method for simultaneously executing processes on dynamically reconfigurable hardware device, such as an fpga, as well as instruction set processors, such as a cpu, and a related computer readable medium. |
NL2011315 | 2013-08-19 | ||
PCT/NL2014/050568 WO2015026233A1 (en) | 2013-08-19 | 2014-08-19 | A computing platform, a reconfigurable hardware device and a method for simultaneously executing processes on dynamically reconfigurable hardware device, such as an fpga, as well as instruction set processors, such as a cpu, and a related computer readable medium. |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105683939A true CN105683939A (zh) | 2016-06-15 |
Family
ID=49640117
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480056005.4A Pending CN105683939A (zh) | 2013-08-19 | 2014-08-19 | 用于在诸如fpga的动态可重新配置硬件装置以及诸如cpu的指令集处理器上同时执行进程的计算平台、可重新配置硬件装置和方法、以及相关的计算机可读介质 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20160202999A1 (zh) |
EP (1) | EP3036652A1 (zh) |
CN (1) | CN105683939A (zh) |
NL (1) | NL2011315C2 (zh) |
WO (1) | WO2015026233A1 (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108073459A (zh) * | 2018-01-02 | 2018-05-25 | 联想(北京)有限公司 | 一种电子设备的cpu的管理方法及装置 |
CN108182168A (zh) * | 2017-12-27 | 2018-06-19 | 电子科技大学 | 一种支持动态可重构的一体化数字信号处理*** |
US20190026247A1 (en) * | 2017-07-18 | 2019-01-24 | Fujitsu Limited | Information processing apparatus and information processing method |
CN110023905A (zh) * | 2016-11-17 | 2019-07-16 | 亚马逊技术股份有限公司 | 联网可编程逻辑服务提供商 |
CN112180788A (zh) * | 2020-09-28 | 2021-01-05 | 西安微电子技术研究所 | 动态关联脉络的控制平台架构设计方法、存储介质及设备 |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10270709B2 (en) | 2015-06-26 | 2019-04-23 | Microsoft Technology Licensing, Llc | Allocating acceleration component functionality for supporting services |
US10296392B2 (en) | 2015-04-17 | 2019-05-21 | Microsoft Technology Licensing, Llc | Implementing a multi-component service using plural hardware acceleration components |
US9792154B2 (en) | 2015-04-17 | 2017-10-17 | Microsoft Technology Licensing, Llc | Data processing system having a hardware acceleration plane and a software plane |
US10511478B2 (en) | 2015-04-17 | 2019-12-17 | Microsoft Technology Licensing, Llc | Changing between different roles at acceleration components |
US10198294B2 (en) | 2015-04-17 | 2019-02-05 | Microsoft Licensing Technology, LLC | Handling tenant requests in a system that uses hardware acceleration components |
US10216555B2 (en) * | 2015-06-26 | 2019-02-26 | Microsoft Technology Licensing, Llc | Partially reconfiguring acceleration components |
US9698790B2 (en) * | 2015-06-26 | 2017-07-04 | Advanced Micro Devices, Inc. | Computer architecture using rapidly reconfigurable circuits and high-bandwidth memory interfaces |
NL2015064B1 (en) * | 2015-07-01 | 2017-01-30 | Topic Ip B V | A computing platform system arranged for executing a plurality of processes and a method for handling processes in one of a plurality of connected computing platforms comprised in a computing platform system. |
EP3479402B1 (en) * | 2016-06-30 | 2021-10-27 | INTEL Corporation | Method and apparatus for remote field programmable gate array processing |
CN108363615B (zh) * | 2017-09-18 | 2019-05-14 | 清华大学 | 用于可重构处理***的任务分配方法和*** |
US11630696B2 (en) | 2020-03-30 | 2023-04-18 | International Business Machines Corporation | Messaging for a hardware acceleration system |
US11360789B2 (en) | 2020-07-06 | 2022-06-14 | International Business Machines Corporation | Configuration of hardware devices |
CN111880933B (zh) * | 2020-07-27 | 2023-09-22 | 北京神舟航天软件技术有限公司 | 一种基于异构计算平台的可重构硬件任务动态分配方法 |
US11863385B2 (en) | 2022-01-21 | 2024-01-02 | International Business Machines Corporation | Optimizing container executions with network-attached hardware components of a composable disaggregated infrastructure |
CN116073890B (zh) * | 2023-03-06 | 2023-06-02 | 成都星联芯通科技有限公司 | 业务数据处理方法、装置、接收设备、地球站及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040049672A1 (en) * | 2002-05-31 | 2004-03-11 | Vincent Nollet | System and method for hardware-software multitasking on a reconfigurable computing platform |
US20050203988A1 (en) * | 2003-06-02 | 2005-09-15 | Vincent Nollet | Heterogeneous multiprocessor network on chip devices, methods and operating systems for control thereof |
CN101258469A (zh) * | 2005-09-05 | 2008-09-03 | 日本电气株式会社 | 信息处理设备 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8984107B2 (en) * | 2011-05-26 | 2015-03-17 | Electric Imp Incorporated | Optically configured modularized control system to enable wireless network control and sensing of other devices |
US11729054B2 (en) * | 2014-07-15 | 2023-08-15 | Comcast Cable Communications, Llc | Reconfigurable device for processing signals |
-
2013
- 2013-08-19 NL NL2011315A patent/NL2011315C2/en not_active IP Right Cessation
-
2014
- 2014-08-19 US US14/912,966 patent/US20160202999A1/en not_active Abandoned
- 2014-08-19 WO PCT/NL2014/050568 patent/WO2015026233A1/en active Application Filing
- 2014-08-19 EP EP14758708.3A patent/EP3036652A1/en not_active Withdrawn
- 2014-08-19 CN CN201480056005.4A patent/CN105683939A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040049672A1 (en) * | 2002-05-31 | 2004-03-11 | Vincent Nollet | System and method for hardware-software multitasking on a reconfigurable computing platform |
US20050203988A1 (en) * | 2003-06-02 | 2005-09-15 | Vincent Nollet | Heterogeneous multiprocessor network on chip devices, methods and operating systems for control thereof |
CN101258469A (zh) * | 2005-09-05 | 2008-09-03 | 日本电气株式会社 | 信息处理设备 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110023905A (zh) * | 2016-11-17 | 2019-07-16 | 亚马逊技术股份有限公司 | 联网可编程逻辑服务提供商 |
US20190026247A1 (en) * | 2017-07-18 | 2019-01-24 | Fujitsu Limited | Information processing apparatus and information processing method |
US10754817B2 (en) * | 2017-07-18 | 2020-08-25 | Fujitsu Limited | Information processing apparatus and information processing method for process order in reconfigurable circuit |
CN108182168A (zh) * | 2017-12-27 | 2018-06-19 | 电子科技大学 | 一种支持动态可重构的一体化数字信号处理*** |
CN108073459A (zh) * | 2018-01-02 | 2018-05-25 | 联想(北京)有限公司 | 一种电子设备的cpu的管理方法及装置 |
CN112180788A (zh) * | 2020-09-28 | 2021-01-05 | 西安微电子技术研究所 | 动态关联脉络的控制平台架构设计方法、存储介质及设备 |
Also Published As
Publication number | Publication date |
---|---|
NL2011315C2 (en) | 2015-02-23 |
US20160202999A1 (en) | 2016-07-14 |
EP3036652A1 (en) | 2016-06-29 |
WO2015026233A1 (en) | 2015-02-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105683939A (zh) | 用于在诸如fpga的动态可重新配置硬件装置以及诸如cpu的指令集处理器上同时执行进程的计算平台、可重新配置硬件装置和方法、以及相关的计算机可读介质 | |
CN112465129B (zh) | 片内异构人工智能处理器 | |
Singh et al. | A survey and comparative study of hard and soft real-time dynamic resource allocation strategies for multi-/many-core systems | |
US11782870B2 (en) | Configurable heterogeneous AI processor with distributed task queues allowing parallel task execution | |
Fettweis et al. | A low-power scalable signal processing chip platform for 5G and beyond-kachel | |
CN104123182B (zh) | 基于主从架构的MapReduce任务跨数据中心调度***及方法 | |
KR20210057184A (ko) | 이종 cpu/gpu 시스템에서 데이터 흐름 신호 처리 애플리케이션 가속화 | |
JP2011526040A (ja) | オペレーションの保護モードスケジューリング | |
Ahmadinia et al. | Task scheduling for heterogeneous reconfigurable computers | |
Dehnavi et al. | CompROS: A composable ROS2 based architecture for real-time embedded robotic development | |
Kumar et al. | Analyzing composability of applications on MPSoC platforms | |
Casini et al. | Addressing analysis and partitioning issues for the Waters 2019 challenge | |
Peterson et al. | Reducing overhead in the Uintah framework to support short-lived tasks on GPU-heterogeneous architectures | |
Tianyang et al. | A Survey: FPGA‐Based Dynamic Scheduling of Hardware Tasks | |
Awada et al. | Resource efficiency in container-instance clusters | |
Cao et al. | Evaluating data redistribution in parsec | |
Tan et al. | StateOS: A memory-efficient hybrid operating system for IoT devices | |
De Munck et al. | Design and performance evaluation of a conservative parallel discrete event core for GES | |
Sharma et al. | Adaptive Particle Swarm Optimization for Energy Minimization in Cloud: A Success History Based Approach | |
Choudhary et al. | FPGA-based adaptive task scheduler for real time embedded systems | |
Rodríguez et al. | Dynamic management of multikernel multithread accelerators using dynamic partial reconfiguration | |
Gammoudi et al. | New reconfigurable middleware for adaptive rtos in ubiquitous devices | |
Gumzej et al. | A reconfiguration pattern for distributed embedded systems | |
Hung et al. | Architectures for cloud-based hpc in data centers | |
Perdomo et al. | DEMAC: A Modular Platform for HW-SW Co-Design |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20160615 |
|
WD01 | Invention patent application deemed withdrawn after publication |