首页> 中国专利> 共享系统地址空间的非紧耦合多节点多处理器系统和方法

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

摘要

提出一种共享系统地址空间的非紧耦合的多节点多处理器系统,包括服务器节点和节点间控制单元。所述服务器节点之间通过所述节点间控制单元实现资源共享和通信互连。还提出一种基于上述系统的数据读写方法。通过共享系统地址空间的方式,在非紧耦合的多节点多处理器系统内实现了内存共享与I/O共享,允许本地节点直接访问远程节点的内存资源与I/O资源。

著录项

  • 公开/公告号CN104199740A

    专利类型发明专利

  • 公开/公告日2014-12-10

    原文格式PDF

  • 申请/专利权人 浪潮(北京)电子信息产业有限公司;

    申请/专利号CN201410433320.6

  • 发明设计人 王恩东;胡雷钧;唐士斌;陈继承;

    申请日2014-08-28

  • 分类号G06F9/50(20060101);H04L29/08(20060101);

  • 代理机构11262 北京安信方达知识产权代理有限公司;

  • 代理人王丹;李丹

  • 地址 100085 北京市海淀区上地信息路2号2-1号C栋1层

  • 入库时间 2023-12-17 03:18:42

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-03-01

    授权

    授权

  • 2015-01-07

    实质审查的生效 IPC(主分类):G06F9/50 申请日:20140828

    实质审查的生效

  • 2014-12-10

    公开

    公开

说明书

技术领域

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

背景技术

随着网络购物、搜索、物联网与数据挖掘等领域的迅速发展,数据中心所 需要处理的数据量急剧快速地增长,2013年中国产生的数据总量超过0.8ZB, 2倍于2012年,相当于2009年全球的数据总量。目前主流互联网公司所需 要处理的数据总量都在PB级,如2013年的大数据会议上,阿里巴巴的数据 总量在20PB,腾讯公司的数据总量在100PB。

面对爆炸式的数据增长,数据中心的可扩展性面临了极大的挑战。Scale-up (纵向扩容)与Scale-out(横向扩展)是目前数据中心扩容的两种主要形式。 Scale-up是向更强大的CPU,内存,网络及其他设备扩展,而Scale-out则是 通过分布式算法将一个个独立的低成本服务器节点组成一个大而强的系统。 与Scale-up相比,Scale-out扩容更简单、成本更低,逐渐成为了未来数据中 心发展的主流架构。

然而采用Scale-out体系结构的数据中心,服务器节点之间采用松耦合的 组织形式,相互之间独立,不能共享计算资源、存储资源与I/O资源。而目 前的分布式算法很难做到将计算任务在大量的服务器节点之间均匀分布,而 不均衡的任务分配容易造成部分服务器节点负载重,这部分节点成为整个系 统的性能瓶颈。

为了解决上述问题,研究人员提出了服务器节点之间共享内存与共享I/O 的解决方案,其中有代表性的是“内存服务器”与“虚拟化I/O”。“内存服 务器”是指将数据中心的节点分成“计算节点”与“内存服务节点”,后者 在前者产生页面错误时为它提供内存。“虚拟化I/O”通过模拟I/O设备的寄 存器与内存,并且截获操作系统对IO端口与寄存器的访问,然后通过软件或 硬件的形式来模拟真实的I/O设备。

然而上述解决方案都比较片面,没有形成一个系统层面的解决方案。为此, 本发明提出了一种共享系统地址空间的非紧耦合多节点多处理器系统和方 法,为非紧耦合的多服务器节点之间的内存共享与I/O共享提出了统一的解 决方案。

发明内容

提出一种共享系统地址空间的非紧耦合多节点多处理器系统构造方法,包 括:

服务器节点,用于管理本地计算资源、内存资源、以及I/O资源;

节点间控制单元,用于在非紧耦合的多个服务器节点之间实现全局视

图的系统地址空间共享;

其中,服务器节点之间通过节点间控制单元实现资源共享和通信互连。

特别地,所述的服务器节点包括至少一个处理器、至少一个内存控制模 块,以及至少一个I/O控制模块。

特别地,所述节点间控制单元包括:

与各个服务器节点连接的网络接口;

系统地址空间映射模块,用于实现服务器节点的共享资源的系统地址与 服务器节点的本地真实资源的物理地址之间的转换;

支持原子指令的锁操作管理模块,用于在非紧耦合的服务器节点之间实 现共享锁机制;

网络消息转换模块,用于服务器节点之间的消息转换。

特别地,所述的系统地址空间映射模块内建立有一张全局系统地址空间 映射关系表和一张节点内部资源映射表;

所述全局系统地址空间映射关系表包括MMIO地址空间,所述MMIO地 址空间记录了所有服务器节点的共享资源的MMIO地址;

所述节点内部资源映射表包括映射在MMIO地址空间中的所述服务器节 点的共享资源的本地真实资源的物理地址空间。

特别地,同一个服务器节点的所有共享资源映射在一段连续的MMIO地 址空间。

特别地,所述的支持原子指令的锁操作管理模块,用于实现多个服务器 节点之间的互斥操作。

特别地,所述本地真实资源为所述服务器节点的内存资源和I/O资源。

一种共享地址空间的非紧耦合多节点多处理器系统的数据访问方法,包 括:

S1:本地节点根据配置的MMIO地址空间信息,发出数据访问请求;

S2:所述数据访问请求被转发到节点间控制器ENC;

S3:所述ENC根据配置的MMIO地址空间信息,通过外部互连网络将 所述数据访问请求转发到相应的远程节点;

S4:所述相应的远程节点收到所述数据访问请求后,根据配置的节点内 部资源地址空间映射表确定所述数据访问请求所要访问的该远程节点内部的 真实资源的地址。

本发明的有益效果是:通过共享系统地址空间的方式,在非紧耦合的多 节点多处理器系统内实现了内存共享与I/O共享,允许本地节点直接访问远 程节点的内存资源与I/O资源。

附图说明

图1为本发明提出的一种共享系统地址空间的非紧耦合多节点多处理器 系统。

图2为本发明提出的共享系统地址空间的地址空间映射关系图。

图3为本发明提出的节点间控制模块示意图。

图4为本发明提出的节点内部资源地址空间映射表。

图5为节点内部原子指令申请锁操作流程图。

图6为本发明提出的地址映射流程示意图。

图7为本发明提出的申请全局锁操作的流程示意图。

具体实施方式

为了使本发明的目的、技术方案更加清楚明白,下面给出本发明的具体 实施方式,结合附图及实施例对本发明进行进一步详细说明。应当理解,此 处所描述的具体实施例仅用以解释本发明。

实施例一:

本发明提出的实施例一提出一种共享系统地址空间的非紧耦合多节点多 处理器系统。图1给出了所述系统的结构图。在图中,节点内部通过节点内 控制器INC(Intra Node Controller)相连,每个INC可以连接至少一个CPU。 每个节点是一个独立的整体,拥有独立的计算资源、内存资源与I/O资源, 可以运行独立的操作系统。节点之间采用非紧耦合形式组织,相互之间独立, 节点间无法直接实现内存资源与I/O资源的共享。

所述节点可以为服务器节点,该服务器节点用于执行操作系统,管理本 地的计算资源、内存资源、以及I/O资源。服务器节点包括至少一个处理器、 至少一个内存控制模块、和/或至少一个I/O控制模块。

为了实现节点之间内存资源与I/O资源的共享,所述系统还包括节点间控 制器ENC(External Node Controller)。各个节点通过节点间控制器ENC与 专用互连网络相连,组成可扩展的分布式计算系统。更重要的是,节点间通 过ENC才能够实现内存资源与I/O资源的共享,具体实现方法将在后续文字 中描述。

首先参见图2,图2示出了共享系统地址空间映射关系图。本发明通过共 享系统地址空间的方式实现节点之间内存资源与I/O资源的共享。其中, MMIO区域映射了所有远程节点中被共享的内存地址与I/O地址空间;在本 地节点与远程节点中,被MMIO区域映射的内存地址空间,需要分配在非一 致性的内存区域Non-coherent Memory。

举例来说,Node_0中的non-coherent Memory是真实的内存,而MMIO 地址空间记录的仅仅是一个映射关系,所有节点通过MMIO地址空间发出的 访问都会落在真实的内存和I/O上,通过全局映射表(一段MMIO空间)进 行访问Node_0的地址,最后会转变成对non-coherent Memory的访问。基于 这种方式,本地节点通过访问MMIO地址空间的地址,实现访问远程节点内 存资源与I/O资源的目的。

图3给出了节点间控制模块ENC的结构示意图。节点间控制模块是本发 明的重要部件,包括与各个相互独立的节点连接的网络接口,系统地址空间 映射模块、网络消息管理模块以及支持原子指令的锁操作管理模块。

1.系统地址空间映射模块

系统地址空间映射模块,用于将远程节点系统地址空间内的地址转换成 本地系统地址空间内的地址,使两个节点之间能够跨系统域通信。基于该模 块,可以将整个非紧耦合的多节点系统内的共享资源建立一个全局视图,如 图2所示。基于该全局视图,非紧耦合的节点之间可实现在紧耦合组织方式 下才能实现的资源共享。

系统地址空间映射模块用于建立共享系统地址空间的全局视图(图2示 出),所有远程节点的共享资源映射在本地的MMIO地址空间,不同MMIO 区域的地址空间不重叠,同一个节点的所有共享资源映射在一段连续的 MMIO空间。同时该模块将远程节点通过MMIO地址访问本地节点共享资源 的请求转换成节点内可识别的地址请求。

所述的系统地址空间映射模块还建立一张节点内部资源映射表。在节点 内部资源映射表中,将全局视图中本地节点对应的MMIO地址空间映射为本 地资源真实的地址空间,即内存地址以及I/O设备的MMIO地址。

图4给出了节点内部资源地址空间映射表。其中,表的左半部为全局地 址空间视图中本地节点对应的连续的MMIO地址空间,表的右半部为对应于 连续MMIO地址空间的本地内存资源或者I/O资源的本地地址。

2.支持原子指令的锁操作管理模块

支持原子指令的锁操作管理模块,用于在非紧耦合的两个节点之间实现 共享锁机制,使两个节点之间冲突的共享操作可以互斥执行。

为了说明本专利中针对共享地址的原子指令执行流程,在专利中首先回 顾一下在节点内的原子指令执行流程。在系统中原子指令要求,指令内的两 次访存操作要在无外界冲突访存操作干扰的情况下顺序完成,因此原子指令 的执行流程分成三个步骤:申请全局锁、执行访存操作、释放全局锁。

首先,申请全局锁的过程如图5所示,其中Core为处理器核、LLC为最 后一级缓存的缓存控制器,Config Agent为配置代理,Quiescent Master为静 止控制器。在申请全局锁的过程中,Core首先发出申请,经过LLC与Config  Agent到达Quiescent Master;Quiescent Master向节点内的所有处理器发出停 止请求的申请(StopReq1);当Quiescent Master收到所有处理器的确认回复 之后,Quiescent Master向I/O代理发出停止请求的申请(StopReq2);当收 到所有的确认回复之后,Quiescent Master向申请锁操作的Core回复确认消 息。当Core收到确认消息以后,执行访存操作与释放全局锁操作,释放全局 锁操作与申请锁操作流程相似。

在共享全局地址空间的非紧耦合的多节点多处理器系统中,针对共享地 址的原子指令执行流程与节点内的指令原子指令的执行流程,在申请I/O的 停止请求(StopReq2)过程中有着很大的区别。为了保证该原子指令的作用 域是整个系统,而非某个节点内部,当锁操作管理模块收到停止I/O请求的 申请时,该请求会通过ENC中的锁操作管理模块广播到所有节点的锁操作管 理器。

在多节点申请全局锁的过程中,避免死锁是首先要考虑的问题,本专利 中为了避免死锁,将系统中某一个节点推举为全局锁操作管理节点(Lock  Manager),所有申请全局锁的节点都要向全局锁操作管理节点的锁操作管理 模块发送请求,然后由该节点向系统内其他节点的锁操作管理器发送申请全 局锁的请求。

当节点内的锁操作管理模块,收到停止I/O请求(StopReq2)的申请时, 锁操作管理模块会向全局锁操作管理节点Lock Manager发出申请节点间全局 锁的请求,Lock Manager在收到请求以后,转发请求到所有其它节点的锁操 作管理模块,所有节点的锁操作管理器会在本节点内部申请节点内的全局锁 操作,申请成功后向Lock Manager回复确认消息,当Lock Manager收齐所有 的确认回复以后,向申请节点间全局锁的节点回复确认消息。当申请节点间 全局锁的锁操作管理器收到确认回复以后,向本节点的Quiescent Master回复 完成停止I/O请求的申请。Quiescent Master向处理器核回复确认消息,完成 了针对共享地址的全局锁的申请过程。

3.网络消息转换模块

网络消息转换模块,用于实现节点内部互连网络与节点之间互连网络的 消息转换,在两个网络之间实现透明通信。节点访问远程节点共享的资源的 交互信息以及申请全局锁过程中交互的信息均通过该模块在节点间转发。

实施例二:

图6给出了地址映射流程图,描述了本地节点访问远程节点的共享资源 时,被访问地址的转换流程。具体流程描述如下:

步骤一,本地节点根据全局共享地址空间视图,发出读取(或修改)数 据请求。

步骤二,根据本地节点的地址空间配置,请求被转发到ENC(节点间控 制器)。

步骤三,ENC(节点间控制器)根据全局共享地址空间视图,通过外部 互连网络转发请求到远程节点。

步骤四,远程节点收到请求,根据节点内部资源地址空间映射表将全局 视图的MMIO地址转换成本地地址空间内地址。

实施例三:

图7描述了申请全局锁操作的流程示意图。具体步骤如下:

步骤一,当本地节点的锁操作管理模块收到申请锁的请求时,并非立即 执行答复而是向全局锁操作管理节点Lock Manager的锁操作管理模块发出申 请节点间全局锁的请求。

步骤二,Lock Manager的锁操作管理模块收到请求后,向视图内的所有 节点的锁操作管理模块发出申请节点内锁的请求。

步骤三,每个节点的锁操作管理模块会在其节点内部执行申请节点内锁 操作,然后答复Lock Manager的锁操作管理模块。

步骤四,Lock Manager的锁操作管理模块当收齐所有的确认答复以后, 答复最初申请锁操作的锁操作管理模块,允许其执行原子访存操作。

当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的 情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形, 但这些相应的改变和变形都应属于本发明的权利要求的保护范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号