CN103577266A - 用于对现场可编程门阵列资源进行分配的方法及系统 - Google Patents

用于对现场可编程门阵列资源进行分配的方法及系统 Download PDF

Info

Publication number
CN103577266A
CN103577266A CN201210270573.7A CN201210270573A CN103577266A CN 103577266 A CN103577266 A CN 103577266A CN 201210270573 A CN201210270573 A CN 201210270573A CN 103577266 A CN103577266 A CN 103577266A
Authority
CN
China
Prior art keywords
functional unit
resource
fpga
resource pool
status information
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.)
Granted
Application number
CN201210270573.7A
Other languages
English (en)
Other versions
CN103577266B (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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Priority to CN201210270573.7A priority Critical patent/CN103577266B/zh
Priority to US14/418,687 priority patent/US9389915B2/en
Priority to PCT/CN2013/078047 priority patent/WO2014019428A1/en
Publication of CN103577266A publication Critical patent/CN103577266A/zh
Priority to US15/195,046 priority patent/US9823947B2/en
Application granted granted Critical
Publication of CN103577266B publication Critical patent/CN103577266B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5022Mechanisms to release resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation 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/5038Allocation 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 the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation 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/5044Allocation 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation 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/505Allocation 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 the load
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5011Pool

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)
  • Stored Programmes (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及对资源池中FPGA资源进行分配的技术方案。在一个实施例中,该技术方案包括:接收客户端对所述资源池中FPGA资源的资源请求;基于资源池状态信息记录进行资源分配操作以满足所述资源请求,所述资源池状态信息记录中包括所述资源池中FPGA的使用状态信息;基于所述资源分配操作的结果更新所述资源池状态信息记录。采用申请的技术方案,可以实现对FPGA资源分配。

Description

用于对现场可编程门阵列资源进行分配的方法及系统
技术领域
本发明涉及资源的虚拟化,更具体地,涉及一种对FPGA资源进行分配的方法及系统。
背景技术
现在,越来越多的硬件或软件资源可以基于虚拟化的方式供用户使用,随着云计算的广泛普及,IaaS(Infrastructure as a Service),即基础设施即服务,正在成为一种流行的资源使用方式。但传统的资源虚拟化主要是面向处理器、内存、存储装置以及网络等基础资源,并没有涉及对现场可编程门阵列(FieldProgrammable Gate Array,简称FPGA)的虚拟化。
FPGA作为一种半定制电路,能够反复使用,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。同一片FPGA通过不同的编程数据,可以产生不同的电路功能,因此,FPGA的使用非常灵活。目前,FPGA的品种很多,有XILINX公司的Virtex系列,还有TI公司的TPC系列、ALTERA公司的FIEX系列等。其中,赛灵思公司(XILINX)的Virtex-7系列现场可编程门阵列(FPGA),在一个FPGA芯片上能够实现120个AES加解密加速单元,或者可以实现260个ARM处理器核心,如果能够通过虚拟化的方式供用户使用,将极大的提升FPGA资源的利用效率。
综上,可以得知FPGA作为一种特殊的资源,尚未成为一种虚拟化的资源,因此,现有技术仍然存在着改善的空间。
发明内容
根据本发明的一个方面,提供了一种对资源池中FPGA资源进行分配的方法,包括:接收客户端对所述资源池中FPGA资源的资源请求;基于资源池状态信息记录进行资源分配操作以满足所述资源请求,所述资源池状态信息记录中包括所述资源池中FPGA的使用状态信息;基于所述资源分配操作的结果更新所述资源池状态信息记录。
根据本发明的另一个方面,提供了一种对资源池中FPGA资源进行分配的系统,包括:接收装置,配置为接收客户端对所述资源池中FPGA资源的资源请求;资源分配操作装置,配置为基于资源池状态信息记录进行资源分配操作以满足所述资源请求,所述资源池状态信息记录中包括所述资源池中FPGA的使用状态信息;更新装置,配置为基于所述资源分配操作的结果更新所述资源池状态信息记录。
采用本申请的技术方案,可以根据客户端的资源请求对资源池中的FPGA资源进行分配,从而提升FPGA资源的利用效率。
附图说明
通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。
图1示出了适于用来实现本发明实施方式的示例性计算系统100的框图。
图2示出了用于对FPGA资源进行分配的方法的流程图。
图3示出了一个三级状态信息记录表的示意图。
图4是实现本发明的实施例的进行带宽控制的一个例子的示意图。
图5示出了一个更为具体的任务队列的示意图。
图6是根据本发明的一个实施例的用于对FPGA资源进行分配的系统的示意性方框图。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整的传达给本领域的技术人员。
图1示出了适于用来实现本发明实施方式的示例性计算系统100的框图。如图1所示,计算机系统100可以包括:CPU(中央处理单元)101、RAM(随机存取存储器)102、ROM(只读存储器)103、系统总线104、硬盘控制器105、键盘控制器106、串行接口控制器107、并行接口控制器108、显示控制器109、硬盘110、键盘111、串行外部设备112、并行外部设备113和显示器114。在这些设备中,与系统总线104耦合的有CPU 101、RAM 102、ROM 103、硬盘控制器105、键盘控制器106、串行控制器107、并行控制器108和显示控制器109。硬盘110与硬盘控制器105耦合,键盘111与键盘控制器106耦合,串行外部设备112与串行接口控制器107耦合,并行外部设备113与并行接口控制器108耦合,以及显示器114与显示控制器109耦合。应当理解,图1所述的结构框图仅仅是为了示例的目的,而不是对本发明范围的限制。在某些情况下,可以根据具体情况增加或减少某些设备。
所属技术领域的技术人员知道,本发明可以实现为系统、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:可以是完全的硬件、也可以是完全的软件(包括固件、驻留软件、微代码等),还可以是硬件和软件结合的形式,本文一般称为“电路”、“模块”或“系统”。此外,在一些实施例中,本发明还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、电线、光缆、射频RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
下面将参照本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,这些计算机程序指令通过计算机或其它可编程数据处理装置执行,产生了实现流程图和/或框图中的方框中规定的功能/操作的装置。
也可以把这些计算机程序指令存储在能使得计算机或其它可编程数据处理装置以特定方式工作的计算机可读介质中,这样,存储在计算机可读介质中的指令就产生出一个包括实现流程图和/或框图中的方框中规定的功能/操作的指令装置(instruction means)的制造品(manufacture)。
也可以把计算机程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其它可编程装置上执行的指令能够提供实现流程图和/或框图中的方框中规定的功能/操作的过程。
下面参照图2说明根据本发明的实施例的用于对资源池中FPGA资源进行分配的方法:
在步骤210中,接收客户端对所述资源池中FPGA资源的资源请求。客户端的形式不限,既可是普通物理客户端,也可是虚拟机客户端。
可以设置控制模块(Control Module)用于实现该接收步骤,例如,在创建虚拟机时发出FPGA资源请求,位于虚拟机监视器(VMM)中的控制模块可以接收该请求。当然,该控制模块是一个独立的控制模块,并不必然位于虚拟机监视器中,所属领域技术人员能够以其它方式实现该控制模块。
通常,资源请求具有多种形式。在一个实施例中,接收到的是功能单元带宽形式的资源请求,在该种资源请求中至少包括所请求的功能单元类型、以及所请求的带宽。在另一个实施例中,所接收到的是可编程资源形式的资源请求,该种类型资源请求中至少包括所请求资源的种类和数量。在本申请中,“功能单元”特指是可通过对FPGA进行配置而具有一定功能的功能单元实例,例如AES加密功能单元。“功能单元”明显区分于FPGA中所固有的不同种类的可编程资源,例如LUT,DSP slice等等。其中,LUT是查找表(Look-Up-Table)的简称,LUT本质上就是一个RAM。目前FPGA中多使用4输入的LUT,所以每一个LUT可以看成一个有4位地址线的的RAM。当用户通过原理图或HDL语言描述了一个逻辑电路以后,PLD/FPGA开发软件会自动计算逻辑电路的所有可能结果,并把真值表(即结果)事先写入RAM,这样,每输入一个信号进行逻辑运算就等于输入一个地址进行查表,找出地址对应的内容,然后输出即可。对于其它可编程资源的种类而言,对于所属领域技术人员而言,是已有的知识,在此不做赘述。
针对不同的资源请求方式,控制模块可进行不同的处理,接下来,将在对步骤220的说明中详细阐述如何基于资源池状态信息记录进行资源分配操作以满足不同类型的资源请求。
在步骤220中,基于资源池状态信息记录进行资源分配操作以满足所述资源请求,所述资源池状态信息记录中包括所述资源池中FPGA的使用状态信息。
在一个实施例中,是在控制模块中,建立并维护该资源池状态信息记录,以用于记录和判断资源池中全部FPGA的资源当前使用状态,从而对来自各个客户端(包括客户端中的应用)的资源请求进行响应。
FPGA资源使用状态信息记录可以用任何现有的数据结构实现,例如采取数据表的方式进行存储。根据具体的需要,FPGA资源池的资源池状态信息记录可具有多个层级。在一个实施例中是由三级表组成,其逻辑关系如下:FPGA的资源池状态信息记录是FPGA芯片表,这一级表描述了在资源池中一共有多少片FPGA芯片,以及每一片FPGA的总体资源使用状况。可选的,在第一级状态记录信息中的每一项记录还可包含一个第二级表,这一级表描述了在一个FPGA芯片中,已经建立了多少个功能单元,以及功能单元的对应状态信息。可选的,在第二级表的每一项记录中还可包括一个第三级表,即,该功能单元的应用信息记录,所述应用信息记录至少包括请求该功能单元的请求者识别码以及该请求者占用该功能单元的带宽,其中,所述请求者识别码是响应于所述请求者打开一个所分配的功能单元时所生成的识别信息。这一级表描述了一个功能单元的各个请求者(例如,客户端中的应用)对该功能单元的使用状态信息。其中的信息至少应当包括请求者识别码(即SID)和QoS信息(例如,该用户占用的功能单元处理带宽信息)。在图3A及说明中将举出一个更为具体的三级结构的状态表,然而,需要说明的是,虽然此处以三级表进行示例,但并不是所有实施例中都需要三级的状态表,后面会有相应的说明。
接下来描述步骤220如何基于资源池状态信息记录进行资源分配操作:
在一个实施例中,当上述资源请求是可编程资源形式的资源请求时,在所述资源分配操作中,遍历所述资源池状态信息记录,根据所述FPGA的使用状态信息确定出满足所述所请求的可编程资源种类和数量的FPGA资源并分配给所述客户端。
具体而言,在该实施例中,收到来自某个客户端的如表1所示的一组资源请求。
表1
  LUT elements,50M
  Block memory,16M
  ......
该资源请求至少包括了该客户端需要的FPGA可编程逻辑资源的种类和数量。其中的每一行代表一个具体的资源请求,第一个资源请求表示请求50M的LUT,第二个资源请求表示请求16M的块内存。可编程逻辑资源的种类包括但不限于查找表(LUT)、块内存(block memory)、DSP slices、时钟线等。因此,接到上述资源请求后,将首先遍历FPGA芯片表,看看是否有哪片FPGA芯片上有足够的空闲资源满足该需求,如果有,则直接进行分配。如果没有,表示无法处理此情况,可以由系统管理员增加新的FPGA芯片以满足该资源请求,在本申请所公开信息的基础上,所属领域技术人员还容易可想到其它处理方式,例如拒绝请求等等,在此不做赘述。
在另一个实施例中,当上述资源请求是功能单元带宽形式的资源请求时,且所述资源池状态信息记录还包括FPGA的功能单元信息记录,所述功能单元信息记录至少包括该FPGA中已创建的功能单元信息,功能单元信息例如包括功能单元的识别码、功能单元的类型、性能以及资源分配情况等等。进而,在所述资源分配操作中,遍历所述资源池状态信息记录,基于所述功能单元信息记录,确定是否找到满足所述所请求的功能单元类型及带宽的已创建功能单元。进而,响应于找到,将所找到的功能单元分配给所述客户端;响应于未找到,创建新的功能单元并分配给所述客户端。作为替代的实施方式,响应于未找到,还可以拒绝客户端的资源请求。
具体而言,用一个更为具体的例子来说明该实施方式,参看表2,是接收到的来自某客户端的一组资源请求。
表2
  AES,128MBps,best effort
  RC4,128MBps,guaranteed
  Decomp,1GBps,guaranteed
  XML,512MBps,best efort
  ......
该资源请求至少包括带宽信息、功能单元信息,可选的,还可包括申请类型信息,例如尽力服务(best effort),确保服务(guaranteed)。表2中的每一行代表一个具体的资源请求,如第一条代表了申请带宽为128MBps的AES算法的加密资源。
在收到这个请求后,遍历FPGA芯片表(资源池状态信息记录表),对找到的每一个FPGA芯片,则遍历其功能单元表。如果能够找到一个符合要求的功能单元实例(如一个AES加密单元),则判断该功能单元是否能够提供足够的空闲带宽。如果能够提供,则直接将空闲带宽分配给VM。如果没有足够的空闲带宽,则应根据申请的类型和分配策略进行进一步判断。在此需要说明的是,根据申请的类型如何确定FPGA资源分配的策略并不是必须的。举例而言,如果该申请的类型为尽力服务,则看该功能单元实例能否部分满足其带宽要求。如果能够满足,则可以进行分配。如果不能满足,则直接拒绝其请求。如果该申请的类型为确保服务,则应继续遍历FPGA芯片表和功能单元表,寻找下一个满足要求的功能单元实例。
如果在遍历了所有FPGA芯片后,没有找到符合要求的功能单元实例,则应当判断有无用于建立这个类型的功能单元的配置文件(bitfile)存在于系统中。如果不存在,则无法处理这一情况,应由系统管理员负责增加对应的配置文件。如果存在,则应该遍历FPGA芯片表,查找是否有某个FPGA芯片中有足够的空闲可编程资源,能够用于建立这样一个功能单元实例。如果不能找到,则控制模块无法处理这一情况,应由系统管理员负责增加新的FPGA芯片资源。如果能够找到,则判断当前是否有权直接创建这一功能单元实例。如果没有,则控制模块无法处理这一情况,应由系统管理员进行授权。如果有权,则应当向选定的FPGA芯片发送命令,创建所需的功能单元实例,并进行带宽资源分配。
在上述所有资源分配和功能单元建立过程中,均需要对FPGA状态记录信息表进行对应更新。显然,在这个实施例中主要用到了资源池状态信息记录,以及功能单元信息记录。所属领域技术人员明了,以上两种实施方式可单独或结合使用。
在步骤230中,基于所述资源分配操作的结果更新所述资源池状态信息记录。通过该步骤,可以在对资源请求进行响应的过程中,对FPGA状态记录信息进行相应的修改,以便反映FPGA资源使用状态的变化情况。响应于所述资源分配操作的成功执行,还可将请求成功的FPGA资源的接口信息发送至所述客户端。
图3示出了一个三级状态信息记录表的示意图。在这个实施例中,FPGA状态记录信息由三级表组成。其逻辑关系如下图所示:
由图中所示信息可见,FPGA状态记录信息的第一级为FPGA芯片表。在一个实施例中,这一级表描述了在本系统中一共有多少片FPGA芯片,以及每一片FPGA的总体资源使用状况。在这一级中,每一项记录即描述了一片FPGA芯片的信息。其中的信息至少应当包括FPGA识别码(在Chip info.域中)和FPGA可编程资源分配情况信息(即该片FPGA的全部可编程资源中剩余的,或者说,空闲的可编程资源的比例,包含在Status info.域中)。除上述信息外,可选的,每一项记录还可包含一个第二级表。
FPGA状态记录信息的第二级为功能单元表。这一级表描述了在一个FPGA芯片中,已经建立了多少个功能单元,以及该功能单元的对应状态信息。在第二级表中,每一项记录即描述了一个功能单元的信息。其中的信息至少应该包括该功能单元的功能类型(如加密、压缩等),该功能单元的识别码,该功能单元的性能信息(如最大带宽信息,包括在Description域中),该功能单元的资源分配情况信息(即该功能单元的带宽还有多少比例为空闲)等。除上述信息外,可选的,每一项记录还可包括一个第三级表。
FPGA状态记录信息的第三级为应用信息记录表。这一级表描述了一个功能单元的各个用户(例如客户端中的应用)对该功能单元的使用状态信息。在第三级表中,每一项记录即描述了一个用户对该功能单元的使用状态信息。其中的信息至少应当包括用户识别码信息(即SID)和QoS信息(例如,该用户能够占用的功能单元处理带宽信息),该第三级应用表可辅助服务质量(Qos)的管理。
按照上述方式所介绍的技术方案,可根据客户端的请求为其分配FPGA资源。而在客户端实际运行过程中,还会涉及到服务质量QoS的管理,特别是根据包含功能单元类型以及带宽的请求所分配的虚拟资源,需要在客户端的运行过程中控制该客户端的使用不会超过所分配的带宽。
图4是可实现根据本发明的实施例的进行带宽控制的示意图,在该实施例中,是由一个先进先出的任务队列以及相应的控制流程实现带宽的控制。
在步骤420中,维护一先进先出的任务队列。所述任务队列中任务的描述信息至少包括一按照预定周期进行复位的数据信用值,根据该任务所申请的带宽确定所述数据信用值。数据信用数值(Credit)表示当前周期该任务可以被处理的数据量的大小,它被一个计时器周期性地复位,每次复位后的初始值需要重新根据所申请的带宽进行计算。
在一个实施例中,任务队列中的每一行存放着一个软件发送过来的任务描述信息。这些描述信息例如包括下面的描述:SID是一个全系统唯一的ID,当一个应用(application)申请打开FPGA上面的一个功能单元时,由控制模块生成,并返回给该应用;ACC ID是FPGA中一个功能单元的ID,表示该任务使用哪个功能单元进行处理,在该FPGA系统中也是唯一的;SRC是应用发送的一个任务的原始数据在内存中的起始地址,DST是该任务计算结果存放在内存中的起始地址,Length是该任务的数据长度;BW是应用申请的该任务的带宽;数据信用数值表示当前周期该任务可以被处理的数据量的大小,它被一个计时器周期性地复位,每次复位后的初始值需要重新根据BW进行计算。
在执行所述任务队列中位于头部的任务时,还包括:
步骤420,响应于所述数据信用值大于零,执行所述位于头部的任务,并根据已经处理的数据量对所述数据信用数值进行调整。
步骤430,响应于所述数据信用数值等于零,则不执行所述位于头部的任务。
以下在一个更为具体的示例中说明步骤420以及步骤430的执行。参看图5,示出了一个更为具体的任务队列的示意图。新来的任务添加在任务队列的末尾,当一个任务描述到达任务队列的头部时,得到执行机会。硬件会检查该任务的的数据信用数值字段,如果是0,则不执行该任务,重新把该任务放到任务队列的尾部。如果数据信用数值字段大于0,以大于4KByte为例,则硬件生成一个该任务的子任务,子任务的描述为ACC ID,SRC',DST',4KByte;该子任务表示使用ID为ACC ID的功能模块,处理源地址为SRC',目的地址为DES',长度为4KByte(这里仅以4KByte为例,可以设计为其他合适的值)的一段数据;把该子任务发送到DMA模块进行执行。在发送子任务的同时,更新原有任务的字段,SRC递增4KByte,DST递增4KByte,该任务的数据长度(Length)递减4KByte,数据信用数值递减4KByte。当Length递减到0时,表示该任务已经完成,则从任务队列中删除该任务。
数据信用数值的初始值是实现带宽控制的关键,数据信用数值的初始值等于BW字段减去当前周期该应用已经处理的数据量大小。比如BW等于100MB/s,计时器(Timer)的周期为1秒,那么该应用在当前周期的第一个任务的数据信用数值等于100MB,而第二个任务的数据信用数值(Credit)等于100MB减去第一个任务的数据长度(Length)字段,如果是负数,则让数据信用数值(Credit)等于0。数据信用数值(Credit)在该任务放到任务队列的尾部,或者是从任务队列里面取出来的时候,根据周期数、BW字段,Length字段进行计算。
该方法还支持动态更改某个应用对于某个功能单元实例的使用带宽限制,发送一条附带SID以及新带宽的更新命令“SID,New BW”(参看图5),可以通过SID找到该任务,从而更新其中的BW字段。
在同一个发明构思下,图6示出了根据本发明的一个实施例的用于对资源池中FPGA资源进行分配的系统的示意性方框图。下面结合附图,对本实施例进行详细说明。对于与前面实施例相同的部分,适当省略其说明。如图6所示,本实施例的系统包括:
接收装置610,配置为接收客户端对所述资源池中FPGA资源的资源请求.
资源分配操作装置620,配置为基于资源池状态信息记录进行资源分配操作以满足所述资源请求,所述资源池状态信息记录中包括所述资源池中FPGA的使用状态信息。
更新装置630,配置为基于所述资源分配操作的结果更新所述资源池状态信息记录。
在一个改进的实施例中,所述资源请求中包括所请求的可编程资源种类和数量。在这个实施例中,资源分配操作装置620,还配置为遍历所述资源池状态信息记录,根据所述FPGA的使用状态信息确定出满足所述所请求的功能单元类型及带宽的FPGA资源并分配给所述客户端。
在一个实施例中,所述资源池状态信息记录还包括所述FPGA的功能单元信息记录,所述功能单元信息记录至少包括该FPGA中已创建的功能单元信息。
在另一个实施例中,所述资源请求包括所请求的功能单元类型及带宽。所述资源分配操作装置620,还配置为基于所述资源池状态信息记录以及所述功能单元信息记录,确定是否找到满足所述资源请求的功能单元;所述资源分配操作装置620还配置为响应于找到,将所找到的功能单元分配给所述客户端;所述资源分配操作装置620还配置为响应于未找到,创建新的功能单元并分配给所述客户端。
其中,所述功能单元信息记录还包括该功能单元的应用信息记录,所述应用信息记录至少包括请求该功能单元的请求者识别码以及该请求者占用该功能单元的带宽,其中,所述请求者识别码是响应于所述请求者打开一个所分配的功能单元时所生成的识别信息。
进一步包括:配置为维护一先进先出的任务队列的装置,所述任务队列中任务的描述信息至少包括一按照预定周期进行复位的数据信用值,根据该任务所申请的带宽确定所述数据信用值;配置为在执行所述任务队列中位于头部的任务时,用于响应于所述数据信用值大于零,执行所述位于头部的任务,并根据已经处理的数据量对所述数据信用数值进行调整的装置;响应于所述数据信用数值等于零,则不执行所述位于头部的任务的装置。
本申请所提供的FPGA资源分配方法及系统,可以应用于IaaS中实现对FPGA资源的虚拟化利用,从而丰富现有IaaS服务。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

Claims (14)

1.一种对资源池中FPGA资源进行分配的方法,所述方法包括:
接收客户端对所述资源池中FPGA资源的资源请求;
基于资源池状态信息记录进行资源分配操作以满足所述资源请求,所述资源池状态信息记录中包括所述资源池中FPGA的使用状态信息;
基于所述资源分配操作的结果更新所述资源池状态信息记录。
2.根据权利要求1所述的方法,其中,
所述资源请求中包括所请求的可编程资源种类和数量;
在所述资源分配操作中,遍历所述资源池状态信息记录,根据所述FPGA的使用状态信息确定出满足所述所请求的可编程资源种类和数量的FPGA资源并分配给所述客户端。
3.根据权利要求1所述的方法,其中,所述资源池状态信息记录还包括所述FPGA的功能单元信息记录,所述功能单元信息记录至少包括该FPGA中已创建的功能单元信息。
4.根据权利要求3所述的方法,其中,
所述资源请求包括所请求的功能单元类型及带宽;
在所述资源分配操作中,基于所述资源池状态信息记录以及所述功能单元信息记录,确定是否找到满足所述所请求的功能单元类型及带宽的功能单元;
响应于找到满足所述所请求的功能单元类型及带宽的功能单元,将所找到的功能单元分配给所述客户端。
5.根据权利要求4所述的方法,还包括,
响应于未找到满足所述所请求的功能单元类型及带宽的功能单元,创建新的功能单元并分配给所述客户端。
6.根据权利要求3所述的方法,其中,所述功能单元信息记录还包括该功能单元的应用信息记录,所述应用信息记录至少包括请求该功能单元的请求者识别码以及该请求者占用该功能单元的带宽,其中,所述请求者识别码是响应于所述请求者打开一个所分配的功能单元时所生成的识别信息。
7.根据权利要求3所述的方法,进一步包括:
维护一先进先出的任务队列,所述任务队列中任务的描述信息至少包括一按照预定周期进行复位的数据信用值,根据该任务所申请的带宽确定所述数据信用值;
在执行所述任务队列中位于头部的任务时,包括:
响应于所述数据信用值大于零,执行所述位于头部的任务,并根据已经处理的数据量对所述数据信用数值进行调整;
响应于所述数据信用数值等于零,则不执行所述位于头部的任务。
8.一种对资源池中FPGA资源进行分配的系统,所述系统包括:
接收装置,配置为接收客户端对所述资源池中FPGA资源的资源请求;
资源分配操作装置,配置为基于资源池状态信息记录进行资源分配操作以满足所述资源请求,所述资源池状态信息记录中包括所述资源池中FPGA的使用状态信息;
更新装置,配置为基于所述资源分配操作的结果更新所述资源池状态信息记录。
9.根据权利要求8所述的系统,其中,
所述资源请求中包括所请求的可编程资源种类和数量;
所述资源分配操作装置,还配置为遍历所述资源池状态信息记录,根据所述FPGA的使用状态信息确定出满足所述所请求的可编程资源种类和数量的FPGA资源并分配给所述客户端。
10.根据权利要求8所述的系统,其中,所述资源池状态信息记录还包括所述FPGA的功能单元信息记录,所述功能单元信息记录至少包括该FPGA中已创建的功能单元信息。
11.根据权利要求10所述的系统,其中,
所述资源请求包括所请求的功能单元类型及带宽;
所述资源分配操作装置,还配置为基于所述资源池状态信息记录以及所述功能单元信息记录,确定是否找到满足所述所请求的功能单元类型及带宽的功能单元;
所述资源分配操作装置,还配置为响应于找到满足所述所请求的功能单元类型及带宽的功能单元,将所找到的功能单元分配给所述客户端。
12.根据权利要求11所述的系统,其中,
所述资源分配操作装置,还配置为响应于未找到满足所述所请求的功能单元类型及带宽的功能单元,创建新的功能单元并分配给所述客户端。
13.根据权利要求11所述的系统,其中,所述功能单元信息记录还包括该功能单元的应用信息记录,所述应用信息记录至少包括请求该功能单元的请求者识别码以及该请求者占用该功能单元的带宽,其中,所述请求者识别码是响应于所述请求者打开一个所分配的功能单元时所生成的识别信息。
14.根据权利要求11所述的系统,进一步包括:
配置为维护一先进先出的任务队列的装置,所述任务队列中任务的描述信息至少包括一按照预定周期进行复位的数据信用值,根据该任务所申请的带宽确定所述数据信用值;
配置为在执行所述任务队列中位于头部的任务时进行如下操作的装置,
用于响应于所述数据信用值大于零,执行所述位于头部的任务,并根据已经处理的数据量对所述数据信用数值进行调整;
响应于所述数据信用数值等于零,则不执行所述位于头部的任务。
CN201210270573.7A 2012-07-31 2012-07-31 用于对现场可编程门阵列资源进行分配的方法及系统 Active CN103577266B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201210270573.7A CN103577266B (zh) 2012-07-31 2012-07-31 用于对现场可编程门阵列资源进行分配的方法及系统
US14/418,687 US9389915B2 (en) 2012-07-31 2013-06-26 Method and system for allocating FPGA resources
PCT/CN2013/078047 WO2014019428A1 (en) 2012-07-31 2013-06-26 Method and system for allocating fpga resources
US15/195,046 US9823947B2 (en) 2012-07-31 2016-06-28 Method and system for allocating FPGA resources

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210270573.7A CN103577266B (zh) 2012-07-31 2012-07-31 用于对现场可编程门阵列资源进行分配的方法及系统

Publications (2)

Publication Number Publication Date
CN103577266A true CN103577266A (zh) 2014-02-12
CN103577266B CN103577266B (zh) 2017-06-23

Family

ID=50027208

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210270573.7A Active CN103577266B (zh) 2012-07-31 2012-07-31 用于对现场可编程门阵列资源进行分配的方法及系统

Country Status (3)

Country Link
US (2) US9389915B2 (zh)
CN (1) CN103577266B (zh)
WO (1) WO2014019428A1 (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105512083A (zh) * 2015-11-30 2016-04-20 华为技术有限公司 基于yarn的资源管理方法、装置及系统
CN106462463A (zh) * 2014-05-08 2017-02-22 西门子工业公司 分配异构资源的装置、系统和方法
CN106776002A (zh) * 2016-11-15 2017-05-31 华为技术有限公司 Fpga的虚拟化硬件架构的通信方法及装置
CN107368371A (zh) * 2017-07-05 2017-11-21 杭州电子科技大学 嵌入式plc的编程资源分配方法
CN108038077A (zh) * 2017-12-28 2018-05-15 深圳市风云实业有限公司 多任务并行数据处理方法及装置
CN108388476A (zh) * 2018-03-01 2018-08-10 郑州云海信息技术有限公司 一种服务器计算加速资源池化方法及系统
CN110781129A (zh) * 2019-09-12 2020-02-11 苏州浪潮智能科技有限公司 一种fpga异构加速卡集群中的资源调度方法、设备及介质
CN112231096A (zh) * 2020-09-27 2021-01-15 苏州浪潮智能科技有限公司 一种fpga池化资源任务均衡的方法、系统、设备及介质
WO2021051714A1 (zh) * 2019-09-21 2021-03-25 苏州浪潮智能科技有限公司 一种fpga云平台加速资源的分配方法与系统

Families Citing this family (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103577266B (zh) 2012-07-31 2017-06-23 国际商业机器公司 用于对现场可编程门阵列资源进行分配的方法及系统
US10270709B2 (en) 2015-06-26 2019-04-23 Microsoft Technology Licensing, Llc Allocating acceleration component functionality for supporting services
US9766910B1 (en) 2013-03-07 2017-09-19 Amazon Technologies, Inc. Providing field-programmable devices in a distributed execution environment
US20150058392A1 (en) * 2013-08-20 2015-02-26 Cellco Partnership D/B/A Verizon Wireless Provisioning chain queuing and processing
US10372458B2 (en) * 2015-04-01 2019-08-06 Huawei Technologies Co., Ltd Method and apparatus for a self-clocked, event triggered superscalar processor
US9792154B2 (en) 2015-04-17 2017-10-17 Microsoft Technology Licensing, Llc Data processing system having a hardware acceleration plane and a software plane
US20160308649A1 (en) * 2015-04-17 2016-10-20 Microsoft Technology Licensing, Llc Providing Services in a 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
US10296392B2 (en) 2015-04-17 2019-05-21 Microsoft Technology Licensing, Llc Implementing a multi-component service using plural hardware acceleration components
WO2016210292A1 (en) 2015-06-25 2016-12-29 Children's Medical Center Corporation Methods and compositions relating to hematopoietic stem cell expansion, enrichment, and maintenance
US10216555B2 (en) 2015-06-26 2019-02-26 Microsoft Technology Licensing, Llc Partially reconfiguring acceleration components
US9600356B2 (en) * 2015-07-15 2017-03-21 Bank Of America Corporation Allocating field-programmable gate array (FPGA) resources
US9940166B2 (en) 2015-07-15 2018-04-10 Bank Of America Corporation Allocating field-programmable gate array (FPGA) resources
US10069681B2 (en) * 2015-12-31 2018-09-04 Amazon Technologies, Inc. FPGA-enabled compute instances
EP3429603B1 (en) 2016-03-15 2021-12-29 Children's Medical Center Corporation Methods and compositions relating to hematopoietic stem cell expansion
CN105979007B (zh) * 2016-07-04 2020-06-02 华为技术有限公司 加速资源处理方法、装置及网络功能虚拟化系统
EP3301573A4 (en) * 2016-07-12 2018-10-24 Huawei Technologies Co., Ltd. Method, device and system for controlling io bandwidth and processing io access request
US11099894B2 (en) 2016-09-28 2021-08-24 Amazon Technologies, Inc. Intermediate host integrated circuit between virtual machine instance and customer programmable logic
US10338135B2 (en) 2016-09-28 2019-07-02 Amazon Technologies, Inc. Extracting debug information from FPGAs in multi-tenant environments
US10250572B2 (en) 2016-09-29 2019-04-02 Amazon Technologies, Inc. Logic repository service using encrypted configuration data
US10282330B2 (en) 2016-09-29 2019-05-07 Amazon Technologies, Inc. Configurable logic platform with multiple reconfigurable regions
US10162921B2 (en) 2016-09-29 2018-12-25 Amazon Technologies, Inc. Logic repository service
US10423438B2 (en) 2016-09-30 2019-09-24 Amazon Technologies, Inc. Virtual machines controlling separate subsets of programmable hardware
US10642492B2 (en) 2016-09-30 2020-05-05 Amazon Technologies, Inc. Controlling access to previously-stored logic in a reconfigurable logic device
US11115293B2 (en) * 2016-11-17 2021-09-07 Amazon Technologies, Inc. Networked programmable logic service provider
US20180150256A1 (en) * 2016-11-29 2018-05-31 Intel Corporation Technologies for data deduplication in disaggregated architectures
US20180191629A1 (en) * 2016-12-30 2018-07-05 Intel Corporation Time-based flexible packet scheduling
US10747565B2 (en) * 2017-04-18 2020-08-18 Amazon Technologies, Inc. Virtualization of control and status signals
US10764129B2 (en) * 2017-04-18 2020-09-01 Amazon Technologies, Inc. Logic repository service supporting adaptable host logic
US10402219B2 (en) * 2017-06-07 2019-09-03 Dell Products L.P. Managing shared services in reconfigurable FPGA regions
US10503551B2 (en) 2017-06-07 2019-12-10 Dell Products L.P. Coordinating FPGA services using cascaded FPGA service managers
US10970118B2 (en) * 2017-08-02 2021-04-06 Advanced Micro Devices, Inc. Shareable FPGA compute engine
WO2019075559A1 (en) * 2017-10-16 2019-04-25 Btl Group Ltd. METHOD AND SYSTEM FOR VIRTUALIZING BLOCK CHAINS
EP3704575A4 (en) * 2017-10-31 2021-08-25 Nokia Solutions and Networks Oy REAL-TIME VIRTUAL NETWORK FUNCTIONAL ORCHESTRATION METHOD, APPARATUS AND SYSTEM
US11120188B2 (en) 2019-01-28 2021-09-14 King Fahd University Of Petroleum And Minerals FPGA virtualization
US11422812B2 (en) 2019-06-25 2022-08-23 Advanced Micro Devices, Inc. Method and apparatus for efficient programmable instructions in computer systems
CN112858892B (zh) * 2021-01-15 2024-05-14 胜达克半导体科技(上海)股份有限公司 一种基于fpga在数字测试通道上实现定制模块的方法
US20220321403A1 (en) * 2021-04-02 2022-10-06 Nokia Solutions And Networks Oy Programmable network segmentation for multi-tenant fpgas in cloud infrastructures
CN113703976B (zh) * 2021-08-27 2023-05-19 苏州浪潮智能科技有限公司 一种fpga资源分配方法、装置、设备及可读存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6771602B1 (en) * 1999-11-29 2004-08-03 Lucent Technologies Inc. Method and apparatus for dynamic EPD threshold for UBR control
US7058921B1 (en) * 2002-02-22 2006-06-06 Xilinx, Inc. Method and system for resource allocation in FPGA-based system-on-chip (SoC)
CN1984043A (zh) * 2006-06-07 2007-06-20 华为技术有限公司 基于带宽调整机制的流量控制方法及系统
CN102129069A (zh) * 2010-12-17 2011-07-20 浙江大学 基于多fpga的波束形成器输出数据带宽控制装置
US8046767B2 (en) * 2007-04-30 2011-10-25 Hewlett-Packard Development Company, L.P. Systems and methods for providing capacity management of resource pools for servicing workloads

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2352548B (en) * 1999-07-26 2001-06-06 Sun Microsystems Inc Method and apparatus for executing standard functions in a computer system
US6438737B1 (en) 2000-02-15 2002-08-20 Intel Corporation Reconfigurable logic for a computer
GB0304628D0 (en) 2003-02-28 2003-04-02 Imec Inter Uni Micro Electr Method for hardware-software multitasking on a reconfigurable computing platform
US7685254B2 (en) * 2003-06-10 2010-03-23 Pandya Ashish A Runtime adaptable search processor
US7366652B2 (en) * 2003-06-16 2008-04-29 Springsoft, Inc. Method of programming a co-verification system
JP2005275829A (ja) * 2004-03-25 2005-10-06 Hitachi Ltd ストレージシステム
US7627458B1 (en) 2005-12-21 2009-12-01 Xilinx, Inc. Resource and context based multiplier generation
US8125950B2 (en) * 2007-01-31 2012-02-28 Broadcom Corporation Apparatus for wirelessly managing resources
KR101127597B1 (ko) * 2007-10-19 2012-03-23 한국전자통신연구원 광-동축 혼합 망에서의 상향 채널 자원 할당 방법 및 그장치
US8370481B2 (en) * 2009-05-13 2013-02-05 Verizon Patent And Licensing Inc. Inventory management in a computing-on-demand system
JP2013512511A (ja) 2009-11-25 2013-04-11 ハワード ユニバーシティ 複数メモリ特定用途向けデジタル信号プロセッサ
CA2716464A1 (en) 2009-12-24 2011-06-24 Mcmaster University Bit-width allocation for scientific computations
CN101788927B (zh) 2010-01-20 2012-08-01 哈尔滨工业大学 一种基于fpga的自适应星载计算机实现内部资源动态分配的方法
US9298438B2 (en) * 2012-06-20 2016-03-29 Microsoft Technology Licensing, Llc Profiling application code to identify code portions for FPGA implementation
CN103577266B (zh) 2012-07-31 2017-06-23 国际商业机器公司 用于对现场可编程门阵列资源进行分配的方法及系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6771602B1 (en) * 1999-11-29 2004-08-03 Lucent Technologies Inc. Method and apparatus for dynamic EPD threshold for UBR control
US7058921B1 (en) * 2002-02-22 2006-06-06 Xilinx, Inc. Method and system for resource allocation in FPGA-based system-on-chip (SoC)
CN1984043A (zh) * 2006-06-07 2007-06-20 华为技术有限公司 基于带宽调整机制的流量控制方法及系统
US8046767B2 (en) * 2007-04-30 2011-10-25 Hewlett-Packard Development Company, L.P. Systems and methods for providing capacity management of resource pools for servicing workloads
CN102129069A (zh) * 2010-12-17 2011-07-20 浙江大学 基于多fpga的波束形成器输出数据带宽控制装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
许文曜: "基于新型FPGA的自可重构系统设计研究", 《中国优秀硕士学位论文全文数据库》, no. 8, 15 August 2008 (2008-08-15), pages 135 - 183 *

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106462463B (zh) * 2014-05-08 2020-04-14 西门子公司 分配异构资源的系统和方法
CN106462463A (zh) * 2014-05-08 2017-02-22 西门子工业公司 分配异构资源的装置、系统和方法
CN105512083A (zh) * 2015-11-30 2016-04-20 华为技术有限公司 基于yarn的资源管理方法、装置及系统
CN105512083B (zh) * 2015-11-30 2018-09-21 华为技术有限公司 基于yarn的资源管理方法、装置及系统
CN106776002A (zh) * 2016-11-15 2017-05-31 华为技术有限公司 Fpga的虚拟化硬件架构的通信方法及装置
CN106776002B (zh) * 2016-11-15 2020-09-25 华为技术有限公司 Fpga的虚拟化硬件架构的通信方法及装置
CN107368371A (zh) * 2017-07-05 2017-11-21 杭州电子科技大学 嵌入式plc的编程资源分配方法
CN107368371B (zh) * 2017-07-05 2020-12-15 杭州电子科技大学 嵌入式plc的编程资源分配方法
CN108038077A (zh) * 2017-12-28 2018-05-15 深圳市风云实业有限公司 多任务并行数据处理方法及装置
CN108038077B (zh) * 2017-12-28 2021-07-27 深圳市风云实业有限公司 多任务并行数据处理方法及装置
CN108388476A (zh) * 2018-03-01 2018-08-10 郑州云海信息技术有限公司 一种服务器计算加速资源池化方法及系统
CN110781129A (zh) * 2019-09-12 2020-02-11 苏州浪潮智能科技有限公司 一种fpga异构加速卡集群中的资源调度方法、设备及介质
CN110781129B (zh) * 2019-09-12 2022-02-22 苏州浪潮智能科技有限公司 一种fpga异构加速卡集群中的资源调度方法、设备及介质
WO2021051714A1 (zh) * 2019-09-21 2021-03-25 苏州浪潮智能科技有限公司 一种fpga云平台加速资源的分配方法与系统
US11789778B2 (en) 2019-09-21 2023-10-17 Inspur Suzhou Intelligent Technology Co., Ltd. FPGA cloud platform acceleration resource allocation method, and system
CN112231096A (zh) * 2020-09-27 2021-01-15 苏州浪潮智能科技有限公司 一种fpga池化资源任务均衡的方法、系统、设备及介质
CN112231096B (zh) * 2020-09-27 2023-01-06 苏州浪潮智能科技有限公司 一种fpga池化资源任务均衡的方法、系统、设备及介质

Also Published As

Publication number Publication date
CN103577266B (zh) 2017-06-23
WO2014019428A1 (en) 2014-02-06
US20150169376A1 (en) 2015-06-18
US9823947B2 (en) 2017-11-21
US9389915B2 (en) 2016-07-12
US20160306663A1 (en) 2016-10-20

Similar Documents

Publication Publication Date Title
CN103577266A (zh) 用于对现场可编程门阵列资源进行分配的方法及系统
CN107343045B (zh) 云计算系统及用于控制服务器的云计算方法和装置
US10657526B2 (en) System and method to dynamically setup a private sub-blockchain based on agility of transaction processing
US9098379B2 (en) Computing reusable image components to minimize network bandwidth usage
US10523714B2 (en) Device policy composition and management system
CN109376122A (zh) 一种文件管理方法、系统及区块链节点设备和存储介质
KR101465966B1 (ko) 클라우드 환경에서의 데이터 암호화 처리 장치 및 방법
CN112346833B (zh) 用于隐私计算的任务处理方法、处理器及异构处理系统
CA3090896A1 (en) Blockchain-based consent management system and method
CN109445839A (zh) 一种模块管理包发布方法、装置及终端设备
AU2020421463B2 (en) Distributing computation workloads based on calculated compute gravity within differing computing paradigms
CN109729106A (zh) 处理计算任务的方法、系统和计算机程序产品
US20200073697A1 (en) Control device, control method, and program
KR20180005542A (ko) 데이터 무결성 검증을 위한 장치 및 방법
CN107341020A (zh) 显卡虚拟化的实现方法及装置、桌面云系统及终端设备
TW202121274A (zh) 雲端資源管理方法、裝置、電子設備及電腦可讀儲存媒體
CN105933270B (zh) 一种云加密机的处理方法及装置
US20210111891A1 (en) Computer-readable recording medium, management apparatus, and method for identity verification
CN110716809B (zh) 用于调度云资源的方法和装置
CN104954452A (zh) 一种虚拟化环境下密码卡资源动态控制方法
US10193892B2 (en) Resource restriction
CN105426252A (zh) 一种分布式文件系统的线程分配方法及系统
US20210112050A1 (en) Computer-readable recording medium, control apparatus, and method for identity verification
CN115459990A (zh) 基于区块链的终端设备入网认证方法、系统及设备
US20180124585A1 (en) Network device subscription management

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant