一种面向异构计算的软件定义服务器系统及方法

著录项
  • CN201310694585.7
  • 20131218
  • CN103902498A
  • 20140702
  • 曲阜师范大学
  • 曹宝香
  • G06F15/16
  • G06F15/16

  • 山东省日照市烟台路80号
  • 山东(37)
摘要
本发明公开了一种面向异构计算的软件定义服务器系统及方法。所述软件定义异构多处理器系统,包括:通用处理器、异构计算处理器、软件定义控制器和外围设备。通用处理器负责执行控制平面的任务,包括执行并行程序的控制流程,对多处理器系统进行初始配置,提供通用计算能力;异构计算处理器(如GPGPU等处理器)负责执行并行程序的计算任务;软件定义控制器根据控制平面的控制指令,进行多处理器系统内各个部件(包括通用处理器、异构计算处理器、和外围设备)间在数据平面的数据交换;外围设备包括内存设备(DRAM内存等),存储设备(磁盘等)和网络设备(网卡)等。
权利要求

1.一种面向异构计算的软件定义服务器,其特征在于,所述软件定义服务器,包括:多个通用处理器,多个异构计算处理器,多个外围设备和软件定义控制器(Software Defined Controller),其中:

(a)所述的通用处理器,其功能在于负责服务器中控制平面的运行,包括整个服务器的初始化配置、数据在各部件间的处理流程由其控制,但是对于特定计算模式,需要通用处理器进行计算的情况,通用处理器也会执行计算任务,通用处理器拥有私有的内存,用于控制平面的运行,本发明并不对通用处理器的指令集进行限定,可以是X86、MIPS、或ARM等,此外,本发明也不对通用处理器的数目进行限制;

(b)所述异构计算处理器,其功能在于负责执行服务器中的计算任务,异构计算处理器拥有私有的内存,用于计算任务的执行,不同的异构计算处理器有其对应的数据处理模式,本发明并不对异构计算处理器的种类进行限定,可以是GPGPU、DSP或FPGA等,此外,本发明也不对异构计算处理器的数目进行限制;

(c)所述外围设备,包括内存设备、存储设备和网络设备,其功能在于:分别实现本发明所述服务器中的数据缓存、文件存储和对外网络连接功能,其中,需要与通用处理器和异构计算处理器的私有内存进行区分的是,内存设备中的内存可被通用处理器和异构处理器共享使用;

(d)所述软件定义控制器,其功能在于:响应控制平面的控制指令,对控制指令进行解析,并根据控制指令内容,进行各部件间的数据交换。

2.根据权利要求1所述的面向异构计算的软件定义控制器,其特征在于,所述软件定义控制器包括:控制平面端口模块、数据平面端口模块、全局地址映射表和数据平面交换模块,其中:

(a)所述控制平面端口模块,其功能在于:实现与通用处理器中控制平面的接口,接收控制指令,并根据控制指令中的内容,将控制指令转发给对应的数据平面端口模块,此外,它还会执行属于自己的控制指令,软件定义控制器仅为通用处理器设置控制平面端口模块;

(b)所述数据平面端口模块,其功能在于:实现与异构计算处理器、外围设备、数据平面交换模块间的接口,执行分发至该端口的控制指令,同时接收并执行与之相连接的异构计算处理器或外围设备发出的控制指令,软件定义控制器为每个外围设备、每个异构计算处理器都设置一个数据平面端口模块;

(c)所述全局地址映射表,其功能在于将本发明所述服务器系统中的所有部件(包括通用处理器、异构计算处理器、外围设备)映射于单一的物理地址空间之内;

(d)所述数据平面交换模块,其功能在于:实现本发明所述服务器系统中所有部件中数据的交换,根据源端口(控制平面端口模块或数据平面端口模块)发出的数据传输目的端口号,将数据传输到对应的目的端口(控制平面端口模块或数据平面端口模块),本发明并不限定该模块的实现方式,可以是交叉开关、多层交叉开关、或Mesh等。

3.根据权利要求2所述的面向异构计算的软件定义服务器,其特征在于,所述控制平面端口模块,其包括:接口控制器子模块、中央控制指令分发子模块、中央控制指令执行子模块,其中:

(a)所述接口控制器子模块,其功能在于:实现与通用处理器、异构计算处理器、或外围设备的数据通路,该子模块实现的协议依据通用处理器、异构计算处理器或外围设备的接口类型而定,例如与GPGPU相互连的接口控制器子模块可采用PCIe协议;

(b)所述中央控制指令执行子模块,其功能在于:解析并执行通用处理器发出的控制指令,根据控制指令的内容,产生一系列对应的数据消息发往数据平面交换模块;接收数据平面交换模块发来的数据消息,将数据消息写入与其相连的通用处理器、异构计算处理器、或外围设备;

(c)所述中央控制指令分发子模块,其功能在于:通过查询全局地址映射表,将来自通用处理器的控制指令分发到对应的数据平面端口模块。

4.根据权利要求2所述的面向异构计算的软件定义服务器,其特征在于,所述数据平面端口模块,其包括:接口控制器子模块、中央控制指令执行子模块、外设控制指令执行子模块,其中:

所述外设控制指令执行子模块,其功能在于:解析异构计算处理器或外围设备发出的控制指令,根据控制指令的内容,产生一系列对应的数据消息发往数据平面交换模块。

5.一种根据权利要求1所述的面向异构计算的软件定义服务器实现将控制指令分发到对应控制平面端口模块或数据平面端口模块的方法,所述方法,包括下列步骤:

步骤 110.当控制平面端口模块接收到控制指令后,从控制指令中获取目的地址域;

步骤 120.使用该目的地址查询全局地址映射表;

步骤 130.根据全局地址映射表输出的端口号,将该控制指令发送至对应的控制平面端口模块或数据平面端口模块。

6.一种根据权利要求1所述的面向异构计算的软件定义服务器实现控制平面端口模块或数据平面端口模块执行控制指令的方法,所述方法,包括下列步骤:

步骤 210. 查看该指令是否能直接执行,如果可以,跳转至步骤 230,如果不是跳转至步骤 220;

步骤 220.查看该指令依赖的指令(根据依赖指令序号获取依赖指令状态)是否已经完成,如果已经完成,跳转至步骤 230,否则等待,回到开始状态;

步骤 230.根据指令中的源地址和长度,从与其相连的处理器或外围设备中读取需要传输的数据;

步骤 240. 使用指令中的目的地址,并根据数据平面交换模块的最大包长设定,将读取的数据打包为一系列数据消息;

步骤 250. 数据平面交换模块将这些数据消息转发至目的控制平面端口模块或数据平面端口模块;

步骤 260. 目的控制平面端口模块或数据平面端口模块将数据消息转换为与其相连的处理器或外围设备的接口协议消息;

步骤 270. 将转换后的接口协议消息发送至目的处理器或外围设备,并记录该指令的状态为已完成。

说明书
技术领域

本发明涉及并行多处理器系统领域,特别是涉及一种面向异构计算的软件定义服务器结构。

当前主流的服务器多为SMP和ccNUMA结构,使用芯片组(Chipset)实现服务器内处理器和外围设备间的互连,而异构计算处理器(如GPGPU,Intel Xeon Phi,DSP等处理器)作为协处理器,被归于外围设备的范畴(外围计算设备)。在这种结构中,通用处理器与外围设备间的互连拓扑采用树形结构,通用处理器位于该树形拓扑的根,外围设备位于树形拓扑的叶子。然而叶子(外围设备)仅能与根(通用处理器)进行数据交换,叶子之间的数据交换只能通过根进行转发。因此,通用处理器除了负责整个服务器中的控制平面(Control Plane),还要参与到所有的数据交换,即数据平面(Data Plane)。这一结构限制了异构计算处理器间,异构计算处理器与外围设备间的数据交换效率,也就是说,传统的服务器结构并不适合应用于异构计算领域。

此外,随着异构计算处理器种类的增多,不同类型异构计算处理器适合于不同的计算模式(如GPGPU适合于大规模的流式数据处理,网络处理器适合于网络数据处理,DSP适合信号处理),这就使得处理器间的协同处理模式更加复杂,复杂的协同处理模式就需要数据能够高效灵活地在处理器间传输,即数据可以在任意两个处理器间进行直接传输。

因此,面向异构计算的服务器需要消除通用处理器执行数据平面导致的性能瓶颈,需要实现数据在服务器内各部件间的直接传输。鉴于上述需求,本发明提出了将控制平面和数据平面分离的面向异构计算的软件定义服务器,由通用处理器的管理/应用软件来实现控制平面,控制平面通过动态配置一个软件定义控制器,实现对其他部件(包括异构计算处理器和外围设备)间的数据交换控制,而具体的数据交换流程均由软件定义控制器完成。

本发明的目的在于提供一种面向异构计算的软件定义服务器,它将服务器的控制平面和数据平面分离,由通用处理器的管理/应用软件来实现控制平面,控制平面通过动态配置一个软件定义控制器,实现对其他部件(包括异构计算加速处理器和外围设备)间的数据交换控制,而具体的数据交换流程均由软件定义控制器完成。此外,可以根据不同应用计算模式的需要,改变控制平面发出的控制指令内容和依赖性,进而实现针对计算模式的处理流程及通信优化。

本发明的面向异构计算的软件定义服务器,包括:通用处理器,异构计算处理器,外围设备和软件定义控制器(Software Defined Controller)。

所述的通用处理器,其功能在于负责服务器中控制平面的运行,包括整个服务器的初始化配置、数据在各部件间的处理流程由其控制,但是对于特定计算模式,需要通用处理器进行计算的情况,通用处理器也会执行计算任务。通用处理器拥有私有的内存,用于控制平面的运行。本发明并不对通用处理器的指令集进行限定,可以是X86、MIPS、或ARM等,此外,本发明也不对通用处理器的数目进行限制。

所述异构计算处理器,其功能在于负责执行服务器中的计算任务。异构计算处理器拥有私有的内存,用于计算任务的执行。不同的异构计算处理器有其对应的数据处理模式,本发明并不对异构计算处理器的种类进行限定,可以是GPGPU、DSP或FPGA等,此外,本发明也不对异构计算处理器的数目进行限制。

所述外围设备,包括内存设备、存储设备和网络设备,其功能在于:分别实现本发明所述服务器中的数据缓存、文件存储和对外网络连接功能。其中,需要与通用处理器和异构计算处理器的私有内存进行区分的是,内存设备中的内存可被通用处理器和异构处理器共享使用。

所述软件定义控制器,其功能在于:响应控制平面的控制指令,对控制指令进行解析,并根据控制指令内容,进行各部件间的数据交换,其包括:控制平面端口模块、数据平面端口模块、全局地址映射表和数据平面交换模块。

所述软件定义控制器中的控制平面端口模块,其功能在于:实现与通用处理器中控制平面的接口,接收控制指令,并根据控制指令中的内容,将控制指令转发给对应的数据平面端口模块,此外,它还会执行属于自己的控制指令。相应地,该模块由接口控制器子模块、中央控制指令分发子模块、中央控制指令执行子模块组成。软件定义控制器仅为通用处理器设置控制平面端口模块。

所述软件定义控制器中的数据平面端口模块,其功能在于:实现与异构计算处理器、外围设备、数据平面交换模块间的接口,执行分发至该端口的控制指令,同时接收并执行与之相连接的异构计算处理器或外围设备发出的控制指令。相应地,该模块由接口控制器子模块、中央控制指令执行子模块、外设控制指令执行子模块组成。软件定义控制器为每个外围设备、每个异构计算处理器都设置一个数据平面端口模块。

所述软件定义控制器中的全局地址映射表,其功能在于将本发明所述服务器系统中的所有部件(包括通用处理器、异构计算处理器、外围设备)映射于单一的物理地址空间之内。

所述软件定义控制器中的数据平面交换模块,其功能在于:实现本发明所述服务器系统中所有部件中数据的交换,根据源端口(控制平面端口模块或数据平面端口模块)发出的数据传输目的端口号,将数据传输到对应的目的端口(控制平面端口模块或数据平面端口模块)。本发明并不限定该模块的实现方式,可以是交叉开关、多层交叉开关、或Mesh等。

所述控制平面端口模块和数据平面端口模块中的接口控制器子模块,其功能在于:实现与通用处理器、异构计算处理器、或外围设备的数据通路。该子模块实现的协议依据通用处理器、异构计算处理器或外围设备的接口类型而定,例如与GPGPU相互连的接口控制器子模块可采用PCIe协议。

所述控制平面端口模块和数据平面端口模块中的中央控制指令执行子模块,其功能在于:解析并执行通用处理器发出的控制指令,根据控制指令的内容,产生一系列对应的数据消息发往数据平面交换模块;接收数据平面交换模块发来的数据消息,将数据消息写入与其相连的通用处理器、异构计算处理器、或外围设备。

所述控制平面端口模块中的中央控制指令分发子模块,其功能在于:通过查询全局地址映射表,将来自通用处理器的控制指令分发到对应的数据平面端口模块。

所述数据平面端口模块中的外设控制指令执行子模块,其功能在于:解析异构计算处理器或外围设备发出的控制指令,根据控制指令的内容,产生一系列对应的数据消息发往数据平面交换模块。

为实现本发明的目的,本发明还提供控制平面通过使用控制指令,控制数据交换的方法,该方法分为两个子方法,一个是将控制指令分发到对应控制平面端口模块或数据平面端口模块的方法,另一个是控制平面端口模块或数据平面端口模块执行控制指令的方法。

将控制指令分发到对应控制平面端口模块或数据平面端口模块的方法,包括下列步骤:

步骤 110.当控制平面端口模块接收到控制指令后,从控制指令中获取目的地址域;

步骤 120.使用该目的地址查询全局地址映射表;

步骤 130.根据全局地址映射表输出的端口号,将该控制指令发送至对应的控制平面端口模块或数据平面端口模块。

控制平面端口模块或数据平面端口模块执行控制指令的方法,包括下列步骤:

步骤 210. 查看该指令是否能直接执行,如果可以,跳转至步骤 230,如果不是跳转至步骤 220;

步骤 220.查看该指令依赖的指令(根据依赖指令序号获取依赖指令状态)是否已经完成,如果已经完成,跳转至步骤 230,否则等待,回到开始状态;

步骤 230.根据指令中的源地址和长度,从与其相连的处理器或外围设备中读取需要传输的数据;

步骤 240. 使用指令中的目的地址,并根据数据平面交换模块的最大包长设定,将读取的数据打包为一系列数据消息;

步骤 250. 数据平面交换模块将这些数据消息转发至目的控制平面端口模块或数据平面端口模块;

步骤 260. 目的控制平面端口模块或数据平面端口模块将数据消息转换为与其相连的处理器或外围设备的接口协议消息;

步骤 270. 将转换后的接口协议消息发送至目的处理器或外围设备,并记录该指令的状态为已完成。

图1是本发明的软件定义服务器结构框图;

图2是本发明的软件定义控制器结构框图; 

图3是本发明的控制平面端口模块结构图;

图4是本发明的数据平面端口模块结构图;

图5是本发明的全局地址映射表结构图;

图6是本发明的控制指令格式图;

图7是本发明的数据消息格式图; 

图8是本发明的控制平面端口模块的控制指令分发步骤流程图;

图9是本发明的数据平面端口模块的控制指令执行步骤流程图;

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明的一种面向异构计算的软件定义服务器进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。

本发明的目的在于提供一种面向异构计算的软件定义服务器,它将服务器的控制平面和数据平面分离,由通用处理器的管理/应用软件来实现控制平面,控制平面通过动态配置一个软件定义控制器,实现对其他部件(包括异构计算加速处理器和外围设备)间的数据交换控制,而具体的数据交换流程均由软件定义控制器完成。最终根据不应用计算模式的需要,实现数据在各部件间的直接高效交换。

下面结合上述目的,详细说明的本发明的软件定义服务器,图1是本发明的软件定义服务器结构框图,包括:

通用处理器1,其功能在于负责服务器中控制平面的运行,包括整个服务器的初始化配置、数据在各部件间的处理流程由其控制。通用处理器拥有私有的内存,用于控制平面的运行。但是对于特定计算模式,需要通用处理器进行计算的情况,通用处理器也会执行计算任务。本发明并不对通用处理器的指令集进行限定,可以是X86、MIPS、或ARM等。图1中所示通用处理器数目为N, 但本发明不对通用处理器的数目进行限制。

异构计算处理器2,其功能在于负责执行服务器中的计算任务。异构计算处理器拥有私有的内存,用于计算任务的执行。不同的异构计算处理器有其对应的数据处理模式,本发明并不对异构计算处理器的种类进行限定,可以是GPGPU、DSP或FPGA等。图1中所示通用处理器数目为M,但本发明不对异构计算处理器的数目进行限制。

外围设备3,包括内存设备31、存储设备32和网络设备33。

内存设备31,其功能在于:实现本发明所述服务器中的数据缓存,其中,需要与通用处理器和异构计算处理器的私有内存进行区分的是,内存设备中的内存可被通用处理器和异构处理器共享使用。

存储设备32,其功能在于:实现本发明所述服务器中的文件存储。

网络设备33,其功能在于:实现本发明所述服务器对外网络连接功能。

软件定义控制器4,其功能在于:响应控制平面的控制指令,对控制指令进行解析,并根据控制指令内容,进行各部件间的数据交换。

软件定义控制器4的结构如图2所示(其中设备数目总和为P,但本发明不对设备的数目进行限制),包括:

控制平面端口模块41,其功能在于:实现与通用处理器中控制平面的接口,接收控制指令,并根据控制指令中的内容,将控制指令转发给对应的数据平面端口模块。控制平面端口模块对外仅于通用处理器互连。

数据平面端口模块42,其功能在于:实现与异构计算处理器、外围设备、数据平面交换模块间的接口,执行分发至该端口的控制指令,同时接收并执行与之相连接的异构计算处理器或外围设备发出的控制指令。软件定义控制器为每个外围设备、每个异构计算处理器都设置一个数据平面端口模块。

全局地址映射表43,其功能在于将本发明所述服务器系统中的所有部件(包括通用处理器、异构计算处理器、外围设备)映射于单一的物理地址空间之内,该表由一个通用处理器进行配置,由软件定义控制器中的其他模块共享读取。

数据平面交换模块 44,其功能在于:实现本发明所述服务器系统中所有部件中数据的交换,根据源端口(控制平面端口模块或数据平面端口模块)发出的数据传输目的端口号,将数据传输到对应的目的端口(控制平面端口模块或数据平面端口模块)。本发明并不限定该模块的实现方式,可以是交叉开关、多层交叉开关、或Mesh等。

控制平面端口模块41的结构如图3所示,包括:

接口控制器子模块411,其功能在于:实现与通用处理器、异构计算处理器、或外围设备的数据通路。该子模块实现的协议依据通用处理器、异构计算处理器或外围设备的接口类型而定,例如与GPGPU相互连的接口控制器子模块可采用PCIe协议。

中央控制指令执行子模块412,其功能在于:解析并执行通用处理器发出的控制指令,根据控制指令的内容,产生一系列对应的数据消息发往数据平面交换模块;接收数据平面交换模块发来的数据消息,将数据消息写入与其相连的通用处理器、异构计算处理器、或外围设备。

中央控制指令分发子模块413,其功能在于:通过查询全局地址映射表,将来自通用处理器的控制指令分发到对应的数据平面端口模块,图3中共M+P个数据平面端口模块与其互连,N-1个控制平面端口模块与其互连。

数据平面端口模块42的结构如图4所示,其中接口控制器子模块411和中央控制指令执行子模块412与控制平面端口模块中的相同,此外它还包含:

外设控制指令执行子模块421,其功能在于:解析异构计算处理器或外围设备发出的控制指令,根据控制指令的内容,产生一系列对应的数据消息发往数据平面交换模块。

全局地址映射表43,其结构如图5所示,它是一个查表,存储的是服务器中每个部件(包括通用处理器、异构计算处理器、外围设备)所占用的物理地址范围,查表由端口号索引,图5所示的端口号编码规则为通用处理器占第0 ~ N-1个表项,异构计算处理器占第N ~ N+M-1个表项,外围设备占第N+M ~ N+M+P-1个表项。

  本发明中控制软件定义控制器工作的控制指令格式如图6所示,其中各个域含义如下:

1.控制者:记录产生该指令的处理器或外围设备号;

2.指令序号:指示该指令的指令序号,仅在其所在“控制者”范围内编号;

3. 源地址:该指令对应的数据交换的源地址,需强调的是,该地址与“控制者”无关,可以是任何部件的地址;

4. 目的地址:该指令对应的数据交换的目的地址,需强调的是,该地址与“控制者”无关,可以是任何部件的地址;

5. 长度:所要交换的数据长度;

6. 是否直接执行:该指令是否能够直接发出,如果能够直接发出,则忽略后面的“依赖指令序号”,如果不能直接发出,则检查“依赖指令序号”

7.  依赖指令序号:限制执行该指令的条件,由期望的“控制者”和“指令序号”组成,当期望的指令未执行完毕,则该指令不能被执行。

当一条控制指令达到执行条件时,它将会被本发明中的中央控制指令执行子模块或外设控制指令执行子模块进行解析执行,根据其源地址、目的地址和长度,产生一系列的数据消息。数据消息的格式如图7所示,其中:

1.  目的端口号:通过使用控制指令中的目的地址,查询本发明中的全局地址映射表获得;

2. 目的数据地址:当前数据消息要被存入的目的地址;

3. 长度:当前数据消息中数据负载的长度;

4.  数据负载:携带的有效数据。

基于本发明的软件定义服务器结构、控制指令格式、数据消息格式,本发明的控制指令分发流程如图8所示,包括下列步骤:

步骤 110.当控制平面端口模块接收到控制指令后,从控制指令中获取目的地址域;

步骤 120.使用该目的地址查询全局地址映射表;

步骤 130.根据全局地址映射表输出的端口号,将该控制指令发送至对应的控制平面端口模块或数据平面端口模块。

基于本发明的软件定义服务器结构、控制指令格式、数据消息格式,本发明的控制指令执行流程如图9所示,包括下列步骤:

步骤 210. 查看该指令是否能直接执行,如果可以,跳转至步骤 230,如果不是跳转至步骤 220;

步骤 220.查看该指令依赖的指令(根据依赖指令序号获取依赖指令状态)是否已经完成,如果已经完成,跳转至步骤 230,否则等待,回到开始状态;

步骤 230.根据指令中的源地址和长度,从与其相连的处理器或外围设备中读取需要传输的数据;

步骤 240. 使用指令中的目的地址,并根据数据平面交换模块的最大包长设定,将读取的数据打包为一系列数据消息;

步骤 250. 数据平面交换模块将这些数据消息转发至目的控制平面端口模块或数据平面端口模块;

步骤 260. 目的控制平面端口模块或数据平面端口模块将数据消息转换为与其相连的处理器或外围设备的接口协议消息;

步骤 270. 将转换后的接口协议消息发送至目的处理器或外围设备,并记录该指令的状态为已完成。

 

本发明的有益效果在于:

1. 将控制平面和数据平面分离,通用处理器不再进行数据的转发,解决了SMP或ccNUMA传统服务器结构中异构计算处理器间,异构计算处理器与外围设备间的数据交换效率低下问题;

2.以网络交换方式实现数据平面,打破传统的树形拓扑结构,具有更好的扩展性;

3.通用处理器通过发出不同的控制指令,调整控制指令间依赖关系,即可实现对不同异构计算模式的支持,即可以通过对数据处理和交换流程的调整,实现对特定异构计算应用的性能优化;

通过结合附图对本发明具体实施例的描述,本发明的其它方面及特征对本领域的技术人员而言是显而易见的。

以上对本发明的具体实施例进行了描述和说明,这些实施例应被认为其只是示例性的,并不用于对本发明进行限制,本发明应根据所附的权利要求进行解释。

本文发布于:2024-09-24 12:25:33,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/4/84757.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议