CN1928839A - 一种远程内存服务器及其实现方法 - Google Patents

一种远程内存服务器及其实现方法 Download PDF

Info

Publication number
CN1928839A
CN1928839A CNA2005100983901A CN200510098390A CN1928839A CN 1928839 A CN1928839 A CN 1928839A CN A2005100983901 A CNA2005100983901 A CN A2005100983901A CN 200510098390 A CN200510098390 A CN 200510098390A CN 1928839 A CN1928839 A CN 1928839A
Authority
CN
China
Prior art keywords
unit
memory
control module
rmb
communication
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.)
Granted
Application number
CNA2005100983901A
Other languages
English (en)
Other versions
CN100437522C (zh
Inventor
李磊
樊建平
陈明宇
曹政
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
XFusion Digital Technologies Co Ltd
Original Assignee
Institute of Computing Technology of CAS
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Institute of Computing Technology of CAS filed Critical Institute of Computing Technology of CAS
Priority to CNB2005100983901A priority Critical patent/CN100437522C/zh
Publication of CN1928839A publication Critical patent/CN1928839A/zh
Application granted granted Critical
Publication of CN100437522C publication Critical patent/CN100437522C/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种远程内存服务器及其构造方法。该内存服务器包括通信单元、控制单元、内存阵列单元组成。客户端主机可以通过远程内存访问协议访问远程内存服务器,支持多种访问类型。通信单元提供高带宽低延迟的通信机制,并且可以通过替换接口模块,支持多种类型的物理层和链路层通信协议。内存阵列单元提供大容量内存,并支持多种类型的内存模块,从而屏蔽器件差异,延长器件和***生命周期。各单元之间通过点对点串行差分协议互连,其中通信单元和内存阵列单元之间通过灵活的高速互连网络实现动态绑定,实现高带宽条件下的高扩展性。内部处理器提供延迟隐藏支持,包括智能预取、数据预处理和数据迁移等,提高远程内存服务的性能。

Description

一种远程内存服务器及其实现方法
技术领域
本发明涉及高性能计算领域,尤其涉及一种远程内存服务器及其实现方法。
背景技术
目前,计算机体系结构的发展面临新的挑战。首先,器件的发展受到频率和功耗的限制,其次,随着软硬件规模和节点数目的增加,容错和管理问题日渐突出。因此,必须在体系结构上进行创新。同时,低成本信息化首先要求资源高度共享,以充分整合利用,其次,要求延长信息***生命周期,再次,要求降低包括管理、维护和开发在内的综合成本。
因此,人们提出网格化动态自组织的体系结构(Dynamic Self-organized computerArchitecture based on Grid-components,简称DSAG)。随着高性能计算机***规模的进一步扩大,单一的聚合***必然无法满足所有应用的需求,***之间的联接和共享将是不可避免的。既然如此,可以将原来聚合的***拆分开,将不同的功能部件分离、同类的功能部件集中并相对独立、同时针对通信连接进行优化设计,从而构建更大规模的***。这种拆分和重组将可能带来以下好处:
●同类部件聚合,将减少因不同部件规格差异带来的结合的开销,简化***的生产过程,通过一种大规模工业化生产来降低成本。
●同类部件集中和独立,将便于其他部件对资源的共享,消除原来聚合***带来的壁垒,提高资源的利用率。
●同类部件的集中将便于可靠性***的设计,特别是便于资源备份和故障切换的实现。
●不同类功能部件分离,将减少部件之间的依赖关系。组成***的不同部件之间不再是固有的联接,这将便于独立部件的升级和扩充。
●同类部件集中,对外提供功能***,屏蔽内部器件差异,“过时”器件可继续使用,而通过其他技术隐藏这种性能差异,延长了器件生命周期,从而降低了信息***成本。
内存体系在计算机***中具有非常重要的地位,而且是与处理器耦合最为紧密的部分。通过对内存体系的研究可以发现,内存与处理器的紧耦合有以下问题:
1)计算和存储的高耦合度带来负载不均;传统的PC和机群节点中,处理器和内存是绑定在一起的,不能够共享,这就造成了一方面某些节点内存利用率很低,另一方面,另外一些节点缺乏足够的物理内存。在物理内存不足的情况下,只有通过虚拟内存交换来扩展内存,由于磁盘设备的开销很大,带来了性能的重大损失。这种紧耦合结构不能为应用提供动态的大容量存储支持,限制了机器性能的提高,同时,造成了成本的浪费。
2)内存被节点所单独占有的,当某个节点的内存失效时,该节点也必然失效,该节点的计算能力就不能被利用,进程的迁移和故障的排除都要花费很多时间;
3)升级换代代理的综合成本问题;由于耦合紧密,需要升级内存部件时,往往要连同主板和芯片组一起更换。
人们也提出网络内存的方案,主要包括纽约大学石溪分校的SAMSON、巴西Rio deJaneiro大学MOMEMTO(MOre MEMory Than Others)等。它们主要在软件层次实现,其实质是建立在分布式共享内存(DSM)基础上的,内存没有分离和聚合,而是共享了远程节点的内存,如文献1:专利号US6795850,专利名称为“System and method for sharingmemory among multiple storage device controllers”。该专利提供了一种提高远程内存访问性能的方法,而非本发明所述的远程内存聚合。
Memory channel是国际电器电子工程师学会(Institute of Electrical andElectronics Engineers.,简称IEEE)正在制定的面向远程存储的通信协议标准。但它主要从通信协议上做了一些工作,没有给出主机端架构和内存服务器的构造,而且尚停留在草案阶段。
上述这些面向内存的研究和产品,没有从拆分和聚合的角度实现,仍然存在紧耦合***的问题;另外,低成本扩展、适应性和延迟隐藏能力不足。
发明内容
本发明的目的是克服上述现有技术的不足,提供一种远程内存服务器(Remote MemoryBox,简称RMB)及其实现方法,克服现有处理器和内存紧耦合带来的问题,提供一种高度共享、可低成本扩展、高可用、易于容错和管理的远程内存服务设备。
远程内存服务器的问题集中在高带宽、低延迟、扩展性、兼容性和智能性上,同时要满足易测试和低成本要求,需要解决的关键问题有:
(1)通信接口和协议问题:低延迟、高带宽、高可靠的通信机制,该通信机制不同于普通的通信机制,需要提供对remote memory box访问和应用模式的支持。
(2)低成本扩展和内部带宽瓶颈问题:只有***能够大规模扩展才能够获得成本优势,同时要保证内部高速共享数据通路在扩展时,其总带宽不受影响;采用总线结构的扩展性好,但是性能下降严重;如果使用crossbar等结构,当***规模下降时,必然导致成本急剧上升;因此,需要一种适合的互连网络结构,满足扩展性、带宽和成本之间的要求。通过对***特征的分析,可以构造适合的多级网络。
(3)兼容性设计问题:兼容性设计包括通信接口的兼容性设计、内存控制器的兼容性设计、操作***的兼容性设计等。兼容性设计的好坏,将影响到可以支持的应用模式、成本等重要因素。通过模块化的结构设计、标准化的接口设计,可以实现模块间的差异屏蔽和异构互连。
(4)存储管理问题:存储管理部分将实现存储的分配管理和地址变换;受处理能力和存储空间的限制,细粒度大规模***存储管理的效率问题是个关键;另外,需要解决中间互连网络的冲突问题,提供一定的负载均衡能力。存储管理部分大部分由软件实现,提供灵活性,并通过硬件配合实现性能的提高。
(5)延迟隐藏问题:这个问题包括两部分,一是支持延迟隐藏的软硬件机制,二是延迟隐藏的算法和软件。
为了解决上述技术问题,本发明采取的技术方案如下:
一种远程内存服务器,如图1所示,由通信单元10、控制单元20和内存阵列单元30组成,它们之间顺序连接,并通过RMB互连协议互连。
其中,如图2所示,所述通信单元10包括通信接口单元101、通信接口转换单元102和通信互连接口单元103顺序连接。
如图3所示,所述控制单元20包括RMB通信接口单元201与地址变换单元202连接,嵌入式处理器单元203与本地内存单元204连接,操作分解与控制单元205分别与所述RMB通信接口单元201、所述地址变换单元202和内存访问控制换单元206连接,所述交换调度单元207分别与所述嵌入式处理单元203、所述操作分解与控制单元205和高速互连网络单元208连接,所述内存访问控制单元206与所述高速互连网络单元208连接;所述控制单元20可由一片或多片FPGA或者ASIC实现;ASIC是指专用集成电路。
如图4所示,所述内存阵列单元30包括内存阵列接口单元301,内存接口转换单元302,内存控制器阵列单元303和内存模块阵列单元304。
在上述技术方案中,所述通信接口单元101是与客户端主机的通信端口,可以是GigaEthernet、Infiniband、Myrinet、或PCI-Express等类型的物理和链路层接口。
在上述技术方案中,所述通信接口转换单元102实现通信接口单元101和RMB通信互连接口单元103之间的接口转换,即将通信接口支持的协议转换为RMB内部的互连协议。
在上述技术方案中,所述RMB通信互连接口单元103是通信单元10和控制单元20的互连接口,与控制单元20中的RMB通信接口单元201连接。
在上述技术方案中,客户端主机通过远程内存访问协议(Remote Memory accessProtocol,简称RMP)访问RMB;该远程内存访问协议可以直接作为消息层协议,也可以在TCP/IP等之上,作为应用层协议。该协议与底层通信协议无关,支持大地址访问和大数据量传输,数据位数设置为48为以上,并支持多种主动的远程内存操作,包括memorycopy/move/set,fetch and set,迁移,内存一致性等,以及自定义操作。
在上述技术方案中,所述RMB互连协议(RMB Interconnect Protocol,简称RMIP)是RMB内部的互连协议,它是一种轻量级,点对点的物理层和链路层协议,用于芯片间和板间互连。它采用串行差分信号,因此具有高带宽,同时不受布局布线影响,容易实现扩展;
所述RMB互连协议不仅用于通信单元10和控制单元20的连接,也可以用于控制单元20和内存阵列单元30的互连;
在上述技术方案中,所述通信接口转换单元102还可以实现协议栈功能,将中间层协议剥离。例如通信接口单元101为以太网,上面为TCP/IP协议,应用层为RMP协议,接口转换单元可以实现TCP/IP协议站,将还原出来的RMP协议数据包通过RMIP发送给控制单元20,或者反之。
在上述技术方案中,所述RMB通信接口单元201通过RMIP和通信单元10连接,并负责对通信单元10来的RMP包进行解包,或者将内存阵列单元30来的数据包打包为RMP发送给通信单元10;
在上述技术方案中,所述地址变换单元202主要包括变换旁视缓冲器(TranslateLookup Buffer,简称TLB),实现远程内存虚地址(RMVA)和远程内存物理地址(RMPA)的转换。客户端主机发出的地址,可能是内存物理地址或者IDE协议地址等,经过主机方通信接口变换为RMVA,通过RMB的通信单元10接收到以后,将由地址变换单元202进行地址变换,即查找TLB,获取RMPA。RMPA对应了内存阵列单元30中的实际物理地址,即指明在哪个内存阵列板哪个内存条的哪个地址。如果TLB不命中,则产生异常,由嵌入式处理器单元203查找页表,填充TLB。
在上述技术方案中,所述嵌入式处理器单元203是一组高性能嵌入式处理器,运行嵌入式操作***。
在上述技术方案中,所述本地内存单元204为所述嵌入式处理器单元提供存储空间,用以存放嵌入式操作***、存储管理程序、数据预取和预处理管理程序、互连网络仲裁与控制程序,以及页表等代码和数据。
在上述技术方案中,所述操作分解和控制单元205将RMP中请求的各种复杂操作类型分解一系列读内存、写内存和处理步骤。例如memory copy,就需要分解为读内存和写内存两步。当请求的数据量比较大或者有访存冲突时,还需要分批进行。
在上述技术方案中,所述内存访问控制单元206将读内存和写内存请求打包,发给内存阵列单元30,或者将返回的数据包解包。它和内存阵列单元见的协议为内存阵列访问协议(Memory Array Access Protocol,MAP),该协议要求支持大数据流的读写操作。
在上述技术方案中,所述交换调度单元207负责通信单元10和内存阵列单元30之间的映射;如图3所示,通信单元10和控制单元20内的RMB通信接口单元201、地址变换单元202、操作分解与控制单元205、内存访问控制单元206是一一对应的,或是多对多对应的;当完成地址变换后,客户端主机请求的地址和内存阵列中的地址就建立了映射,需要建立它们之间的高速数据通路。所述交换调度单元207根据映射表对所述高速互连网络单元208进行调度。
在上述技术方案中,所述高速互连网络单元208是连接通信单元10和内存阵列单元30,实现它们之间的多对多映射,建立高速数据通路。当交换调度单元207完成调度后,内存访问控制单元206就可以收发数据。
在上述技术方案中,所述交换调度单元207和所述高速互连网络单元208构成一个无阻塞的异步交换网络。异步调度使得互连网络结构简单,不需要分解/装配和内部缓冲,能够实现灵活复杂的高密度交换网络和高速数据通路。
在上述技术方案中,所述内存阵列接口单元301通过RMB互连协议和控制单元20连接,负责MAAP数据包的收发。
在上述技术方案中,所述内存接口转换单元302提供内存控制器阵列单元303需要的用户接口,实现和内存阵列接口单元301的数据和控制转换。
在上述技术方案中,所述内存控制器阵列单元303是具体的内存模块的控制器,直接控制内存条。可能由多个控制组成阵列。
在上述技术方案中,所述内存模块阵列单元304提供大容量内存阵列,可以是DDRRAM,SDRAM或其他类型的内存模块。
一种远程内存服务器实现方法,包括以下步骤:
(1)客户端主机发出访存请求数据包。可能是某一种远程内存操作类型;客户端主机和RMB的通信接口可能是Ethernet,PCI-express或其他类型;
(2)通信接口单元101接收到数据包,交由接口转换单元102,将远程内存访问协议(RMP)包还原,并经由RMB互连接口单元103发送到控制单元20;
(3)控制单元20中的RMB通信接口单元201对RMP包进行解包;
(4)地址变换单元202对根据RMP包中的地址查找TLB,查找出它在内存阵列中对应的地址;如果TLB不命中则交由嵌入式处理器单元203进行存储管理,分配或查找出对应的地址,填充TLB;
(5)操作分解与控制单元205根据包访存操作类型,将复杂的操作请求分解为简单操作步骤,并控制这些步骤的执行;
(6)交换调度单元207根据地址映射关系调度高速互连网络单元208;
(7)内存访问控制单元206生成MAAP包发送给内存阵列单元30;
(8)内存阵列单元30中内存阵列接口单元301将MAAP包解包,通过接口转换单元302转换为内存控制器阵列单元303的输入;
(9)内存控制器阵列单元303控制内存模块阵列单元304的读写;
(10)应答通过接口转换单元302和内存阵列接口单元301打包为MAAP包,发送给控制单元20;
(11)MAAP包经由高速互连网络208再由内存协议转换单元206接收和解包;
(12)由操作分解和控制单元205发起步骤(5)中分解的下一简单步骤的操作;如果需要返回应答或数据给客户端主机,将控制RMB通信接口单元201生成RMP应答包发送给通信单元10;
(13)通信单元20将RMP包发送给客户端主机。
在本发明中,RMB内部通信单元、控制单元和内存阵列单元间采用串行差分链路和专门的轻量级点对点通信协议,使得它具有高度扩展性;异步的串行差分高速互连网络,保证了高扩展性下高的内部互连带宽。替换通信接口单元和通信接口转换单元,可以使用不同的通信协议(如GigaEthernet,PCI-express,Infiniband等)。替换内存阵列单元中的内存接口转换单元和内存控制器,可以使用不同类型的内存模块(DDR RAM,SDRAM等)。嵌入式处理器单元运行存储管理程序和延迟隐藏算法。高速TLB完成远程内存虚地址和远程内存物理地址之间的快速查找,并由交换调度单元可以快速完成调度,减小了整个***的延迟。综上所述,RMB实现了高扩展性、高带宽、低延迟和智能性。
本发明的Remote Memory Box的典型应用场景包括:
1.直接扩展本地内存:本地内存和远程内存统一编址,对应用程序透明,利用高效的延迟隐藏机制减小远程内存延迟影响。
2.扩展分布式共享内存(DSM):现有的DSM机制中,节点间通过网络接口和互连网络访问远程节点的内存,网络开销很大。如果采用RMB作为共享内存设备,大量的内存操作可以在RMB内部进行,减少了网络开销。
3.代替磁盘作为虚存交换(swap)设备:当主机物理内存不足时,将利用磁盘作为交换设备,将部分内存数据交换出去。但磁盘的访问延迟是毫秒以上级别的,开销很大,严重影响性能。SMB可以提供更优的延迟和带宽,而且不受本地磁盘容量限制。如果在主机端实现IDE和RMB的转换接口,可以不用修改操作***。
4.作为检查点(checkpoint)设备:现有机制用本地或远程磁盘保存checkpoint数据,耗时长、开销大。利用RMB做checkpoint,延迟带宽优于磁盘。而且,当某节点失效时,可以通过将RMB中的checkpoint数据和其他节点进行绑定,就可以由其他节点接管。还可以实现异步保存,由RMB做快速保存,然后异步保存到磁盘等非易失存储设备。
与现有技术相比,本发明的有益效果是:
本发明中的远程内存服务器将分布在各主机上的内存部件分离出来,以内存设备或内存服务器的形式,为多个主机提供远程内存服务。内存模块与客户端动态绑定,可以根据需要动态分配和释放,从而实现高度共享,降低空闲率,减少资源浪费;同时,由于资源集中管理,便于故障后的快速替换恢复和管理。另外,RMB的出现,还可以为某些应用模式的改进提供了条件。本发明的优点可以归纳如下:
(1)度共享:RMB为多个客户端主机提供服务,内存模块和客户端动态绑定,实现高度的共享,为客户端提供了海量内存,客户端可用的内存是服务器端可以提供的内存;
(2)支持可扩展的大容量内存,具有良好的扩展性,可以支持几十GB到几十TB容量;同时,替换内存控制器,可以同时支持DDR RAM、SDRAM等不同类型的内存模块。
(3)支持可扩展的客户端主机端口:可以支持更多数目的客户端主机;同时,可以支持不同类型的底层通信接口(Ethernet、Infiniband、IDE、PCI等)和通信协议。专门的消息层协议“远程Memory box访问协议(RMP)”可以支持大容量内存存取、并与底层通信链路无关。
(4)支持高速通信:支持高带宽、低延迟的可靠通信机制。单个通信接口可以支持到1Gbps以上带宽,多通道聚合可以达到10Gbps带宽。
(5)透明性:针对SWAP、Checkpoint等某些应用,具有操作***透明性,可以使用的Windows等操作***。
(6)支持动态延迟隐藏:利用嵌入式处理器、相关软件和内部回路,支持用户可配置的动态延迟隐藏机制,包括预取策略、数据预处理方法和数据迁移。高效、可配置的预取策略,可以减少存储部件拉长增加的延迟;数据预处理方法,使某些内存操作可以在RMB内部完成,不需要客户端主机参与;RMB内部数据迁移,不但可以避免利用通信链路在客户端之间传送数据带来的开销,还可以提高***性能。
(7)支持有效的容错和管理功能:故障节点所占用内存可以通过重映射迁移到其他节点。RMB内部还可以增加其他的容错功能,例如box内可以加入不间断电源,支持向大容量非易失存储设备进行数据导出等。
附图说明
图1是本发明远程内存服务器的总体结构图。
图2是本发明的通信单元的结构图。
图3是本发明的控制单元的结构图。
图4是本发明的内存阵列单元的结构图。
具体实施方式
下面结合附图和具体实施方式对本发明作进一步详细描述:
如图1所示,远程内存服务器(RMB)由通信单元10、控制单元20和内存阵列单元30,它们通过背板互连。RMB和客户端主机通过高速通信(GigaEthernet,infiniband,PCI-express等)互连,上层是远程内存访问协议(RMP),中间可以是TCP/IP等协议。
RMB内部各单元通过RMB互连协议(RMIP),背板上通过串行差分信号对连接。通信单元10和控制单元20消息层协议为RMP,控制单元20和内存阵列单元间消息层协议为MAAP。高速互连网络可以采用异步串行交换芯片,由控制单元20中的交换调度单元进行异步调度,形成高速数据通路,然后进行通信。
客户端主机通过远程内存访问协议(RMP)访问RMB;该远程内存访问协议可以直接作为消息层协议,也可以在TCP/IP等之上,作为应用层协议。该协议与底层通信协议无关,设置为支持大地址访问和大数据量传输的48位数据或64位数据,并支持多种主动的远程内存操作,包括memory copy/move/set,fetch and set,迁移,内存一致性等,以及自定义操作。
RMB互连协议(RMIP)是RMB内部的互连协议,它是一种轻量级,点对点的物理层和链路层协议,用于芯片间和板间互连。它采用串行差分信号,因此具有高带宽,同时不受布局布线影响,容易实现扩展;
RMB互连协议不仅用于通信单元10和控制单元20的连接,也可以用于控制单元20和内存阵列单元30的互连;***的低成本扩展性表现在两个方面:(1)通过这种互连方式,可以很容易地扩展更多的通信单元和内存单元,控制单元20也可以通过该互连方式进行级联扩展;(2)通过替换通信接口单元101和通信接口转换单元102,就可以适应不同的客户端通信接口。
如图2所示,通信单元10通过通信接口单元101和客户端主机通信。通信接口单元101可以用商用的通信接口芯片来实现。通信接口转换单元102实现通信接口单元101和RMB通信互连接口单元103之间的接口转换,即将通信接口支持的协议转换为RMB内部的互连协议。通信接口转换单元102负责从通信接口单元101来的信号中还原出RMP包,交由RMB通信互连接口单元103发送给控制单元。或者反之。
如图3所示,控制单元20由多片FPGA实现,它完成核心控制,包括存储管理、延迟隐藏、远程内存操作分解和控制、互连网络调度等。其中,RMB通信接口单元201通过RMIP和通信单元10连接,并负责对通信单元10来的RMP包进行解包,或者将内存阵列单元30来的数据包打包为RMP发送给通信单元10;高速互连网络单元208可以独立出来用FPGA或商用芯片实现;本地内存单元204可以采用片内存储或外接RAM实现。它与通信单元10的接口通过RMIP互连,上层是RMP协议,由RMB通信接口单元201完成RMP包的解包和打包。地址变换单元202负责查找TLB,完成地址变换,如果不命中则向嵌入式处理器单元发出中断。嵌入式处理器单元203是一组高性能嵌入式处理器,运行嵌入式操作***。它的功能主要有三个:一是实现存储管理,即建立和解除客户端和内存的映射,查找页表,填充TLB等;二是运行灵活的数据预取和数据预处理策略;三是互连网络的一部分调度和控制。嵌入式处理器单元203可采用FPGA内嵌的处理器或者外接处理器,与本地内存单元204一起完成存储管理、延迟隐藏算法等功能。操作分解与控制单元205负责将复杂的操作请求分解为若干步骤,并控制这些步骤的进行,直到完成,例如memory copy,就需要分解为读内存和写内存两步。当请求的数据量比较大或者有访存冲突时,还需要分批进行。内存访问控制单元206负责MAAP包的打包和解包;内存访问控制单元206将读内存和写内存请求打包,发给内存阵列单元30,或者将返回的数据包解包。它和内存阵列单元见的协议为内存阵列访问协议(Memory Array AccessProtocol,MAAP),该协议支持大数据流的读写操作。交换调度单元207管理一个映射表,负责通信单元10和内存阵列单元30之间的映射.通信单元10和控制单元20间通过高速互连网络相连的,当完成地址变换后,客户端主机请求的地址和内存阵列中的地址就建立了映射,需要建立它们之间的高速数据通路。交换调度单元207对高速互连网络单元208进行调度,选通数据通路。本实施例中,通信单元10和控制单元20内的RMB通信接口单元201、地址变换单元202、操作分解与控制单元205、内存访问控制单元206是一一对应的。
如图3所示,高速互连网络单元208位于内存访问控制单元206和内存阵列单元30之间。通信单元10和内存阵列单元30的映射可以这里可以体现。208是异步调度的,不必实现包的分解和装配,只是串行交换通路,因为可以实现复杂而灵活的结构,满足动态绑定的需求。
如图4所示,内存阵列单元30通过RMIP和MAAP和控制单元互连(通过高速交换网络),MAAP的打包和解包是由内存阵列接口单元301实现的。内存接口转换单元302实现MAAP请求到内存控制器阵列单元303之间的接口转换;302和301可以用FPGA实现,这样很容易替换逻辑,很方便地实现使用不同内存模块的产品系列;内存模块阵列单元304提供大容量内存阵列,采用DDR RAM类型的内存模块。
结合图1、2、3、4,客户端访问RMB的流程如下:
(1)客户端主机发出访存请求数据包。可能是某一种远程内存操作类型;客户端主机和RMB的通信接口可能是Ethernet,PCI-express或其他类型;
(2)通信接口单元101接收到数据包,交由接口转换单元102,将远程内存访问协议(RMP)包还原,并经由RMB互连接口单元103发送到控制单元20;
(3)控制单元20中的RMB通信接口单元201对RMP包进行解包;
(4)地址变换单元202对根据RMP包中的地址查找TLB,查找出它在内存阵列中对应的地址;如果TLB不命中则交由嵌入式处理器单元203进行存储管理,分配或查找出对应的地址,填充TLB;
(5)操作分解与控制单元205根据包访存操作类型,将复杂的操作请求分解为简单操作步骤,并控制这些步骤的执行;例如memory copy操作可以分解为读数据和写数据两个简单操作步骤;
(6)交换调度单元207根据地址映射关系调度高速互连网络单元208;
(7)内存访问控制单元206生成MAAP包发送给内存阵列单元30;
(8)内存阵列单元30中内存阵列接口单元301将MAAP包解包,通过内存接口转换单元302转换为内存控制器阵列单元303的输入;
(9)内存控制器阵列单元303控制内存模块阵列单元304的读写;
(10)应答通过内存接口转换单元302和内存阵列接口单元301打包为MAAP包,发送给控制单元20;
(11)MAAP包经由高速互连网络208再由内存访问控制单元206接收和解包;
(12)由操作分解和控制单元205发起步骤(5)中分解的下一简单步骤的操作;如果需要返回应答或数据给客户端主机,将控制RMB通信接口单元201生成RMP应答包发送给通信单元10;
(13)通信单元20将RMP包发送给客户端主机。
最后应说明的是:以上实施例仅用以说明而非限制本发明的技术方案,尽管参照上述实施例对本发明进行了详细说明,本领域的普通技术人员应当理解:依然可以对本发明进行修改或者等同替换,而不脱离本发明的精神和范围的任何修改或局部替换,其均应涵盖在本发明的权利要求范围当中。

Claims (10)

1、一种远程内存服务器,由通信单元(10)、控制单元(20)和内存阵列单元(30)组成,它们之间顺序连接,并通过RMB互连协议互连;其中,
所述通信单元(10)包括通信接口单元(101)、通信接口转换单元(102)和通信互连接口单元(103)顺序连接;
所述控制单元(20)包括RMB通信接口单元(201)与地址变换单元(202)连接,嵌入式处理器单元(203)与本地内存单元(204)连接,操作分解与控制单元(205)分别与所述RMB通信接口单元(201)、所述地址变换单元(202)和内存访问控制换单元(206)连接,所述交换调度单元(207)分别与所述嵌入式处理单元(203)、所述操作分解与控制单元(205)和高速互连网络单元(208)连接,所述内存访问控制单元(206)与所述高速互连网络单元(208)连接;所述控制单元(20)可由一片或多片FPGA或者ASIC实现;
所述内存阵列单元(30)包括内存阵列接口单元(301)、内存接口转换单元(302)、内存控制器阵列单元(303)和内存模块阵列单元(304)顺序连接。
2、根据权利要求1所述远程内存服务器,其特征在于,所述通信接口单元(101)是与客户端主机的通信端口,该通信端口是GigaEthernet、Infiniband、Myrinet、或PCI-Express类型的物理和链路层接口;
所述通信接口转换单元(102)实现通信接口单元(101)和RMB通信互连接口单元(103)之间的接口转换;
所述通信互连接口单元(103)是通信单元(10)和控制单元(20)的互连接口,与控制单元(20)中的RMB通信接口单元(201)连接。
3、根据权利要求1所述远程内存服务器,其特征在于,客户端主机通过远程内存访问协议访问RMB;该远程内存访问协议直接作为消息层协议,或在TCP/IP等之上,作为应用层协议;该协议的地址访问和数据量传输的数据宽度设置为48位以上,并支持多种主动的远程内存操作,包括memory copy/move/set,fetch and set,迁移,内存一致性,以及自定义操作。
4、根据权利要求1所述远程内存服务器,其特征在于,所述RMB互连协议是RMB内部的互连协议,它是一种轻量级,点对点的物理层和链路层协议,用于芯片间和板间互连;它采用串行差分信号;所述RMB互连协议用于通信单元(10)和控制单元(20)的连接,或用于控制单元(20)和内存阵列单元(30)的互连。
5、根据权利要求1所述远程内存服务器,其特征在于,所述通信接口转换单元(102)还可以实现协议栈功能,将中间层协议剥离。
6、根据权利要求1或4所述远程内存服务器,其特征在于,所述RMB通信接口单元(201)通过RMB互连协议和通信单元(10)连接,并负责对从通信单元(10)来的RMB互连协议数据包进行解包,或者将内存阵列单元(30)来的数据包打包为RMB互连协议格式发送给通信单元(10);
所述地址变换单元(202)主要包括变换旁视缓冲器,实现远程内存虚地址和远程内存物理地址的转换;
所述嵌入式处理器单元(203)运行嵌入式操作***;
所述本地内存单元(204)为所述嵌入式处理器单元(203)提供存储空间,用以存放嵌入式操作***、存储管理程序、数据预取和预处理管理程序、互连网络仲裁与控制程序,以及页表等代码和数据;
所述操作分解和控制单元(205)将RMB互连协议中请求的各种复杂操作类型分解一系列读内存、写内存和处理步骤;
所述内存访问控制单元(206)将读内存和写内存请求打包,发给内存阵列单元(30),或者将返回的数据包解包,它和内存阵列单元(30)的协议为内存阵列访问协议;
所述交换调度单元(207)负责通信单元(10)和内存阵列单元(30)之间的映射。通信单元(10)和控制单元(20)内的RMB通信接口单元(201)、地址变换单元(202)、操作分解与控制单元(205)、内存访问控制单元(206)是一一对应的,或是多对多对应的;所述交换调度单元(207)根据映射表对所述高速互连网络单元208进行调度;
所述高速互连网络单元(208)连接通信单元(10)和内存阵列单元(30),实现它们之间的多对多映射,建立高速数据通路;
所述交换调度单元(207)和所述高速互连网络单元(208)构成一个无阻塞的异步交换网络。
7、根据权利要求1所述的远程内存服务器,其特征在于,所述内存阵列接口单元(301)通过RMB互连协议和控制单元(20)连接,负责内存阵列访问协议数据包的收发;
所述内存接口转换单元(302)提供内存控制器阵列单元(303)需要的用户接口,实现和内存阵列接口单元(301)的数据和控制转换。
所述内存控制器阵列单元(303)是具体的内存模块的控制器,直接控制内存条;多个控制器可以组成阵列;
所述内存模块阵列单元(304)为内存阵列。
8、根据权利要求7所述的远程内存服务器,其特征在于,所述内存模块阵列单元(304)是DDR RAM,或SDRAM类型的内存模块。
9、一种远程内存服务器实现方法,包括以下步骤:
1)客户端主机发出访存请求数据包。
2)通信接口单元(101)接收到数据包,交由接口转换单元(102),将远程内存访问协议(RMP)包还原,并经由RMB互连接口单元(103)发送到控制单元(20);
3)控制单元(20)中的RMB通信接口单元(201)对RMP包进行解包;
4)地址变换单元(202)对根据RMP包中的地址查找TLB,查找出它在内存阵列中对应的地址;如果TLB不命中则交由嵌入式处理器单元(203)进行存储管理,分配或查找出对应的地址,填充TLB;
5)操作分解与控制单元(205)根据包访存操作类型,将复杂的操作请求分解为简单操作步骤,并控制这些步骤的执行;
6)交换调度单元(207)根据地址映射关系调度高速互连网络单元(208);
7)内存访问控制单元(206)生成MAAP包发送给内存阵列单元(30);
8)内存阵列单元(30)中内存阵列接口单元(301)将MAAP包解包,通过接口转换单元(302)转换为内存控制器阵列单元(303)的输入;
9)内存控制器阵列单元(303)控制内存模块阵列单元(304)的读写;
10)应答通过接口转换单元(302)和内存阵列接口单元(301)打包为MAAP包,发送给控制单元(20);
11)MAAP包经由高速互连网络(208)再由内存协议转换单元(206)接收和解包;
12)由操作分解和控制单元(205)发起步骤5)中分解的下一简单步操进行操作;如果需要返回应答或数据给客户端主机,将控制RMB通信接口单元(201)生成RMP应答包发送给通信单元(10);
13)通信单元(20)将RMP包发送给客户端主机。
10、根据权利要求9所述远程内存服务器实现方法,其特征在于,所述客户端主机和RMB的通信接口是Ethernet,Infiniband或PCI-express类型。
CNB2005100983901A 2005-09-09 2005-09-09 一种远程内存服务器及其实现方法 Active CN100437522C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB2005100983901A CN100437522C (zh) 2005-09-09 2005-09-09 一种远程内存服务器及其实现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB2005100983901A CN100437522C (zh) 2005-09-09 2005-09-09 一种远程内存服务器及其实现方法

Publications (2)

Publication Number Publication Date
CN1928839A true CN1928839A (zh) 2007-03-14
CN100437522C CN100437522C (zh) 2008-11-26

Family

ID=37858810

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2005100983901A Active CN100437522C (zh) 2005-09-09 2005-09-09 一种远程内存服务器及其实现方法

Country Status (1)

Country Link
CN (1) CN100437522C (zh)

Cited By (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101841438A (zh) * 2010-04-02 2010-09-22 中国科学院计算技术研究所 一种访问存储海量并发tcp流的流记录的方法或***
CN102854942A (zh) * 2012-09-07 2013-01-02 朱龙飞 一种内存阵列
WO2013107393A1 (zh) * 2012-01-18 2013-07-25 华为技术有限公司 一种消息式内存访问装置及其访问方法
CN103544123A (zh) * 2012-07-16 2014-01-29 深圳市中兴微电子技术有限公司 Sdram控制器及对sdram存储空间的访问方法
CN103634277A (zh) * 2012-08-23 2014-03-12 深圳市腾讯计算机***有限公司 一种共享内存的方法、服务器及***
CN103797473A (zh) * 2011-09-20 2014-05-14 英派尔科技开发有限公司 点对点数据迁移
CN103902469A (zh) * 2012-12-25 2014-07-02 华为技术有限公司 一种数据预取的方法和***
CN104156332A (zh) * 2014-08-11 2014-11-19 济南曼维信息科技有限公司 基于外部pci-e连接的高性能并行计算方法
CN104216835A (zh) * 2014-08-25 2014-12-17 杨立群 一种实现内存融合的方法及装置
WO2015043379A1 (zh) * 2013-09-29 2015-04-02 华为技术有限公司 一种内存访问方法和设备
CN104731531A (zh) * 2015-03-24 2015-06-24 浪潮集团有限公司 一种分离式高容量内存的服务器节点架构设计方法
CN105701020A (zh) * 2014-11-28 2016-06-22 华为技术有限公司 一种内存访问的方法、相关装置和***
CN105701023A (zh) * 2014-12-14 2016-06-22 上海兆芯集成电路有限公司 考虑到内存访问类型的快取内存替换策略
CN106155910A (zh) * 2015-03-27 2016-11-23 华为技术有限公司 一种实现内存访问的方法、装置和***
CN106844048A (zh) * 2017-01-13 2017-06-13 上海交通大学 基于硬件特性的分布式共享内存方法及***
CN108123984A (zh) * 2016-11-30 2018-06-05 天津易遨在线科技有限公司 一种内存数据库优化服务器集群架构
CN108139967A (zh) * 2015-10-09 2018-06-08 华为技术有限公司 将数据流转换为阵列
CN109739928A (zh) * 2018-12-14 2019-05-10 深圳壹账通智能科技有限公司 数据导出方法、装置、计算机设备和存储介质
CN112667561A (zh) * 2020-12-29 2021-04-16 成都旋极历通信息技术有限公司 一种在fpga中实现ufs阵列控制器的实现方式
CN113722110A (zh) * 2021-11-02 2021-11-30 阿里云计算有限公司 计算机***、内存访问方法及设备
CN118283114A (zh) * 2024-06-03 2024-07-02 阿里云计算有限公司 数据处理方法、***、电子设备和可读存储介质

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6738872B2 (en) * 2000-12-22 2004-05-18 International Business Machines Corporation Clustered computer system with deadlock avoidance
WO2002065275A1 (en) * 2001-01-11 2002-08-22 Yottayotta, Inc. Storage virtualization system and methods
US6795850B2 (en) * 2002-12-13 2004-09-21 Sun Microsystems, Inc. System and method for sharing memory among multiple storage device controllers
CN1280735C (zh) * 2003-12-04 2006-10-18 中国科学院计算技术研究所 一种发起方触发的远程内存访问操作虚实地址转换方法
CN100471112C (zh) * 2004-03-26 2009-03-18 清华大学 内存-网络内存-磁盘高速可靠存储***lnd的读写方法

Cited By (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101841438A (zh) * 2010-04-02 2010-09-22 中国科学院计算技术研究所 一种访问存储海量并发tcp流的流记录的方法或***
CN101841438B (zh) * 2010-04-02 2011-10-05 中国科学院计算技术研究所 一种访问存储海量并发tcp流的流记录的方法或***
US9742842B2 (en) 2011-09-20 2017-08-22 Empire Technology Development Llc Peer-to-peer data migration
CN103797473A (zh) * 2011-09-20 2014-05-14 英派尔科技开发有限公司 点对点数据迁移
CN103797473B (zh) * 2011-09-20 2017-05-24 英派尔科技开发有限公司 点对点数据迁移
WO2013107393A1 (zh) * 2012-01-18 2013-07-25 华为技术有限公司 一种消息式内存访问装置及其访问方法
US9870327B2 (en) 2012-01-18 2018-01-16 Huawei Technologies Co., Ltd. Message-based memory access apparatus and access method thereof
CN103544123A (zh) * 2012-07-16 2014-01-29 深圳市中兴微电子技术有限公司 Sdram控制器及对sdram存储空间的访问方法
CN103634277B (zh) * 2012-08-23 2019-02-05 深圳市腾讯计算机***有限公司 一种共享内存的方法、服务器及***
CN103634277A (zh) * 2012-08-23 2014-03-12 深圳市腾讯计算机***有限公司 一种共享内存的方法、服务器及***
CN102854942B (zh) * 2012-09-07 2016-06-01 赵丰年 一种内存阵列
CN102854942A (zh) * 2012-09-07 2013-01-02 朱龙飞 一种内存阵列
CN103902469A (zh) * 2012-12-25 2014-07-02 华为技术有限公司 一种数据预取的方法和***
CN103902469B (zh) * 2012-12-25 2017-03-15 华为技术有限公司 一种数据预取的方法和***
WO2015043379A1 (zh) * 2013-09-29 2015-04-02 华为技术有限公司 一种内存访问方法和设备
CN104516822A (zh) * 2013-09-29 2015-04-15 华为技术有限公司 一种内存访问方法和设备
CN104516822B (zh) * 2013-09-29 2018-01-23 华为技术有限公司 一种内存访问方法和设备
CN104156332A (zh) * 2014-08-11 2014-11-19 济南曼维信息科技有限公司 基于外部pci-e连接的高性能并行计算方法
CN104156332B (zh) * 2014-08-11 2017-02-15 济南曼维信息科技有限公司 基于外部pci‑e连接的高性能并行计算方法
CN104216835A (zh) * 2014-08-25 2014-12-17 杨立群 一种实现内存融合的方法及装置
CN104216835B (zh) * 2014-08-25 2017-04-05 杨立群 一种实现内存融合的方法及装置
CN105701020B (zh) * 2014-11-28 2018-11-30 华为技术有限公司 一种内存访问的方法、相关装置和***
CN105701020A (zh) * 2014-11-28 2016-06-22 华为技术有限公司 一种内存访问的方法、相关装置和***
CN105701023A (zh) * 2014-12-14 2016-06-22 上海兆芯集成电路有限公司 考虑到内存访问类型的快取内存替换策略
CN105701023B (zh) * 2014-12-14 2019-04-16 上海兆芯集成电路有限公司 考虑到内存访问类型的快取内存替换策略
CN104731531A (zh) * 2015-03-24 2015-06-24 浪潮集团有限公司 一种分离式高容量内存的服务器节点架构设计方法
CN104731531B (zh) * 2015-03-24 2018-01-02 浪潮集团有限公司 一种分离式高容量内存的服务器节点架构设计方法
CN106155910B (zh) * 2015-03-27 2021-02-12 华为技术有限公司 一种实现内存访问的方法、装置和***
CN106155910A (zh) * 2015-03-27 2016-11-23 华为技术有限公司 一种实现内存访问的方法、装置和***
CN108139967A (zh) * 2015-10-09 2018-06-08 华为技术有限公司 将数据流转换为阵列
CN108139967B (zh) * 2015-10-09 2021-07-20 华为技术有限公司 将数据流转换为阵列
CN108123984A (zh) * 2016-11-30 2018-06-05 天津易遨在线科技有限公司 一种内存数据库优化服务器集群架构
CN106844048A (zh) * 2017-01-13 2017-06-13 上海交通大学 基于硬件特性的分布式共享内存方法及***
CN106844048B (zh) * 2017-01-13 2020-11-06 上海交通大学 基于硬件特性的分布式共享内存方法及***
CN109739928A (zh) * 2018-12-14 2019-05-10 深圳壹账通智能科技有限公司 数据导出方法、装置、计算机设备和存储介质
CN112667561A (zh) * 2020-12-29 2021-04-16 成都旋极历通信息技术有限公司 一种在fpga中实现ufs阵列控制器的实现方式
CN112667561B (zh) * 2020-12-29 2024-05-31 成都旋极历通信息技术有限公司 一种在fpga中实现ufs阵列控制器的方法
CN113722110A (zh) * 2021-11-02 2021-11-30 阿里云计算有限公司 计算机***、内存访问方法及设备
CN118283114A (zh) * 2024-06-03 2024-07-02 阿里云计算有限公司 数据处理方法、***、电子设备和可读存储介质

Also Published As

Publication number Publication date
CN100437522C (zh) 2008-11-26

Similar Documents

Publication Publication Date Title
CN1928839A (zh) 一种远程内存服务器及其实现方法
CN105516191B (zh) 基于fpga实现的万兆网tcp协议卸载引擎toe的***
CN1697448A (zh) MODBUS/TCP 工业以太网与设备网现场总线和Profibus DP现场总线间的多协议转换方法和装置
CN1975680A (zh) 基于Java的进程间异步通信的实现方法
CN1825804A (zh) 实现分布式***板间通信的***和方法
CN103905281A (zh) 可互换实现网络控制器与网络终端功能的fc-ae-1553总线节点卡
CN1270229C (zh) 基于动态内核实现跨地址空间创建构件对象的方法
CN107038134A (zh) 一种基于fpga的srio接口固态硬盘***及其实现方法
CN1866845A (zh) 一种组播转发表输出端口的虚拟标识方法
CN101866326B (zh) 一种消息传递接口支持总线通信框架
CN1284094C (zh) 一种构建分布式并行调度网络服务器***的方法
CN1702658A (zh) 基于知识产权的大型集成电路设计***及设计方法
US7428730B2 (en) Software development environment
CN103209119A (zh) 一种低功耗嵌入式云智能网关
CN1272724C (zh) 基于内核中套接字对接的第七层负载均衡的方法
CN1949736A (zh) 一种报文编辑电路及方法
CN1787446A (zh) 一种电子会议***及其多主机协同工作方法
CN1881936A (zh) 一种路由器虚拟驱动模块的动态加载与控制方法
CN1933438A (zh) 实现第一部件与第二部件之间通信的***及部件
CN1889483A (zh) 框间互连的通信***及其数据交换方法
CN102231141A (zh) 一种数据读、写方法及***
CN1410904A (zh) 一种具有tcp连接容错功能的负载平衡调度器及其调度方法
CN1901492A (zh) 一种通过网络中的总线接口进行通信的方法和***
CN102629239B (zh) 基于pci互联的地址内存映射***和方法
CN102761578B (zh) 集群计算***

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
ASS Succession or assignment of patent right

Owner name: HUAWEI TECHNOLOGY CO., LTD.

Free format text: FORMER OWNER: INSTITUTE OF COMPUTING TECHNOLOGY, CHINESE ACADEMY OF SCIENCES

Effective date: 20130530

C41 Transfer of patent application or patent right or utility model
COR Change of bibliographic data

Free format text: CORRECT: ADDRESS; FROM: 100080 HAIDIAN, BEIJING TO: 518129 SHENZHEN, GUANGDONG PROVINCE

TR01 Transfer of patent right

Effective date of registration: 20130530

Address after: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen

Patentee after: HUAWEI TECHNOLOGIES Co.,Ltd.

Address before: 100080 Haidian District, Zhongguancun Academy of Sciences, South Road, No. 6, No.

Patentee before: Institute of Computing Technology, Chinese Academy of Sciences

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20211227

Address after: 450046 Floor 9, building 1, Zhengshang Boya Plaza, Longzihu wisdom Island, Zhengdong New Area, Zhengzhou City, Henan Province

Patentee after: xFusion Digital Technologies Co., Ltd.

Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen

Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd.