《共享系统地址空间的非紧耦合多节点多处理器系统和方法.pdf》由会员分享,可在线阅读,更多相关《共享系统地址空间的非紧耦合多节点多处理器系统和方法.pdf(11页珍藏版)》请在专利查询网上搜索。
1、10申请公布号CN104199740A43申请公布日20141210CN104199740A21申请号201410433320622申请日20140828G06F9/50200601H04L29/0820060171申请人浪潮(北京)电子信息产业有限公司地址100085北京市海淀区上地信息路2号21号C栋1层72发明人王恩东胡雷钧唐士斌陈继承74专利代理机构北京安信方达知识产权代理有限公司11262代理人王丹李丹54发明名称共享系统地址空间的非紧耦合多节点多处理器系统和方法57摘要提出一种共享系统地址空间的非紧耦合的多节点多处理器系统,包括服务器节点和节点间控制单元。所述服务器节点之间通过所述。
2、节点间控制单元实现资源共享和通信互连。还提出一种基于上述系统的数据读写方法。通过共享系统地址空间的方式,在非紧耦合的多节点多处理器系统内实现了内存共享与I/O共享,允许本地节点直接访问远程节点的内存资源与I/O资源。51INTCL权利要求书1页说明书5页附图4页19中华人民共和国国家知识产权局12发明专利申请权利要求书1页说明书5页附图4页10申请公布号CN104199740ACN104199740A1/1页21一种共享地址空间的非紧耦合多节点多处理器系统,其特征在于,包括服务器节点,用于管理本地计算资源、内存资源、以及I/O资源;节点间控制单元,用于在非紧耦合的多个服务器节点之间实现全局视图。
3、的系统地址空间共享;其中,服务器节点之间通过节点间控制单元实现资源共享和通信互连。2根据权利要求1所述系统,其特征在于所述的服务器节点包括至少一个处理器、至少一个内存控制模块,以及至少一个I/O控制模块。3根据权利要求1所述的系统,其特征在于所述节点间控制单元包括与各个服务器节点连接的网络接口;系统地址空间映射模块,用于实现服务器节点的共享资源的系统地址与服务器节点的本地真实资源的物理地址之间的转换;支持原子指令的锁操作管理模块,用于在非紧耦合的服务器节点之间实现共享锁机制;网络消息转换模块,用于服务器节点之间的消息转换。4根据权利要求3所述的系统,其特征在于所述的系统地址空间映射模块内建立有。
4、一张全局系统地址空间映射关系表和一张节点内部资源映射表;所述全局系统地址空间映射关系表包括MMIO地址空间,所述MMIO地址空间记录了所有服务器节点的共享资源的MMIO地址;所述节点内部资源映射表包括映射在MMIO地址空间中的所述服务器节点的共享资源的本地真实资源的物理地址空间。5根据权利要求4所述的系统,其特征在于同一个服务器节点的所有共享资源映射在一段连续的MMIO地址空间。6根据权利要求3所述系统,其特征在于所述的支持原子指令的锁操作管理模块,用于实现多个服务器节点之间的互斥操作。7根据权利要求36所述的系统,其特征在于所述本地真实资源为所述服务器节点的内存资源和I/O资源。8一种共享地。
5、址空间的非紧耦合多节点多处理器系统的数据访问方法,其特征在于,包括S1本地节点根据配置的MMIO地址空间信息,发出数据访问请求;S2所述数据访问请求被转发到节点间控制器ENC;S3所述ENC根据配置的MMIO地址空间信息,通过外部互连网络将所述数据访问请求转发到相应的远程节点;S4所述相应的远程节点收到所述读取数据请求后,根据配置的节点内部资源地址空间映射表确定所述数据访问请求所要访问的该远程节点内部的真实资源的地址。权利要求书CN104199740A1/5页3共享系统地址空间的非紧耦合多节点多处理器系统和方法技术领域0001本发明涉及分布式计算机处理技术领域,具体涉及共享系统地址空间的非紧耦。
6、合多节点多处理器系统和方法。背景技术0002随着网络购物、搜索、物联网与数据挖掘等领域的迅速发展,数据中心所需要处理的数据量急剧快速地增长,2013年中国产生的数据总量超过08ZB,2倍于2012年,相当于2009年全球的数据总量。目前主流互联网公司所需要处理的数据总量都在PB级,如2013年的大数据会议上,阿里巴巴的数据总量在20PB,腾讯公司的数据总量在100PB。0003面对爆炸式的数据增长,数据中心的可扩展性面临了极大的挑战。SCALEUP纵向扩容与SCALEOUT横向扩展是目前数据中心扩容的两种主要形式。SCALEUP是向更强大的CPU,内存,网络及其他设备扩展,而SCALEOUT则。
7、是通过分布式算法将一个个独立的低成本服务器节点组成一个大而强的系统。与SCALEUP相比,SCALEOUT扩容更简单、成本更低,逐渐成为了未来数据中心发展的主流架构。0004然而采用SCALEOUT体系结构的数据中心,服务器节点之间采用松耦合的组织形式,相互之间独立,不能共享计算资源、存储资源与I/O资源。而目前的分布式算法很难做到将计算任务在大量的服务器节点之间均匀分布,而不均衡的任务分配容易造成部分服务器节点负载重,这部分节点成为整个系统的性能瓶颈。0005为了解决上述问题,研究人员提出了服务器节点之间共享内存与共享I/O的解决方案,其中有代表性的是“内存服务器”与“虚拟化I/O”。“内存。
8、服务器”是指将数据中心的节点分成“计算节点”与“内存服务节点”,后者在前者产生页面错误时为它提供内存。“虚拟化I/O”通过模拟I/O设备的寄存器与内存,并且截获操作系统对IO端口与寄存器的访问,然后通过软件或硬件的形式来模拟真实的I/O设备。0006然而上述解决方案都比较片面,没有形成一个系统层面的解决方案。为此,本发明提出了一种共享系统地址空间的非紧耦合多节点多处理器系统和方法,为非紧耦合的多服务器节点之间的内存共享与I/O共享提出了统一的解决方案。发明内容0007提出一种共享系统地址空间的非紧耦合多节点多处理器系统构造方法,包括0008服务器节点,用于管理本地计算资源、内存资源、以及I/O。
9、资源;0009节点间控制单元,用于在非紧耦合的多个服务器节点之间实现全局视0010图的系统地址空间共享;0011其中,服务器节点之间通过节点间控制单元实现资源共享和通信互连。0012特别地,所述的服务器节点包括至少一个处理器、至少一个内存控制模块,以及至少一个I/O控制模块。0013特别地,所述节点间控制单元包括说明书CN104199740A2/5页40014与各个服务器节点连接的网络接口;0015系统地址空间映射模块,用于实现服务器节点的共享资源的系统地址与服务器节点的本地真实资源的物理地址之间的转换;0016支持原子指令的锁操作管理模块,用于在非紧耦合的服务器节点之间实现共享锁机制;001。
10、7网络消息转换模块,用于服务器节点之间的消息转换。0018特别地,所述的系统地址空间映射模块内建立有一张全局系统地址空间映射关系表和一张节点内部资源映射表;0019所述全局系统地址空间映射关系表包括MMIO地址空间,所述MMIO地址空间记录了所有服务器节点的共享资源的MMIO地址;0020所述节点内部资源映射表包括映射在MMIO地址空间中的所述服务器节点的共享资源的本地真实资源的物理地址空间。0021特别地,同一个服务器节点的所有共享资源映射在一段连续的MMIO地址空间。0022特别地,所述的支持原子指令的锁操作管理模块,用于实现多个服务器节点之间的互斥操作。0023特别地,所述本地真实资源为。
11、所述服务器节点的内存资源和I/O资源。0024一种共享地址空间的非紧耦合多节点多处理器系统的数据访问方法,包括0025S1本地节点根据配置的MMIO地址空间信息,发出数据访问请求;0026S2所述数据访问请求被转发到节点间控制器ENC;0027S3所述ENC根据配置的MMIO地址空间信息,通过外部互连网络将所述数据访问请求转发到相应的远程节点;0028S4所述相应的远程节点收到所述数据访问请求后,根据配置的节点内部资源地址空间映射表确定所述数据访问请求所要访问的该远程节点内部的真实资源的地址。0029本发明的有益效果是通过共享系统地址空间的方式,在非紧耦合的多节点多处理器系统内实现了内存共享与。
12、I/O共享,允许本地节点直接访问远程节点的内存资源与I/O资源。附图说明0030图1为本发明提出的一种共享系统地址空间的非紧耦合多节点多处理器系统。0031图2为本发明提出的共享系统地址空间的地址空间映射关系图。0032图3为本发明提出的节点间控制模块示意图。0033图4为本发明提出的节点内部资源地址空间映射表。0034图5为节点内部原子指令申请锁操作流程图。0035图6为本发明提出的地址映射流程示意图。0036图7为本发明提出的申请全局锁操作的流程示意图。具体实施方式0037为了使本发明的目的、技术方案更加清楚明白,下面给出本发明的具体实施方式,结合附图及实施例对本发明进行进一步详细说明。应。
13、当理解,此处所描述的具体实施例仅说明书CN104199740A3/5页5用以解释本发明。0038实施例一0039本发明提出的实施例一提出一种共享系统地址空间的非紧耦合多节点多处理器系统。图1给出了所述系统的结构图。在图中,节点内部通过节点内控制器INCINTRANODECONTROLLER相连,每个INC可以连接至少一个CPU。每个节点是一个独立的整体,拥有独立的计算资源、内存资源与I/O资源,可以运行独立的操作系统。节点之间采用非紧耦合形式组织,相互之间独立,节点间无法直接实现内存资源与I/O资源的共享。0040所述节点可以为服务器节点,该服务器节点用于执行操作系统,管理本地的计算资源、内存。
14、资源、以及I/O资源。服务器节点包括至少一个处理器、至少一个内存控制模块、和/或至少一个I/O控制模块。0041为了实现节点之间内存资源与I/O资源的共享,所述系统还包括节点间控制器ENCEXTERNALNODECONTROLLER。各个节点通过节点间控制器ENC与专用互连网络相连,组成可扩展的分布式计算系统。更重要的是,节点间通过ENC才能够实现内存资源与I/O资源的共享,具体实现方法将在后续文字中描述。0042首先参见图2,图2示出了共享系统地址空间映射关系图。本发明通过共享系统地址空间的方式实现节点之间内存资源与I/O资源的共享。其中,MMIO区域映射了所有远程节点中被共享的内存地址与I。
15、/O地址空间;在本地节点与远程节点中,被MMIO区域映射的内存地址空间,需要分配在非一致性的内存区域NONCOHERENTMEMORY。0043举例来说,NODE_0中的NONCOHERENTMEMORY是真实的内存,而MMIO地址空间记录的仅仅是一个映射关系,所有节点通过MMIO地址空间发出的访问都会落在真实的内存和I/O上,通过全局映射表一段MMIO空间进行访问NODE_0的地址,最后会转变成对NONCOHERENTMEMORY的访问。基于这种方式,本地节点通过访问MMIO地址空间的地址,实现访问远程节点内存资源与I/O资源的目的。0044图3给出了节点间控制模块ENC的结构示意图。节点间。
16、控制模块是本发明的重要部件,包括与各个相互独立的节点连接的网络接口,系统地址空间映射模块、网络消息管理模块以及支持原子指令的锁操作管理模块。00451系统地址空间映射模块0046系统地址空间映射模块,用于将远程节点系统地址空间内的地址转换成本地系统地址空间内的地址,使两个节点之间能够跨系统域通信。基于该模块,可以将整个非紧耦合的多节点系统内的共享资源建立一个全局视图,如图2所示。基于该全局视图,非紧耦合的节点之间可实现在紧耦合组织方式下才能实现的资源共享。0047系统地址空间映射模块用于建立共享系统地址空间的全局视图图2示出,所有远程节点的共享资源映射在本地的MMIO地址空间,不同MMIO区域。
17、的地址空间不重叠,同一个节点的所有共享资源映射在一段连续的MMIO空间。同时该模块将远程节点通过MMIO地址访问本地节点共享资源的请求转换成节点内可识别的地址请求。0048所述的系统地址空间映射模块还建立一张节点内部资源映射表。在节点内部资源映射表中,将全局视图中本地节点对应的MMIO地址空间映射为本地资源真实的地址空间,即内存地址以及I/O设备的MMIO地址。0049图4给出了节点内部资源地址空间映射表。其中,表的左半部为全局地址空间视说明书CN104199740A4/5页6图中本地节点对应的连续的MMIO地址空间,表的右半部为对应于连续MMIO地址空间的本地内存资源或者I/O资源的本地地址。
18、。00502支持原子指令的锁操作管理模块0051支持原子指令的锁操作管理模块,用于在非紧耦合的两个节点之间实现共享锁机制,使两个节点之间冲突的共享操作可以互斥执行。0052为了说明本专利中针对共享地址的原子指令执行流程,在专利中首先回顾一下在节点内的原子指令执行流程。在系统中原子指令要求,指令内的两次访存操作要在无外界冲突访存操作干扰的情况下顺序完成,因此原子指令的执行流程分成三个步骤申请全局锁、执行访存操作、释放全局锁。0053首先,申请全局锁的过程如图5所示,其中CORE为处理器核、LLC为最后一级缓存的缓存控制器,CONGAGENT为配置代理,QUIESCENTMASTER为静止控制器。。
19、在申请全局锁的过程中,CORE首先发出申请,经过LLC与CONGAGENT到达QUIESCENTMASTER;QUIESCENTMASTER向节点内的所有处理器发出停止请求的申请STOPREQ1;当QUIESCENTMASTER收到所有处理器的确认回复之后,QUIESCENTMASTER向I/O代理发出停止请求的申请STOPREQ2;当收到所有的确认回复之后,QUIESCENTMASTER向申请锁操作的CORE回复确认消息。当CORE收到确认消息以后,执行访存操作与释放全局锁操作,释放全局锁操作与申请锁操作流程相似。0054在共享全局地址空间的非紧耦合的多节点多处理器系统中,针对共享地址的原子。
20、指令执行流程与节点内的指令原子指令的执行流程,在申请I/O的停止请求STOPREQ2过程中有着很大的区别。为了保证该原子指令的作用域是整个系统,而非某个节点内部,当锁操作管理模块收到停止I/O请求的申请时,该请求会通过ENC中的锁操作管理模块广播到所有节点的锁操作管理器。0055在多节点申请全局锁的过程中,避免死锁是首先要考虑的问题,本专利中为了避免死锁,将系统中某一个节点推举为全局锁操作管理节点LOCKMANAGER,所有申请全局锁的节点都要向全局锁操作管理节点的锁操作管理模块发送请求,然后由该节点向系统内其他节点的锁操作管理器发送申请全局锁的请求。0056当节点内的锁操作管理模块,收到停止。
21、I/O请求STOPREQ2的申请时,锁操作管理模块会向全局锁操作管理节点LOCKMANAGER发出申请节点间全局锁的请求,LOCKMANAGER在收到请求以后,转发请求到所有其它节点的锁操作管理模块,所有节点的锁操作管理器会在本节点内部申请节点内的全局锁操作,申请成功后向LOCKMANAGER回复确认消息,当LOCKMANAGER收齐所有的确认回复以后,向申请节点间全局锁的节点回复确认消息。当申请节点间全局锁的锁操作管理器收到确认回复以后,向本节点的QUIESCENTMASTER回复完成停止I/O请求的申请。QUIESCENTMASTER向处理器核回复确认消息,完成了针对共享地址的全局锁的申请。
22、过程。00573网络消息转换模块0058网络消息转换模块,用于实现节点内部互连网络与节点之间互连网络的消息转换,在两个网络之间实现透明通信。节点访问远程节点共享的资源的交互信息以及申请全局锁过程中交互的信息均通过该模块在节点间转发。0059实施例二说明书CN104199740A5/5页70060图6给出了地址映射流程图,描述了本地节点访问远程节点的共享资源时,被访问地址的转换流程。具体流程描述如下0061步骤一,本地节点根据全局共享地址空间视图,发出读取或修改数据请求。0062步骤二,根据本地节点的地址空间配置,请求被转发到ENC节点间控制器。0063步骤三,ENC节点间控制器根据全局共享地址。
23、空间视图,通过外部互连网络转发请求到远程节点。0064步骤四,远程节点收到请求,根据节点内部资源地址空间映射表将全局视图的MMIO地址转换成本地地址空间内地址。0065实施例三0066图7描述了申请全局锁操作的流程示意图。具体步骤如下0067步骤一,当本地节点的锁操作管理模块收到申请锁的请求时,并非立即执行答复而是向全局锁操作管理节点LOCKMANAGER的锁操作管理模块发出申请节点间全局锁的请求。0068步骤二,LOCKMANAGER的锁操作管理模块收到请求后,向视图内的所有节点的锁操作管理模块发出申请节点内锁的请求。0069步骤三,每个节点的锁操作管理模块会在其节点内部执行申请节点内锁操作。
24、,然后答复LOCKMANAGER的锁操作管理模块。0070步骤四,LOCKMANAGER的锁操作管理模块当收齐所有的确认答复以后,答复最初申请锁操作的锁操作管理模块,允许其执行原子访存操作。0071当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明的权利要求的保护范围。说明书CN104199740A1/4页8图1图2说明书附图CN104199740A2/4页9图3图4说明书附图CN104199740A3/4页10图5图6说明书附图CN104199740A104/4页11图7说明书附图CN104199740A11。