CN101620588B - 高效能计算机中可重构部件的一种连接与管理方法 - Google Patents
高效能计算机中可重构部件的一种连接与管理方法 Download PDFInfo
- Publication number
- CN101620588B CN101620588B CN2008101404736A CN200810140473A CN101620588B CN 101620588 B CN101620588 B CN 101620588B CN 2008101404736 A CN2008101404736 A CN 2008101404736A CN 200810140473 A CN200810140473 A CN 200810140473A CN 101620588 B CN101620588 B CN 101620588B
- Authority
- CN
- China
- Prior art keywords
- configurable component
- universal cpu
- administrative unit
- configurable
- network
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
本发明涉及一种高效能计算机系统中通用CPU与可重构部件之间的连接方法和管理方法。本发明高效能计算机系统中含有一定数量的计算节点,每个计算节点含有一定数量的通用CPU和可重构部件及一个可重构部件连接网络和一个管理单元。计算节点内所有的通用CPU、可重构部件和管理单元均通过可重构部件连接网络连接,缺省情况下,计算节点内所有通用CPU与可重构部件之间的连接都是断开的。本发明可重构部件连接方法,使可重构部件不再隶属于任何通用CPU,通用CPU与可重构部件之间能够进行任意组合,增加了系统的灵活性;可重构部件管理方法,实现了可重构部件的实时监控、动态灵活配置,能够充分发挥高效能计算机系统中可重构部件和通用CPU的作用。
Description
一、技术领域:
本发明涉及一种高效能计算机系统中通用CPU与可重构部件(如FPGA)之间的连接方法和可重构部件的一种管理方法,适用于高效能计算机系统。
二、背景技术:
经过数十年的发展,国内外在高性能计算(HPC)研究领域已经取得了丰硕的成果,所设计超级计算机的峰值速度正在接近Pflops(千万亿次浮点运行)。然而,从HPC现状和发展趋势来看,仅通过网络规模的扩展和CPU的堆砌,已很难逾越存储墙、规模墙、高能耗、高成本、低利用率等瓶颈问题,有必要探讨新的理论、技术和方法,以实现超级计算机设计的新突破。
随着可配置器件(如Field Programmable Gate Arrays,FPGA)规模和性能的不断提高,基于FPGA的可重构超级计算正在兴起。在利用可重构部件构建的高效能计算机中,可以实现软件的硬化,即利用硬件实现核心计算算法,从而大幅度提高系统的性能,降低系统的功耗;还可以实现硬件的软化,即能够通过配置FPGA来重构计算机系统使其适应计算的需求,从而充分发挥系统的作用,加快计算的处理速度。这里可重构部件指的是可现场进行配置的、与通用CPU相连的硬组件,用于对通用CPU进行计算加速。可重构高性能计算技术结合了传统硬件和软件实现方案的优点,既具有硬件并行计算的高性能,又具有软件并行计算的灵活性,它为以低代价进行超级计算提供了一条可能的途径。
在基于可重构部件的超级计算机系统中,必然会存在许多的通用CPU(数千乃至数万个),也必然会存在许多的可重构部件(数千乃至数万个)。在利用高效能计算机处理某个具体任务之前,必须根据任务的需求对可重构部件进行适当的配置,即将可重构部件配置成专门用于完成某项处理或计算的硬件设备。对一个具体任务来说,它可能需要将可重构部件配置成同一种类型的硬件设备,也可能需要将可重构部件配置成多种类型的硬件设备。另一方面,对一个通用CPU来说,它可能不需要可重构部件、可能需要一个可重构部件、也可能需要多个可重构部件。因而,在高效能计算机系统中,需要提供一种可重构部件的配置方法,用于根据任务的需要,灵活、快速地配置可重构部件;需要提供一种通用CPU与可重构部件之间的连接方法,用于快速打开、关闭通用CPU与可重构部件之间的连接;还需要提供一种可重构部件的管理方法,用于可重构部件的分配、释放与回收,即根据任务处理的需求,将可重构部件分配给通用CPU,在通用CPU和可重构部件之间建立起专用的连接关系和从属关系。在为通用CPU分配完可重构部件之后,通用CPU即可开始任务的处理,如利用可重构部件完成特定的计算等。当然,处理完之后,通用CPU要释放可重构部件,以便对其进行重新配置和分配。在需要时,可重构部件管理系统还应能够主动回收已分配出去的可重构部件,以满足其它任务的需求。
然而,目前通用CPU与可重构部件之间的连接关系是固定的,基本无法将连接到一个通用CPU的可重构部件再分配给其它的通用CPU,即使该CPU不使用与之相连的可重构部件。说明书附图中图1、图2、图3是目前常用的三种通用CPU与可重构部件的连接方式。其中,图1为协处理方式,通用CPU与可重构部件之间的连接非常紧密,这种可重构部件只能被与之相连的通用CPU使用,不可能再将其连接到其它通用CPU之上。图2为附加处理方式,通用CPU与可重构部件之间的连接也很紧密,这种可重构部件也只能被与之相连的通用CPU使用,不可能再将其连接到其它通用CPU之上。图3为独立处理方式,可重构部件作为单独的设备通过I/O接口与通用CPU连接。虽然这是一种较为松散的连接方式,但这种可重构部件仍然难以被其它通用CPU使用,也不能再将其连接到其它的通用CPU之上,除非它有多个连接端口。
由此可见,现有的连接方式都是较为紧密的,一旦连接之后,通用CPU与可重构部件之间的连接关系很难调整,可重构部件只能被与之相连的通用CPU使用。如果通用CPU A要想使用连接在通用CPU B上的可重构部件F,它只能向CPU B发送消息,请求CPU B代替自己使用可重构部件F。这种使用方式增加了CPU B的处理负担,因为它要处理来自其它CPU的消息,替其它CPU驱动可重构部件,并要将处理结果发送给请求者CPU。这种使用方式也增加了通用CPU之间的通信负担,因为在通用CPU之间要传送处理数据和处理结果。
在目前的高效能计算机系统中,没有这样一种通用CPU与可重构部件的连接方法,使任意一个通用CPU可直接访问任意一个可重构部件;没有这样一种可重构部件的配置方法,使高效能计算机系统的管理服务器能够根据任务的需要,灵活、快速地配置可重构部件;也没有这样一种可重构部件的管理方法,用于可重构部件的动态分配、释放与回收,即根据任务处理的需求,动态地将可重构部件分配给通用CPU,在通用CPU和可重构部件之间建立起专用的连接关系和从属关系。
三、发明内容:
本发明针对现有技术的不足,提出一种连接方法,将可重构部件从通用CPU中独立出来,使可重构部件不再隶属于通用CPU,从而使通用CPU与可重构部件之间能够进行任意组合,增加了系统的灵活性;
同时,该发明还提出了一种可重构部件管理方法,通过该管理方法,可以实现可重构部件的灵活配置、实时监控、动态分配与回收,能够充分发挥高效能计算机系统中可重构部件和通用CPU的作用,将资源浪费降低到最低限度。
本发明采用的技术方案:
本发明适用的高效能计算机系统中含有一定数量的通用CPU、一定数量的可重构部件和一定数量的可重构部件连接网络,其中通用CPU、可重构部件和可重构部件连接网络被分成若干组,每组含有一定数量的通用CPU、一定数量的可重构部件、一个可重构部件连接网络和一个管理单元,合称为一个计算节点。在一个计算节点内,所有的通用CPU、可重构部件和管理单元均通过相应的网络接口连接在计算节点的可重构部件连接网络上。一个计算节点内所包含的通用CPU和可重构部件的数量取决于可重构部件连接网络的配置规模。计算节点内每一个通用CPU和每一个可重构部件均有一个唯一对应的标识符和一个网络地址。管理单元含有自己的CPU、内存和网络接口并内置可重构部件管理程序。
本发明提供一种计算节点内通用CPU与可重构部件之间的连接方法:(1)管理单元与计算节点内每一个通用CPU之间、管理单元与计算节点内每一个可重构部件之间的连接,在任何情况下都是畅通的;
(2)缺省情况下,计算节点内所有通用CPU与可重构部件之间的连接都是断开的;
(3)管理单元负责管理计算节点内各通用CPU和可重构部件之间的连接,在管理单元许可的情况下,计算节点内任意一个通用CPU经由所述连接网络可直接访问计算节点内任意一个可重构部件,管理单元也可随时断开任意一个通用CPU与可重构部件之间的连接;
(4)管理单元仅负责管理计算节点内通用CPU与可重构部件之间的连接,通用CPU与可重构部件之间的数据与信息交换不经过管理单元。
本发明所述的可重构部件连接网络可以是任意一种通信网络,如:
(1)由专用开关矩阵组成的连接网络。所述开关矩阵有m+1列和n+1行,分别连接m个通用CPU和n个可重构部件,另外1列1行专门用于连接管理单元。(2)由以太交换机组成的连接网络。以太交换机至少含有m+n+1个网络端口,分别连接m个通用CPU、n个可重构部件和1个管理单元;m、n为自然数。
本发明所述的管理单元可以采用普通的工作站,也可以采用专用计算机。管理单元内置的可重构部件管理程序采用的主要数据结构包括两个结构数组:通用CPU结构数组和可重构部件结构数组,系统中每个通用CPU都对应一个CPU结构,每个可重构部件都对应一个可重构部件结构。
本发明所述的管理单元同时连接在高效能计算机系统的管理网络上。管理单元通过管理网络与高效能计算机系统的管理服务器连接,接收来自管理服务器的管理指令。
本发明还提供一种高效能计算机中可重构部件的管理方法。所述高效能计算机系统中含有的所有通用CPU、可重构部件、连接网络和管理单元被分成组,每组称为一个计算节点。在一个计算节点内,所有通用CPU、可重构部件和管理单元均通过相应的网络接口连接在计算节点内的可重构部件连接网络上。所述管理单元含有自己的CPU、内存和网络接口并内置可重构部件管理程序,管理单元与计算节点内所有通用CPU之间、管理单元与计算节点内所有可重构部件之间的连接在任何情况下都是畅通的,计算节点内通用CPU和可重构部件之间的连接在缺省情况下是断开的。所述管理单元中内置有可重构部件管理程序,该管理程序采用的主要数据结构包括通用CPU结构数组和可重构部件结构数组,一个计算节点内的每一个通用CPU都对应一个通用CPU结构,一个计算节点内的每一个可重构部件都对应一个可重构部件结构。
所述管理方法,通过管理单元实时或定期查询、收集计算节点内部各通用CPU与可重构部件的状态信息,并运行下述两个守护进程对可重构部件进行管理:(1)可重构部件管理进程
该进程等待来自通用CPU的请求。当收到来自通用CPU的分配请求时,该进程根据请求类型进行可重构部件的分配,并在分配可重构部件的同时打开通用CPU和可重构部件之间的连接,或者
在接收到来自通用CPU的释放请求后,修改自己的数据结构,将可重构部件标识为空闲,并断开可重构部件与通用CPU之间的连接,释放可重构部件。
(2)可重构部件配置进程
该进程等待来自管理服务器的请求。当收到来自管理服务器的指令和配置文件时,该进程检查自己的数据结构,从中选择若干个类型为未用的可重构部件,而后将配置文件写入其中,完成可重构部件的配置,同时,将可重构部件的配置信息记录在自己的数据结构中。
上述过程可反复多次,从而将可重构部件配置成任务所需要的状态。
所述的管理方法,管理单元将来自管理服务器的配置指令和配置文件暂时缓存起来不立刻进行配置。当通用CPU请求某种类型的可重构部件而系统中又没有该种类型的空闲可重构部件时,管理单元才选择未用的可重构部件,并对其进行配置;如果系统中没有未用的可重构部件,管理单元选择一个当前空闲的其它类型的可重构部件,并对其进行重新配置;必要时管理单元可以直接回收可重构部件。
所述的管理方法,某一通用CPU A在运行过程中,根据需要向管理单元提出请求申请某一种类型的可重构部件。当管理单元接收到来自通用CPU A的分配请求后,完成如下工作:
(1)检查自己的数据结构,从中选择一个类型匹配且未分配的可重构部件X,将其分配给该通用CPU A,并在数据结构中记录此次分配情况;如果系统中没有类型匹配且未分配的可重构部件,管理单元将临时配置一个所需类型的可重构部件,而后再将其分配出去;
(2)通知可重构部件X已将其分配给通用CPU A,告知它通用CPU A的标识符和地址,并打开它们之间的网络连接;通用CPU发向可重构部件的每个请求中都带有标识符,可重构部件只接收来自特定通用CPU的操作请求;或者管理单元直接配置可重构部件,让它仅接收来自特定网络地址的操作请求,即仅让可重构部件X接收来自通用CPU A的请求;
(3)将可重构部件X的详细信息标识符、网络地址返回给通用CPU A;通用CPU A在获得这些信息之后,即可使用可重构部件X完成相应的处理工作;如果连接网络是可配置的,则管理单元配置连接网络,在通用CPU A和可重构部件X之间建立专用连接,同时断开连接网络中其它通用CPU和可重构部件X之间的连接;在使用期间,通用CPU不能修改可重构部件的网络配置,不能将自己拥有的可重构部件转借给其它通用CPU。
所述的管理方法,管理单元在分配可重构部件之时,还负责对连接网络和可重构部件进行配置,以保证可重构部件能够与通用CPU进行通信,管理单元在使用过程中可以动态地重新配置可重构部件,让空闲的可重构部件重新投入运行。必要情况下,管理单元可以将一个可重构部件分配给多个通用CPU,从而充分发挥可重构部件的作用。
所述的管理方法,通用CPU将可重构部件看成自己的外部设备使用,通用CPU通过连接网络与可重构部件交换信息,如为可重构部件提供处理参数、从可重构部件接收处理结果等。
本发明的有益积极效果如下:
1、本发明所提供的管理方法具有相当的灵活性,它可以根据需要动态地配置可重构部件,动态地分配和回收可重构部件,通用CPU与可重构部件之间可以任意组合。将配置时刻推迟到真正使用之时,可以实现可重构部件的虚拟化,这种管理方法可以充分发挥可重构部件的作用,用较少的可重构部件满足较多的使用需求,从而充分发挥可重构部件的作用,将通用CPU和可重构部件的浪费降到最低限度。
2、本发明所提出的可重构部件的连接与管理方法具有许多好处,如可集中管理系统中所有的可重构部件,能根据处理任务的需要动态地为各通用CPU分配可重构部件,能在通用CPU与可重构部件之间进行任意的组合,具有高度的灵活性,能充分发挥可重构部件的作用,减少资源浪费,且不增加通用CPU的处理负担。
四、附图说明:
图1是目前通用CPU与可重构部件的一种连接方法,它将可重构部件作为通用CPU的协处理器,直接连接到通用CPU之上。
图2是目前通用CPU与可重构部件的另一种连接方法,它将可重构部件看作通用CPU的附加处理设备,连接在内存缓存之外。
图3是现有通用CPU与可重构部件的第三种连接方法,它将可重构部件看成通用CPU的一种外部设备,连接在系统的I/O接口之上。
图4是本发明所述一个计算节点内通用CPU与可重构部件的一种连接方法,它将可重构部件从系统中独立出来,将其看成与通用CPU对等的实体,共同连接在连接网络上。另外,在连接网络上还连接了一个管理单元,用于可重构部件的管理。
图5是本发明所述管理单元中采用的管理数据结构。CPU结构数组中的每一行表示一个通用CPU,可重构部件结构数组中的每一行表示一个可重构部件,它们之间的连线表示分配或从属关系。
图6是本发明连接网络的初始状态,此时,处于F网络上的通用CPU和可重构部件仅与管理单元有连接,它们相互之间是断开的。
图7是本发明将可重构部件X分配给通用CPU A之后F网络的状态,此时,在通用CPU A和可重构部件X之间建立了网络连接。
图8是用交换矩阵实现的F网络结构。
图9是用普通的以太交换机实现的F网络结构。
图10是管理单元的工作流程。
五、具体实施方式:
实施例一:参见图4~图8,本实施例说明高效能计算机中可重构部件的连接方法。所述高效能计算机系统中含有一定数量的通用CPU、一定数量的可重构部件和一定数量的可重构部件连接网络,其中通用CPU、可重构部件和可重构部件连接网络被分成若干组,每组含有一定数量的通用CPU、一定数量的可重构部件、一个可重构部件连接网络和一个管理单元,合称为一个计算节点。在一个计算节点内,所有的通用CPU、可重构部件和管理单元均通过相应的网络接口连接在计算节点的可重构部件连接网络(即图中的F网络)上。一个计算节点内所包含的通用CPU和可重构部件的数量取决于可重构部件连接网络的配置规模。计算节点内每一个通用CPU和每一个可重构部件均有一个唯一对应的标识符和一个网络地址。每一个连接网络上还连接一个管理单元,管理单元采用普通的工作站或为专门设计的计算机,它含有自己的CPU、内存和网络接口并安装自己的操作系统,如Linux等。所述管理单元同时连接在高效能计算机系统的管理网络上,通过管理网络与高效能计算机系统的管理服务器连接,接收来自管理服务器的管理指令。管理单元内置可重构部件管理程序用于可重构部件的管理,该管理程序采用的主要数据结构是两个结构数组:通用CPU结构数组和可重构部件结构数组,两个结构数组的定义如下:
struct CPU_struct{ //通用CPU结构
int CPU_ID; //标识符
int F_addr; //网络地址
int state ; //状态
int rec_unit_num; //分配的可重构部件数
struct rec_unit_struct*recu;//可重构部件链表
}
struct rec_unit_struct{ //可重构部件结构
int rec_unit_ID; //标识符
int F_addr; //网络地址
int state ; //状态
int type; //配置类型
char comm[256]; //对配置类型的说明
struct rec_unit_struct*recu;//可重构部件链表
}
struct CPU_struct CPU_disc[CPU_NUM];
struct rec_unit_struct rec_disc[REC_NUM];
其中,CPU_NUM是计算节点中通用CPU的总量,REC_NUM是计算节点中可重构部件的总量;计算节点中通用CPU的数量和可重构部件的数量取决于该连接网络的配置规模。计算节点中的每个通用CPU都对应一个CPU结构,每个可重构部件都对应一个可重构部件结构。结构数组为每一个通用CPU和每一个可重构部件均定义了一个唯一的标识符和一个网络地址;
(1)所述管理单元与每一个通用CPU之间、管理单元与每一个可重构部件之间的连接,在任何情况下都是畅通的;
(2)缺省情况下,所有的通用CPU和可重构部件之间的连接是断开的;
(3)通过所述管理单元许可,系统中任意一个通用CPU经由所述连接网络直接访问任意一个可重构部件。管理单元仅负责可重构部件的管理,通用CPU与可重构部件之间的数据与信息交换不经过管理单元。
图5是管理数据结构的一个示意图。其中状态I表示已初始化或已分配,U表示未分配。可重构部件管理程序已经为标识符为C1的通用CPU分配了一个可重构部件R1,并已经为标识符为Ci的通用CPU分配了可重构部件Rj和Rk。
系统加电之后,F网上的各个通用CPU完成自己的初始化,而后向管理单元报告自己的信息,如标识符、网络地址、状态等;F网上的各个可重构部件也完成自己的初始化并向管理单元报告自己的信息,如标识符、网络地址、状态、配置类型等。初始情况下,通用CPU和可重构部件仅与管理单元连接,通用CPU和可重构部件之间是无连接的,可重构部件不接收来自任何通用CPU的操作请求。F网络的初始状态如图6所示。
在通用CPU运行过程中,如果它需要可重构部件,它可以向管理单元提出请求,如申请一个类型为i的可重构部件。管理单元接收到来自通用CPU A的分配请求(如申请一个类型为i的可重构部件)后,检查自己的数据结构,从中选择一个类型匹配且未分配的可重构部件X,将其分配给CPU A,并在数据结构中记录此次分配情况。分配后的F网络状态如图7所示。
参见图8,本实施例高效能计算机中可重构部件的连接方法,可重构部件连接网络(F网络)由专用的开关矩阵组成,所述开关矩阵有m+1列和n+1行,分别连接m个通用CPU和n个可重构部件,另外1列1行专门用于连接管理单元;其中m、n为自然数;在所述开关矩阵的每行、每列交错处各设有门控逻辑电路实现行和列的选择,实现通用CPU和分配给它的可重构部件之间的直接通信。
管理单元通过在列线上发布配置指令和配置文件来完成可重构部件的配置。管理单元控制开关的状态。当管理单元决定将第i个可重构部件分配给第j个通用CPU时,它通过地址译码器选中第i行、第j列。此时,处于第i行、第j列交叉点上的开关管导通,连通第i行和第j列,使第j个通用CPU与第i个可重构部件互通,从而使它们之间能够互相通信。当管理单元不再选择第i行和第j列时,处于交叉点上的开关管截止,使第j个通用CPU与第i个可重构部件断连,从而禁止它们之间的互相通信。
要控制n+1行、m+1列的开关矩阵,管理单元只需要提供m+n条控制线,在分配可重构部件时打开开关,在释放可重构部件时断开开关,在可重构部件正常使用的过程中并不涉及到开关的翻转,所以该发明对开关矩阵设计的要求并不高,可以使用简单的电路构造较大规模的开关矩阵,从而满足系统的需要。
本发明连接方法可以为一个通用CPU分配多个可重构部件,此时,在该通用CPU的列线上会有多个连接点。通用CPU在列线上广播的信息可以被多个可重构部件监听到,但只有目的地址匹配的可重构部件才会接收并处理收到的信息。
本发明连接方法可以将一个可重构部件分配给多个通用CPU,此时在该可重构部件的行线上会有多个连接点。可重构部件在行线上广播的信息可以被多个通用CPU监听到,但只有目的地址匹配的通用CPU才会接收该信息。
实施例二:参见图4~图7、图9。本实施例与实施例一的区别在于:所述连接网络采用以太交换机来实现,以太交换机至少含有m+n+1个网络端口,分别连接m个通用CPU、n个可重构部件和1个管理单元;其中m、n为自然数。在高效能计算机正常使用过程中,可重构部件之间通常没有通信需求。通用CPU之间的通信在其它网络上完成,不需要经过F网络(即可重构部件连接网络)。在F网络上建立的都是专用的连接,基本没有交叉。因而,F网络的通信压力并不大。另外,本发明对F网络的设计要求也不高,一般的交换网络都能够满足要求。如图9所示,可以用普通的以太交换机实现F网络。这里的以太交换机至少应有m+n+1个网络端口,可以连接m个通用CPU、n个可重构部件和一个管理单元。如Cisco Catalyst 6513可以配置600多个千兆端口。
由于采用的是普通的以太交换机,所以在缺省情况下,连接在该交换机上的所有节点都可以相互通信。但在设计可重构部件的网络接口时,可以让其检查数据包的源MAC地址,使可重构部件仅接收来自指定MAC地址的数据包。管理单元通过动态地配置可重构部件的接收MAC地址(记录在接收MAC地址列表中),来管理可重构部件的通信对象,从而实现可重构部件的分配和释放。
在这种连接结构中,为一个通用CPU分配多个可重构部件和将一个可重构部件分配给多个通用CPU都是非常直观的。如果交换机支持VLAN,也可以通过对交换机的配置来动态地改变通用CPU和可重构部件之间的连接关系。
实施例三:本实施例是一种高效能计算机中可重构部件的管理方法,通过在管理单元内运行可重构部件管理程序完成,管理单元的管理工作流程如图10所示。在高效能计算机中,其计算节点的内部结构可采用如实施例一或实施例二所述的任意一种连接方式。所述高效能计算机系统中含有一定数量的通用CPU、一定数量的可重构部件和一定数量的可重构部件连接网络,其中通用CPU、可重构部件和可重构部件连接网络被分成若干组,每组含有一定数量的通用CPU、一定数量的可重构部件、一个可重构部件连接网络和一个管理单元,合称为一个计算节点。所述管理单元含有自己的CPU、内存和网络接口并安装有自己的操作系统。管理单元内置可重构部件管理程序,该管理程序采用的主要数据结构包括通用CPU结构数组和可重构部件结构数组,一个计算节点内的每个通用CPU都对应一个通用CPU结构,一个计算节点内的每个可重构部件都对应一个可重构部件结构,所述的管理方法,通过管理单元实时或定期查询、收集通用CPU与可重构部件的状态信息,并运行下述两个守护进程对可重构部件进行监控:(1)可重构部件管理进程
等待来自通用CPU的请求,当管理单元接收到来自通用CPU的分配请求时,根据请求类型进行可重构部件的分配,在分配可重构部件之时对连接网络和可重构部件进行配置,以保证可重构部件能够与通用CPU进行通信;必要时管理单元可以直接回收可重构部件,避免被通用CPU长期占有所造成的资源浪费;或者管理单元在接收到来自通用CPU的释放请求后,修改自己的数据结构,将可重构部件标识为空闲,断开其与通用CPU之间的连接,释放可重构部件。
(2)可重构部件配置进程
等待来自管理服务器请求,当管理单元接收到来自管理服务器的指令和配置文件时,检查自己的数据结构,从中选择相应类型未用的可重构部件,而后将配置文件写入其中,完成可重构部件的配置,同时,将可重构部件的配置信息记录在数据结构中。
上述过程可反复多次,从而将可重构部件配置成任务所需要的状态。
实施例四:本实施例是在实施例三基础上进一步优化的技术方案。
在上述实施例三的守护进程(2)中,当管理单元接收到来自管理服务器的指令(如将m个可重构部件配置成Y)和配置文件时,它检查自己的数据结构,从中选择m个未用的可重构部件,而后将配置文件写入其中,完成可重构部件的配置;管理单元也可将来自管理服务器的配置指令和配置文件暂时缓存起来,不立刻进行配置,当通用CPU请求某种类型的可重构部件而系统中又没有该种类型的空闲部件时,管理单元才选择未用的可重构部件,并对其进行配置;如果系统中没有未用的可重构部件,管理单元可以选择一个当前空闲的其它类型的可重构部件,并对其进行重新配置;必要时管理单元可以直接回收可重构部件。采用上述措施,将配置时刻推迟到真正使用之时,加上对可重构部件的动态配置,可以实现可重构部件的虚拟化,用较少的可重构部件满足较多的使用需求,从而充分发挥可重构部件的作用;
同时,在上述实施例三的守护进程(1)中,通用CPU运行过程中,如果需要可重构部件,它可以向管理单元提出请求,如通用CPU A申请一个类型为i的可重构部件,管理单元接收到来自通用CPU A的分配请求后,它完成如下工作:(1)检查自己的数据结构,从中选择一个类型匹配且未分配的可重构部件X,将其分配给该通用CPU A,并在数据结构中记录此次分配情况;如果系统中没有类型匹配且未分配的可重构部件,管理单元将临时配置一个所需类型的可重构部件,而后再将其分配出去;
(2)通知可重构部件X已将其分配给通用CPU A,告知它通用CPU A的标识符和地址,并打开它们之间的网络连接;通用CPU发向可重构部件的每个请求中都带有标识符,可重构部件只接收来自特定通用CPU的操作请求;或者管理接点直接配置可重构部件,让它仅接收来自特定网络地址的操作请求,即仅让可重构部件X接收来自通用CPU A的请求;
(3)将可重构部件X的详细信息标识符、网络地址返回给通用CPU A;通用CPU A在获得这些信息之后,即可使用可重构部件X完成相应的处理工作;在连接网络是可配置的情况下,则配置连接网络,在通用CPU A和可重构部件X之间建立专用连接,同时断开连接网络中其它通用CPU和该可重构部件之间的连接关系;在使用期间,通用CPU不能修改可重构部件的网络配置,不能将自己拥有的可重构部件转借给其它通用CPU。
在通用CPU使用可重构部件的过程中,它将可重构部件看成自己的外部设备。通用CPU通过F网与可重构部件交换信息,如为可重构部件提供处理参数、从可重构部件接收处理结果等。通用CPU与可重构部件之间的数据交换不需要经过管理单元的转发。在通用CPU使用可重构部件的过程中,管理单元定期查询可重构部件的使用信息,如状态、通信量、利用率等,从而监视可重构部件的使用情况。
当通用CPU不再使用某个可重构部件时,它向管理单元发出释放可重构部件的请求,如释放标识符为Ri的可重构部件。管理单元收到释放请求后,修改自己的数据结构,将可重构部件标识为空闲。同时,管理单元还要通知或配置可重构部件,断开它与所有通用CPU和可重构部件之间的连接关系,在再次申请并获得可重构部件之前,通用CPU不能再使用已释放的可重构部件。
如果必要,管理单元可以将一个可重构部件分配给多个通用CPU,从而充分发挥可重构部件的作用。只要这种使用不会给可重构部件造成过多的压力。
管理单元还可以在使用过程中动态地重新配置可重构部件,让空闲的可重构部件重新投入运行,从而充分发挥可重构部件的作用。
Claims (10)
1.一种高效能计算机中可重构部件的连接方法,在高效能计算机中含有一定数量的通用CPU、可重构部件和可重构部件连接网络,所述通用CPU、可重构部件和可重构部件连接网络被分成一定数量的计算节点,每个计算节点含有一定数量的通用CPU、一定数量的可重构部件和一个可重构部件连接网络及一个管理单元,一个计算节点内所有的通用CPU、可重构部件和管理单元均通过相应的接口连接在该计算节点内的可重构部件连接网络上,所述计算节点内通用CPU和可重构部件的数量取决于该计算节点内可重构部件连接网络的配置规模,所述计算节点内每一个通用CPU和每一个可重构部件均有一个唯一对应的标识符和一个网络地址,每个计算节点内的管理单元均含有自己的CPU、内存和网络接口,管理单元内置可重构部件管理程序,其特征是:
(1)所述管理单元与计算节点内每一个通用CPU之间、管理单元与计算节点内每一个可重构部件之间的连接,在任何情况下都是畅通的;
(2)缺省情况下,计算节点内所有通用CPU与可重构部件之间的连接都是断开的;
(3)管理单元负责管理计算节点内各通用CPU和可重构部件之间的连接,在管理单元许可的情况下,计算节点内任意一个通用CPU经由所述可重构部件连接网络可直接访问计算节点内任意一个可重构部件,管理单元也可随时断开任意一个通用CPU与可重构部件之间的连接;
(4)管理单元仅负责管理计算节点内通用CPU与可重构部件之间的连接,通用CPU与可重构部件之间的数据与信息交换不经过管理单元。
2.根据权利要求1所述的连接方法,其特征是:所述可重构部件连接网络由专用的开关矩阵组成,所述开关矩阵有m+1列和n+1行,分别连接m个通用CPU和n个可重构部件,另外1列1行专门用于连接管理单元;其中m、n为自然数。
3.根据权利要求1所述的连接方法,其特征是:所述可重构部件连接网络采用以太交换机来实现,以太交换机至少含有m+n+1个网络端口,分别连接m个通用CPU、n个可重构部件和1个管理单元;其中m、n为自然数。
4.根据权利要求1或2或3所述的连接方法,其特征是:管理单元采用普通的工作站或专门设计的计算机,管理单元内置的可重构部件管理程序采用的主要数据结构包括两个结构数组:通用CPU结构数组和可重构部件结构数组,系统中每个通用CPU都对应一个CPU结构,每个可重构部件都对应一个可重构部件结构。
5.根据权利要求4所述的连接方法,其特征是:所述管理单元同时连接在高效能计算机的管理网络上,管理单元通过管理网络与高效能计算机的管理服务器连接,接收来自管理服务器的管理指令。
6.一种高效能计算机中可重构部件的管理方法,高效能计算机中含有的所有通用CPU、可重构部件、可重构部件连接网络和管理单元被分成组,每组称为一个计算节点,计算节点内所有通用CPU、可重构部件和管理单元均通过相应的接口连接在计算节点的可重构部件连接网络上,所述管理单元含有自己的CPU、内存和网络接口并内置可重构部件管理程序,管理单元与计算节点内所有通用CPU之间、管理单元与计算节点内所有可重构部件之间的连接在任何情况下都是畅通的,计算节点内通用CPU和可重构部件之间的连接在缺省情况下是断开的,所述管理单元内置可重构部件管理程序,该管理程序采用的主要数据结构包括通用CPU结构数组和可重构部件结构数组,一个计算节点内的每个通用CPU都对应一个通用CPU结构,一个计算节点内的每个可重构部件都对应一个可重构部件结构,所述管理单元同时连接在高效能计算机的管理网络上,通过管理网络与高效能计算机的管理服务器连接,其特征是:
所述管理单元实时或定期查询、收集计算节点内部各通用CPU与可重构部件的状态信息,并运行下述两个守护进程对可重构部件进行管理:
(1)可重构部件管理进程
等待来自通用CPU的请求,当收到来自通用CPU的分配请求时,根据请求类型进行可重构部件的分配,并在分配可重构部件的同时打开通用CPU和可重构部件之间的连接,或者
在接收到来自通用CPU的释放请求后,修改自己的数据结构,将可重构部件标识为空闲,并断开可重构部件与通用CPU之间的连接,释放可重构部件;
(2)可重构部件配置进程
等待来自高效能计算机的管理服务器的请求,当收到来自管理服务器的指令和配置文件时,检查自己的数据结构,从中选择若干个类型为未用的可重构部件,而后将配置文件写入其中,完成可重构部件的配置,同时,将可重构部件的配置信息记录在数据结构中;
上述过程可反复多次,从而将可重构部件配置成任务所需要的状态。
7.根据权利要求6所述的管理方法,其特征是:管理单元将来自管理服务器的指令和配置文件暂时缓存起来不立刻进行配置,当通用CPU请求某种类型的可重构部件而计算节点内又没有该种类型的空闲部件时,管理单元才选择未用的可重构部件,并对其进行配置;如果计算节点中没有未用的可重构部件,管理单元选择一个当前空闲的其它类型的可重构部件,并对其进行重新配置;必要时管理单元可以直接回收可重构部件。
8.根据权利要求6所述的管理方法,其特征是:某一通用CPU A在运行过程中,根据需要向管理单元提出请求申请某一个类型的可重构部件,当管理单元接收到来自通用CPU A的分配请求后,完成如下工作:
(1)检查自己的数据结构,从中选择一个类型匹配且未分配的可重构部件X,将其分配给该通用CPU A,并在数据结构中记录此次分配情况;如果系统中没有类型匹配且未分配的可重构部件,管理单元将临时配置一个所需类型的可重构部件,而后再将其分配出去;
(2)通知可重构部件X已将其分配给通用CPU A,告知它通用CPU A的标识符和地址,并打开它们之间的网络连接;通用CPU发向可重构部件的每个请求中都带有标识符,可重构部件只接收来自特定通用CPU的操作请求;或者管理接点直接配置可重构部件,让它仅接收来自特定网络地址的操作请求,即仅让可重构部件X接收来自通用CPU A的请求;
(3)将可重构部件X的详细信息标识符、网络地址返回给通用CPU A;通用CPU A在获得这些信息之后,即可使用可重构部件X完成相应的处理工作;
(4)如果可重构部件连接网络是可配置的,则配置可重构部件连接网络,在通用CPU A和可重构部件X之间建立专用连接;在使用期间,通用CPU不能修改可重构部件的网络配置,不能将自己拥有的可重构部件转借给其它通用CPU。
9.根据权利要求6或7或8所述的管理方法,其特征是:管理单元在分配可重构部件之时,还负责对可重构部件连接网络和可重构部件进行配置,以保证可重构部件能够与通用CPU进行通信,管理单元在使用过程中可以动态地重新配置可重构部件,让空闲的可重构部件重新投入运行,管理单元可以将一个可重构部件分配给多个通用CPU。
10.根据权利要求9所述的管理方法,其特征是:通用CPU将可重构部件看成自己的外部设备使用,通用CPU通过可重构部件连接网络与可重构部件交换信息、为可重构部件提供处理参数、从可重构部件接收处理结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008101404736A CN101620588B (zh) | 2008-07-03 | 2008-07-03 | 高效能计算机中可重构部件的一种连接与管理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008101404736A CN101620588B (zh) | 2008-07-03 | 2008-07-03 | 高效能计算机中可重构部件的一种连接与管理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101620588A CN101620588A (zh) | 2010-01-06 |
CN101620588B true CN101620588B (zh) | 2011-01-19 |
Family
ID=41513832
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008101404736A Expired - Fee Related CN101620588B (zh) | 2008-07-03 | 2008-07-03 | 高效能计算机中可重构部件的一种连接与管理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101620588B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103336756B (zh) * | 2013-07-19 | 2016-01-27 | 中国人民解放军信息工程大学 | 一种数据计算节点的生成装置 |
CN106155977B (zh) * | 2015-06-03 | 2019-07-30 | 上海红神信息技术有限公司 | 可重构系统中的可重构资源管理方法和系统 |
CN107196792B (zh) * | 2017-05-17 | 2020-08-04 | 南京大学 | 可扩展的支持动态部分重构的可重构计算配置网络系统 |
CN110083449B (zh) * | 2019-04-08 | 2020-04-28 | 清华大学 | 动态分配内存和处理器的方法、装置及计算模块 |
CN110096474A (zh) * | 2019-04-28 | 2019-08-06 | 北京超维度计算科技有限公司 | 一种基于可重构计算的高性能弹性计算架构及方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1490730A (zh) * | 2002-10-16 | 2004-04-21 | 国际商业机器公司 | 非均匀存储器访问计算机系统的可重构高速缓存控制器 |
CN1794314A (zh) * | 2005-11-15 | 2006-06-28 | 王晓峰 | 一种具有无线通讯链路功能的可重构电子系统设计装置 |
CN1908927A (zh) * | 2005-08-02 | 2007-02-07 | 富士通株式会社 | 可重配置的集成电路器件 |
-
2008
- 2008-07-03 CN CN2008101404736A patent/CN101620588B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1490730A (zh) * | 2002-10-16 | 2004-04-21 | 国际商业机器公司 | 非均匀存储器访问计算机系统的可重构高速缓存控制器 |
CN1908927A (zh) * | 2005-08-02 | 2007-02-07 | 富士通株式会社 | 可重配置的集成电路器件 |
CN1794314A (zh) * | 2005-11-15 | 2006-06-28 | 王晓峰 | 一种具有无线通讯链路功能的可重构电子系统设计装置 |
Also Published As
Publication number | Publication date |
---|---|
CN101620588A (zh) | 2010-01-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101620588B (zh) | 高效能计算机中可重构部件的一种连接与管理方法 | |
CN103368768B (zh) | 混合云环境中自动缩放网络覆盖的方法、装置及设备 | |
CN103827723B (zh) | 大规模存储系统 | |
CN110225074B (zh) | 一种基于设备地址域的通讯报文分发系统及分发方法 | |
CN102271145A (zh) | 一种虚拟计算机集群及其实施方法 | |
Satoh et al. | Total energy management system for cloud computing | |
CN103475722A (zh) | 一种业务协同平台实现系统 | |
CN104536702A (zh) | 一种存储阵列系统及数据写请求处理方法 | |
CN103036800B (zh) | 虚拟机负载均衡系统、节点及方法 | |
CN109271330A (zh) | 基于综合化信息系统的通用bmc系统 | |
CN103870315B (zh) | 一种jvm能耗控制方法及装置 | |
CN103336756B (zh) | 一种数据计算节点的生成装置 | |
CN104767778A (zh) | 任务处理方法及装置 | |
CN101098256A (zh) | 一种基于简单网络管理协议的集群管理方法和系统 | |
CN105162897A (zh) | 一种虚拟机ip地址分配的系统、方法及网络虚拟机 | |
CN105391651A (zh) | 一种虚拟光网络多层资源汇聚方法和系统 | |
CN104331464A (zh) | 一种基于MapReduce的监控数据优先预取处理方法 | |
CN107329801A (zh) | 一种节点管理方法及装置、多子星服务器 | |
CN103222286A (zh) | 路由交换装置、网络交换系统和路由交换方法 | |
CN106789616A (zh) | 一种物联网网关设备及物联中心平台 | |
CN117221251B (zh) | 面向软件定义算力网络的算力感知及路由方法、系统 | |
CN103246262A (zh) | 一种网络数据分析用综合服务系统 | |
CN105227666A (zh) | 一种面向云计算的整机柜管理架构 | |
CN203204423U (zh) | 一种网络数据分析用综合服务系统 | |
CN105302276A (zh) | 一种限制SmartRack整机柜功耗的设计方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20110119 Termination date: 20140703 |
|
EXPY | Termination of patent right or utility model |