共享系统地址空间的非紧耦合多节点多处理器系统和方法

文档序号:7812872阅读:243来源:国知局
共享系统地址空间的非紧耦合多节点多处理器系统和方法
【专利摘要】提出一种共享系统地址空间的非紧耦合的多节点多处理器系统,包括服务器节点和节点间控制单元。所述服务器节点之间通过所述节点间控制单元实现资源共享和通信互连。还提出一种基于上述系统的数据读写方法。通过共享系统地址空间的方式,在非紧耦合的多节点多处理器系统内实现了内存共享与I/O共享,允许本地节点直接访问远程节点的内存资源与I/O资源。
【专利说明】共享系统地址空间的非紧耦合多节点多处理器系统和方法

【技术领域】
[0001]本发明涉及分布式计算机处理【技术领域】,具体涉及共享系统地址空间的非紧耦合多节点多处理器系统和方法。

【背景技术】
[0002]随着网络购物、搜索、物联网与数据挖掘等领域的迅速发展,数据中心所需要处理的数据量急剧快速地增长,2013年中国产生的数据总量超过0.8ZB,2倍于2012年,相当于2009年全球的数据总量。目前主流互联网公司所需要处理的数据总量都在PB级,如2013年的大数据会议上,阿里巴巴的数据总量在20PB,腾讯公司的数据总量在100PB。
[0003]面对爆炸式的数据增长,数据中心的可扩展性面临了极大的挑战。Scale-up (纵向扩容)与Scale-out (横向扩展)是目前数据中心扩容的两种主要形式。Scale-up是向更强大的CPU,内存,网络及其他设备扩展,而Scale-out则是通过分布式算法将一个个独立的低成本服务器节点组成一个大而强的系统。与Scale-up相比,Scale-out扩容更简单、成本更低,逐渐成为了未来数据中心发展的主流架构。
[0004]然而采用Scale-out体系结构的数据中心,服务器节点之间采用松耦合的组织形式,相互之间独立,不能共享计算资源、存储资源与I/o资源。而目前的分布式算法很难做到将计算任务在大量的服务器节点之间均匀分布,而不均衡的任务分配容易造成部分服务器节点负载重,这部分节点成为整个系统的性能瓶颈。
[0005]为了解决上述问题,研究人员提出了服务器节点之间共享内存与共享I/O的解决方案,其中有代表性的是“内存服务器”与“虚拟化I/O”。“内存服务器”是指将数据中心的节点分成“计算节点”与“内存服务节点”,后者在前者产生页面错误时为它提供内存。“虚拟化I/O”通过模拟I/O设备的寄存器与内存,并且截获操作系统对1端口与寄存器的访问,然后通过软件或硬件的形式来模拟真实的I/o设备。
[0006]然而上述解决方案都比较片面,没有形成一个系统层面的解决方案。为此,本发明提出了一种共享系统地址空间的非紧耦合多节点多处理器系统和方法,为非紧耦合的多服务器节点之间的内存共享与I/o共享提出了统一的解决方案。


【发明内容】

[0007]提出一种共享系统地址空间的非紧耦合多节点多处理器系统构造方法,包括:
[0008]服务器节点,用于管理本地计算资源、内存资源、以及I/O资源;
[0009]节点间控制单元,用于在非紧耦合的多个服务器节点之间实现全局视
[0010]图的系统地址空间共享;
[0011]其中,服务器节点之间通过节点间控制单元实现资源共享和通信互连。
[0012]特别地,所述的服务器节点包括至少一个处理器、至少一个内存控制模块,以及至少一个I/O控制模块。
[0013]特别地,所述节点间控制单元包括:
[0014]与各个服务器节点连接的网络接口 ;
[0015]系统地址空间映射模块,用于实现服务器节点的共享资源的系统地址与服务器节点的本地真实资源的物理地址之间的转换;
[0016]支持原子指令的锁操作管理模块,用于在非紧耦合的服务器节点之间实现共享锁机制;
[0017]网络消息转换模块,用于服务器节点之间的消息转换。
[0018]特别地,所述的系统地址空间映射模块内建立有一张全局系统地址空间映射关系表和一张节点内部资源映射表;
[0019]所述全局系统地址空间映射关系表包括MM1地址空间,所述MM1地址空间记录了所有服务器节点的共享资源的MM1地址;
[0020]所述节点内部资源映射表包括映射在MM1地址空间中的所述服务器节点的共享资源的本地真实资源的物理地址空间。
[0021]特别地,同一个服务器节点的所有共享资源映射在一段连续的MM1地址空间。
[0022]特别地,所述的支持原子指令的锁操作管理模块,用于实现多个服务器节点之间的互斥操作。
[0023]特别地,所述本地真实资源为所述服务器节点的内存资源和I/O资源。
[0024]一种共享地址空间的非紧耦合多节点多处理器系统的数据访问方法,包括:
[0025]S1:本地节点根据配置的丽1地址空间信息,发出数据访问请求;
[0026]S2:所述数据访问请求被转发到节点间控制器ENC ;
[0027]S3:所述ENC根据配置的丽1地址空间信息,通过外部互连网络将所述数据访问请求转发到相应的远程节点;
[0028]S4:所述相应的远程节点收到所述数据访问请求后,根据配置的节点内部资源地址空间映射表确定所述数据访问请求所要访问的该远程节点内部的真实资源的地址。
[0029]本发明的有益效果是:通过共享系统地址空间的方式,在非紧耦合的多节点多处理器系统内实现了内存共享与I/o共享,允许本地节点直接访问远程节点的内存资源与I/O资源。

【专利附图】

【附图说明】
[0030]图1为本发明提出的一种共享系统地址空间的非紧耦合多节点多处理器系统。
[0031]图2为本发明提出的共享系统地址空间的地址空间映射关系图。
[0032]图3为本发明提出的节点间控制模块示意图。
[0033]图4为本发明提出的节点内部资源地址空间映射表。
[0034]图5为节点内部原子指令申请锁操作流程图。
[0035]图6为本发明提出的地址映射流程示意图。
[0036]图7为本发明提出的申请全局锁操作的流程示意图。

【具体实施方式】
[0037]为了使本发明的目的、技术方案更加清楚明白,下面给出本发明的【具体实施方式】,结合附图及实施例对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明。
[0038]实施例一:
[0039]本发明提出的实施例一提出一种共享系统地址空间的非紧耦合多节点多处理器系统。图1给出了所述系统的结构图。在图中,节点内部通过节点内控制器INC(Intra NodeController)相连,每个INC可以连接至少一个CPU。每个节点是一个独立的整体,拥有独立的计算资源、内存资源与I/O资源,可以运行独立的操作系统。节点之间采用非紧耦合形式组织,相互之间独立,节点间无法直接实现内存资源与I/O资源的共享。
[0040]所述节点可以为服务器节点,该服务器节点用于执行操作系统,管理本地的计算资源、内存资源、以及I/O资源。服务器节点包括至少一个处理器、至少一个内存控制模块、和/或至少一个I/o控制模块。
[0041]为了实现节点之间内存资源与I/O资源的共享,所述系统还包括节点间控制器ENC (External Node Controller)。各个节点通过节点间控制器ENC与专用互连网络相连,组成可扩展的分布式计算系统。更重要的是,节点间通过ENC才能够实现内存资源与1/0资源的共享,具体实现方法将在后续文字中描述。
[0042]首先参见图2,图2示出了共享系统地址空间映射关系图。本发明通过共享系统地址空间的方式实现节点之间内存资源与I/o资源的共享。其中,丽10区域映射了所有远程节点中被共享的内存地址与I/O地址空间;在本地节点与远程节点中,被MM1区域映射的内存地址空间,需要分配在非一致性的内存区域Non-coherent Memory。
[0043]举例来说,Node_0中的non-coherent Memory是真实的内存,而MM1地址空间记录的仅仅是一个映射关系,所有节点通过丽10地址空间发出的访问都会落在真实的内存和1/0上,通过全局映射表(一段丽10空间)进行访问Node_0的地址,最后会转变成对non-coherent Memory的访问。基于这种方式,本地节点通过访问MM1地址空间的地址,实现访问远程节点内存资源与1/0资源的目的。
[0044]图3给出了节点间控制模块ENC的结构示意图。节点间控制模块是本发明的重要部件,包括与各个相互独立的节点连接的网络接口,系统地址空间映射模块、网络消息管理模块以及支持原子指令的锁操作管理模块。
[0045]1.系统地址空间映射模块
[0046]系统地址空间映射模块,用于将远程节点系统地址空间内的地址转换成本地系统地址空间内的地址,使两个节点之间能够跨系统域通信。基于该模块,可以将整个非紧耦合的多节点系统内的共享资源建立一个全局视图,如图2所示。基于该全局视图,非紧耦合的节点之间可实现在紧耦合组织方式下才能实现的资源共享。
[0047]系统地址空间映射模块用于建立共享系统地址空间的全局视图(图2示出),所有远程节点的共享资源映射在本地的丽10地址空间,不同丽10区域的地址空间不重叠,同一个节点的所有共享资源映射在一段连续的MM1空间。同时该模块将远程节点通过MM1地址访问本地节点共享资源的请求转换成节点内可识别的地址请求。
[0048]所述的系统地址空间映射模块还建立一张节点内部资源映射表。在节点内部资源映射表中,将全局视图中本地节点对应的MM1地址空间映射为本地资源真实的地址空间,即内存地址以及1/0设备的丽1地址。
[0049]图4给出了节点内部资源地址空间映射表。其中,表的左半部为全局地址空间视图中本地节点对应的连续的MM1地址空间,表的右半部为对应于连续MM1地址空间的本地内存资源或者I/O资源的本地地址。
[0050]2.支持原子指令的锁操作管理模块
[0051]支持原子指令的锁操作管理模块,用于在非紧耦合的两个节点之间实现共享锁机制,使两个节点之间冲突的共享操作可以互斥执行。
[0052]为了说明本专利中针对共享地址的原子指令执行流程,在专利中首先回顾一下在节点内的原子指令执行流程。在系统中原子指令要求,指令内的两次访存操作要在无外界冲突访存操作干扰的情况下顺序完成,因此原子指令的执行流程分成三个步骤:申请全局锁、执行访存操作、释放全局锁。
[0053]首先,申请全局锁的过程如图5所示,其中Core为处理器核、LLC为最后一级缓存的缓存控制器,Config Agent为配置代理,Quiescent Master为静止控制器。在申请全局锁的过程中,Core首先发出申请,经过LLC与Config Agent到达Quiescent Master ;Quiescent Master向节点内的所有处理器发出停止请求的申请(StopReql);当QuiescentMaster收到所有处理器的确认回复之后,Quiescent Master向I/O代理发出停止请求的申请(StopReq2);当收到所有的确认回复之后,Quiescent Master向申请锁操作的Core回复确认消息。当Core收到确认消息以后,执行访存操作与释放全局锁操作,释放全局锁操作与申请锁操作流程相似。
[0054]在共享全局地址空间的非紧耦合的多节点多处理器系统中,针对共享地址的原子指令执行流程与节点内的指令原子指令的执行流程,在申请I/o的停止请求(StopReq2)过程中有着很大的区别。为了保证该原子指令的作用域是整个系统,而非某个节点内部,当锁操作管理模块收到停止I/O请求的申请时,该请求会通过ENC中的锁操作管理模块广播到所有节点的锁操作管理器。
[0055]在多节点申请全局锁的过程中,避免死锁是首先要考虑的问题,本专利中为了避免死锁,将系统中某一个节点推举为全局锁操作管理节点(Lock Manager),所有申请全局锁的节点都要向全局锁操作管理节点的锁操作管理模块发送请求,然后由该节点向系统内其他节点的锁操作管理器发送申请全局锁的请求。
[0056]当节点内的锁操作管理模块,收到停止1/0请求(StopReq2)的申请时,锁操作管理模块会向全局锁操作管理节点Lock Manager发出申请节点间全局锁的请求,LockManager在收到请求以后,转发请求到所有其它节点的锁操作管理模块,所有节点的锁操作管理器会在本节点内部申请节点内的全局锁操作,申请成功后向Lock Manager回复确认消息,当Lock Manager收齐所有的确认回复以后,向申请节点间全局锁的节点回复确认消息。当申请节点间全局锁的锁操作管理器收到确认回复以后,向本节点的Quiescent Master回复完成停止1/0请求的申请。Quiescent Master向处理器核回复确认消息,完成了针对共享地址的全局锁的申请过程。
[0057]3.网络消息转换模块
[0058]网络消息转换模块,用于实现节点内部互连网络与节点之间互连网络的消息转换,在两个网络之间实现透明通信。节点访问远程节点共享的资源的交互信息以及申请全局锁过程中交互的信息均通过该模块在节点间转发。
[0059]实施例二:
[0060]图6给出了地址映射流程图,描述了本地节点访问远程节点的共享资源时,被访问地址的转换流程。具体流程描述如下:
[0061]步骤一,本地节点根据全局共享地址空间视图,发出读取(或修改)数据请求。
[0062]步骤二,根据本地节点的地址空间配置,请求被转发到ENC(节点间控制器)。
[0063]步骤三,ENC(节点间控制器)根据全局共享地址空间视图,通过外部互连网络转发请求到远程节点。
[0064]步骤四,远程节点收到请求,根据节点内部资源地址空间映射表将全局视图的MM1地址转换成本地地址空间内地址。
[0065]实施例三:
[0066]图7描述了申请全局锁操作的流程示意图。具体步骤如下:
[0067]步骤一,当本地节点的锁操作管理模块收到申请锁的请求时,并非立即执行答复而是向全局锁操作管理节点Lock Manager的锁操作管理模块发出申请节点间全局锁的请求。
[0068]步骤二,Lock Manager的锁操作管理模块收到请求后,向视图内的所有节点的锁操作管理模块发出申请节点内锁的请求。
[0069]步骤三,每个节点的锁操作管理模块会在其节点内部执行申请节点内锁操作,然后答复Lock Manager的锁操作管理模块。
[0070]步骤四,Lock Manager的锁操作管理模块当收齐所有的确认答复以后,答复最初申请锁操作的锁操作管理模块,允许其执行原子访存操作。
[0071]当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明的权利要求的保护范围。
【权利要求】
1.一种共享地址空间的非紧耦合多节点多处理器系统,其特征在于,包括: 服务器节点,用于管理本地计算资源、内存资源、以及I/o资源; 节点间控制单元,用于在非紧耦合的多个服务器节点之间实现全局视图的系统地址空间共孚; 其中,服务器节点之间通过节点间控制单元实现资源共享和通信互连。
2.根据权利要求1所述系统,其特征在于: 所述的服务器节点包括至少一个处理器、至少一个内存控制模块,以及至少一个I/O控制模块。
3.根据权利要求1所述的系统,其特征在于: 所述节点间控制单元包括: 与各个服务器节点连接的网络接口; 系统地址空间映射模块,用于实现服务器节点的共享资源的系统地址与服务器节点的本地真实资源的物理地址之间的转换; 支持原子指令的锁操作管理模块,用于在非紧耦合的服务器节点之间实现共享锁机制; 网络消息转换模块,用于服务器节点之间的消息转换。
4.根据权利要求3所述的系统,其特征在于: 所述的系统地址空间映射模块内建立有一张全局系统地址空间映射关系表和一张节点内部资源映射表; 所述全局系统地址空间映射关系表包括MM1地址空间,所述MM1地址空间记录了所有服务器节点的共享资源的丽1地址; 所述节点内部资源映射表包括映射在MM1地址空间中的所述服务器节点的共享资源的本地真实资源的物理地址空间。
5.根据权利要求4所述的系统,其特征在于:同一个服务器节点的所有共享资源映射在一段连续的丽1地址空间。
6.根据权利要求3所述系统,其特征在于: 所述的支持原子指令的锁操作管理模块,用于实现多个服务器节点之间的互斥操作。
7.根据权利要求3-6所述的系统,其特征在于: 所述本地真实资源为所述服务器节点的内存资源和I/O资源。
8.一种共享地址空间的非紧耦合多节点多处理器系统的数据访问方法, 其特征在于,包括: 51:本地节点根据配置的丽1地址空间信息,发出数据访问请求; 52:所述数据访问请求被转发到节点间控制器ENC ; 53:所述ENC根据配置的MM1地址空间信息,通过外部互连网络将所述数据访问请求转发到相应的远程节点; S4:所述相应的远程节点收到所述读取数据请求后,根据配置的节点内部资源地址空间映射表确定所述数据访问请求所要访问的该远程节点内部的真实资源的地址。
【文档编号】H04L29/08GK104199740SQ201410433320
【公开日】2014年12月10日 申请日期:2014年8月28日 优先权日:2014年8月28日
【发明者】王恩东, 胡雷钧, 唐士斌, 陈继承 申请人:浪潮(北京)电子信息产业有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1