CN103152394A - 数据存取系统、内存共享设备及数据读取方法 - Google Patents
数据存取系统、内存共享设备及数据读取方法 Download PDFInfo
- Publication number
- CN103152394A CN103152394A CN2013100464124A CN201310046412A CN103152394A CN 103152394 A CN103152394 A CN 103152394A CN 2013100464124 A CN2013100464124 A CN 2013100464124A CN 201310046412 A CN201310046412 A CN 201310046412A CN 103152394 A CN103152394 A CN 103152394A
- Authority
- CN
- China
- Prior art keywords
- internal memory
- memory shared
- shared device
- internal
- data
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0813—Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/167—Interprocessor communication using a common memory, e.g. mailbox
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/084—Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1008—Correctness of operation, e.g. memory ordering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/15—Use in a specific computing environment
- G06F2212/154—Networked environment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/16—General purpose computing application
- G06F2212/163—Server or database system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/25—Using a specific main memory architecture
- G06F2212/254—Distributed memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/26—Using a specific storage system architecture
- G06F2212/263—Network storage, e.g. SAN or NAS
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/62—Details of cache specific to multiprocessor cache arrangements
Abstract
本发明涉及一种数据存取系统,其包括:由两个以上内存共享设备组成的内存共享资源池,以及与每个内存共享设备对应的两个以上控制设备;两个以上内存共享设备中的任一内存共享设备,具有统一编址的用于存储数据的内存单元,任一内存共享设备在两个以上控制设备中的与该内存共享设备对应的一个控制设备的控制下获取内存共享资源池中任一内存共享设备中的内存单元中的数据;两个以上控制设备中的任一控制设备,通过通信接口与两个以上内存共享设备连接,并通过统一编址后的地址信息,通过内存资源池中与任一控制设备对应的内存共享设备获取内存共享资源池中的任意的至少一个内存共享设备中的内存单元中的数据。
Description
技术领域
本发明涉及互联网领域,具体涉及到一种数据存取系统、内存共享设备及数据读取方法。
背景技术
目前,随着互联网的发展与普及,分布式系统的应用越来越广泛。分布式文件系统(Distributed file system,DFS)是指建立在网络之上的软件系统。其特点是具有高度的内聚性和透明性。内聚性是指系统中每一个数据库分布节点高度自治;透明性是指每一个数据库分布节点对用户的应用来说都是透明的。但是,分布式系统之间的信息共享的实时性影响了分布式系统的整体性能。
在现有技术中,为了解决分布式系统的信息共享问题,通常采用如图1所示的基于交换网络的信息共享方式。在图1中,作为获取方控制系统A中的CPU希望获取作为提供方控制系统B内存单元中的数据,过程为:1)控制系统A中的CPU向控制系统B的CPU发送请求消息;2)控制系统B中的CPU根据请求消息从本机内存单元中读取数据;3)控制系统B中的CPU将携带数据的执行结果返回给控制系统中A的CPU;4)控制系统A中的COU从执行结果中提取数据,并交给上层系统进行处理。在上述过程中,所有数据的流动都需要经过控制系统A和控制系统B的中央处理器(Centra l ProcessingUnit,CPU)参与处理。
以现有的基于交换网络的信息共享方式为例,如图2中所示流程,控制系统A中CPU希望获取控制系统B内存单元中的数据,则控制系统A作为获取方,控制系统B作为提供方,具体过程为,如图2中实线流程,控制系统A中CPU在执行某一程序时,需要获取控制系统B内存中的数据,控制系统A中CPU通过交叉开关网络向控制系统B中CPU发送请求消息;控制系统B中CPU对请求消息解析后,明确控制系统A中CPU需要获取自身内存中的数据,则控制系统B中CPU根据请求消息访问本机内存中的内存单元,并从中获取数据,控制系统B中CPU在从内存单元中获取数据后,要将获取的数据反馈至控制系统A中CPU内,如图2中虚线流程;控制系统B中CPU将携带数据的执行结果通过交叉开关网络返回给控制系统中A中CPU;控制系统A中CPU从执行结果中获取数据,并交给上层系统进行处理。因此,现有技术中的基于交换网络的信息共享方式,控制系统A在获取其他控制系统中的数据均需要经过控制系统A和其他控制系统B中CPU参与处理,尤其是在多个控制系统相互获取其他控制系统中的数据时,多个控制系统的CPU均会参与处理,使得在整个信息共享的过程中,过多消耗作为提供方控制系统中CPU的性能,造成CPU的浪费,再者,在任一作为提供方控制系统中CPU运行软件故障时,其所拥有的数据将不能被其它控制系统访问,降低整个系统的可靠性。
因此,在现有技术中存在以下缺点:1)控制系统A与控制系统B的CPU均需要参与到信息的共享控制,使得在整个信息共享的过程中,过多消耗作为提供方控制系统中CPU的性能,造成CPU的浪费;2)作为提供方控制系统B中的CPU的运行软件故障后,其所拥有的数据将不能被其它终端访问,降低整个系统的可靠性。
发明内容
本发明的目的是提供一种数据存取系统,以解决现有技术作为提供方的控制系统过多消耗CPU的性能,造成CPU的浪费及降低整个系统的可靠性的问题,提供了一种信息处理的方法、装置与系统。
第一方面,本发明实施例提供了一种数据存取系统,所述系统包括:由两个以上内存共享设备组成的内存共享资源池,以及两个以上与所述内存资源池中的每个内存共享设备对应的控制设备;
所述任一内存共享设备具有统一编址的用于存储数据的内存单元,所述任一内存共享设备中的第一内存共享设备在接收到与第一内存共享设备对应的第一控制设备发送的带有地址信息的内存访问请求时:
如果所述地址信息对应的内存单元为所述第一内存共享设备中的内存单元,则在第一内存共享设备中的内存单元中读取数据,并将所述数据反馈给所述第一控制设备,如果所述地址信息对应的内存单元为所述内存共享资源池中的第二内存共享设备中的内存单元,则第一内存共享设备将所述内存访问请求向所述第二内存共享设备转发,并接收第二内存共享设备反馈的所述第二内存共享设备的内存单元中的数据;
所述任一内存共享设备中的第一内存共享设备在接收到第二内存共享设备转发的带有地址信息的内存访问请求时,读取数据并将读取到的数据反馈给所述第二内存共享设备。
基于第一方面,在第一种可能的实施方式中,所述内存共享设备包括存储模块、处理模块以及通信单元:
存储模块,与所述处理模块连接,所述存储模块包括至少一个在所述内存共享资源池中统一编址的内存单元,所述内存单元用于存储数据;
处理模块,通过通信接口与一个控制设备相连,通过所述通信单元与所述内存共享资源池中的其他内存共享设备连接,通过所述通信接口接收与该处理模块连接的所述控制设备发送的内存访问请求;通过所述通信单元接收其他内存共享设备转发的内存访问请求,和/或向所述内存共享资源池中的其他内存共享设备转发所述控制设备发送的内存访问请求;所述其他内存共享设备转发的内存访问请求为该其他内存共享设备从对应的控制设备处接收到的,所述内存访问请求中包括所述内存共享资源池中通过统一编址后多个内存共享设备中的内存单元的地址信息,所述地址信息用于获取所述内存共享资源池中的任意一个内存共享设备中的内存单元中的数据。
基于第一方面的第一种可能的实施方式,在第一方面的第二种可能的实施方式中,所述内存共享设备通过所述通信单元向所述内存共享资源池中的其它内存共享设备广播询问消息,以获取所述内存共享资源池中统一编址后的内存单元的编址数据,并将获取到的所述编址数据保存在所述处理模块中。
基于第一方面,在第一方面的第三种可能的实施方式中,所述两个控制设备中的任一控制设备包括通信模块,所述任一控制设备的所述通信模块通过连接一可插拔的内存共享模块接入所述数据存取系统。
基于第一方面,或第一方面的第一种至第三种可能的实施方式,在第一方面的第四种可能的实施方式中,所述通信接口为系统高速总线、交换机或以太网接口。
第二方面,本发明实施例提供了一种内存共享设备,其包括存储模块、处理模块以及通信单元,其中,
存储模块,与处理模块连接,用于存储数据;
存储模块,与处理模块连接,用于存储数据;
处理模块,通过通信接口与一个控制设备相连,通过所述通信单元与所述内存共享设备所在的内存共享资源池中的其他内存共享设备连接,通过所述通信接口接收与该处理模块连接的控制设备发送的内存访问请求;通过所述通信单元接收所述内存共享资源池中其他内存共享设备转发的内存访问请求,和/或向所述内存共享资源池中的其他内存共享设备转发所述控制设备发送的内存访问请求;所述其他内存共享设备转发的内存访问请求为该其他内存共享设备从对应的控制设备处接收到的,所述内存访问请求中包括所述内存共享资源池中通过统一编址后多个内存共享设备中的内存单元的地址信息,用于获取所述内存共享资源池中的任意一个内存共享设备中的内存单元中的数据。
基于第二方面,在第二方面的第一种可能的实施方式中,所述处理模块通过所述通信单元接收到所述内存共享资源池中的所述其他内存共享设备转发的内存访问请求后,在所述内存访问请求中携带的地址信息对应的内存单元中获取数据,并将结果通过所述通信单元返回给所述其他内存共享设备,由所述其他内存共享设备通过所述通信接口向与所述其他内存共享设备发送内存访问请求的控制设备返回所述结果。
基于第二方面,在第二方面的第二种可能的实施方式中,所述处理模块进一步包括判断单元,如果所述判断单元判定所述地址信息对应的内存单元中的第一部分内存单元在本端内存共享设备,第二部分在第二内存共享设备,则所述处理模块在本端内存共享设备中的所述存储模块中读取第一部分内存单元中的数据,并将所述内存访问请求中的地址信息中第一部分内存单元的地址删除,通过所述通信单元向所述其他内存共享设备转发只包含第二部分内存单元地址的内存访问请求。
基于第二方面,或第二方面的第一种或第二种可能的实施方式,在第二方面的第三种可能的实施方式中,所述内存共享设备还包括电源模块,用于当不存在外部电源供电时,为所述存储提供电能,藉由该电源模块所述内存共享设备形成可插拔的非易失性随机访问存储器NVRAM。
基于第二方面,或第二方面的第一种至第三种可能的实施方式,在第二方面的第四种可能的实施方式中,所述内存共享设备,还包括管理模块,用于调试所述存储模块中的应用程序及对所述通信单元中的流量进行控制。
基于第二方面,或第二方面的第一种至第四种可能的实施方式,在第二方面的第五种可能的实施方式中,所述处理模块为现场可编程门阵列FPGA。
第三方面,本发明实施例提供了一种数据读取方法,所述方法包括:
内存共享资源池中的第一内存共享设备接收控制该第一内存共享设备的第一控制设备发送的内存访问请求,所述内存访问请求中包括通过统一编址后的地址信息;其中,所述的地址信息是通过统一编址后的内存共享资源池中的两个以上内存共享设备中的用于存储数据的的一个或多个内存单元的地址信息,所述两个以上的内存共享设备中的任意一个内存共享设备在两个以上控制设备中的一个控制设备的控制下进行数据的读取,所述第一内存共享设备为所述两个以上内存共享设备中的一个;
第一内存共享设备根据所述地址信息,确定所述地址信息对应的内存单元所在的内存共享设备;
如果所述地址信息对应的内存单元所在的内存共享设备为所述第一内存共享设备,则所述第一内存共享设备从第一内存共享设备自身中所述地址信息对应的内存单元中获取数据,
如果所述地址信息对应的内存单元所在的内存共享设备为第二内存共享设备,则所述第一内存共享设备向所述第二内存共享设备转发所述内存访问请求,并接收所述第二内存共享设备返回的数据;
所述第一内存共享设备将所述数据读取反馈给所述第一控制设备。
基于第三方面,在第一种可能的实施方式中,在内存共享资源池中的第一内存共享设备接收控制该第一内存共享设备的第一控制设备发送的内存访问请求之前,还包括:
内存共享资源池中的第一内存共享设备向所述内存共享资源池中的其它内存共享设备广播询问消息,以获取所述内存共享资源池中全部内存共享设备中内存单元的编址数据。
通过应用本发明实施例提供的数据存取系统,两个以上内存共享设备组成的内存共享资源池,以及两个以上与所述内存资源池中的每个内存共享设备对应的控制设备,任一内存共享设备具有统一编址的用于存储数据的内存单元,所述内存共享设备根据其对应的控制设备从所述内存单元中读取数据。当通过内存资源池中的其他内存设备读取数据,简化了现有技术中作为提供方控制设备的工作量;提高了作为提供方控制设备的利用率,同时,在内存共享资源池中存储了各控制系统所需的数据,各控制系统均可共享其他控制系统的数据,提高了分布式系统存储数据的可靠性。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为现有技术提供的信息共享方式结构图;
图2为现有技术提供的信息共享方式流程示意图;
图3为本发明实施例提供的信息的数据存取系统示意图;
图4为本发明实施例提供的数据存取系统中内存共享设备的示意图;
图5A为本发明一实施方式内存共享设备工作过程示意图;
图5B为本发明另一实施方式内存共享设备工作过程示意图;
图5C为本发明另一实施方式内存共享设备工作过程示意图;
图6为本发明实施例数据存取系统的另一种实施方式的架构图;
图7为本发明实施例数数据存取系统另一实施例的结构图;
图8为本发明实施例数据读取方法的流程图;
图9为本发明实施例数据读取方法另一实施例的流程图;
图10为本发明提供的内存共享设备的一种实施方式的结构示意图;
图11为本发明提供的内存共享设备另一种实施方式的结构示意图。
具体实施方式
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
本发明实施例提供一种包括两个以上内存共享设备和通过通信接口与上述的内存共享设备连接的两个以上控制设备的数据存取系统,其中,两个以上的内存共享设备组成所述数据存取系统中的内存共享资源池,每个控制设备与每个内存共享设备对应,当两个以上控制设备中的一个控制设备想要在内存共享资源池中读取数据时,通过与此控制设备对应的内存共享设备,在所述的内存共享资源池中读取所需的数据。
如图3所示,本发明实施例提供了一种数据存取系统,所述系统包括两个以上内存共享设备组成的内存共享资源池,以及通过通信接口与多个控制设备连接的多个内存共享设备。其中,通信接口包括但不限定于系统高速总线、交换机或以太网接口等。所述的多个内存共享设备组成内存共享资源池,其中的每个内存共享设备都与多个控制设备中的一个对应,建立控制关系,如果是通过系统高速总线连接,则与每个内存共享设备连接的控制设备,就控制此内存共享设备,如果控制设备通过交换机或以太网接口通过网络连接内存共享设备,则内存共享设备和控制设备之间可以通过端口配置或者IP分配等方式建立对应关系,达到一个控制设备控制一个内存共享设备的目的,或者一个控制设备控制内存共享资源池中的任意一个内存共享设备的目的。
所述内存共享资源池中的任一内存共享设备具有统一编址的用于存储数据的内存单元,所述任一内存共享设备中的第一内存共享设备在接收到与第一内存共享设备对应的第一控制设备发送的带有地址信息的内存访问请求时:
如果所述地址信息对应的内存单元为所述第一内存共享设备中的内存单元,则在第一内存共享设备中的内存单元中读取数据,并将所述数据反馈给所述第一控制设备,如果所述地址信息对应的内存单元为所述内存共享资源池中的第二内存共享设备中的内存单元,则第一内存共享设备将所述内存访问请求向所述第二内存共享设备转发,并接收第二内存共享设备反馈的所述第二内存共享设备的内存单元中的数据;
任一内存共享设备中的第一内存共享设备在接收到第二内存共享设备转发的带有地址信息的内存访问请求时,在本地读取数据,并将读取到的数据反馈给所述第二内存共享设备。
如图4所示,每个内存共享设备都包括处理模块501、存储模块502以及通信单元503。通过所述的通信单元503,所述内存共享设备与其他内存共享设备之间能够进行通信,这些内存共享设备同属于一个内存共享资源池;所述的存储模块502包括多个的内存单元,每个内存单元都在整个内存共享资源池中统一编址,每个内存单元都用于存储数据;所述的处理模块501用于对从控制设备中接收到的内存访问请求进行处理,并在存储模块502中读取数据。在每个内存共享设备的处理模块501可以保存有一个地址表,此地址表记录所述内存共享资源池中所有内存单元的地址。
内存共享设备中的处理模块501通过所述通信接口与一个控制设备相连,通过所述通信接口接收与该处理模块501连接的所述控制设备发送的内存访问请求;通过所述通信单元503与所述内存共享资源池中的其他内存共享设备连接,通过所述通信单元503接收其他内存共享设备转发的内存访问请求;此外,处理模块501还能够在接收到与该处理模块501连接的所述控制设备发送的内存访问请求后,当该内存访问请求所要访问的内存单元在其它内存共享设备时,通过所述通信单元503向所述要访问的内存单元所在的内存共享设备转发请求。所述内存访问请求中包括地址信息,处理模块501根据地址信息确定控制设备想要访问的内存单元所在的内存共享设备,并获取所述内存共享资源池中的任意一个内存共享设备中的数据,这些数据位于内存共享设备中的存储模块502中的内存单元中。
本发明实施例中虚拟的内存共享资源池可以通过如下方式实现:各内存共享设备通过通信单元组成一个数据交换域,将所述交换域中包含的内存单元进行统一地址编址,并将编址后的地址信息发送给所述交换域中的内存共享设备。
如图3所示,作为获取方的第一控制设备110需要从内存共享资源池中获取所需的数据时,向与该第一控制设备110对应的第一内存共享设备210发送内存访问请求,所述内存访问请求携带第一控制设备110想要获取的数据的地址信息,第一内存共享设备210设备根据所述地址信息和处理模块501中的地址表进行查询,以确定第一控制设备110所需数据的存储位置。当第一控制设备110所需的数据在第一内存共享设备210的存储模块502中的内存单元时,则直接访问所述存储模块502中的内存单元中的数据,并反馈给所述第一控制设备110;当所述第一控制设备110所需的数据不在第一内存共享设备210的存储模块502内时,则通过所述第一内存共享设备210中的通信单元503,将所述访问请求发送到内存访问请求中的地址信息对应的内存共享设备(例如第二内存共享设备220),以获取第一控制设备所需的数据。在第一控制设备110所需的数据不在第一内存共享设备210内时,整个获取数据的过程也不需要第二控制设备120参与,不需要耗费第二控制设备120中的处理模块501中的资源。在本发明实施例中,具体的访问、获取内存单元中数据的过程由内存共享设备完成,进而降低了现有技术中作为提供方控制设备中处理器的工作量;提高了作为提供方控制设备中处理器利用率,同时,在内存共享资源池中存储了各控制设备所需的数据,各控制设备均可共享其他控制设备的数据,进而解决分布式系统信息共享的问题,提高分布式系统之间信息共享的实时性。
以下结合附图,对上述系统的几个具体实施例,对上述系统做进一步详细叙述。
如图5A所示,图5A为本发明实施例提供的内存共享设备中内存单元地址编址信息示意图。在图5A中,以4个内存共享设备形成内存共享资源池为例进行说明,实际应用中,并不限制于4个内存共享设备形成内存共享资源池。4个内存共享设备分别与控制设备通过系统高速总线连接,且每个内存共享设备中的处理模块501均完成自身的存储模块502中内存单元的编址,明确自身的存储空间,并且第一内存共享设备210、第二内存共享设备220、第三内存共享设备230和第四内存共享设备240形成内存共享资源池,每个内存共享设备的地址编址信息如图5A所示,第一内存共享设备210的第一地址编址信息为0-99;第二内存共享设备220的第二地址编址信息为100-199;第三内存共享设备230的第三地址编址信息为200-299;第四内存共享设备240的第四地址编址信息为300-399。
当内存共享资源池形成后,各内存共享设备中的处理模块明确自身存储模块502中内存单元的地址编址信息,并利用通信单元503向内存共享资源池中的其他3个内存共享设备发送询问消息,以获取其他内存共享设备其内部的内存单元的地址编址信息。
每个内存共享设备中的处理模块501根据自身内存单元的地址编址信息,以及其他内存共享设备其内部的内存单元的地址编址信息,生成地址信息表,所述地址信息表用于内存共享设备快速查找内存单元的位置。
在第一个优选的实施例中,如图5B所示,第一控制设备110希望访问偏移58,长度为10的内存单元中的数据,第一控制设备110通过系统高速总线向第一内存共享设备210的发送内存访问请求,所述内存访问请求包括内存地址信息,第一内存共享设备210的处理模块502接收到内存访问请求后,对内存访问请求进行解析,并提取内存访问请求中的地址信息,明确第一控制设备110希望访问偏移58,长度为10的内存单元的数据,也即是地址信息为58至67的内存单元的数据;处理模块501根据地址信息表,查找并确定58至67的内存单元的位置,处理模块501根据地址信息表确定编址信息为58至67的内存单元存在于本地的存储模块502中,则处理模块501访问编址信息为58至67的内存单元,在完成访问后,生成结果消息,所述结果消息携带58至67内存单元中存储的数据。处理模块501通过系统高速总线向第一控制设备110发送获取到的数据。
在第二个优选的实施例中,如图5C所示,第二控制设备120希望访问偏移58,长度为10的内存单元中的数据,第二控制设备120通过系统高速总线向第二内存共享设备220的处理模块501发送内存访问请求,所述内存访问请求包括内存地址信息,第二内存共享设备220的处理模块501接收到内存访问请求后,对内存访问请求进行解析,并提取内存访问请求中的信息,确定第二控制设备120希望访问偏移58,长度为10的内存单元的数据,即地址信息为58至67的内存单元的数据;第二内存共享设备220的处理模块501根据地址信息表,查找并确定58至67的内存单元的位置,第二内存共享设备220的处理模块501根据地址信息表确定编址信息为58至67的内存单元未存在于本地的第二内存共享设备220的存储模块502中,而存在于第一内存共享设备210的存储模块502中,则第二内存共享设备220的处理模块501将该内存访问请求通过通信单元将该内存访问请求向第一内存共享设备210转发。第一内存共享设备210接收到内存访问请求后,将该消息传输至第一内存共享设备210的处理模块501中,由第一内存共享设备210的处理模块501进行相应的处理,第一内存共享设备210的处理模块501根据地址信息表,查找并确定内存访问请求包括的内存地址信息存在于本地的存储模块502后,则访问编址信息为58至67的内存单元,在完成访问后,生成结果消息。第一内存共享设备210的处理模块501通过通信单元503将结果消息传输至第二内存共享设备的处理模块501,再由第二内存共享设备220的处理模块501将结果消息通过系统高速总线向第二控制设备120发送,所述结果消息携带58至67内存单元中存储的数据。在该实施例中,当第二控制设备120需要从内存共享资源池中获取数据时,即使第二控制设备120所需的数据不在第二控制设备120控制的第二内存共享设备220中,也只需要第二内存共享设备220转发第二内存共享设备220收到的内存访问请求,从而从其他的内存共享设备中获取第二控制设备120所需的数据,而不需要其他的控制设备参与,从而节省了其他控制设备的损耗。
在第三个优选的实施例中,如图5C所示,第二控制设备120希望访问偏移58,长度为100的内存单元中的数据,第二控制设备120通过系统高速总线向第二内存共享设备220发送内存访问请求,所述内存访问请求包括内存地址信息,第二内存共享设备220的处理模块501对内存访问请求进行解析,并提取内存访问请求中的信息,确定第二控制设备120希望访问偏移58,长度为100的内存单元的数据,即,地址信息为58至157的内存单元的数据;第二内存共享设备220的处理模块501根据地址信息表,查找并确定58至157的内存单元的位置,第二内存共享设备220的处理模块501根据地址信息表确定编址信息为58至157的内存单元未全部存在于本地的第二内存共享设备220的存储模块502中,而是部分存在于第一内存共享设备210的存储模块501中(58-99),部分存在与第二内存共享设备220的存储模块502中(100-157),则第二内存共享设备220的处理模块501将该内存访问请求转发给第一内存共享设备,所述内存访问请求包括内存地址信息。第二内存共享设备220的处理模块明确编址信息为100至157的内存单元存在于本地的第二内存共享设备220的存储模块502中,则第二内存共享设备220的处理模块501访问编址信息为100至157的内存单元,在完成访问后,生成第一结果消息,所述第一结果消息携带100至157内存单元中存储的数据。
第一内存共享设备210接收到第二内存共享设备220转发的内存访问请求后,由第一内存共享设备210的处理模块501进行相应的处理,查找并确定内存访问请求包括的内存地址信息存在于本地的第一内存共享设备210的存储模块502后,则访问编址信息为58至99的内存单元,在完成访问后,生成第二结果消息,所述第二结果消息携带58至99内存单元中存储的数据。第一内存共享设备210的处理模块501将第二结果消息传输至第二内存共享设备220的处理模块501。
由于第二内存共享设备220的处理模块501将自身生成的携带第二控制设备220所需数据的第一结果消息和接收的第二结果消息通过系统高速总线向第二控制设备120发送。通过第三实施例,当第二控制设备120需要从内存共享资源池中获取数据时,即使第二控制设备120所需的数据并不是只存储在第二控制设备120控制的第二内存共享设备220中,而是分散存储的情况下,第二内存共享设备220除了在本地读取存储在第二内存共享设备220中的部分数据外,也只需要第二内存共享设备220将第二内存共享设备220收到的内存访问请求进行重新处理后,向其他内存共享设备转发只携带剩余数据的存储地址的内存访问请求,从而从其他的内存共享设备中获取第二控制设备120所需的数据,而不需要其他的控制设备参与,从而节省了其他控制设备的损耗。
上述多个实施例详细描述了控制设备与内存共享设备之间的相互通信及内存共享设备之间的相互通信,在实际应用中,不限于上述实施例所描述的两个内存共享设备的通信,通过上述多个实施例,可以简单、方便地实现作为获取方的控制设备共享内存共享设备的数据。
在上述实施例的一种应用方式中,如图6所示,每个控制设备或称为CPU子系统与其对应的内存共享设备构成一个分布式节点,对应于硬件中,每个分布式节点可以是一个机架,每个机架服务器就是一个控制设备,插上一个内存共享设备后,多个机架上通过交换机互联的内存共享设备,就构成了一个内存共享资源池,每个机架服务器都能够访问内存共享资源池中的任意一个内存共享设备中的数据。
在另外一种可能的实施方式中,如图7所示,将每个控制设备和内存共享资源池中的内存共享设备采用通信接口连接,所述通信接口例如是交换机、以太网接口等。如果未接入所述数据存取系统的控制设备,需要接入数据存取系统,只需要在此控制设备上通过插槽、排线连接一个具有匹配的插槽、排线接口的内存共享设备,之后,内存共享设备重新广播询问消息,获取内存共享资源池中全部内存共享设备中的内存单元的编址,即可接入整个数据存取系统,不多赘述,通过这种可以扩展的内存共享资源池,可以达到PB级以上的内存空间。
在本发明实施例中,控制设备在获取内存共享资源池中的内存共享设备中内存单元中数据的过程由内存共享设备完成,进而替代了现有技术中提供方控制设备中的CPU,简化了现有技术中作为提供方控制设备中CPU的工作量;提高了作为提供方控制设备中CPU的利用率,同时,在内存共享资源池中存储了各控制设备所需的数据,各控制设备均可共享其他控制设备的数据,进而解决分布式系统信息共享的问题,提高分布式系统之间信息共享的实时性。
相应的,本发明实施例提供一种数据读取方法,所述数据读取方法的执行主体为前述实施例中的内存共享设备,由图8可见,所述方法包括:
801,内存共享资源池中的第一内存共享设备接收控制该第一内存共享设备的第一控制设备发送的内存访问请求,所述内存访问请求中包括通过统一编址后的地址信息通过统一编址后的地址信息;
其中,所述的地址信息是通过统一编址后的多个内存单元的地址信息,所述多个内存单元用于存储数据,分别位于内存共享资源池中的两个以上内存共享设备中。所述两个以上的内存共享设备中的任意一个内存共享设备,在两个以上控制设备中的一个控制设备的控制下进行数据的读取,所述第一内存共享设备为所述两个以上内存共享设备中的一个。
内存共享资源池中的第一内存共享设备,在接收第一控制设备发送的内存访问请求之前,还可以包括:
第一内存共享设备向内存共享资源池中的其它内存共享设备广播询问消息,以获取所述内存共享资源池中全部内存共享设备中内存单元的编址数据,之后第一内存共享设备可以采用地址信息表的形式保存所述编址数据,方便第一内存共享设备查找地址信息对应的内存单元。
802,第一内存共享设备根据所述地址信息,确定所述内存共享资源池中与地址信息对应的内存空间所在的内存共享设备;
具体而言,第一内存共享设备根据所述地址信息,可以在自身的处理模块中的地址信息表中,通过查找的方式确定所述地址信息对应的内存单元所在的具体位置。
如果所述地址信息对应的内存单元所在的内存共享设备为所述第一内存共享设备,则第一内存共享设备在第一内存共享设备中的内存单元中读取数据;
如果所述地址信息对应的内存单元所在的内存共享设备为内存共享资源池中的其他内存共享设备,例如第二内存共享设备,则第一内存共享设备可以向所述第二内存共享设备转发所述内存访问请求,之后,等待所述第二内存共享设备根据所述内存访问请求中的地址信息,在第二内存共享设备的内存单元中进行数据读取后,反馈给第一内存共享设备的数据读取结果。
在根据所述地址信息,确定所述地址信息对应的内存单元所在的内存共享设备之后,
如果所述地址信息对应的内存单元中,第一部分内存单元在第一内存共享设备,第二部分在第二内存共享设备,则,第一内存共享设备在第一内存共享设备中的内存单元中读取第一部分内存单元中的数据;
将所述内存访问请求中的地址信息中第一部分内存单元的地址删除,向第二内存共享设备转发只包含第二部分内存单元地址的内存访问请求;
之后,接收所述第二内存共享设备返回的数据读取结果。
803,第一内存共享设备将所述数据读取结果反馈给所述第一控制设备。
具体而言,第一内存共享设备在第一内存共享设备自身的内存单元中读取到第一控制设备所需的数据,或者,在接收到内存共享资源池中的第二内存共享设备反馈的第一内存共享设备所需的数据,或者,将本地读取到的数据和从第二内存共享设备中读取到的数据,通过所述通信接口向第一控制设备发送数据读取结果。
通过上述的方法,在数据存取系统中的某个控制设备需要在内存共享资源池中读取数据时,即使所需的数据不在该控制设备所控制的内存共享设备上,也不需要其他控制设备参与,从而降低了对数据存取系统中控制设备的CPU消耗。
相应的,从控制设备的角度,数据读取的过程如图9所示,所述方法包括:
901,第一控制设备向内存共享资源池中的第一内存共享设备发送内存访问请求,所述内存访问请求所述控制设备需要访问的内存单元的地址信息,
具体而言,所述地址信息为对整个内存共享资源池中的全部内存共享设备中的内存单元通过统一编址的地址信息,内存资源池中的任意一个内存共享设备在两个以上控制设备中的一个控制设备的控制下进行数据的读取,所述第一内存共享设备为所述两个以上内存共享设备中的一个;
902,第一控制设备接收所述第一内存共享设备反馈的数据读取结果。
具体而言,如果所述地址信息对应的内存空间所在的内存共享设备为所述第一内存共享设备,则,所述第一内存共享设备反馈的数据读取结果为所述第一内存共享设备在所述第一内存共享设备的内存单元中进行数据读取后生成的。
如果,所述地址信息对应的内存单元所在的内存共享设备为第二内存共享设备,则,所述第一内存共享设备反馈的数据读取结果为所述第一内存共享设备接收的所述第二内存共享设备发送的数据读取结果。
如果所述地址信息对应的内存单元中的第一部分内存单元在第一内存共享设备,第二部分在第二内存共享设备,则,
所述第一内存共享设备反馈的数据读取结果为:第一内存共享设备中的第一部分内存单元中的数据,以及所述第二内存共享设备中第二部分内存单元中的数据。
通过上述实施例提供的数据读取方法,对于内存共享资源池中任意一个内存共享设备中的数据,都能够通过一个控制设备就能够读取,而不需要其他控制设备中的CPU的参与。
相应的,本发明实施例提供一种内存共享设备,如图10所示,所述内存共享设备包括:存储模块1101、处理模块1102以及通信单元1103:
存储模块1101,与处理模块1102连接,用于存储数据;
处理模块1102,通过通信接口与一个控制设备相连,通过所述通信单元1103与所述内存共享设备所在的内存共享资源池中的其他内存共享设备连接,通过所述通信接口接收与该处理模块1102连接的控制设备发送的内存访问请求;通过所述通信单元1103接收所述内存共享资源池中其他内存共享设备转发的内存访问请求,和/或向所述内存共享资源池中的其他内存共享设备转发所述控制设备发送的内存访问请求;所述其他内存共享设备转发的内存访问请求为该其他内存共享设备从对应的控制设备处接收到的,所述内存访问请求中包括所述内存共享资源池中通过统一编址后多个内存共享设备中的内存单元的地址信息,用于获取所述内存共享资源池中的任意一个内存共享设备中的内存单元中的数据。
更具体的,与所述处理模块1102连接的存储模块1101包括多个内存单元,用于存储数据,所述内存单元在内存共享资源池中的多个内存共享设备中的统一编址。
优选地,处理模块1102可以通过现场可编程门阵列(Field-Programmable Gate Array,FPGA)或中央处理器芯片实现。
具体的,例如处理模块1102可以包括询问单元,该询问单元通过通信单元1103向内存共享资源池中的全部内存共享设备广播询问消息,获取内存共享资源池中全部内存共享设备中的内存单元编址信息,之后以地址信息表的形式将所述编址信息保存。
所述处理模块1102从通信接口(例如系统高速总线、以太网接口或交换机)中接收到的内存访问请求,根据所述内存访问请求中的地址信息和处理模块1102保存的地址信息表,确定所述地址信息对应的内存空间所在的内存共享设备。
如果所述地址信息对应的内存空间所在的内存共享设备为与本端的内存共享设备,则所述处理模块1102,在所述存储模块1101中的所述地址信息对应的内存单元中读取数据。
如果所述地址信息对应的内存空间所在的内存共享设备为与所述通信单元1103连接的其它内存共享设备,则所述处理模块1102通过所述通信单元将所述内存访问请求向所述其它内存共享设备转发。
如果所述地址信息对应的内存单元中的第一部分内存单元在本端内存共享设备,第二部分内存单元在其它内存共享设备,则所述处理模块1102在本端内存共享设备中的所述存储模块1101中读取第一部分内存单元中的数据,并将所述内存访问请求中的地址信息中第一部分内存单元的地址删除,通过通信单元1103向第二内存共享设备转发只包含第二部分内存单元地址的内存访问请求。
内存共享设备首先与其他内存共享设备形成虚拟的内存共享资源池,所述虚拟的内存共享资源池的形成过程具体为:各内存共享设备中的处理模块1102为自身的存储模块1101中的内存单元进行编址,明确自身的存储空间,将多个内存共享设备通过同一个通信接口连接在一起,则多个内存共享设备同属于一个交换域,为交换域中的多个内存共享设备中存储模块1101的内存单元进行统一地址编址划分,并将划分后的地址编址信息告知各内存共享设备中的处理模块1102,进而形成虚拟的内存共享资源池。
由内存共享设备中的处理模块1102将数据写入存储模块1101的内存单元中,使得内存单元中存储着各控制系统所需的数据,在各控制设备写入数据的过程中,各控制设备将该数据的存储位置一同告知内存共享设备中的处理模块1102,使得内存共享设备中的处理模块1102根据自身内存单元的地址编址划分,准确地将数据写入内容单元。
当内存共享设备接收到作为获取方的一个第一控制设备需要从内存共享资源池中获取所需的数据的内存访问请求时,所述内存访问请求中所述访问请求包括所述第一控制设备想要获取的数据的地址信息;处理模块1102根据所述地址信息,确定内存共享资源池中与地址信息对应的内存单元所在的内存共享设备。
处理模块1102根据所述地址信息,可以由一个判断单元,在自身的地址信息表中通过查找的方式确定所述地址信息对应的内存单元所在的具体位置。
具体而言,如果所述地址信息对应的内存单元所在的内存共享设备为本端内存共享设备,则内存共享设备的处理模块1102在存储模块1101中的内存单元中读取数据;
如果所述地址信息对应的内存空间所在的内存共享设备为内存共享资源池中的其他内存共享设备,例如第二内存共享设备,则内存共享设备可以通过处理模块1102和通信单元1103向第二内存共享设备转发所述内存访问请求,之后,等待所述第二内存共享设备根据所述内存访问请求中的地址信息,在第二内存共享设备中的内存单元中进行数据读取后,反馈给第一内存共享设备的数据读取结果。
内存共享设备在自身的存储模块中读取到第一控制设备所需的数据,或者在接收到内存共享资源池中的第二内存共享设备反馈的控制设备所需的数据后,通过通信接口向控制设备发送数据读取结果。
如图11所示,在一种较佳的实施方式中,所述内存共享设备还可以包括电源模块1105,用于外部电源供电失效时,为所述内存共享设备提供电源,通过该电源模块1105,所述内存共享设备可以形成非易失性随机访问存储器(Non-Volatile Random Access Memory,NVRAM),该电源模块1105可以是超级电容或电池备用单元BBU(BatteryBackup Unit,BBU)。
在一种较佳的实施方式中,所述的内存共享设备还可以包括:闪存模块1104,用于存储应用程序,所述应用程序包括所述处理模块执行的指令。
在一种较佳的实施方式中,所述的内存共享设备还可以包括管理模块1106,用于调试所述存储模块1101中的应用程序及对所述通信单元1103中的流量进行控制,该管理模块1106可以通过CPU IP核实现。
通过应用本发明实施例提供的内存共享设备,内存共享设备根据接收的内存访问请求,查找并确定对应的内存单元的位置,当本地的存储模块中存在对应的内存单元时,则直接访问内存单元,从内存单元中获取数据,并将获取的数据携带在结果消息中,反馈至控制设备,在本发明实施例中,具体的访问、获取内存单元中数据的过程由第一内存共享设备完成,进而替代了现有技术中提供方控制设备中CPU,简化了现有技术中作为提供方控制设备中CPU的工作量;提高了作为提供方控制设备中CPU利用率。
专业人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (14)
1.一种数据存取系统,其特征在于,所述系统包括:由两个以上内存共享设备组成的内存共享资源池,以及两个以上与所述内存资源池中的每个内存共享设备对应的控制设备;
所述任一内存共享设备具有统一编址的用于存储数据的内存单元,所述任一内存共享设备中的第一内存共享设备在接收到与第一内存共享设备对应的第一控制设备发送的带有地址信息的内存访问请求时:
如果所述地址信息对应的内存单元为所述第一内存共享设备中的内存单元,则在第一内存共享设备中的内存单元中读取数据,并将所述数据反馈给所述第一控制设备,如果所述地址信息对应的内存单元为所述内存共享资源池中的第二内存共享设备中的内存单元,则第一内存共享设备将所述内存访问请求向所述第二内存共享设备转发,并接收第二内存共享设备反馈的所述第二内存共享设备的内存单元中的数据;
所述任一内存共享设备中的第一内存共享设备在接收到第二内存共享设备转发的带有地址信息的内存访问请求时,读取数据并将读取到的数据反馈给所述第二内存共享设备。
2.如权利要求1所述的数据存取系统,其特征在于,所述内存共享设备包括存储模块、处理模块以及通信单元:
存储模块,与所述处理模块连接,所述存储模块包括至少一个在所述内存共享资源池中统一编址的内存单元,所述内存单元用于存储数据;
处理模块,通过通信接口与一个控制设备相连,通过所述通信单元与所述内存共享资源池中的其他内存共享设备连接,通过所述通信接口接收与该处理模块连接的所述控制设备发送的内存访问请求;通过所述通信单元接收其他内存共享设备转发的内存访问请求,和/或向所述内存共享资源池中的其他内存共享设备转发所述控制设备发送的内存访问请求;所述其他内存共享设备转发的内存访问请求为该其他内存共享设备从对应的控制设备处接收到的,所述内存访问请求中包括所述内存共享资源池中通过统一编址后多个内存共享设备中的内存单元的地址信息,所述地址信息用于获取所述内存共享资源池中的任意一个内存共享设备中的内存单元中的数据。
3.如权利要求2所述的数据存取系统,其特征在于,所述内存共享设备通过所述通信单元向所述内存共享资源池中的其它内存共享设备广播询问消息,以获取所述内存共享资源池中统一编址后的内存单元的编址数据,并将获取到的所述编址数据保存在所述处理模块中。
4.如权利要求1所述的数据存取系统,其特征在于,所述两个控制设备中的任一控制设备包括通信模块,所述任一控制设备的所述通信模块通过连接一可插拔的内存共享模块接入所述数据存取系统。
5.如权利要求1-5任一项所述的数据存取系统,其特征在于,所述通信接口为系统高速总线、交换机或以太网接口。
6.一种内存共享设备,其特征在于,包括:包括存储模块、处理模块以及通信单元,其中,
存储模块,与处理模块连接,用于存储数据;
处理模块,通过通信接口与一个控制设备相连,通过所述通信单元与所述内存共享设备所在的内存共享资源池中的其他内存共享设备连接,通过所述通信接口接收与该处理模块连接的控制设备发送的内存访问请求;通过所述通信单元接收所述内存共享资源池中其他内存共享设备转发的内存访问请求,和/或向所述内存共享资源池中的其他内存共享设备转发所述控制设备发送的内存访问请求;所述其他内存共享设备转发的内存访问请求为该其他内存共享设备从对应的控制设备处接收到的,所述内存访问请求中包括所述内存共享资源池中通过统一编址后多个内存共享设备中的内存单元的地址信息,用于获取所述内存共享资源池中的任意一个内存共享设备中的内存单元中的数据。
7.如权利要求6所述的内存共享设备,其特征在于,所述处理模块通过所述通信单元接收到所述内存共享资源池中的所述其他内存共享设备转发的内存访问请求后,在所述内存访问请求中携带的地址信息对应的内存单元中获取数据,并将结果通过所述通信单元返回给所述其他内存共享设备,由所述其他内存共享设备通过所述通信接口向与所述其他内存共享设备发送内存访问请求的控制设备返回所述结果。
8.如权利要求6所述的内存共享设备,其特征在于,所述处理模块进一步包括判断单元,如果所述判断单元判定所述地址信息对应的内存单元中的第一部分内存单元在本端内存共享设备,第二部分在第二内存共享设备,则所述处理模块在本端内存共享设备中的所述存储模块中读取第一部分内存单元中的数据,并将所述内存访问请求中的地址信息中第一部分内存单元的地址删除,通过所述通信单元向所述其他内存共享设备转发只包含第二部分内存单元地址的内存访问请求。
9.如权利要求6-8任一项所述的内存共享设备,其特征在于,所述处理模块还包括询问单元,用以通过所述通信单元向所述内存共享资源池中的其它内存共享设备广播询问消息,以获取所述内存共享资源池中统一编址的内存单元的编址数据,并将获取到的所述编址数据保存在所述处理模块中。
10.如权利要求6-9任一项所述的内存共享设备,其特征在于,所述内存共享设备还包括电源模块,用于当不存在外部电源供电时,为所述存储提供电能,藉由该电源模块所述内存共享设备形成可插拔的非易失性随机访问存储器NVRAM。
11.如权利要求6-10所述的内存共享设备,其特征在于,还包括管理模块,用于调试所述存储模块中的应用程序及对所述通信单元中的流量进行控制。
12.如权利要求6-11任一项所述的内存共享设备,其特征在于,所述处理模块为现场可编程门阵列FPGA。
13.一种数据读取方法,其特征在于,包括:
内存共享资源池中的第一内存共享设备接收控制该第一内存共享设备的第一控制设备发送的内存访问请求,所述内存访问请求中包括通过统一编址后的地址信息;其中,所述的地址信息是通过统一编址后的内存共享资源池中的两个以上内存共享设备中的用于存储数据的的一个或多个内存单元的地址信息,所述两个以上的内存共享设备中的任意一个内存共享设备在两个以上控制设备中的一个控制设备的控制下进行数据的读取,所述第一内存共享设备为所述两个以上内存共享设备中的一个;
第一内存共享设备根据所述地址信息,确定所述地址信息对应的内存单元所在的内存共享设备;
如果所述地址信息对应的内存单元所在的内存共享设备为所述第一内存共享设备,则所述第一内存共享设备从第一内存共享设备自身中所述地址信息对应的内存单元中获取数据,
如果所述地址信息对应的内存单元所在的内存共享设备为第二内存共享设备,则所述第一内存共享设备向所述第二内存共享设备转发所述内存访问请求,并接收所述第二内存共享设备返回的数据;
所述第一内存共享设备将所述数据读取反馈给所述第一控制设备。
14.如权利要求13所述的方法,其特征在于,在内存共享资源池中的第一内存共享设备接收控制该第一内存共享设备的第一控制设备发送的内存访问请求之前,还包括:
内存共享资源池中的第一内存共享设备向所述内存共享资源池中的其它内存共享设备广播询问消息,以获取所述内存共享资源池中全部内存共享设备中内存单元的编址数据。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310046412.4A CN103152394B (zh) | 2013-02-06 | 2013-02-06 | 数据存取系统、内存共享设备及数据读取方法 |
EP13874270.5A EP2940966B1 (en) | 2013-02-06 | 2013-07-23 | Data access system, memory sharing device, and data access method |
JP2015556369A JP6373876B2 (ja) | 2013-02-06 | 2013-07-23 | データアクセスシステム、メモリ共有装置及びデータ読み取り方法 |
PCT/CN2013/079841 WO2014121588A1 (zh) | 2013-02-06 | 2013-07-23 | 数据存取系统、内存共享设备及数据读取方法 |
US14/804,649 US9594682B2 (en) | 2013-02-06 | 2015-07-21 | Data access system, memory sharing device, and data reading method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310046412.4A CN103152394B (zh) | 2013-02-06 | 2013-02-06 | 数据存取系统、内存共享设备及数据读取方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103152394A true CN103152394A (zh) | 2013-06-12 |
CN103152394B CN103152394B (zh) | 2016-09-28 |
Family
ID=48550253
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310046412.4A Active CN103152394B (zh) | 2013-02-06 | 2013-02-06 | 数据存取系统、内存共享设备及数据读取方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US9594682B2 (zh) |
EP (1) | EP2940966B1 (zh) |
JP (1) | JP6373876B2 (zh) |
CN (1) | CN103152394B (zh) |
WO (1) | WO2014121588A1 (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103984601A (zh) * | 2014-05-12 | 2014-08-13 | 浪潮电子信息产业股份有限公司 | 基于共享资源池的计算机系统 |
WO2014121588A1 (zh) * | 2013-02-06 | 2014-08-14 | 华为技术有限公司 | 数据存取系统、内存共享设备及数据读取方法 |
CN111049566A (zh) * | 2019-11-20 | 2020-04-21 | 中国航空工业集团公司西安航空计算技术研究所 | 信息传递方法和机载lrm模块 |
CN112860506A (zh) * | 2019-11-28 | 2021-05-28 | 阿里巴巴集团控股有限公司 | 监控数据的处理方法、装置、系统和存储介质 |
CN112860506B (zh) * | 2019-11-28 | 2024-05-17 | 阿里巴巴集团控股有限公司 | 监控数据的处理方法、装置、系统和存储介质 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107643991B (zh) * | 2017-09-22 | 2023-09-19 | 北京算能科技有限公司 | 数据处理芯片和系统、数据存储转发处理方法 |
EP4300308A1 (en) * | 2021-03-12 | 2024-01-03 | Huawei Technologies Co., Ltd. | Method and device for achieving memory sharing control, computer device, and system |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100228894A1 (en) * | 2006-01-18 | 2010-09-09 | Freescale Semiconductor, Inc. | Device having data sharing capabilities and a method for sharing data |
CN101840309A (zh) * | 2009-10-28 | 2010-09-22 | 创新科存储技术有限公司 | 多路径环境下双控磁盘阵列的访问控制方法及系统 |
CN101876925A (zh) * | 2009-11-27 | 2010-11-03 | 成都市华为赛门铁克科技有限公司 | 内存镜像处理方法、装置和系统 |
CN102122257A (zh) * | 2011-03-11 | 2011-07-13 | 浪潮(北京)电子信息产业有限公司 | 一种磁盘阵列缓存数据的保存方法以及磁盘阵列 |
CN102609466A (zh) * | 2012-01-13 | 2012-07-25 | 广州从兴电子开发有限公司 | 一种共享内存的控制方法及系统 |
CN102650932A (zh) * | 2012-04-05 | 2012-08-29 | 华为技术有限公司 | 数据的访问方法、设备和系统 |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4410944A (en) * | 1981-03-24 | 1983-10-18 | Burroughs Corporation | Apparatus and method for maintaining cache memory integrity in a shared memory environment |
JP2846888B2 (ja) * | 1989-03-17 | 1999-01-13 | 株式会社日立製作所 | 分散共有メモリを持つマルチプロセッサシステム |
JP2906819B2 (ja) * | 1992-04-13 | 1999-06-21 | 三菱電機株式会社 | 並列計算機及びデータ交換制御装置 |
US5633865A (en) * | 1995-03-31 | 1997-05-27 | Netvantage | Apparatus for selectively transferring data packets between local area networks |
US6055605A (en) * | 1997-10-24 | 2000-04-25 | Compaq Computer Corporation | Technique for reducing latency of inter-reference ordering using commit signals in a multiprocessor system having shared caches |
US6745293B2 (en) * | 2000-08-21 | 2004-06-01 | Texas Instruments Incorporated | Level 2 smartcache architecture supporting simultaneous multiprocessor accesses |
US7133972B2 (en) * | 2002-06-07 | 2006-11-07 | Micron Technology, Inc. | Memory hub with internal cache and/or memory access prediction |
US6904490B2 (en) | 2002-10-10 | 2005-06-07 | International Business Machines Corporation | Method and system of managing virtualized physical memory in a multi-processor system |
US6920521B2 (en) * | 2002-10-10 | 2005-07-19 | International Business Machines Corporation | Method and system of managing virtualized physical memory in a data processing system |
US7543133B1 (en) * | 2003-08-18 | 2009-06-02 | Cray Inc. | Latency tolerant distributed shared memory multiprocessor computer |
JP5031195B2 (ja) * | 2005-03-17 | 2012-09-19 | 株式会社日立製作所 | ストレージ管理ソフトウェア及びグルーピング方法 |
CN100495312C (zh) * | 2007-08-17 | 2009-06-03 | 杭州华三通信技术有限公司 | 存储控制系统及其处理节点 |
CN100489815C (zh) * | 2007-10-25 | 2009-05-20 | 中国科学院计算技术研究所 | 一种内存共享的系统和装置及方法 |
US8275963B2 (en) * | 2008-02-01 | 2012-09-25 | International Business Machines Corporation | Asynchronous memory move across physical nodes with dual-sided communication |
US8375171B2 (en) * | 2010-04-08 | 2013-02-12 | Unisys Corporation | System and method for providing L2 cache conflict avoidance |
WO2011161787A1 (ja) * | 2010-06-23 | 2011-12-29 | 富士通株式会社 | 通信装置、通信方法、および通信プログラム |
KR101671494B1 (ko) * | 2010-10-08 | 2016-11-02 | 삼성전자주식회사 | 공유 가상 메모리를 이용한 멀티 프로세서 및 주소 변환 테이블 생성 방법 |
WO2013018149A1 (en) * | 2011-08-04 | 2013-02-07 | Hitachi, Ltd. | Data storage system using method for dynamically allocating physical data storage space |
US8656137B2 (en) * | 2011-09-01 | 2014-02-18 | Qualcomm Incorporated | Computer system with processor local coherency for virtualized input/output |
EP2842031A4 (en) * | 2012-04-25 | 2015-12-30 | Intel Corp | METHOD AND SYSTEM FOR SAVING THE RELEASE CONSISTENCY IN A COMMON MEMORY PROGRAMMING |
CN103152394B (zh) * | 2013-02-06 | 2016-09-28 | 华为技术有限公司 | 数据存取系统、内存共享设备及数据读取方法 |
-
2013
- 2013-02-06 CN CN201310046412.4A patent/CN103152394B/zh active Active
- 2013-07-23 EP EP13874270.5A patent/EP2940966B1/en active Active
- 2013-07-23 JP JP2015556369A patent/JP6373876B2/ja active Active
- 2013-07-23 WO PCT/CN2013/079841 patent/WO2014121588A1/zh active Application Filing
-
2015
- 2015-07-21 US US14/804,649 patent/US9594682B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100228894A1 (en) * | 2006-01-18 | 2010-09-09 | Freescale Semiconductor, Inc. | Device having data sharing capabilities and a method for sharing data |
CN101840309A (zh) * | 2009-10-28 | 2010-09-22 | 创新科存储技术有限公司 | 多路径环境下双控磁盘阵列的访问控制方法及系统 |
CN101876925A (zh) * | 2009-11-27 | 2010-11-03 | 成都市华为赛门铁克科技有限公司 | 内存镜像处理方法、装置和系统 |
CN102122257A (zh) * | 2011-03-11 | 2011-07-13 | 浪潮(北京)电子信息产业有限公司 | 一种磁盘阵列缓存数据的保存方法以及磁盘阵列 |
CN102609466A (zh) * | 2012-01-13 | 2012-07-25 | 广州从兴电子开发有限公司 | 一种共享内存的控制方法及系统 |
CN102650932A (zh) * | 2012-04-05 | 2012-08-29 | 华为技术有限公司 | 数据的访问方法、设备和系统 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014121588A1 (zh) * | 2013-02-06 | 2014-08-14 | 华为技术有限公司 | 数据存取系统、内存共享设备及数据读取方法 |
US9594682B2 (en) | 2013-02-06 | 2017-03-14 | Huawei Technologies Co., Ltd. | Data access system, memory sharing device, and data reading method |
CN103984601A (zh) * | 2014-05-12 | 2014-08-13 | 浪潮电子信息产业股份有限公司 | 基于共享资源池的计算机系统 |
CN111049566A (zh) * | 2019-11-20 | 2020-04-21 | 中国航空工业集团公司西安航空计算技术研究所 | 信息传递方法和机载lrm模块 |
CN111049566B (zh) * | 2019-11-20 | 2022-03-08 | 中国航空工业集团公司西安航空计算技术研究所 | 信息传递方法和机载lrm模块 |
CN112860506A (zh) * | 2019-11-28 | 2021-05-28 | 阿里巴巴集团控股有限公司 | 监控数据的处理方法、装置、系统和存储介质 |
CN112860506B (zh) * | 2019-11-28 | 2024-05-17 | 阿里巴巴集团控股有限公司 | 监控数据的处理方法、装置、系统和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
JP2016513316A (ja) | 2016-05-12 |
EP2940966A1 (en) | 2015-11-04 |
US20150324289A1 (en) | 2015-11-12 |
EP2940966A4 (en) | 2016-01-13 |
JP6373876B2 (ja) | 2018-08-15 |
WO2014121588A1 (zh) | 2014-08-14 |
CN103152394B (zh) | 2016-09-28 |
US9594682B2 (en) | 2017-03-14 |
EP2940966B1 (en) | 2017-06-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10481804B2 (en) | Cluster system with calculation and storage converged | |
CN103593147B (zh) | 一种数据读取的方法及装置 | |
CN103152394A (zh) | 数据存取系统、内存共享设备及数据读取方法 | |
CN113625589B (zh) | 一种设备控制方法、装置、电子设备和存储介质 | |
CN107580011B (zh) | 一种数据共享方法及桌面云服务端 | |
US20180196603A1 (en) | Memory Management Method, Apparatus, and System | |
CN104461698A (zh) | 虚拟磁盘动态挂载的方法、管理装置及分布式存储系统 | |
TW201250455A (en) | System and method for controlling power devices in data center | |
CN106598692A (zh) | 在逻辑卷中创建镜像文件、虚拟机启动方法及服务器 | |
CN109739668A (zh) | 一种虚拟机间数据传输的方法、系统及设备 | |
CN105335168A (zh) | 实现操作系统远程配置的系统、方法及装置 | |
CN103986602A (zh) | 一种启动操作系统的方法、相关设备和系统 | |
CN104601666A (zh) | 日志服务方法及云平台 | |
US9208100B2 (en) | Directory replacement method and device | |
CN106662895A (zh) | 计算机设备和计算机设备数据读写的方法 | |
CN103500108A (zh) | 系统内存访问方法、节点控制器和多处理器系统 | |
EP3076306B1 (en) | Method and apparatus for achieving device sharing | |
CN105190576A (zh) | 共享的存储器系统 | |
CN111625356A (zh) | 一种PCIe设备的资源池化方法、装置、设备及介质 | |
CN111800511B (zh) | 同步登录态的处理方法、系统、设备及可读存储介质 | |
CN103164409A (zh) | 一种网络广告展现样式后验方法及系统 | |
CN104281486A (zh) | 一种虚拟机处理方法和装置 | |
CN109150810B (zh) | 机顶盒融合网关及其启动方法、装置和存储介质 | |
CN103577382A (zh) | 一种配置节点控制器的方法和装置 | |
CN113703676B (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 |