CN117529706A - 信息处理系统、信息处理装置、服务器装置、程序、可重构器件或者方法 - Google Patents

信息处理系统、信息处理装置、服务器装置、程序、可重构器件或者方法 Download PDF

Info

Publication number
CN117529706A
CN117529706A CN202180099351.0A CN202180099351A CN117529706A CN 117529706 A CN117529706 A CN 117529706A CN 202180099351 A CN202180099351 A CN 202180099351A CN 117529706 A CN117529706 A CN 117529706A
Authority
CN
China
Prior art keywords
information
resource
fpga
user
shell
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
Application number
CN202180099351.0A
Other languages
English (en)
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.)
Chip Cutting Edge Technology Co ltd
Original Assignee
Chip Cutting Edge Technology Co ltd
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 Chip Cutting Edge Technology Co ltd filed Critical Chip Cutting Edge Technology Co ltd
Publication of CN117529706A publication Critical patent/CN117529706A/zh
Pending legal-status Critical Current

Links

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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources

Abstract

能够更适当地活用可重构器件。一种系统,具备:获取部,其从用户获取表示第一资源的信息;确定部,其确定与所述表示第一资源的信息对应的第一可重构器件;以及指示部,其指示对所述第一可重构器件写入与所述表示第一资源的信息对应的第一分区Shell。另外,在系统中,所述获取部获取与所述表示第一资源的信息不同的表示第二资源的信息,所述指示部指示对所述第一可重构器件写入与所述表示第二资源的信息对应的、不同于所述第一分区Shell的第二分区Shell。

Description

信息处理系统、信息处理装置、服务器装置、程序、可重构器件 或者方法
技术领域
本申请所公开的技术涉及一种信息处理系统、信息处理装置、服务器装置、可重构器件、程序或者方法。
背景技术
近年来,在各种领域开始导入能够修改电路的可编程逻辑器件。
现有技术文献
专利文献
专利文献1:日本特开第2020-135318号公报
专利文献2:日本特开第2010-251925号公报
专利文献3:日本特开第H7-6080号公报
发明内容
发明要解决的问题
然而,存在以下状况:将可重构器件利用于分布式处理的技术未被活用。因此,本发明的各种实施方式为了解决上述的问题,提供一种信息处理系统、信息处理装置、服务器装置、程序、可重构器件或者方法。
用于解决问题的方案
本申请所涉及的一个实施方式是一种系统,具备:
获取部,其从用户获取表示第一资源的信息;
确定部,其确定与所述表示第一资源的信息对应的第一可重构器件;以及
指示部,其指示对所述第一可重构器件写入与所述表示第一资源的信息对应的第一分区Shell(シェル)。
本申请所涉及的另一实施方式是一种方法,在该方法中,由系统执行以下步骤:
从用户获取表示第一资源的信息;
确定与所述表示第一资源的信息对应的第一可重构器件;以及
指示对所述第一可重构器件写入与所述表示第一资源的信息对应的第一分区Shell。
本申请所涉及的另一实施方式是一种程序,用于使系统作为以下单元进行动作:
从用户获取表示第一资源的信息的单元;
确定与所述表示第一资源的信息对应的第一可重构器件的单元;以及
指示对所述第一可重构器件写入与所述表示第一资源的信息对应的第一分区Shell的单元。
发明的效果
根据本发明的一个实施方式,能够更适当地活用可重构器件。
附图说明
图1是示出一个实施方式所涉及的系统与可重构器件之间的关系的一例的框图。
图2是示出一个实施方式所涉及的系统与可重构器件之间的关系的一例的框图。
图3是示出一个实施方式所涉及的系统的功能的框图。
图4是示出一个实施方式所涉及的系统的一例的处理的流程的图。
图5是示出一个实施方式所涉及的系统的一例的数据形式的图。
图6是示出一个实施方式所涉及的系统的一例的数据形式的图。
图7是示出一个实施方式所涉及的系统的一例的数据形式的图。
图8是示出一个实施方式所涉及的系统的一例的处理的流程的图。
图9是示出一个实施方式所涉及的系统的一例的数据形式的图。
图10是示出一个实施方式所涉及的系统的功能的框图。
图11是示出一个实施方式所涉及的系统的功能的框图。
图12是说明一个实施方式所涉及的系统的一例的处理的一部分的图。
图13是说明一个实施方式所涉及的系统的一例的处理的一部分的图。
图14是说明一个实施方式所涉及的系统的一例的处理的一部分的图。
图15是说明一个实施方式所涉及的系统的一例的处理的一部分的图。
图16是说明一个实施方式所涉及的系统的一例的处理的一部分的图。
图17是说明一个实施方式所涉及的系统的一例的处理的一部分的图。
图18是说明一个实施方式所涉及的系统的一例的处理的一部分的图。
图19是说明一个实施方式所涉及的系统的一例的处理的一部分的图。
图20是说明一个实施方式所涉及的系统的一例的处理的一部分的图。
图21是说明一个实施方式所涉及的系统的一例的处理的一部分的图。
图22是示出一个实施方式所涉及的系统的功能的框图。
图23是示出一个实施方式所涉及的系统的一例的处理的流程的图。
图24是示出一个实施方式所涉及的系统的一例的结构的框图。
具体实施方式
1.概要
本申请公开的技术的一例是与可改写的电路相关的技术。但是,本技术的一例也可以利用包括不能改写的电路的信息处理装置。在本申请文件中,可改写的电路也被称为可编程逻辑器件等,但是在本申请文件中,包括它们在内都称为可重构器件(Reconfigurable Logic Device)。另一方面,不能改写的电路也有时被称作指令译码方式、冯诺依曼型器件等,但是在本申请文件中,包括它们在内都称为程序可变器件(ProgramVariable Device)。
关于可重构器件,例如能够列举出PAL(Programmable Array Logic:可编程阵列逻辑)、PLA(Programmable Logic Array:可编程逻辑阵列)、GAL(Generic Array Logic:通用阵列逻辑)、CPLD(Complex Programmable Logic Device:复杂可编程逻辑器件)、FPGA(Field Programmable Gate Array:现场可编程门阵列)、CGRA(Coarse-GrainedReconfigurable Array:粗粒度可重构阵列)等。
在本申请文件的下文中,作为可重构器件,主要使用FPGA来进行说明,但是除了所述FPGA以外,也能够适用于其它可重构器件,这是不言而喻的。特别地,可以是,作为可重构器件,只要是部分可重构、即能够对一个可编程逻辑器件内的多个区域(例如,PR区域(Partial Reconfiguration Region:部分可重构区域))相互独立地进行写入的功能即可,能够进行后述的针对每个区域的处理。在此,关于能够相互独立地进行写入,可以包括以下功能:能够在一个可编程逻辑器件内的一个区域正在执行处理的过程中,对所述一个可编程逻辑器件内的与所述一个区域不同的其它区域进行写入。
此外,在本申请文件中,信息处理装置这一用语作为可重构器件和程序可变器件的上位概念的词语来使用。
另外,下面的第一系统至第四系统是相互独立的发明,但是在下面的第二系统至第四系统的说明中,在关于与第一系统相同的用语的说明中,省略除了存在各系统特有的情况的场合以外的说明。
2.第一系统的例子
本例的系统涉及以下系统:在用户写入应用程序之前,向用户提供被写入包括通信功能的管理程序(Hypervisor)Shell和分区Shell的硬件资源。所述系统具有以下优点:能够向用户适当地提供可重构器件的硬件资源。
本例的系统可以由一个或多个信息处理装置构成。所述一个或多个信息处理装置可以由一个或多个FPGA和/或一个或多个程序可变器件构成。
另外,所述本例的系统可以与一个或多个FPGA连接。在该情况下,具有以下优点:能够对一个或多个FPGA进行管理。
图1示出本例的系统与一个或多个FPGA连接的一例。示出本例的系统(001)与FPGA1(0021)至FPGA4(0024)连接的状况。所述连接既可以通过以太网来连接,也可以通过例如PCIExpress等总线来连接。此外,本例的系统也可以仅与一个或多个FPGA连接,来作为用于执行用户的应用程序的运算功能。在该情况下,也可以与程序可变器件连接,来作为用于执行除用于执行用户的应用程序的运算功能以外的功能的硬件资源。
另外,本例的系统也可以与一个或多个FPGA连接,并且还与一个或多个程序可变器件连接。在该情况下,本例的系统具有以下优点:除了FPGA的管理以外,还能够包括程序可变器件在内地进行分布式处理等的管理。
在本例的系统与一个或多个FPGA和/或一个或多个程序可变器件连接的情况下,关于连接,可以经由网络来直接或间接地连接。一个或多个FPGA既可以与本例的系统设置于同一设施内,也可以设置于不同的设施内。另外,一个或多个FPGA的具体设置场所可以是任意场所。例如,一个或多个FPGA既可以设置于建筑物内(室内),也可以设置于建筑物外(室外)。传感器等IoT设备可以在建筑物内和/或建筑物外进行工作,它们也可以是利用FPGA来安装。网络既可以是有线的,也可以是无线的,还可以是它们的混合。
图2示出本例的系统与FPGA及程序可变器件经由网络(000)来连接的状况。在本图中,是在FPGA组(002)内包括多个FPGA和程序可变器件的结构例。在此,作为程序可变器件的表示,记载为CPU1和CPU2,为了方便,它们也作为FPGA组的一部分来示出。另外,在FPGA组(003)内包括信息处理装置,该信息处理装置包括多个FPGA和FPGA写入器的功能。可以是,所述FPGA写入器能够进行对FPGA组(003)的比特流(Bitstream)的写入、以及对FPGA组(002)的比特流的写入这两方的写入。这些FPGA组(002)及(003)内的网络既可以是总线,也可以是以太网等。
此外,本例的系统、上述的一个或多个FPGA和/或上述的一个或多个程序可变器件也可以是云上的信息处理装置。
2.1.系统的功能
本例的系统可以包括:数据库部,其包括FPGA信息;以及管理部,其对所述数据库部内的信息进行管理。图3是图示出所述功能的一例的图。
2.1.1.管理部
管理部具有对处理进行管理的功能。在此,处理例如可以包括提供信息的功能、受理信息的功能、发送信息的功能和/或接收信息的功能。另外,作为这些提供、受理、发送、接收的对象的信息既可以彼此相同,也可以彼此不同。
例如,管理部可以具有向用户提供信息的功能。在该情况下,本例的系统具有以下优点:向用户提供信息,使得用户能够进行有意义的判断。另外,管理部可以具有受理由用户输入的信息的功能。在该情况下,本例的系统具有以下优点:能够利用从用户受理到的信息。另外,管理部可以具有向FPGA发送信息的功能。在该情况下,本例的系统具有以下优点:能够利用向FPGA发送的信息,来对FPGA造成影响。另外,管理部可以具有从FPGA接收信息的功能。在该情况下,本例的系统具有以下优点:能够利用从FPGA接收的信息,来对FPGA的状况进行管理。关于它们的详细情况在后文叙述。
2.1.2.数据库部
数据库部具有保存关于FPGA的信息的功能。特别是,数据库可以保存后述的一个或多个资源信息。此外,数据库部也可以保存其它信息。通过本例的系统具备数据库部,具有能够利用本例的系统所管理的FPGA的信息的优点。
2.2.处理的流程
将本系统的例子分为准备阶段和运用阶段这2个阶段来进行说明。准备阶段可以是在新的FPGA连接到系统的情况下进行的阶段。关于所述情况,例如能够列举出增设了FPGA的情况、对以往的FPGA进行了变更的情况等。对以往的FPGA进行了变更的情况可以包括对以往的FPGA内的结构进行变更的情况。运用阶段可以是针对准备阶段结束后的系统的阶段。
2.2.1.准备阶段
以图4为参考来说明准备阶段。
步骤1
首先,可以将本例的系统与FPGA以能够进行信号的通信的方式进行连接。所述连接可以设为能够通过有线或无线的方式进行信号的通信。
关于所述连接,能够列举出新增设FPGA的情况、由于修理等而FPGA的物理结构变更的情况等,但是不限于这些。
另外,所述连接可以包括将FPGA之间通过网络来连接、将FPGA与其它包括CPU的信息处理装置通过网络来连接。
步骤2
本例的系统可以辅助进行对所连接的FPGA写入管理程序Shell的处理。关于对FPGA的写入技术本身,可以利用公知的技术。
管理程序Shell的写入既可以由本例的系统自动地进行,也可以通过手动来进行。
管理程序Shell可以是通过任意的编程语言来记述的。管理程序Shell在被写入的情况下可以被变换为比特流,并使用公知的技术被写入到FPGA。作为写入的方法,例如可以是借助了JTAG、USB的技术。
被写入的管理程序Shell可以是与作为对象的FPGA的种类、功能对应的。
管理程序Shell只要是通过被写入到FPGA而能够向FPGA提供与管理部的通信功能即可,无需具有后述的管理程序Shell的全部功能。通过在本步骤中写入管理程序Shell,本例的系统能够与被写入了管理程序Shell的FPGA进行通信。
步骤3
本例的系统可以辅助将关于物理连接的FPGA的信息登记到数据库。通过事先在数据库内登记关于FPGA的信息,本例的系统具有以下优点:能够借助所述数据库所保有的信息来利用FPGA的信息。
所述数据库只要能够保存后述的信息即可,既可以利用数据库管理系统,也可以不利用数据库管理系统。在存在数据库所基于的数据模型的情况下,可以是层次型、网络型、关系数据模型、对象数据模型等各种类型的数据模型,其种类没有限定。另外,实现所述数据库的硬件资源既可以是专用装置、通用装置,也可以是云、服务器等各种信息处理装置。
本例的系统在利用数据库的情况下,只要能够访问数据库即可,既可以是本例的系统具备数据库,也可以是本例的系统不具备数据库。在后者的情况下,只要是本例的系统能够经由网络等来与数据库直接或间接地连接即可。
在数据库中,用于现实地确定一个FPGA的信息与关于所述FPGA所具有的功能的信息(在本申请文件中有时称为“资源信息”)可以建立关联地存储。关于资源信息,例如能够列举出可重构器件的种类、与运算装置相关的属性、与存储装置相关的属性和/或与通信装置相关的属性等信息。与运算装置相关的属性可以包括运算装置的种类、单元(cell)数等运算装置的数量、时钟频率数等运算装置的能力和/或运算装置所利用的电力等。运算装置例如可以包括逻辑元件(Logic Element:LE)、逻辑单元(Logic Cell:LC)和/或LUT(查找表)等。与存储装置相关的属性可以包括存储装置的种类、存储装置的容量、存储装置的读写速度和/或存储装置所利用的电力等。存储装置例如可以是可重构器件内的片上(on-chip)的存储装置,但也可以是设置于可重构器件外的其它存储装置。与通信装置相关的属性可以具有与内部通信装置相关的属性和/或与外部通信装置相关的属性。另外,与内部通信装置相关的属性可以是与FPGA内相关的通信的信息。与外部通信装置相关的属性可以包括与外部的通信的网络带宽和/或频带速度等。
另外,一个FPGA可以包括一个或多个PR区域。PR区域是能够独立地变更电路结构的区域。在每个PR区域,既可以是,FPGA能够利用部分可重构来执行一个或多个独立的运算,也可以是,FPGA能够不利用部分可重构地执行一个或多个独立的运算。由于是独立的,例如在一个FPGA包括PR区域A和PR区域B的情况下,PR区域A与PR区域B对于电路的改写、电路的执行可以独立地进行动作。因此,可以是,在PR区域A正在执行的过程中还能够进行PR区域B的改写。
此外,在本申请文件中,“一个”资源信息可以是用户能够用作硬件资源的一个单位。因而,在FPGA不以PR区域为单位来管理的情况下,一个资源信息可以是一个FPGA,但是如果FPGA以PR区域为单位来管理从而每个PR区域是能够利用的硬件资源,则一个资源信息可以是一个FPGA内的一个PR区域。
上述的数据库可以将一个FPGA内包括的一个或多个PR区域分别与上述的资源信息建立关联地存储。
此外,对于一个FPGA,PR区域的设定方法也可以是多种。例如,一个FPGA既可以被分为PR区域A及B这2个PR区域,也可以被分为PR区域A至D这4个PR区域。在像这样分割方法不同的情况下,关于各PR区域的资源信息也不同,因此可以对某个分割方法下的特定的PR区域关联资源信息来进行存储。
图5是对登记有FPGA的资源的信息的数据库所具有的信息逻辑性地进行了整理的一例。FPGAID表示对与本例的系统现实地连接的FPGA分配的ID。资源信息有时具有如上所述的区别,因此可以与各FPGA的ID对应地关联资源信息来进行存储。
另外,图6是对登记有FPGA的资源的信息的数据库所具有的信息逻辑性地进行了整理的另一例。在本图中,是对于一个FPGA设定有多个PR区域的情况下的例子,例如,对于FPGAID为001的FPGA,设定有2个PR区域,对于FPGAID为002的FPGA,设定有3个PR区域。而且,对于各PR区域设定有资源信息。这是由于:各PR区域既存在具有相同的资源的情况,也存在具有不同的资源的情况。特别是在后者的情况下,具有以下优点:能够设定与各PR区域对应的资源信息。
并且,图7是对登记有FPGA的资源的信息的数据库所具有的信息逻辑性地进行了整理的另一例。在本图中,示出对于一个FPGA而言PR区域的分割方法存在多种的情况。例如,对于FPGAID为001的FPGA,存在PR区域的分割方法1和分割方法2,分割方法1是将PR区域分为2个的情况,分割方法2被设定为将PR区域分为4个的方法。如上所述,各PR区域分别既可以具有相同的资源,也可以具有不同的资源,因此可以与用于确定各PR区域的信息建立关联地存储关于各PR区域的资源信息。
另外,虽然在上述的图5至图7中未图示,但是数据库也可以与用于确定现实的各FPGA的信息建立关联地保存用于确定FPGA的种类的信息。这是由于:关于FPGA的种类,在用户进行硬件描述语言(HDL)的VHDL、Verilog、C语言等高层次综合语言等的编程时、比特流生成时,需要作为目标的FPGA的种类。
另外,数据库可以将表示各PR区域是否正在利用中的信息与对应的PR区域建立关联地存储。具有以下优点:能够通过所述表示是否正在利用中的信息,来管理对应的PR区域是否正在被用户利用。
另外,数据库可以在各PR区域正在被利用的情况下,将表示正在被利用的PR区域的信息与表示正在进行利用的用户的信息建立关联地存储。在该情况下,具有以下优点:能够管理PR区域正在被利用的情况下的用户。
此外,数据库可以保存同表示用户的信息建立了关联的与用户相关的信息。与用户相关的信息可以包括关于用户的、用户的住址、邮件地址等用于在实际世界中确定用户的信息、用户的ID、与ID对应的密码、和/或与用户所利用的服务相关的信息等。与服务相关的信息可以包括关于用户已完成支付的服务的套餐(course)的信息和/或关于用户能够加入的选项的信息等。
另外,数据库可以与各FPGA建立关联地保存与关于各FPGA的许可(licence)相关的信息。例如,数据库也可以保存表示对于各FPGA而言必需的许可的有无的信息。另外,数据库也可以与各FPGA建立关联地保存表示对于各FPGA而言必需的许可的种类的信息。通过存储有所述许可的信息,具有能够验证在利用各FPGA的情况下是否需要许可、许可的种类的优点。此外,许可可以是针对FPGA的每个种类、运算功能、存储功能和/或通信功能的许可。这是因为存在以下情况:针对FPGA的每个种类、运算功能、存储功能和/或通信功能而许可不同。可以是,还能够特别针对低价版、高价版、面向特殊用途等各种许可,来保存许可。另外,根据许可的性质,既可以是针对一个FPGA的许可,也可以是针对多个FPGA的成套(package)的许可。
另外,数据库可以与上述的表示用户的信息建立关联地具有与所述用户所具有的许可相关的信息。例如,也可以具有用于确定用户所具有的许可的有无和/或种类的信息。在该情况下,具有以下优点:能够构成为能够生成表示用户具有能够利用哪种FPGA的许可的信息或者能够进行验证。
另外,数据库也可以与表示FPGA的信息建立关联地保存关于所述FPGA的物理信息。关于FPGA的物理信息例如可以包括设置FPGA的地理信息。另外,关于FPGA的物理信息例如可以包括设置FPGA的纬度/经度、设置FPGA的设施名、对FPGA进行管理的设施管理者名和/或对FPGA进行管理的设施的管理水平信息等。所述信息能够具有针对设置FPGA的场所、管理成为考虑安全性、对事件的应对能力等的参考信息的利用价值。
关于数据库,针对能够连接的所有FPGA,既可以由单一的数据库构成,也可以由多个数据库构成。关于后者,例如也可以分为关于已写入后述的分区Shell的FPGA的数据库、以及关于未写入分区Shell的FPGA的数据库来进行管理。在后者的情况下,具有以下优点:在已写入的FPGA的分量少的情况下,能够迅速进行访问。
所述关于FPGA的资源信息既可以由人通过手动作业来登记到数据库,也可以作为与FPGA对应的信息而被记录到数据库中从而被登记到数据库。
2.2.2.运用阶段
参照图8来说明运用阶段。
步骤1
本例的系统向用户呈现类型模板(Flavor)。类型模板可以是虚拟硬件的模板。另外,类型模板是在进行虚拟化的中间件的OpenStack中使用的用语,但是也可以是其它虚拟化中间件中的同样功能的模板。类型模板可以在本例的系统所提供的显示装置中显示。类型模板可以针对一个或多个FPGA包括一个或多个资源信息。一个资源信息可以包含将器件名、PR Shell、PR区域和/或器件信息建立了关联而得到的信息。PR Shell是对PR区域进行管理的Shell,在本申请文件中可以指与分区Shell相同的含义。具有以下优点:通过显示类型模板,用户能够使用资源信息来选择适于预定写入的电路的资源信息。特别是,如上所述,资源信息包含可重构器件的种类、与运算装置相关的属性、与存储装置相关的属性和/或与通信装置相关的属性等信息,因此具有能够选择适于预定写入的电路的资源信息的优点。
图9是类型模板的一例。是以下例子:对于器件名为FPGA1的FPGA,PR Shell为1(显示为PRS1),将PR区域显示为PR1。另外,对于器件名为FPGA2的FPGA,对应了能够管理2个PR区域的Shell(显示为PRS2)来作为PR Shell,2个PR区域分别显示为PR1及PR2。另外,类型模板可以包含针对物理性的一个器件表示PR区域的多个设定方法的信息。例如,FPGA4可以存在分为2个PR区域的情况和分为4个PR区域的情况。前者针对2个PR区域赋予了PR1和PR2的名称,并对应了PRS2作为对它们进行管理的Shell。后者针对4个PR区域,赋予了PR1至PR4的名称,并对应了PRS4作为对它们进行管理的Shell。在此,说明了将FPGA4分为2个PR区域和4个PR区域的方法,但是不限于这些,也可以是,在能够分割为各FPGA能够支持的任意数量的多个PR区域的情况下,本例的系统能够进行对支持的任意数量的PR区域的管理。在该情况下,可以是,本例的系统能够管理能够分割的PR区域的数量的组合,且使其包含于类型模板内。这样,具有以下优点:通过针对同一器件呈现多个分割方法,用户能够选择所述物理性器件所允许的多个分割方法中的一个分割。此外,数据库可以将一个FPGA器件与一个或多个分割方法建立关联地存储,使得能够呈现所述显示。此外,在本图中,设为包括PR Shell的显示,但是也可以没有所述PR Shell。
另外,类型模板也可以如上所述那样包含与表示一个FPGA的信息建立了关联的FPGA的种类,来作为资源信息的一个要素。在该情况下,具有以下优点:用户能够将FPGA的种类也包含在内地选择期望的资源信息。另外,类型模板也可以如上所述那样包含PR区域,来作为资源信息的一个要素。在该情况下,具有以下优点:用户能够将资源信息也包含在内地选择期望的资源信息。例如,向FPGA内写入的应用程序的比特流有时是根据FPGA的种类和/或PR区域来生成的。例如,具有以下优点:用于改写FPGA的用硬件描述语言或高层次综合语言记载的程序在被编译而生成比特流的情况下,能够利用FPGA的种类和/或PR区域的信息。这具有能够避免以下的问题的优点:用于改写FPGA的程序有时在编译时需要FPGA的种类和/或PR区域,并且有时编译需要数小时这样的大量的时间,在与用户所准备的FPGA用的编译后的程序相关的FPGA的种类和/或PR区域不同于与关于本例的系统所提供的资源信息的硬件资源相关的FPGA的种类和/或PR区域的情况下,需要重新编译。
另外,类型模板所呈现的资源信息既可以是与现实世界的资源信息处于一对一的关系的信息,也可以并非如此。前者表示类型模板所呈现的资源信息现实地存在,例如是指如果现实中相同的资源信息α的硬件资源存在2个,则类型模板也能够呈现2个相同的信息。在该情况下,具有以下优点:能够还将与资源信息对应的硬件资源实质上是仅一个还是多个包含在内地进行显示。另一方面,关于后者,也可以是类型模板所呈现的资源信息与现实世界的资源信息处于一对多的关系。例如是指如果现实中相同的资源信息α的硬件资源存在2个,则类型模板呈现一个所述资源信息α。在该情况下,由于是相同的资源信息,因此具有能够有效利用显示区域的优点。
另外,类型模板也可以显示上述的双方。例如,类型模板所呈现的资源信息也可以显示与现实世界的资源信息处于一体多的关系中的一,并且将作为一对多的关系中的多的、不同的要素另外呈现。关于作为一对多的关系中的多的、不同的要素,例如可以是现实的资源信息所涉及的硬件资源的数量,或者是设置现实的资源信息所涉及的硬件资源的设置场所,或者是从系统到设置现实的资源信息所涉及的硬件资源的场所的距离等。在此,距离既可以是后述的物理距离,也可以是后述的与信息的通信相关的距离。
另外,类型模板也可以不论是用户能够利用的器件还是不能利用的器件,都将数据库所具备的所有资源信息包含在内地进行呈现。在该情况下,具有用户能够理解数据库具有怎样的硬件资源的优点。例如,具有以下优点:用户能够还将包含某个资源信息的硬件资源是存在规定的数量以上还是少于规定的数量等包含在内地理解。
除了所述结构以外,类型模板也可以与特定的用户无关地将存在能够进行写入的用户的、一个或多个资源信息包含在内地进行呈现。即,类型模板也可以呈现除利用中的资源信息以外的资源信息。在该情况下,具有以下优点:已经利用中的资源信息不显示,因此易于进行资源信息的选择。在该情况下,也可以追加显示选择资源信息的用户当前正在利用的资源信息。在该情况下,具有以下优点:选择资源信息的用户能够一边将当前正在利用的资源信息作为参考,一边选择新的资源信息。
另外,除了所述结构以外,类型模板也可以将选择类型模板的特定的用户能够利用的一个或多个资源信息包含在内地进行呈现。例如,用户可以根据用户所具有的许可的有无、种类、本例的系统的会员的套餐、协议等,来预先决定能够利用的资源信息,可以仅呈现所述用户能够利用的一个或多个资源信息。在该情况下也可以显示选择资源信息的用户当前正在利用的资源信息。在该情况下,具有以下优点:选择资源信息的用户能够一边将当前正在利用的资源信息作为参考,一边选择新的资源信息。
另外,除了所述结构以外,类型模板也可以将选择类型模板的特定的用户能够利用的一个或多个资源信息、以及所述特定的用户在满足了特定的条件的情况下能够利用的一个或多个资源信息包含在内地进行呈现。在此,特定的条件例如可以包括新获取到许可、变更本例的系统的会员的套餐、和/或、获取到本例的系统的会员的选项等。另外,这些特定的条件可以与在各条件被满足的情况下能够利用的资源信息建立关联地呈现。在该情况下,具有以下优点:用户能够理解如果满足了怎样的条件则能够选择对应的资源信息。
另外,类型模板也可以将关于FPGA的物理信息包含在内地进行呈现。在该情况下,具有以下优点:用户能够考虑FPGA的物理信息来进行选择。
关于FPGA的物理信息例如可以包括设置FPGA的地理信息。另外,关于FPGA的物理信息例如可以包括设置FPGA的纬度/经度、设置FPGA的设施名、对FPGA进行管理的设施管理者名和/或对FPGA进行管理的设施的管理水平信息等。在所述信息同与资源信息对应的物理信息建立关联地显示的情况下,能够具有针对设置FPGA的场所、管理成为考虑安全性、对事件的应对能力等的参考信息的优点。
另外,关于FPGA的物理信息可以包括表示FPGA间的距离的信息。FPGA间的距离既可以是物理距离,也可以是与信息的通信相关的距离。前者可以是欧几里得距离,其测定方法既可以是FPGA间的直线距离,也可以是沿着FPGA间的通信网络的距离。作为后者的与信息的通信相关的距离也可以是采用了FPGA间的通信时的跳跃数、网络频带量的距离。在该情况下,具有能够确定基于通信状况的距离的优点。另外,关于上述的FPGA间的距离,如果是2个FPGA则可以是所述2个FPGA间的距离,对于3个以上的FPGA,既可以是3个以上的FPGA间的各2个FPGA间的距离的合计,也可以是在3个以上的FPGA间传递信息的情况下的最大距离。此外,关于上述的FPGA间的距离,也可以是,对于所选择出的多个资源信息,计算并显示表示所选择出的多个FPGA间的距离的信息。在该情况下,选择可以是暂定的。
另外,器件间的距离可以使用二维或三维的图表来显示。特别是,所述图表可以以如下方式显示:图表的各节点被定位在与上述的计算出的器件间的距离对应的位置。在该情况下,具有用户能够更直观地理解的优点。
另外,类型模板可以是:用户对于一个FPGA能够提供的PR区域与针对所述FPGA预先准备的分区Shell能够提供的PR区域的种类和/或数量对应。例如,在对于某个FPGA,管理者预先准备了PR区域2和PR区域4的情况下,类型模板可以包含PR区域2的情况下的资源信息和/或PR区域4的情况下的资源信息。
另外,如后所述,在具有阶层式地设置分区Shell的功能的情况下,类型模板可以包含还对于已写入分区Shell的FPGA在对未被写入的PR区域写入分区Shell的情况下能够提供的多个模式。例如,在被写入了用于提供2个PR区域的分区Shell(第一分区Shell)的一个FPGA中,在已经写入了一个PR区域(第一PR区域)时没有阶层式地设置分区Shell的情况下,类型模板(在尽管能够对所述FPGA提供能够提供多个PR区域的个数、种类的与第一分区Shell不同的分区Shell但是第一PR区域已经写入并且不删除所述第一PR区域和第一分区Shell的情况下)仅能够提供其余的一个PR区域(第二PR区域)。但是,可以在所述第二PR区域中写入分区Shell(第二分区Shell)的情况下,在所述第二分区Shell能够提供的范围内提供一个或多个资源信息。
在上述中,类型模板以表形式表现,但是既可以以所述方式向用户显示,也可以不限于所述方式而通过各种表现方式向用户显示类型模板。
另外,在本步骤中,说明了作为类型模板来向用户呈现的信息,但是不限于这些,可以将在上述的准备阶段说明的数据库内保存的信息的全部或一部分作为类型模板向用户呈现。
步骤2
接着,用户从本例的系统所呈现出的类型模板选择一个或多个资源信息,本例的系统与由用户选择出的资源信息对应地,获取用于确定所选择出的一个或多个资源信息的信息。
在本步骤中,在本例的系统的类型模板呈现与物理性的硬件资源内的资源信息一对一地对应的资源信息的情况下,可以与由用户选择出的资源信息对应地,获取用于确定与用户所选择出的资源信息一对一地对应的硬件资源的信息。
另一方面,在本例的系统中上述的类型模板中呈现的类型模板内的资源信息与现实的资源信息所涉及的硬件资源之间的关系处于一对多的关系的情况下,本例的系统也可以进行确定所述多个硬件资源中的一个硬件资源的硬件资源确定处理。
硬件资源确定处理可以以各种观点来执行。例如,硬件资源确定处理可以使用与用户相关的信息和/或与用户利用的硬件资源相关的信息等。
另外,与用户相关的信息可以使用与用户的会员相关的信息和/或与用户的会员期间相关的信息等。
作为使用与用户的会员期间相关的信息的例子,例如,本例的系统也可以使用用户的会员期间的长度来确定硬件资源。例如,本例的系统也可以在用户的会员期间的剩余期间的长度为规定的期间以上的情况下,进行分配预定长期利用的硬件资源之一的处理。在该情况下,具有本例的系统的管理者能够高效地进行硬件资源的维护的优点。另外,例如,本例的系统也可以使用用户的会员期间的剩余期间的长度和硬件的更换预定日程来确定硬件资源。例如,本例的系统也可以在用户的会员期间的剩余期间的长度为规定的期间以上的情况下,不分配到硬件资源的更换时期为止的期间为规定的期间以下的硬件资源。另外,本例的系统可以在用户的会员期间的剩余期间的长度为第一规定期间的情况下,以到硬件资源的下一次更换时期为止的期间为所述第一规定期间以上的硬件资源为对象,来决定硬件资源。在这种情况下,具有以下优点:在用户的会员期间没有延长的情况下,能够高效地进行硬件资源的维护。此外,与会员期间相关的信息可以包括能够利用硬件资源的剩余期间和/或从用户加入本例的系统的会员的时期起的合计或持续期间等。
另外,与用户的会员相关的信息可以包括与会员的套餐或地位相关的信息。例如,本例的系统也可以在用户的会员的套餐为规定的套餐的情况和/或会员的地位为规定的地位的情况下,进行分配规定的硬件资源之一的处理。所述规定的硬件资源可以是与其它硬件资源相比硬件资源的稳定性、坚固性高的硬件资源。在该情况下,具有以下优点:在用户为特定的会员或规定的套餐的情况下,能够利用品质更高的硬件资源。此外,与会员的套餐或地位相关的信息可以是在用户利用本例的系统时选择出的套餐或地位。例如,也可以是根据利用某个分量的资源信息这样的主旨的契约而得到的套餐或地位。
另外,与用户所利用的硬件资源相关的信息可以包括用户进行上述的选择时正在利用的一个或多个硬件资源。例如,本例的系统可以包括与用户所选择出的资源信息匹配的现实的硬件资源中的、与包括用户当前利用中的1)一个或多个硬件资源的FPGA相同的FPGA内的硬件资源、2)与用户当前利用中的一个或多个硬件资源相同的局域网内或总线内的硬件资源、和/或、3)与用户当前利用中的一个或多个硬件资源之间距离短的硬件资源。
在上述的1)的情况下,由于是相同的FPGA内,因此具有以下优点:通过用户利用相同的FPGA内的硬件资源作为在相同或关联的应用程序中利用的硬件资源,能够辅助提供实现更高效的通信的硬件资源。
在上述的2)的情况下,在前者的相同的局域网或总线中,也同样由于是相同的网络内或总线内,因此具有能够辅助提供实现更高效的通信的硬件资源的优点。此外,关于局域网或总线的相同性,只要使得能够削减用于进行跨网络的通信的处理即可,可以是任意的阶层。
另外,上述的2)也可以是虚拟性的本地网络。在该情况下,虽然在物理上距离未必比规定的距离近,与信息的通信相关的距离也未必比规定的距离短,但是具有安全性高的优点。
另外,在上述的3)的情况下,距离既可以是上述的物理性的距离,也可以是上述的与信息的通信相关的距离。具有以下优点:通过选择与用户所选择出的资源信息匹配的现实的硬件资源中的、与用户当前利用中的一个或多个硬件资源之间距离短的硬件资源,能够辅助提供实现与其它硬件资源相比更高效的通信的硬件资源。
步骤3
接着,本例的系统确认与由用户选择出的一个或多个资源信息对应的一个或多个硬件资源是否能够利用。即,本例的系统尝试对与资源信息对应的作为硬件资源的FPGA器件写入与资源信息对应的分区Shell。所述写入可以是写入比特流,其信息的传递方法既可以是使用TAG来写入,也可以是使用USB来写入,其方式没有限定。另外,对FPGA的写入技术本身也可以使用公知的技术。
此外,在本例的系统的分区Shell的写入失败的情况下,本例的系统可以显示所述分区Shell的写入失败等用户所选择出的资源信息无法选择的情况,本例的系统可以进行促使用户选择新的资源信息的显示。
分区Shell既可以与后述的分区Shell相同,也可以不同。分区Shell只要具备辅助用户能够利用写入了分区Shell的FPGA内的硬件资源的功能即可,没有必要具有后述的分区Shell所具备的全部功能。
步骤4
本例的系统在分区Shell的写入成功的情况下,将关于写入成功的资源信息的信息登记到数据库。
另外,本例的系统可以将关于写入成功的资源信息的信息反馈给用户。向用户反馈的方式可以是各种方式。例如可以将关于写入成功的资源信息的信息显示于显示装置上,或者向用户发送关于写入成功的资源信息的信息的邮件,或者将关于写入成功的资源信息的信息存储到用户能够访问的用户的规定的场所。所述关于资源信息的信息可以包括用于确定实际地写入了分区Shell的硬件资源的信息,所述用于确定硬件资源的信息可以包括用于确定具体的可重构器件的信息。另外,所述关于资源信息的信息可以包括FPGA的、种类、与运算装置相关的属性、与存储装置相关的属性、与通信装置相关的属性、PR区域和/或用于确定网络上的位置的信息。关于用于确定网络上的位置的信息,例如,如果是FPGA则可以是IP地址,对于FPGA内的PR区域,则可以是IP地址或端口号。
可以是,用户能够使用这些信息来访问被进行了写入的PR区域。例如,用户使用所述信息将作为用户预定利用于FPGA的应用程序的、通过编译而变换为比特流的程序写入到对应的FPGA。
本例的系统可以辅助使用上述的信息将所述用户准备的比特流写入到对应的FPGA。在该情况下,也可以经由USB(JTAG)来写入,也可以经由以太网来写入,还可以经由PCIe来写入。
另外,在与上述不同的方式中,本例的系统首先由用户暂时选择资源信息,尝试写入PR Shell而无法选择的情况
此外,也可以在运用阶段的步骤1之前的阶段中,本例的系统进行对用户的会员登记进行管理的处理。例如,本例的系统可以具有对用户的登记、用户的会员信息的修改等进行管理的功能。
用户的登记可以是本例的系统获取上述的与用户相关的信息的处理。例如,本例的系统可以向用户呈现用户能够选择的套餐和/或服务选项,本例的系统获取用户从所呈现的套餐和/或服务选项之中选择套餐和/或服务选项所得到的结果,并与用于确定用户的信息建立关联地存储。
本例的系统也可以在获取与用户相关的信息的处理中,获取关于用户要利用的可重构器件的意向信息,来与用于确定用户的信息建立关联地存储。关于可重构器件的意向信息例如可以包括关于用户预定利用的可重构器件的、种类、与运算装置相关的属性、与存储装置相关的属性和/或与通信装置相关的属性等信息。这是由于:在存在用户通常利用的特定种类的可重构器件的情况下,能够认为已熟悉了该种类的可重构器件,因此在本例的系统中利用的可重构器件也为相同种类的可重构器件的可能性高,因此通过利用所述信息而便利性有可能提高。同样地,是由于:关于与运算装置相关的属性、与存储装置相关的属性和/或与通信装置相关的属性,在为按照用户的意向的属性的情况下,用户的便利性也有可能提高。
此外,上述的步骤可以由用户对本例的系统直接输入。例如,在本例的系统包括用户所利用的用户终端的情况下,关于上述的步骤,可以在本例的系统中进行与用户的交互,也可以是,本例的系统直接向用户显示,本例的系统直接获取用户的输入。
另一方面,在本例的系统不具备向用户进行显示或由用户进行输入的机构的情况下,本例的系统可以与本例的系统不包括的用户所利用的用户终端直接或间接地连接,可以通过本例的系统与一个或多个用户终端的交互,来推进上述的步骤。例如,上述的步骤1可以是,从本例的系统向用户终端发送包含类型模板的信息,在用户终端显示所述包含类型模板的信息。上述的步骤2可以是,从用户终端将在用户终端中选择出的资源信息发送到本例的系统,在本例的系统中接收所述资源信息。上述的步骤3可以是,本例的系统确认与所述资源信息对应的硬件资源能否利用。上述的步骤4可以是,本例的系统向数据库进行登记。
此外,不论是在本例的系统包括用户所利用的终端的情况下还是在不包括用户所利用的终端的情况下,步骤3的被写入分区Shell的可重构器件可以是本例的系统的一部分,也可以是本例的系统的外部的可重构器件。另外,在步骤4中被登记的数据库也可以是本例的系统的一部分,也可以是本例的系统的外部的数据库。
3.第二系统
第二系统可以是与可重构器件相关的系统。例如,第二系统可以是安装有作为写入到FPGA的功能而在下面进行说明的功能的可重构器件本身、在被写入到了可重构器件内的情况下实现下面说明的功能的比特流、或者、通过编译而变换为所述比特流的用HDL描述语言记述的程序。如上所述,在下面主要使用FPGA来进行说明,但是除了FPGA以外,在可重构器件中也同样能够安装。
3.1.系统的功能
被写入到FPGA的功能可以包括管理程序Shell进行处理的功能(管理程序Shell功能)和/或分区Shell进行处理的功能(分区Shell功能)。即,被写入了所述功能后的FPGA可以具备后述的包括管理程序Shell功能的管理程序Shell部和/或包括分区Shell功能的分区Shell部。图10图示出所述功能以及这些功能所具备的功能例。
对于一个FPGA,可以对应一个管理程序Shell。所述一个管理程序Shell可以被写入到所述一个FPGA内。另外,对于一个FPGA,可以对应一个分区Shell。因此,例如,在一个FPGA中,即使存在多个PR区域,也可以有一个分区Shell,所述分区Shell可以被写入到所述一个FPGA内。
此外,管理程序Shell可以是根据被写入的FPGA的、种类、与运算装置相关的属性、与存储装置相关的属性和/或与通信装置相关的属性等信息来决定的。另一方面,分区Shell可以是根据被写入的FPGA的、种类、与运算装置相关的属性、与存储装置相关的属性、与通信装置相关的属性、PR区域的数量、与PR区域中的运算装置相关的属性、与PR区域中的存储装置相关的属性、和/或与PR区域中的通信装置相关的属性来决定的。
因此,本例的系统所涉及的数据库可以保存同FPGA的、种类、与运算装置相关的属性、与存储装置相关的属性和/或与通信装置相关的属性等信息建立了关联的管理程序Shell。在该情况下,如后所述,本例的系统具有以下优点:能够获取FPGA的种类和/或功能,并根据所述FPGA的种类和/或功能,来确定并利用对应的管理程序Shell。并且,本例的系统所涉及的数据库可以保存同FPGA的、种类、与运算装置相关的属性、与存储装置相关的属性、与通信装置相关的属性和/或PR区域的数量等信息建立了关联的分区Shell。在该情况下,如后所述,本例的系统具有以下优点:能够获取FPGA的种类、功能和/或PR区域的数量,并根据所述FPGA的种类、功能和/或PR区域的数量,来确定并利用对应的分区Shell。
在下面,管理程序Shell和分区Shell可以具有不同的功能。但是,管理程序Shell和分区Shell也可以包括相同的功能。具有以下优点:通过将被写入到FPGA的功能一分为二,能够将与PR区域的动态的变更对应地变更的功能(分区Shell功能)同不与PR区域的动态的变更对应地变更的功能(管理程序Shell功能)区分开。
关于被写入到FPGA的时机,管理程序Shell与分区Shell的被写入到FPGA的时机既可以是规定的范围内的同时期,也可以不同。前者例如可以包括在写入了管理程序Shell之后紧接着写入分区Shell等连续写入的情形等。另一方面,不同的时期可以是,在FPGA的登记时写入管理程序Shell,而在用户写入应用程序数据的阶段(或者用户即将写入应用程序数据之前)写入分区Shell。另外,关于分区Shell,也可以是如下时机:在写入了一次分区Shell之后,所述分区Shell被删除而再次写入分区Shell。
3.1.1.管理程序Shell部
管理程序Shell部可以包括与管理部的通信、与外部装置的通信、向分区Shell的通信功能的提供、写入关联功能和/或初始化的功能。在管理程序Shell具有这些功能的一部分或全部的情况下,具有以下优点:通过被写入而变为能够执行程序的可重构器件的、关于对应的功能的便利性提高。
与管理部的通信可以包括进行针对来自管理部的请求的回答的功能。例如,在存在来自管理部的询问特定的PR区域的状况的请求的情况下,可以进行所述特定的PR区域的状况的回答。作为所述PR区域的状况,例如可以包括未被写入或已被写入等信息、使用中或未使用等信息。这样,在FPGA具有管理程序Shell的功能而能够与管理部进行相互通信的情况下,具有以下优点:管理部能够从与通常的CPU不同的FPGA获取关于FPGA的状况的信息。
与外部装置的通信可以包括向外部装置发送信息和/或从外部装置接收信息的功能。外部装置例如可以是存储介质。在该情况下,管理程序Shell部可以提供与外部装置的接口。另外,外部装置可以提供用于后述的分区Shell与外部的存储装置进行通信的接口。
向分区Shell的通信功能的提供可以包括FPGA内的PR区域进行通信的情况下的辅助。存在以下情况:FPGA内的PR区域在与同自己的PR区域相同的FPGA内的其它PR区域进行通信的情况、和/或、与同自己的PR区域不同的FPGA内的其它装置进行通信的情况下发送信息。此时,分区Shell的通信功能可以根据需要来设定和/或变更所述信息的目的地。管理程序Shell可以包括关于通信的目的地地址关系的表(在本申请文件中也有时称为“通信目的地地址表”),以向分区Shell提供通信功能。所述通信目的地地址表可以包括利用者所利用的应用程序内的目的地地址(在本申请文件中也有时称为“用户目的地地址”)与FPGA内的作为处理主体的PR区域和/或FPGA外的计算主体(在本申请文件中也有时称为“节点目的地地址”)之间的关系。在管理程序Shell具有所述用户目的地地址与节点目的地地址之间的关系的情况下,具有以下优点:用户在应用程序内利用的用户目的地地址被设定为本申请文件所涉及的系统所提供的节点目的地地址,来传递信息,因此用户能够不关注FPGA的计算主体不同的情况地构建应用程序。
另外,管理程序Shell部可以具有写入关联功能。写入关联功能可以包括分区Shell的写入功能。管理程序Shell可以具有将从管理部获取到的分区Shell写入到管理程序Shell所属的FPGA内的功能或者对写入进行辅助的功能。关于对写入进行辅助的功能,可以从管理部获取具有写入功能的代码并利用该代码。在管理程序Shell具有写入关联功能的情况下,具有以下优点:管理者、利用者无需手动地写入分区Shell,从而负担减少。
另外,管理程序Shell部的写入关联功能可以具有与用户的权限相关的功能。与用户的权限相关的功能可以包括关于用户要写入的目的地的PR区域的权限的确认功能。例如,关于用户要写入的目的地的PR区域,用户的程序乃至编译得到的比特流或者表示所述比特流的写入目的地的信息有时包含向用户没有权限的PR区域写入的信息。在该情况下,在写入关联部原样进行写入的情况下,会向用户没有权限的PR区域写入,例如产生对其他用户的PR区域中正在执行的应用程序造成破坏等问题。因此,被写入的管理程序Shell部可以具有在进行写入所接受到的比特流的处理之前对于所述要写入的PR区域确认用户是否具有写入权限的功能。通过所述功能,具有以下优点:能够防止由于故意或过失而对自己没有写入权限的PR区域写入所述构成与用户相关的应用程序的比特流。
管理程序Shell部的写入关联功能在包括与用户的权限相关的功能的情况下,例如可以进行接下来的处理。
首先,管理程序Shell部经由网络来接受包含在写入与第一用户相关的第一应用程序时实现的第一比特流的信息(步骤1)。
接着,管理程序Shell部与接受到所述包含第一比特流的信息相对应地,从所述包含第一比特流的信息获取用于确定作为被写入所述第一比特流的对象的第一PR区域的信息、以及用于确定所述第一应用程序的信息(步骤2)。
接着,管理程序Shell部将以下信息传递到管理部:该信息包含所述用于确定第一应用程序的信息以及所述用于确定作为被写入的对象的第一PR区域的信息(步骤3)。
管理部与接受到包含所述用于确定第一应用程序的信息以及所述用于确定第一PR区域的信息的信息相对应地,使用所述用于确定第一应用程序的信息和所述用于确定第一PR区域的信息,来判定是否具有将所述第一应用程序写入到所述第一PR区域的权限(步骤4)。
管理部在判定为具有所述权限的情况下,向所述管理程序Shell部传递允许执行写入,在判定为具有所述权限的情况下,不向所述管理程序Shell部传递允许执行写入(步骤5)。在后者的情况下,可以传递不允许执行写入。
此外,在上述中,也可以使用用于确定进行了写入所述第一应用程序的指示的用户的信息,来取代用于确定第一应用程序的信息。例如,在上述的步骤4中,也可以使用用于确定第一应用程序的信息来确定进行写入第一应用程序的指示和/或执行第一应用程序的第一用户,并使用分配给所述第一用户的硬件资源的信息来判定所述第一用户是否具有对第一PR区域进行写入的写入权限。上述是一例,只要在管理程序Shell部所获取到的包含第一比特流的信息内包含用于确定第一用户的信息,就可以使用所述信息,将所述信息传递到管理部,来判定所述第一用户是否具有对第一PR区域进行写入的写入权限。
另外,在上述中,通过由管理程序Shell部写入比特流的方式进行了说明,但是除了所述结构以外,也可以是,管理程序Shell部响应于获取到包含比特流的信息,向管理程序Shell部所属的FPGA内的配置存储器(config memory)传递所述包含比特流的信息,所述配置存储器从包含比特流的信息获取用于确定作为写入对象的PR区域的信息,所述配置存储器将所述包含比特流的信息写入到与所述用于确定PR区域的信息对应的PR区域。
另外,管理程序Shell部的初始化功能可以包括与管理程序Shell部所属的FPGA相关的存储功能和/或通信功能的初始化功能。初始化功能可以包括恢复为未被利用的状态的功能。具有以下优点:通过初始化,能够防止误动作。存储功能的初始化例如可以包括使存储功能内的信息恢复为初始状态。在该情况下,具有以下优点:能够避免保存着无意义的信息的状态。另外,通信功能的初始化例如可以包括删除通信功能内的FIFO的队列、或者对处于总线的握手顺序的中途阶段的信息进行重置来恢复为初始状态等处理。在该情况下,具有能够去除通信的中途阶段的优点。
特别是由管理程序Shell部执行初始化,由此具有以下优点:即使在用户的应用程序的执行机制内不包括初始化功能的情况下,本例的系统的分布式处理也能够减少应用程序的误动作。
此外,初始化可以在各种时机执行。例如,可以响应于执行了上述的分区Shell的写入,来对所述分区Shell所利用的存储功能和/或通信功能进行初始化。具有以下优点:由于预定了在写入分区Shell之后用户进行应用程序的写入等,因此能够在利用应用程序之前进行初始化。但是,还存在初始化需要时间的情况,在该情况下,还存在使用户的应用程序的写入延迟的情况。另外,可以响应于执行了用户的应用程序的写入,来对所述应用程序所利用的存储功能和/或通信功能进行初始化。具有以下优点:由于预定了在写入应用程序之后用户利用应用程序,因此能够在利用应用程序之前进行初始化。但是,还存在初始化需要时间的情况,在该情况下,还存在使用户的应用程序的利用延迟的情况。
另外,也可以响应于用户的状态的变化,来对与关于所述用户的PR区域相关的存储功能和/或通信功能进行初始化。例如,也可以响应于用户的会员的套餐、选项结束,来对与关于所述用户的PR区域相关的存储功能和/或通信功能进行初始化。
在该情况下,管理部可以对各用户的会员的套餐、选项和/或所述用户所利用的PR区域的结束时期进行监视,响应于它们的结束时期的到来,管理部使用用于确定所述用户所利用的PR区域的信息,对于所述PR区域所属的FPGA的管理程序Shell部进行对与所述PR区域相关的存储功能和/或通信功能进行初始化的通信。管理程序Shell部可以响应于来自管理部的所述通信,来对与所对应的PR区域相关的存储功能和/或通信功能进行初始化。
这样,在根据用户的状态的变化、特别是用户结束对PR区域的利用的时期来执行初始化的情况下,具有以下优点:在从所述结束的时期到下一次使用的时期为止的期间内有时间的情况下,即使初始化需要时间,使下一次利用延迟的风险也低。
3.1.2.分区Shell部
分区Shell部具有对PR区域内的功能进行辅助的功能。例如,可以对PR区域内的功能所使用的时钟频率功能、存储功能和/或通信功能进行管理。在分区Shell具有这些功能的一部分或全部的情况下,具有以下优点:分区Shell所辅助的PR区域中的、关于对应的功能的便利性提高。
分区Shell部可以对PR区域内的功能所使用的时钟频率功能进行管理。例如,分区Shell部可以具有向PR区域提供时钟频率信号的作用。
分区Shell部可以具有生成一个或多个时钟频率信号以向PR区域提供的功能。分区Shell部可以具有生成不同的多个时钟频率信号的功能。分区Shell部所生成的时钟频率可以是PR区域内的电路能够利用的时钟频率。具有以下优点:用户不用自己准备时钟频率信号就能够在PR区域内的电路中利用时钟频率信号。另外,在分区Shell部生成不同的多个时钟频率信号的情况下,具有以下优点:能够选择适于被写入到PR区域内的电路的时钟频率信号,电路能够利用的时钟频率信号的选择范围变宽。例如,具有以下优点:能够选择与电路结构相应的时钟频率信号,例如,在可重构器件中写入的电路简单的情况下设定较高的时钟频率信号,在电路复杂的情况下设定较低的时钟频率信号等。
另外,分区Shell部可以对一个PR区域提供一个或多个时钟频率信号。例如,分区Shell部可以对在一个PR区域内写入的相同或不同的多个电路分别提供不同的时钟频率信号。具有以下优点:即使在用户想要针对一个PR区域内的相同或不同的多个电路根据其电路的复杂度、作用等来利用不同的时钟频率的情况下,也能够在上述的情况下利用与各电路相应的时钟频率信号。
此外,电路所利用的时钟频率信号可以由决定要写入的电路的用户预先决定。为了由用户决定电路所利用的时钟频率,本例的系统可以在用户通过硬件描述语言或高层次综合语言对电路进行编程的环境中,对能够指定电路能够利用的时钟频率的环境进行辅助。另外,在想要针对一个PR区域内的相同或不同的多个电路分别提供不同的时钟频率信号的情况下,本例的系统可以在用户通过硬件描述语言或高层次综合语言对电路进行编程的环境中,对能够针对相同或不同的各电路分别指定能够利用的时钟频率的环境进行辅助。能够指定时钟频率信号的环境的辅助例如可以包括针对相同或不同的一个或多个电路分别显示电路能够利用的一个或多个时钟频率信号的处理、将由用户选择出的时钟频率信号与作为对象的电路建立关联地存储的处理、和/或、在PR区域内的写入时写入所述建立了关联的电路与时钟频率信号的连接关系的处理。
分区Shell部可以具有对PR区域内的运算功能所使用的存储功能与所述PR区域所属的FPGA所使用的存储功能的对应关系进行管理的功能。通过对所述对应关系进行管理,具有妨碍其它PR区域的存储关联处理的风险下降的优点。例如,在PR区域内的运算功能所使用的存储器的地址为000~999、且所述地址与所述PR区域所属的FPGA所使用的存储功能中的20000~20999对应的情况下,分区Shell可以具有表示所述对应关系的表,分区Shell可以使用所述表来辅助与PR区域内的运算功能所使用的存储器的具体地址对应地使用PR区域所属的FPGA所使用的存储功能的对应的存储器。在此,FPGA所使用的存储功能既可以是所述FPGA内设置的存储装置,也可以是所述FPGA能够访问的外部的存储装置。
另外,分区Shell部可以具有对用于确定PR区域内的通信功能所使用的通信信道的信息与用于确定所述PR区域所属的FPGA与外部的通信信道的信息的对应关系进行管理的功能。通过对所述对应关系进行管理,具有妨碍其它PR区域的通信关联处理的风险下降的优点。例如,可以对基于某个PR区域所使用的通信信道的通信附加表示基于所述PR区域的信息,并将所述通信信息传给管理程序Shell。
分区Shell部也可以阶层式地在PR区域内设置。
认为阶层式地设置分区Shell部(例如,在分区Shell部所管理的PR区域内设置其它分区Shell部)的优点在例如接下来那样的例子中变得明确。设为某个FPGA的PR区域有2个(设为有2个1/2的PR区域的状态),一个PR区域(第一1/2PR区域)为已写入且为利用中。在该情况下,想到以下情况:能够向用户提供其余的1/2的PR区域(第二1/2PR区域),但是用户仅利用1/4的PR区域即可。在该情况下,已经设定了2个PR区域的分区Shell部(第一分区Shell部)已写入,且第一1/2PR区域为利用中。因此,通过在尚未利用的第二1/2PR区域内新写入能够管理2个1/4PR区域(第一1/4PR区域和第二1/4PR区域)的分区Shell部(第二分区Shell部),并使用户利用第一1/4PR区域,由此具有能够实现高效的利用的优点。
分区Shell部也可以与如上述那样阶层式地设置的下层的分区Shell部通畅地进行通信。在该情况下,分区Shell部可以借助下层的分区Shell所管理的通信功能和/或存储功能,来对下层的分区Shell所管理的PR区域内的电路进行辅助。
4.第三系统
第三系统的例子是辅助进行利用了FPGA的分布式处理的系统的例子。例如,如图11那样,本例的系统可以具备JOB(作业)管理器功能、资源管理器功能以及TASK(任务)管理器功能。JOB管理器和资源管理器的功能可以安装在程序可变器件上。TASK管理器的功能可以作为可重构器件上的功能来安装。如上所述,在下面主要使用FPGA来进行说明,但是除了FPGA以外,在可重构器件中也同样能够安装。另外,在第三系统中,在FPGA中既可以写入有管理程序Shell和/或分区Shell,也可以不写入管理程序Shell和/或分区Shell。即使在如后者那样不写入管理程序Shell和/或分区Shell的情况下,也可以如以下那样通过写入比特流而使得能够执行分布式处理。
4.1.功能
4.1.1.JOB管理器
JOB管理器具有进行JOB的管理的功能。
JOB既可以是程序员预先决定的作为一个集合的JOB,也可以是另外通过分布式处理用的JOB管理技术来将程序员决定的一个集合进一步细分化而得到的JOB、或者将程序员决定的一个集合汇集了多个而得到的JOB。
JOB在FPGA上执行的情况下,可以是将程序员所编写的程序变换为比特流而得到的。JOB在程序可变器件上执行的情况下,可以是能够在硬件上执行的形态,例如程序员所编写的程序被编译而得到的、被变换为机器语言而得到的等。
关于JOB,可以使用能够唯一地确定所述JOB的JOB的ID等能够识别JOB的信息来管理。因此,JOB管理器可以具有将用于确定JOB的信息与实际执行的JOB建立关联地存储而得到的数据库。
JOB管理器可以针对JOB进行数据流分析,与所述数据流相应地决定要处理的JOB的顺序。该顺序可以是使用各JOB的输入数据和输出数据的信息进行数据流分析而决定出的顺序。
另外,JOB管理器可以对作为JOB以下的粒度的处理的TASK进行管理。例如,由JOB管理器进行的管理可以包括将一个JOB分解为一个或多个TASK的处理、获取关于在硬件资源中已执行的TASK的处理状况的信息的处理、进行与使分解得到的一个或多个TASK在被分配的硬件资源中执行相关的指示的处理。关于TASK的处理状况的信息例如可以包括用于TASK的初始化、TASK的执行开始、用于执行TASK的定时器的管理、对TASK的异常进行处理的处理、TASK的结束的处理等。结束的处理例如可以包括从TASK受理TASK的结束报告的功能。另外,与执行相关的指示可以包括与上述的处理状况对应的指示。
4.1.2.资源管理器
资源管理器具有针对构成JOB的一个或多个TASK进行硬件资源的管理的功能。资源管理器可以具备与硬件资源建立了关联的上述的资源信息所涉及的数据库,用于管理硬件资源。
资源管理器可以将用于确定构成一个JOB的一个或多个TASK的信息(例如ID等)与被写入了所述TASK的硬件资源建立关联地存储到数据库。所述ID可以是按每个比特流来赋予的。另外,关于所述ID,若例如通过程序语言来简单地说明,则可以对如一个函数那样的程序赋予一个ID。因此,在执行函数时有可能被提供各种输入信息(参数)、而输出结果可能根据这样的参数发生改变的一个函数可以与一个ID相对应。可以是,输入信息资源管理器使用所述数据库,针对用于确定TASK的信息判定是否已写入到硬件资源,如果已写入则利用已写入的电路,如果未写入则在新写入后使其执行。通过所述建立关联,具有能够减少不必要的写入的优点。此外,关于TASK,既可以对上述的一个FPGA分配一个TASK,也可以对一个FPGA内的一个PR区域分配一个TASK。
资源管理器的管理功能可以包括提供与TASK相对应的硬件资源的功能。
例如,资源管理器可以在存在来自JOB管理器的与TASK对应的硬件资源的请求的情况下,选定与TASK对应的硬件资源并传递到JOB管理器。
在此,资源管理器也可以在选定硬件资源时,从JOB管理器获取与TASK相关的信息。与TASK相关的信息可以包括上述的资源信息,例如,可以包括用于执行TASK的可重构器件的种类、与运算装置相关的属性、与存储装置相关的属性和/或与通信装置相关的属性等信息。资源管理器可以从关于资源信息的数据库内选定对应于与TASK相关的信息的硬件资源、即具有能够执行TASK的硬件资源的硬件资源。在此,关于选定,只要是能够执行TASK的硬件资源即可,因此,关于可重构器件的种类、与运算装置相关的属性、与存储装置相关的属性和/或与通信装置相关的属性中的、种类或型号,虽然需要一致,但是与运算装置相关的属性、与存储装置相关的属性和/或与通信装置相关的属性等信息中的功能性的信息只要是包含与TASK相关的信息的功能的信息即可。
资源管理器可以将用于确定所选定的资源信息所对应的现实的硬件资源的信息传递到JOB管理器。例如,可以将作为被写入的对象的可重构器件的物理ID、用于确定所述器件的IP地址等网络上的位置、和/或用于确定作为被写入的对象的PR区域的IP地址或端口号等FPGA或网络上的位置的信息传递到JOB管理器。另外,在数据库中,可以将所述TASK已被分配的情况与用于确定已分配的硬件资源的信息建立关联地存储。
在此,资源管理器也可以在选定具有能够执行TASK的硬件资源的硬件资源时,依次处理以下的3个步骤。在执行以下的步骤的情况下,具有有可能使得时间能够进一步缩短的优点。
(步骤1)
在作为分配硬件资源的对象的TASK已被写入到硬件资源内的情况下,分配所述操作符(operator)的硬件资源。在已经写入了操作符的情况下,具有能够缩短新进行写入的时间的优点。关于所述已写入的有无,如上所述,使用与TASK建立了关联的ID等。另外,关于是利用所述已写入的TASK还是新写入的判断,可以借助所述ID来由用户进行判断。此外,作为其它方式,也可以设为在某个TASK正在使用其它输入信息来执行的情况下进行分配所述硬件资源的选择的结构,也可以设为进行分配其它硬件资源的选择的结构。在后者的情况下,可以前进到以下的2的步骤。所述选择分支可以是基于对新写入对应于TASK的比特流所需的时间与其它执行中的TASK的预定完成时间的比较进行预测的预测处理来判断的。此外,关于后者,也可以只在对所述TASK赋予了优先TASK等信息的情况下进行后者的处理。这是为了在是应优先地处理的TASK的情况下,即使在已经正被写入时也不会因执行其它TASK而延迟。
(步骤2)
在作为分配硬件资源的对象的TASK并非已写入到硬件资源内、且能够在数据库内选定能够写入所述ASK的PR区域的情况下,对所述PR区域写入关于TASK的比特流。若与接下来的3的步骤进行比较,则具有以下优点:能够缩短分区Shell的写入以及使用所述新选定的PR区域的信息的话也许需要数小时的编译的时间。在此,PR区域的选定基准可以使用上述的硬件资源确定处理。
(步骤3)
在作为分配硬件资源的对象的TASK并非已写入到硬件资源内、且在数据库内无法选定能够写入所述TASK的PR区域的情况下,对能够确保能够写入TASK的PR区域的FPGA写入分区Shell。在写入了所述分区Shell之后,向基于所述分区Shell的PR区域写入TASK。此外,在该情况下,也可以不用新写入分区Shell,而是在已写入管理程序Shell而未写入分区Shell的FPGA中不利用PR区域地写入TASK。另外,即使在能够选定能够写入TASK的PR区域的情况下,也可以1)另外对能够确保能够写入TASK的PR区域的其它FPGA写入分区Shell,并向基于所述分区Shell的PR区域写入TASK,或者也可以2)在已写入管理程序Shell而未写入分区Shell的FPGA中不利用PR区域地写入TASK。此外,在作为分配硬件资源的对象的TASK并非已写入到硬件资源内、且在数据库内无法选定能够写入所述TASK的PR区域的情况下,也可以取代上述,而是不写入分区Shell和/或管理程序Shell,使用USB线缆、JTAG来将与TASK对应的比特流写入到FPGA。在该情况下,既可以是,USB线缆预先已被连接,经由JTAG通过程序自动地写入与TASK对应的比特流,也可以是,人进行USB线缆的连接并使用JTAG来写入与TASK对应的比特流。
4.1.3.TASK管理器
TASK管理器具有进行TASK的管理的功能。TASK管理器使用来自JOB管理器的指示,对在与写入了TASK管理器的FPGA相同的FPGA内执行的TASK进行管理。或者,TASK管理器可以将关于TASK的处理状况传递到JOB管理器。
TASK管理器可以具有示出表示在写入了TASK管理器的FPGA内执行的JOB的信息与所述JOB的当前的执行状况之间的关系的表。所述执行状况可以包括正在执行、未执行和/或中断等状况。
来自JOB管理器的指示可以包括与用于确定JOB的信息建立了关联的初始化、开始、中断或者取消的指示。
初始化包括JOB所使用的存储信息和/或通信信息的初始化。所述初始化的指示可以在向FPGA内新写入了操作符的情况、和/或、执行新的JOB的情况下被处理。在新写入操作符的情况下,还存在作为写入处理的一个阶段而进行存储信息和/或通信信息的初始化的情况,但是在作为分布式处理的一个步骤而进行再次初始化的情况下,具有能够进一步确保初始化的优点。另外,具有以下优点:在相同的操作符内的新的JOB的情况下,消除了之前执行的JOB的处理的影响。
开始可以是指示开始TASK的指示。TASK管理器可以从JOB管理器获取与操作符所利用的参数(用于使TASK执行的输入信息)建立关联的开始的指示。TASK管理器可以将TASK的开始的指示与用于使TASK执行的输入信息一起发送到用于执行与开始的指示相关的TASK的PR区域,来执行TASK的开始。
中断可以是使TASK的执行暂时停止的指示。在开始的指令再次到来的情况下,可以重新开始TASK的执行。
另外,TASK管理器可以将TASK的异常处理、TSK的完成报告作为关于TASK的处理状况传递到JOB管理器。
4.2.处理的流程
4.2.1.处理的流程的第一方式例
接着,说明本例的系统的处理的流程的一例,但是不限于所述例子,能够实现各种例子,这是不言而喻的。
首先,作为准备阶段的处理,在与资源管理器相关的数据库事先保存关于现实的FPGA的信息。例如,与用于确定所连接的物理性的FPGA的信息建立关联地存储所述FPGA的种类、与运算装置相关的属性、与存储装置相关的属性和/或与通信装置相关的属性等信息。通过所述结构,如上所述,资源管理器能够确定能够执行存在询问的JOB的硬件资源。所述信息可以手动或自动地登记到数据库。
另外,JOB管理器可以具有与各JOB相关的信息的表。
步骤1
JOB管理器进行JOB的数据流分析,来决定要执行的JOB。在此,JOB管理器可以使用与各JOB相关的信息来进行数据流分析。与JOB相关的信息例如可以是JOB的输入数据、JOB的输出数据等数据流分析所需的信息。关于数据流分析本身,可以使用公知的技术。另外,JOB也可以是被编译为能够在FPGA上执行的比特流的方式。
步骤2
JOB管理器向资源管理器询问能够执行要执行的JOB的硬件资源。在此,各JOB所需的资源信息可以预先由JOB管理器保有。所述资源信息可以是由程序员预先登记为在执行各JOB的情况下所需的资源信息的信息。此外,在JOB是如上所述那样被编译而得到的比特流的方式的情况下,也可以是,作为前提的FPGA的信息和/或关于PR区域的信息等信息包含于资源信息并在选定硬件资源时被利用。
步骤3
资源管理器决定与要执行的JOB对应的硬件资源,并将所述硬件资源传递到JOB管理器。在该情况下,可以进行上述的3个步骤的处理。
步骤4
JOB管理器对与每个JOB对应的硬件资源进行与JOB相关的比特流和/或执行JOB时的输入信息的通信。在该情况下,分区Shell和/或与JOB相关的操作符在比特流等方式下可以在对应的硬件资源中被写入。在该情况下,使用FPGA写入器和/或分区Shell等来写入。
步骤5
与每个JOB对应的硬件资源内的TASK管理器对JOB中包括的TASK进行管理,推进TASK的执行。
4.2.2.处理的流程的第二方式例
接着,作为上述的处理的流程的一个方式,说明特别着眼于JOB管理器和TASK管理器的流程。在以下的流程中,是JOB管理器还兼具上述的资源管理器的作用来执行的例子。另外,是利用FPGA写入器的例子,但是所述功能只要是安装于除可重构器件内以外的地方,则可以安装于任何地方。
首先,如图12那样,JOB管理器01将要在FPGA 03A及03B中利用的比特流信息发送到FPGA写入器02。
接着,如图13那样,FPGA写入器02将比特流发送到FPGA03A及03B,来分别写入。
然后,如图14那样,从JOB管理器01将TASK的开始命令分别传递到作为TASK的执行场所的FPGA03A及03B内的各TASK管理器,各TASK管理器在同一FPGA内的处理电路中开始执行。
此外,在上述的例子中,示出了从JOB管理器发送比特流的例子,但是在决定了在JOB管理器内执行的JOB和作为执行的场所的硬件资源的情况下,与所述JOB对应的比特流也可以保存于与FPGA写入器正在被执行的信息处理装置相关的存储设备、数据库、存储系统来利用。
4.2.3.处理的流程的第三方式例
接着,作为分布式处理的一例,说明对1至1000进行合计的例子。
在本例中,如图15那样,本例的系统可以包括具备安装于程序可变器件内的JOB管理器的服务器01、经由网络连接的包括安装有FPGA写入器的程序可变器件及通过PCIe与所述程序可变器件连接的FPGA的服务器02、以及具备FPGA的服务器03。所述结构是一例,服务器内的FPGA的个数不限于2个,也可以是一个或多个的任意个数,包括与FPGA写入器连接的FPGA的服务器也不限于2个,也可以是一个或多个的任意个数,网络的结构也可以存在各种结构。
接着,图16示出从JOB管理器向服务器02内的FPGA写入器发送预定写入到FPGA的比特流的状态。在此,各FPGA中利用的比特流既可以相同,也可以不同。例如,在本例中,如后所述,设想了1至1000的合计分为1至250、251至500、501至750、751至1000来计算,但是进行执行这些分出的各部分计算并返回其结果的处理的FPGA用的比特流与进行除了这些分出的各部分计算以外还对它们的合计进行计算的处理的FPGA用的比特流可以不同。另外,在前者中也是,如果被写入的FPGA的种类、FPGA内的功能不同,则可以是与它们相应的比特流。
接着,图17示出FPGA写入器向各FPGA写入比特流的方式。在此,关于向各FPGA写入比特流,可以经由PCIe、USB、JTAG、Ethernet、Infiniband等互连(interconnect)来写入。另外,关于这些写入,被写入的FPGA既可以在与FPGA写入器相同的服务器内,也可以在与FPGA写入器不同的服务器内。
接着,图18示出从JOB管理器向各FPGA内的TASK管理器传递TASK的开始命令的状态。在所述步骤中,可以还一起传递TASK中利用的输入信息。例如,在本例中,可以传递1至250、251至500、501至750、751至1000等输入信息。
接着,在图19中,接受TASK管理器的指示,在各FPGA内被写入了比特流的处理电路执行TASK。例如,在本例中,可以进行1至250、251至500、501至750、751至1000的各部分的计算。
接着,图20示出将在各FPGA内计算出的结果传递到一个FPGA内的TASK的处理电路来计算它们的合计的状态。例如,由FPGA04A至04C计算出的各结果可以传递到FPGA04D。在该情况下,可以预先基于JOB管理器的数据流分析来决定FPGA04D的网络上的位置。关于所述网络上的位置,既可以包含于比特流内来写入到各FPGA,也可以作为表示处理结果的传递目的地的向TASK的输入信息而与各TASK的开始命令一起传递到各FPGA。
最后,图21示出FPGA内的各TASK管理器向JOB管理器传递各TASK的执行已结束的状态。
4.3.其它方式例
本形态的一个方式的系统可以是一种分布式处理管理系统,具备JOB管理器和资源管理器,其中,
所述JOB管理器获取多个JOB,所述多个JOB包括在FPGA上执行的一个或多个JOB,
所述资源管理器选择与所述JOB对应的资源,
所述JOB管理器对所述资源分配所述JOB,
在所述系统中,
在所述JOB是通过将比特流写入到所述FPGA上来执行的比特流JOB的情况下,所述资源管理器从与所述比特流JOB相关的多个比特流选择与分配了所述比特流JOB的PR区域对应的对应比特流。
另外,可以是一种分布式处理系统,其中,
在所述JOB是通过将比特流写入到所述FPGA上来执行的比特流JOB的情况下,
在能够执行所述JOB的比特流已被写入到FPGA内时,所述资源管理器将与所述写入的位置对应的信息传递到JOB管理器,
在能够执行所述JOB的比特流虽未写入到FPGA内但存在能够写入的PR区域时,所述资源管理器将包含表示所述能够写入的PR区域的信息的信息传递到JOB管理器,
在能够执行所述JOB的比特流未被写入到FPGA内、且不存在能够写入的PR区域时,所述资源管理器将包含表示所述能够写入的区域的信息的信息传递到JOB管理器。
5.第四系统
第四系统是用于在上述的第一系统中开发用户写入的比特流的开发工具所涉及的技术。在用户开发出在FPGA上执行的程序之后用户将程序写入到FPGA上的情况下,需要将通过硬件描述语言或高层次综合语言记述的程序(在本申请文件中也有时称为“HDL程序或HLS程序”)进行编译来变为比特流使得能够写入到FPGA上。该比特流需要是与FPGA的种类、PR区域等资源信息对应的比特流,不与FPGA的种类、PR区域等资源信息对应的比特流无法被写入到不对应的资源信息中的FPGA。在该情况下,需要将HDL程序或HLS程序编译为比特流以供预定写入的FPGA用,根据HDL程序或HLS程序的不同,也有时编译时间需要数小时以上。因此,在第一系统中,在用户确保了与特定的资源信息对应的硬件之后未生成与所确保的硬件对应的比特流的情况下,生成比特流需要时间,在该期间,所确保的硬件未利用。这会导致硬件资源的利用不高效,另外,在用户是按时收费制的情况下,即使不利用也会产生费用。因此,第四系统是应对所述问题而能够提高硬件资源的利用的效率性的系统。如上所述,在下面主要使用FPGA来进行说明,但是除了FPGA以外,在可重构器件中也同样能够安装。
此外,第四系统也可以是以上述的第一系统为前提而与第四系统建立了关联所得到的系统。另一方面,第四系统也可以是没有安装第一系统的环境中的系统。
5.1.结构例
第四系统可以通过网络等来与后述的硬件信息提供装置及后述的编译装置直接或间接地连接。
第四系统可以是由用户利用的系统。第四系统可以是用户所利用的终端装置、被用户所利用的终端访问的信息处理装置、或者在这些装置上执行的程序。
5.2.功能例
如图22那样,第四系统的一例的系统可以具备用户接口部、硬件信息提供装置通信部和/或编译器通信部。
5.2.1.用户接口部
用户接口部可以从用户获取信息。例如,可以从用户获取进行与类型模板相关的信息的更新的指示。
另外,用户接口部可以向用户提供信息。
此外,关于与类型模板相关的信息的更新,不限于根据来自用户的指示来更新,也可以根据规定的条件来更新。规定的条件例如可以包括每隔规定的定期期间。
5.2.2.硬件信息提供装置通信部
硬件信息提供装置通信部可以具有能够与不同于第四系统的、能够提供硬件信息的系统进行通信的功能。能够提供硬件信息的装置(在本申请文件中也有时称为“硬件信息提供装置”)既可以是上述的第一系统,也可以不是上述的第一系统。硬件信息提供装置只要具有能够提供用于确定被写入HDL程序或HLS程序的FPGA或者FPGA内的PR区域的信息的功能即可。
硬件信息提供装置通信部可以与规定的条件对应地,向硬件信息提供装置请求用于确定被写入HDL程序或HLS程序的FPGA或者FPGA内的PR区域的信息(在本申请文件中也有时称为“硬件确定信息”)。在此,硬件确定信息可以是以能够写入HDL程序或HLS程序被编译所得到的比特流的限度确定出的资源信息。例如,硬件信息可以是包括用于确定PR区域的信息的资源信息等即使是不同的硬件也能够写入同一比特流的资源信息。这是由于:关于不包含PR区域的资源信息,若PR区域不同则无法写入同一比特流。
规定的条件可以包括从用户获取到了进行类型模板的更新的信息的情况。另外,规定的条件可以包括满足了规定的时间条件的情况。规定的时间条件可以是每隔规定的定期时间。另外,规定的时间条件可以是预先决定的日期时间。
硬件信息提供装置通信部可以具有从所述硬件信息提供装置获取硬件确定信息的功能。硬件信息提供装置通信部既可以与上述的请求对应地获取硬件确定信息,也可以不进行上述的请求就获取硬件确定信息。后者例如可以是,硬件信息提供装置基于规定的条件,将硬件确定信息发送到第四系统,硬件信息提供装置通信部与所述发送对应地获取硬件确定信息。
硬件信息提供装置通信部所获取的硬件确定信息既可以是关于硬件信息提供装置能够提供的所有硬件的硬件确定信息,也可以是关于硬件信息提供装置能够提供的一部分硬件的硬件确定信息。所述一部分可以是在硬件信息提供装置所提供的硬件中基于所述用户能够利用的硬件的信息来选择的。例如,在利用被编译的HDL程序或HLS程序的用户为规定的会员的情况下,可以从所述会员能够利用的硬件选择所述一部分硬件确定信息。关于所述选择,可以基于规定的基准来选择。所述规定的基准例如可以是在所述用户能够利用的硬件中从第一系统的管理者想要使用户利用的硬件中进行选择那样的基准。
5.2.3.编译器通信部
编译器通信部具有与第四系统外的编译器进行通信的功能。编译器通信部可以具有向编译器发送编译的指示的功能。编译器通信部可以与编译的指示相关联地将编译中利用的信息发送到编译器。所述信息例如可以包括要编译的HDL程序或HLS程序和/或要写入编译得到的比特流的硬件确定信息。
编译器通信部可以在编译结束后从编译器获取编译结果。编译结果可以包括设计中间文件。设计中间文件可以包含与除作为对象的PR区域以外的部分之间配置布线的信息。例如,在作为硬件确定信息而包括第一FPGA的PR区域1的情况下,对应的设计中间文件可以包含与第一FPGA内的除所述第一FPGA的PR区域1以外的部分之间的布线信息。此外,在硬件确定信息包括多个PR区域的情况下,对应的设计中间文件可以包含与(包括各PR区域的)FPGA内的除与所述多个PR区域中的各个PR区域对应的各PR区域以外的部分之间的布线信息。另外,编译结果可以包括比特流的形式的信息。编译器结果可以包括多个部分比特流的形式的信息。
5.3.处理的流程的例子
接着,使用图23来说明本例的系统的一例的处理的流程,但是本例的系统的功能的处理不限于所述流程,也可以是,能够进行多种多样的处理。
首先,作为第四系统的本例的系统从用户获取硬件确定信息的更新的指示(步骤1)。
接着,本例的系统对硬件信息提供装置指示硬件确定信息的更新(步骤2)。
接着,本例的系统从硬件信息提供装置获取硬件确定信息来进行更新(步骤3)。例如,本例的系统从硬件信息提供装置获取硬件确定信息。此外,步骤3也可以以没有步骤1和/或2的方式来执行,在该情况下,步骤1及2可以有也可以没有。
接着,本例的系统将与作为编译对象的HDL程序等相关的信息(包括HDL程序或HLS程序、和/或、用于确定HDL程序或HLS程序的信息。以下同样。)和硬件确定信息从用户传递到编译装置(步骤4)。在此,硬件确定信息既可以是本例的系统所具有的所有硬件确定信息,也可以是其一部分。具有以下优点:随着作为编译对象的硬件确定信息增加而能够写入的对象增加。另一方面,在是一部分的情况下,具有以下优点:虽然能够写入的对象变少,但是总计编译时间变短。
编译装置使用与作为编译对象的HDL程序等相关的信息和硬件确定信息来进行编译(步骤5)。在该情况下,编译装置既可以针对所有硬件确定信息进行编译,也可以使用规定范围的硬件确定信息来进行编译。具有以下优点:随着编译对象的硬件确定信息增加而能够写入的对象增加。另一方面,在限定为规定范围的情况下,具有以下优点:虽然能够写入的对象变少,但是总计编译时间变短。
编译装置将编译结果发送到本例的系统,本例的系统从编译装置获取编译结果(步骤6)。
此外,之后,可以在第一系统中如已说明的那样进行处理。例如,在本例的系统与第一系统连接的情况下,本例的系统可以选择类型模板内的一个或多个资源信息,并向第一系统请求确保对应的硬件资源。第一系统可以在确保对应的硬件资源成功了的情况下,向数据库进行了登记,在此基础上向本例的系统传递所确保的硬件资源的信息。所确保的硬件资源的信息例如可以包括用于确定被写入了分区Shell从而能够利用的PR区域的信息。所述用于确定能够利用的PR区域的信息可以包括IP地址或MAC地址等与PR区域相关的网络地址、所述PR区域的ID和/或用于确定包括所述PR区域的FPGA的信息。
第四系统的一例的系统可以具备:
用户接口部,其向用户提供信息和/或从用户获取信息;
硬件确定信息提供装置通信部,其具有能够与第一系统或硬件确定信息提供装置进行通信的功能;以及
编译器通信部,其具有能够与编译器进行通信的功能,所述编译器能够将HDL程序或HLS程序变换为能够写入到FPGA的比特流。
6.关于各种实施方式
基于第1方式的系统为“一种系统,具备:获取部,其从用户获取表示第一资源的信息;确定部,其确定与所述表示第一资源的信息对应的第一可重构器件;以及指示部,其指示对所述第一可重构器件写入与所述表示第一资源的信息对应的第一分区Shell”。
基于第2方式的系统为,在上述第1方式中,“所述获取部获取与所述表示第一资源的信息不同的表示第二资源的信息,所述指示部指示对所述第一可重构器件写入与所述表示第二资源的信息对应的、不同于所述第一分区Shell的第二分区Shell”。
基于第3方式的系统为,在上述第1方式或上述第2方式中,“还具备呈现部,所述呈现部向所述用户呈现一个或多个资源信息,所述表示第一资源的信息是所呈现出的所述一个或多个可重构器件资源信息的一部分”。
基于第4方式的系统为,在上述第1方式至上述第3方式中的任一方式中,“所述呈现部针对所述第一可重构器件呈现关于PR区域的设定的多个设定方法”。
基于第5方式的系统为,在上述第1方式至第4方式中的任一方式中,“所述一个或多个资源信息包含与运算功能相关的信息、与存储功能相关的信息和/或与通信功能相关的信息”。
基于第6方式的系统为,在上述第1方式至第5方式中的任一方式中,“所述获取部获取与所述表示第一资源的信息及所述表示第二资源的信息不同的表示第三资源的信息,所述确定部确定与所述表示第三资源的信息对应的、不同于所述第一可重构器件的第三可重构器件,所述指示部指示对所述第三可重构器件写入与所述表示第三资源的信息对应的第三分区Shell”。
基于第7方式的系统为,在上述第1方式至第6方式中的任一方式中,“所述系统至少具备将所述表示第一资源的信息与表示对应于所述表示第一资源的信息的所述第一可重构器件的信息建立关联地存储的数据库”。
基于第8方式的系统为,在上述第1方式至第7方式中的任一方式中,“在所述第一可重构器件中已预先写入具有所述第一分区Shell所不具有的功能的管理程序Shell”。
基于第9方式的系统为,在上述第1方式至第8方式中的任一方式中,“所述系统具备询问部,所述询问部询问与所述管理程序Shell对应的第一PR区域的状况,所述管理程序Shell能够回答针对来自所述询问部的所述第一PR区域的状况的询问的回答”。
基于第10方式的系统为,在上述第1方式至第9方式中的任一方式中,“所述管理程序Shell具有关于用户要写入的目的地的PR区域的权限的确认功能”。
基于第11方式的系统为,在上述第1方式至第10方式中的任一方式中,“所述管理程序Shell具有关于用户要写入的目的地的PR区域的权限的确认功能,该PR区域可以包括与所述第一可重构器件相关的存储功能和/或通信功能的初始化功能”。
基于第12方式的方法为“一种方法,由系统执行以下处理:从用户获取表示第一资源的信息;确定与所述表示第一资源的信息对应的第一可重构器件;以及指示对所述第一可重构器件写入与所述表示第一资源的信息对应的第一分区Shell”。
基于第13方式的方法为,在上述第12方式中,“所述系统存储用于确定与所述表示第一资源的信息对应的所述第一可重构器件的信息”。
基于第14方式的计算机程序为“一种程序,用于使系统作为以下单元进行动作:从用户获取表示第一资源的信息的单元;确定与所述表示第一资源的信息对应的第一可重构器件的单元;以及指示对所述第一可重构器件写入与所述表示第一资源的信息对应的第一分区Shell的单元”。
基于第15方式的计算机程序为,在上述第14方式中,“所述系统存储用于确定与所述表示第一资源的信息对应的所述第一可重构器件的信息”。
7.程序可变器件的结构例
如图24那样,程序可变器件10可以具备运算装置12、存储装置13、通信IF 16以及将它们连接起来的总线11。另外,程序可变器件10可以还具备输入装置14、显示装置15以及将它们也连接起来的总线11。另外,程序可变器件10可以与其它信息处理装置经由网络19来直接或间接地连接。
程序可变器件10可以是服务器、云等信息处理装置。既可以是专用装置,也可以是通用装置。另外,程序可变器件10本身也可以是在可重构器件中写入了电路而成的装置。在该情况下,具有以下优点:能够更迅速地执行上述的各种实施方式的程序。
在上述中,作为本例的系统实施的结构进行了说明,但是它们也可以是系统内的一个或多个信息处理装置实施的结构。另外,本申请文件所涉及的系统可以通过各种方式来呈现。例如,呈现可以包括显示。例如,本例的系统既可以是本例的系统中包括的显示装置进行显示,也可以是在本例的系统直接或间接地连接的其它信息处理装置内的显示装置中显示。
在本申请文件的实施例中所叙述的发明例不限于在本申请文件中说明的例子,能够在其技术思想的范围内应用于各种例子,这是不言而喻的。
另外,在本申请文件中说明的处理及过程也可以是,不仅能够通过在实施方式中明示地说明的方式来实现,也能够通过软件、硬件或者它们的组合来实现。另外,在本申请文件中说明的处理及过程可以是,能够将它们的处理、过程作为计算机程序来安装并在各种计算机中执行。另外,这些计算机程序可以存储于存储介质。另外,这些程序可以存储于非暂态或暂态的存储介质。

Claims (15)

1.一种系统,具备:
获取部,其从用户获取表示第一资源的信息;
确定部,其确定与所述表示第一资源的信息对应的第一可重构器件;以及
指示部,其指示对所述第一可重构器件写入与所述表示第一资源的信息对应的第一分区Shell。
2.根据权利要求1所述的系统,其中,
所述获取部获取与所述表示第一资源的信息不同的表示第二资源的信息,
所述指示部指示对所述第一可重构器件写入与所述表示第二资源的信息对应的、不同于所述第一分区Shell的第二分区Shell。
3.根据权利要求2所述的系统,其中,
还具备呈现部,所述呈现部向所述用户呈现一个或多个资源信息,
所述表示第一资源的信息是所呈现出的所述一个或多个可重构器件资源信息的一部分。
4.根据权利要求3所述的系统,其中,
所述呈现部针对所述第一可重构器件呈现关于部分可重构区域即PR区域的设定的多个设定方法。
5.根据权利要求3所述的系统,其中,
所述一个或多个资源信息包含与运算功能相关的信息、与存储功能相关的信息和/或与通信功能相关的信息。
6.根据权利要求2至5中的任一项所述的系统,其中,
所述获取部获取与所述表示第一资源的信息及所述表示第二资源的信息不同的表示第三资源的信息,
所述确定部确定与所述表示第三资源的信息对应的不同于所述第一可重构器件的第三可重构器件,
所述指示部指示对所述第三可重构器件写入与所述表示第三资源的信息对应的第三分区Shell。
7.根据权利要求1至6中的任一项所述的系统,其中,
所述系统至少具备将所述表示第一资源的信息与表示对应于所述表示第一资源的信息的所述第一可重构器件的信息建立关联地存储的数据库。
8.根据权利要求1至7中的任一项所述的系统,其中,
在所述第一可重构器件中已预先写入具有所述第一分区Shell所不具有的功能的管理程序Shell。
9.根据权利要求8所述的系统,其中,
所述系统具备询问部,所述询问部询问与所述管理程序Shell对应的第一PR区域的状况,
所述管理程序Shell能够回答针对来自所述询问部的所述第一PR区域的状况的询问的回答。
10.根据权利要求8或9所述的系统,其中,
所述管理程序Shell具有关于用户要写入的目的地的PR区域的权限的确认功能。
11.根据权利要求8至10中的任一项所述的系统,其中,
所述管理程序Shell具有关于用户要写入的目的地的PR区域的权限的确认功能,该PR区域可以包括与所述第一可重构器件相关的存储功能和/或通信功能的初始化功能。
12.一种方法,由系统执行以下步骤:
从用户获取表示第一资源的信息;
确定与所述表示第一资源的信息对应的第一可重构器件;以及
指示对所述第一可重构器件写入与所述表示第一资源的信息对应的第一分区Shell。
13.一种方法,所述系统存储用于确定与所述表示第一资源的信息对应的所述第一可重构器件的信息。
14.一种程序,使系统作为以下单元进行动作:
从用户获取表示第一资源的信息的单元;
确定与所述表示第一资源的信息对应的第一可重构器件的单元;以及
指示对所述第一可重构器件写入与所述表示第一资源的信息对应的第一分区Shell的单元。
15.一种程序,所述系统存储用于确定与所述表示第一资源的信息对应的所述第一可重构器件的信息。
CN202180099351.0A 2021-04-13 2021-04-13 信息处理系统、信息处理装置、服务器装置、程序、可重构器件或者方法 Pending CN117529706A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2021/015354 WO2022219727A1 (ja) 2021-04-13 2021-04-13 情報処理システム、情報処理装置、サーバ装置、プログラム、リコンフィグラブルデバイス、又は方法

Publications (1)

Publication Number Publication Date
CN117529706A true CN117529706A (zh) 2024-02-06

Family

ID=83639864

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202180099351.0A Pending CN117529706A (zh) 2021-04-13 2021-04-13 信息处理系统、信息处理装置、服务器装置、程序、可重构器件或者方法

Country Status (4)

Country Link
EP (1) EP4325359A1 (zh)
JP (1) JPWO2022219727A1 (zh)
CN (1) CN117529706A (zh)
WO (1) WO2022219727A1 (zh)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0606653A1 (en) 1993-01-04 1994-07-20 Texas Instruments Incorporated Field programmable distributed processing memory
JP5438358B2 (ja) 2009-04-13 2014-03-12 キヤノン株式会社 データ処理装置及びその制御方法
US10459773B2 (en) * 2016-05-19 2019-10-29 Hitachi, Ltd. PLD management method and PLD management system
CN109639446B (zh) * 2017-10-09 2022-01-11 阿里巴巴集团控股有限公司 Fpga设备、基于fpga设备的云系统
JP2020135318A (ja) 2019-02-18 2020-08-31 株式会社日立製作所 データ処理装置、及びデータ処理方法

Also Published As

Publication number Publication date
WO2022219727A1 (ja) 2022-10-20
EP4325359A1 (en) 2024-02-21
JPWO2022219727A1 (zh) 2022-10-20

Similar Documents

Publication Publication Date Title
US11863406B2 (en) Networked programmable logic service provider
US11070488B2 (en) System and method to control a cross domain workflow based on a hierarchical engine framework
CN107145380B (zh) 虚拟资源编排方法及装置
CN109710236B (zh) 基于共享服务的业务开发和实现方法、装置、平台及介质
CN111984269B (zh) 提供应用构建服务的方法及应用构建平台
CN109446072A (zh) 测试脚本的生成方法和装置
CN109117252B (zh) 基于容器的任务处理的方法、系统及容器集群管理系统
CN111984270A (zh) 应用部署方法和系统
US11941413B2 (en) Managed control plane service
US11948005B2 (en) Managed integration of constituent services of multi-service applications
CN113407157A (zh) 物模型的确定方法及装置、存储介质、电子装置
EP4172773A1 (en) Managed control plane service
CN113157396A (zh) 一种虚拟化服务系统和方法
JP2024501005A (ja) コンテナクラスタのための管理方法および装置
CN117529706A (zh) 信息处理系统、信息处理装置、服务器装置、程序、可重构器件或者方法
CN111371578B (zh) 部署虚拟化网络功能的方法和装置
CN115167874B (zh) 自动驾驶软件镜像部署方法、装置、电子设备和可读介质
CN114816665B (zh) 混合编排系统及超融合架构下虚拟机容器资源混合编排方法
CN111143033A (zh) 基于可伸缩操作系统的操作执行方法及装置
WO2023193609A1 (en) Selective privileged container augmentation
EP4345615A1 (en) Storage resource management method, apparatus, and system for container cluster
Miguelez A software framework for software radio
JP2000133716A (ja) 情報処理システム
CN114706655A (zh) 请求处理方法、计算设备及计算机存储介质
CN112612514A (zh) 程序开发方法和装置、存储介质及电子装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination