存储数据的方法、存储器和计算机系统与流程

文档序号:11949346阅读:736来源:国知局
存储数据的方法、存储器和计算机系统与流程

本发明涉及计算机领域,并且更具体地,涉及存储数据的方法、存储器和计算机系统。



背景技术:

目前,在计算机系统中,存储器中的每个存储介质(或者说,存储单元)对应一个物理地址和逻辑地址,并且,存储器保存有多个物理地址和多个逻辑地址之间的一一映射关系(以下,为了便于理解和区分,记做,映射关系#1)。

处理器可以根据逻辑地址进行数据读写操作,例如,某一应用需要存储数据时,处理器可以根据例如,所要存储的数据的大小等,确定用于存储该数据的存储介质的逻辑地址,其后,将携带有该数据和所确定的逻辑地址的数据写请求发送至存储器,存储器根据该映射关系#1,确定所接收到的逻辑地址所对应的物理地址,并将所接收到的数据存储在该物理地址所指示的存储介质。

再例如,某一应用需要读取存储在存储器中的数据时,处理器获取在存储该数据时记录的该数据的逻辑地址,并将携带有该逻辑地址的数据读请求发送至存储器,存储器根据该映射关系#1,确定所接收到的逻辑地址所对应的物理地址,并将该物理地址所指示的存储介质中保存的数据返回至处理器。

并且,在处理器中还需要存储多个索引(一个索引用于唯一地标识一个数据)与多个逻辑地址的映射关系(以下,为了便于理解和区分,记做,映射关系#2)。即,处理器需要根据各应用所需要的处理的数据的索引,基于该映射关系#2,确定该数据所对应的逻辑地址。

因此,在现有技术中,在进行数据存储处理时,需要进行两次地址转换,即,在处理器进行基于映射关系#2的从索引到逻辑地址的转换,在存储器进行从逻辑地址到物理地址的转换。该两次地址转换需要消耗大量的资源(例如,内存资源),并且造成数据存储的处理时延较长。

希望提供一种技术,能够降低资源的开销,减小数据存储的处理时延。



技术实现要素:

本发明实施例提供一种存储数据的方法、存储器和计算机系统,能够降低资源开销,减小数据存储的处理时延。

第一方面,提供了一种存储数据的方法,该方法包括:存储器接收服务器发送的数据存储请求,该数据存储请求用于指示在该存储器中存储数据,该数据存储请求包括数据和该数据的索引,该数据的索引用于唯一标识该数据;该存储器根据该数据存储请求,存储该数据,并确定用于存储该数据的存储单元的地址;该存储器生成映射关系信息,该映射关系信息用于指示该地址与该数据的索引之间的映射关系。

根据本发明实施例的存储数据的方法,通过使服务器(例如,处理器)在存储数据时,将所要存储的数据和该数据的索引发送给存储器,该服务器能够在存储介质中存储该数据,并记录该存储介质的地址(例如,物理地址)与该数据的索引的映射关系,从而,能够支持在读取或删除该数据时,服务器可以在处理指令中携带该数据的索引,存储器能够基于该映射关系,确定该存储该数据的存储介质的物理地址,进而在该存储介质中进行相关操作,从而,无需在服务器中保存数据的索引与逻辑地址之间的映射关系,并且,无需在存储器中保存物理地址与逻辑地址的映射关系,进而,无需在数据存储过程中,进行基于该映射关系的地址转换,能够降低资源开销,并且,减小数据存储的处理时延。

在第一方面的一种可能的实施方式中,该方法还包括:该存储器接收该服务器发送的数据处理请求,该数据处理请求用于指示对该数据进行处理,该数据处理请求包括该数据的索引;

该存储器根据该数据的索引和该映射关系信息,确定该地址;

该存储器根据该数据处理请求,在该地址所对应的存储单元中对该数据进行处理。

通过基于在存储数据时所保存的第一映射关系进行后续数据处理,能够在后续处理中进一步降低资源开销,减小数据存储的处理时延。

在第一方面的另一种可能的实施方式中,该存储器根据该数据处理请求,在该地址所对应的存储单元中对该数据进行处理,包括:当该数据处理请求为数据读取请求时,该存储器从该地址所对应的存储单元中获取该数据,并向该服务器发送该数据;或当该数据处理请求为数据删除请求时,该存储器从该地址所对应的存储单元中删除该数据。

第二方面,提供了一种存储数据的方法,该方法包括:存储器接收服务器发送的数据处理请求,该数据处理请求用于指示对数据进行处理,该数据处理请求包括该数据的索引,该数据的索引用于唯一标识该数据;该存储器根据该数据的索引和映射关系信息,确定用于存储该数据的存储单元的地址,该映射关系信息用于指示该数据的索引与该地址之间的映射关系;该存储器根据该数据处理请求,在该地址所对应的存储单元中对该数据进行处理。

根据本发明实施例的存储数据的方法,通过使存储器获取存储介质的物理地址与数据的索引的映射关系,从而,在接收到处理器发送的携带有索引的数据处理指令时,存储器能够基于该映射关系,确定该存储该数据的存储介质的物理地址,进而在该存储介质中进行相关操作,从而,无需在服务器(例如,处理器)中保存数据的索引与逻辑地址之间的映射关系,并且,无需在存储器中保存物理地址与逻辑地址的映射关系,进而,无需在数据存储过程中,进行基于该映射关系的地址转换,能够降低资源开销,并且,减小数据存储的处理时延。

在第二方面的一种可能的实施方式中,该方法还包括:该存储器根据该数据处理请求,在该地址所对应的存储单元中对该数据进行处理,包括:当该数据处理请求为数据读取请求时,该存储器从该地址所对应的存储单元中获取该数据,并向该服务器发送该数据;或当该数据处理请求为数据删除请求时,该存储器从该地址所对应的存储单元中删除该数据。

第三方面,提供了一种存储数据的装置,包括用于执行上述第一方面以及第一方面的各实现方式种的任一种存储数据的方法的各步骤的单元。

第四方面,提供了一种设存储数据的装置,包括用于执行上述第二方面以及第二方面的各实现方式种的任一种存储数据的方法的各步骤的单元。

第五方面,提供了一种存储器,能够调用并运行计算机程序,使得存储器执行上述第一方面及其各种实现方式中的任一种存储数据的方法。

第六方面,提供了一种存储器,能够调用并运行计算机程序,使得存储器执行上述第二方面及其各种实现方式中的任一种存储数据的方法。

第七方面,提供了一种计算机系统,该计算机系统包括:服务器,用于确定数据的索引,向存储器发送数据存储请求,该数据存储请求用于指示在该存储器中存储数据,该数据存储请求包括该数据和该数据的索引,该数据的索引用于唯一标识该数据;存储器,用于接收该服务器发送的数据存储请求,根据该数据存储请求,存储该数据,并确定用于存储该数据的存储单元的地址,生成映射关系信息,该映射关系信息用于指示该地址与该数据的索引之间的映射关系。

第八方面,提供了一种计算机系统,该计算机系统包括:服务器,用于确定数据的索引,向该存储器发送数据处理请求,该数据处理请求用于指示对该数据进行处理,该数据处理请求包括该数据的索引,该数据的索引用于唯一标识该数据;存储器,用于接收该服务器发送的数据处理请求,根据该数据的索引和映射关系信息,确定用于存储该数据的存储单元的地址,该映射关系信息用于指示该数据的索引与该地址之间的映射关系,根据该数据处理请求,在该地址所对应的存储单元中对该数据进行处理。

第九方面,提供了一种计算机程序产品,所述计算机程序产品包括:计算机程序代码,当所述计算机程序代码被存储器运行时,使得所述存储器执行上述第一方面及其各种实现方式中的任一种存储数据的方法。

第十方面,提供了一种计算机程序产品,所述计算机程序产品包括:计算机程序代码,当所述计算机程序代码被存储器运行时,使得所述存储器执行上述第二方面及其各种实现方式中的任一种存储数据的方法。

第十一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有程序,所述程序使得存储器执行上述第一方面及其各种实现方式中的任一种存储数据的方法。

第十二方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有程序,所述程序使得存储器执行上述第二方面及其各种实现方式中的任一种存储数据的方法。

在上述各方面的一种可能的实施方式中,该索引为键key,该数据为值value。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍,显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是适用本发明实施例的存储数据的方法和装置的计算机系统的一例的示意图。

图2是本发明一实施例的存储数据的方法的示意性交互图。

图3是本发明另一实施例的存储数据的方法的示意性交互图。

图4是本发明一实施例的存储器的示意结构图。

图5是本发明另一实施例的存储器的示意结构图。

图6是本发明一实施例的计算机系统的示意结构图。

图7是本发明另一实施例的计算机系统的示意结构图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明实施例提供的存储数据的方法可以应用于计算机上,本发明实施例提供的存储数据的装置和设备可以配置于计算机中,该计算机包括硬件层、运行在硬件层之上的操作系统层,以及运行在操作系统层上的应用层。

该操作系统可以是任意一种或多种通过进程(Process)实现业务处理的计算机操作系统,例如,Linux操作系统、Unix操作系统、Android操作系统、iOS操作系统或windows操作系统等。

该应用层包含浏览器、通讯录、文字处理软件、即时通信软件等应用。

并且,在本发明实施例中,该计算机可以是智能手机等手持设备,也可以是个人计算机等终端设备,本发明并未特别限定,只要能够通过运行记录有本发明实施例的压缩数据的方法的代码的程序,以根据本发明实施例的压缩数据的方法对数据进行处理即可。本发明实施例的压缩数据的方法的执行主体可以是计算机设备,或者,是计算机设备中能够调用程序并执行程序的功能模块。

此外,本发明的各个方面或特征可以实现成方法、装置或使用标准编程和/或工程技术的制品。本申请中使用的术语“制品”涵盖可从任何计算机可读器件、载体或介质访问的计算机程序。例如,计算机可读介质可以包括,但不限于:磁存储器件(例如,硬盘、软盘或磁带等),光盘(例如,CD(Compact Disc,压缩盘)、DVD(Digital Versatile Disc,数字通用盘)等),智能卡和闪存器件(例如,EPROM(Erasable Programmable Read-Only Memory,可擦写可编程只读存储器)、卡、棒或钥匙驱动器等)。另外,本文描述的各种存储介质可代表用于存储信息的一个或多个设备和/或其它机器可读介质。术语“机器可读介质”可包括但不限于,无线信道和能够存储、包含和/或承载指令和/或数据的各种其它介质。

下面,结合图1对本发明实施例的计算机系统(具体地说,是计算机系统的硬件层)的结构进行实例性说明。

图1是适用本发明实施例的存储数据的方法所应用的计算机系统100的示意图。如图1所示,该系统100包括:

至少一个服务器110;

至少一个存储器120;

其中,服务器110与存储器120通信连接。

在本发明实施例中,服务器110中设置有通信接口,并且,存储器120中设置通信接口,从而,服务器110与存储器120可以通过该通信接口进行通信。

在本发明实施例中,服务器110与存储器120可以配置在同一设备中,此情况下,作为示例而非限定,该计算机系统100还可以包括总线130,该服务器110可以经由通信接口与该总线130连接,该存储器120可以经由通信接口与该总线130连接,从而,服务器110与存储器120可以通过该总线130实现通信连接。该总线130除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。此情况下,服务器110的通信接口可以为计算机设备内部器件之间的通信接口,类似地,存储器120的通信接口可以为计算机设备内部器件之间的通信接口。

在本发明实施例中,服务器110与存储器120可以配置在不同设备中,此情况下,服务器110与存储器120可以通过有线方式或无线方式通信连接,例如,在服务器110与存储器120之间(具体地说,是服务器110的通信接口与存储器120的通信接口之间)可以设置通信线缆(例如,光纤或铜线等),以实现服务器110与存储器120之间的有线方式的通信连接。此情况下,服务器110的通信接口可以为计算机设备的用于与外部设备通信的通信接口,类似地,存储器120的通信接口可以为计算机设备的用于与外部设备通信的通信接口。

作为示例而非限定,该服务器110可以是计算机系统中的处理器,例如,中央处理单元(Central Processing Unit,简称为“CPU”),该服务器110还可以是其他通用服务器、数字信号服务器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用服务器可以是微服务器或者该服务器也可以是任何常规的服务器等。其中,现场可编程门阵列(FPGA,Field Programmable Gate Array),是在例如,可编程阵列逻辑(PAL,Programmable Array Logic)、通用阵列逻辑(GAL,Generic Array Logic)、复杂可编程逻辑器件(CPLD,Complex Programmable Logic Device)等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC,Application Specific Integrated Circuit)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。系统设计师可以根据需要通过可编辑的连接把FPGA内部的逻辑块连接起来,就好像一个电路试验板被放在了一个芯片里。一个出厂后的成品FPGA的逻辑块和连接可以按照设计者而改变,所以FPGA可以完成所需要的逻辑功能。FPGA采用了逻辑单元阵列(LCA,Logic Cell Array),内部包括可配置逻辑模块(CLB,Configurable Logic Block)、输入输出模块(IOB,Input Output Block)和内部连线(Interconnect)三个部分。FPGA作为可编程器件,通过不同的编程方式,与传统逻辑电路和门阵列(如PAL,GAL及CPLD器件)相比,FPGA可具有不同的结构。FPGA利用小型查找表(16×1RAM)来实现组合逻辑,每个查找表连接到一个D触发器的输入端,触发器再来驱动其他逻辑电路或驱动I/O,由此构成了既可实现组合逻辑功能又可实现时序逻辑功能的基本逻辑单元模块,这些模块间利用金属连线互相连接或连接到I/O模块。FPGA的逻辑是通过向内部静态存储单元加载编程数据来实现的,存储在存储器单元中的值决定了逻辑单元的逻辑功能以及各模块之间或模块与I/O间的联接方式,并最终决定了FPGA所能实现的功能,FPGA允许无限次的编程。作为示例而非限定,在本发明实施例中,可以通过例如,开放运算语言(OpenCL,Open Computing Language)对该FPGA进行编程,以使该FPGA实现本发明实施例的服务器110的功能。并且,相应地,可以通过OpenCL提供的接口作为该服务器110与存储器120或总线130之间通信的接口。OpenCL是一种面向异构系统的用于实现并行计算的编程语言。OpenCL的语法非常简单,它只是在C语言和C++语言的基础上,扩展定义了一些数据类型,数据结构以及函数而已。OpenCL不仅仅是一种编程语言,更是一个完整的并行编程框架。在OpenCL中,任务被称为内核程序(kernel),内核程序是基于若干内核函数来创建的。内核程序针对一个或者多个兼容的OpenCL设备,它会通过主机程序发送到一个或者多个相应的OpenCL设备上运行,运行完成后将结果返回主机程序。主机程序通过名为上下文的容器来管理所有连接的OpenCL设备。其中每个OpenCL设备对应一个命令队列。主机程序创建内核程序,并将内核程序添加到命令队列中。当内核程序进入命令队列后,相关的OpenCL设备就会执行该内核程序。

在本发明实施例中,服务器110可以是一个也可以是多个,并且,多个服务器110可以配置在同一设备(例如,服务器)中,或者,多个服务器110也可以独立配置,本发明并未特别限定。

需要说明的是,在本发明实施例中,当服务器110为多个,且配置在同一设备中时,各服务器110可以通过总线130(例如,PCIE总线)连接,即,可以通过总线130实现各服务器110之间的信令或数据传输。另外,当各服务器110配置在不同设备中时,可以在各设备中配置与处理110连接的信息或信号收发器,并通过传输线缆连接各设备中的收发器,以实现各服务器110之间的信令或数据传输。

在本发明实施例中,存储器120包括至少一个控制器121和至少一个存储单元(或者说,存储介质)122。

存储单元122,也可以称为存储空间,是用于存储某种不连续物理量的媒体。作为示例而非限定,该存储单元122可以为存储芯片,并且,该存储单元122的材料可以是半导体、磁芯、磁鼓、磁带、激光盘本领域成熟的材料等。该存储单元的类型可以是随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质类型。

在本发明实施例中,存储单元122可以是一个也可以是多个,并且,多个存储单元122可以配置在同一设备(例如,服务器)中,或者,多个存储单元122可以独立配置,本发明并未特别限定。

控制器121,也可以称为存储控制器(memory controller),用于为存储单元122分配物理地址,并根据物理地址访问存储单元122,并在存储单元122进行数据存储操作。

控制器121与上述服务器110通信连接,例如,控制器121可以与总线130连接,从而,控制器121可以经由该总线130与服务器110通信。

作为示例而非限定,该控制器121可以是中央处理单元或其他通用处理器、数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。

在本发明实施例中,控制器121可以是一个也可以是多个,并且,多个控制器121可以配置在同一设备中,或者,多个控制器121可以独立配置,本发明并未特别限定。

在本发明实施例中,存储器120可以为一个也可以为多个,本发明并未特别限定,并且,当存储器120为多个时,各存储器120可以联合配置,即,多个存储器120可以共用一个或多个控制器121或存储单元122。

下面,结合图2对本发明一实施例的存储数据的方法200中处理器和控制器的动作和处理过程进行详细说明。

图2示出了本发明一实施例的存储数据的方法200的示意性交互图。

以下,为了便于理解和说明,不是一般性,以服务器与存储器配置在同一设备中的情况为例,对该方法200的过程进行详细说明,此情况下,该服务器可以是计算机系统中的处理器。

并且,以计算机系统中的一个处理器(即,服务器的一例,记做:处理器A)与一个存储器中的一个控制器(记做:控制器A)之间的交互过程为例,对方法200进行详细说明。

具体地说,控制器A可以访问(或者说,控制)多个存储介质(或者说,多个存储单元),以下,为了便于理解和区分,将该控制器A控制的存储介质记做:存储介质A。

作为示例而非限定,存储介质A可以包括多个存储数据的最小存储单元(即,存储单元的一例),以下,为了便于理解和说明,将该最小存储单元记做:存储单元。作为示例而非限定,该最小存储单元可以是K个比特或字节,K≥1。

如图2所示,在S210,控制器A可以获取存储介质A的相关信息。并且,作为存储介质A的相关信息,可以列举,例如,该存储介质A包括的存储芯片(die)的数量的信息以及每个die的大小的信息,或者,该存储介质A包括的存储单元的数量以及存储单元的大小。例如,该存储介质A的相关信息可以由制造商配置在控制器A中,或者,该控制器A也可以对该存储介质A进行检测,以确定存储介质A的相关信息。应理解,以上列举的控制器A可以获取存储介质A的相关信息的方法仅为示例性说明,本发明并未限定于此,现有技术中能够获得存储介质的相关信息的方法均落入本发明的保护范围内。

其后,控制器A可以基于存储介质A的相关信息,为存储介质A分配物理地址,例如,控制器A可以确定各存储单元的物理地址。

作为示例而非限定,例如,控制器A可以采用串行方式为存储介质A分配物理地址,例如,0~16千兆字节(GB,BigaByte)为第一个die,16GB~32GB为第二个die,以此类推,从而实现串行访问。

再例如,控制器A可以采用并发方式为存储介质A分配物理地址,例如,0~1兆字节(MB,MebiByte)在第一个DIE,1MS~2MB在第二个DIE,以此类推,从而实现类似于磁盘阵列(Redundant Arrays of Independent Disks,RAID)的并行访问。该分配方式,能够把连续的数据分散到多个磁盘上存取,这样,系统有数据请求就可以被多个磁盘并行的执行,每个磁盘执行属于它自己的那部分数据请求。这种数据上的并行操作可以充分利用总线的带宽,显著提高磁盘整体存取性能。

与现有技术相比,本发明实施例的物理地址分配过程无需基于逻辑地址,能够缩短物理地址分配过程的时间,提高处理效率。

在S220,该计算机系统的处理器确定第一数据(即,数据的一例)的索引。

具体地说,当处理器A需要在存储器A中存储一个数据(即,第一数据的一例,以下,为了便于理解,记做:数据A)时,处理器A可以获取该数据A的索引(以下,为了便于理解和区分,记做:索引A)。

可选地,该索引为键key,该数据为值value。

具体地说,在本发明实施例中,数据也可以称为值(VALUE),例如,可以是处理器所执行的进程或线程产生的,或者,也可以是来自处理器从外部(例如,基于用户的输入)获取的,本发明并未特别限定。

并且,在本发明实施例中,索引也可以称为键(KEY),其中,在计算机系统中,一个数据可以具有至少一个索引,一个索引仅对应唯一的一个数据,并且,一个索引用于指示(或者说,标识)所对应的数据。作为示例而非限定,例如,索引可以是具有一定长度(例如,8~64字节内的任意长度)的字符串。应理解,以上列举的索引的具体形式仅为示例性说明,本发明并未限定于此。

在本发明实施例中,作为示例而非限定,各数据的索引,或者说,各数据与各索引之间的对应关系,可以是处理器根据预设的规则(例如,由用户设定,或者由业界标准或协议规定,或者由制造商设定)为各数据分配的,或者,各数据的索引也可以由外部设备设定并指示处理器,只要能够确保一个索引能够仅指示一个数据(或者说,基于一个索引能够确定唯一的一个数据)即可,本发明并未特别限定。

应理解,以上列举的数据和索引的具体形式仅为示例性说明,本发明并未限定于此,其他各种形式的数据和索引均落入本发明的保护范围内。

在S230,该处理器向该存储器(具体地说,是存储器的控制器)发送第一数据存储请求(即,数据存储请求的一例),该第一数据存储请求用于指示在该存储器中存储第一数据(即,数据的一例),该第一数据存储请求包括该第一数据和该第一数据的索引。

相应地,该控制器接收该计算机系统的处理器发送的第一数据存储请求,该第一数据存储请求用于指示在该存储器中存储第一数据,该第一数据存储请求包括该第一数据和该第一数据的索引。

具体地说,处理器A可以生成数据存储请求(或者说,数据存储指令),并在该数据存储请求中携带数据A(即,第一数据的一例)以及索引A,从而生成用于指示控制器A存储该数据A的请求(即,第一数据存储请求的一例,以下,为了便于理解和说明,记做:数据存储请求A)。作为示例而非限定,该数据存储请求可以采用在现有技术中的放入(PUT)请求。

其后,处理器A可以(例如,通过总线)将该数据存储请求A发送至控制器A。

从而,控制器A能够接收到该数据存储请求A,并确定处理器A需要存储该数据存储请求A所携带的数据A。

作为示例而非限定,在本发明实施例中,可选地,该控制器A可以首先判定存储介质A中是否已经存储有该数据A。

例如,控制器A可以判定所存储的索引与数据的映射关系的表项(随后,对该表项进行详细说明)中是否记录有该索引A。如果判定为是,则控制器A可以判定为存储介质A中已经存储有该数据A;如果判定为否,则控制器A可以判定为存储介质A中未存储有该数据A。

并且,如果判控制器A判定为存储介质A中已经存储有该数据A,则代表该数据A已经被存储,无需重复进行。与此相对,在现有技术中,由于数据存储请求携带有逻辑地址而非数据索引,因此,控制器无法判定该数据A是否已经被存储,可能造成数据的重复存储,进而导致对存储资源的浪费。

另外,如果控制器A判定为存储介质A中未存储有该数据A,则在S240,该控制器根据该第一数据存储请求,从该存储介质中确定第一存储介质,并在该第一存储介质中存储该第一数据。

具体地说,控制器A可以确定用于存储该数据A的存储单元(以下,为了便于理解和区分,记做:存储单元A1)。

作为示例而非限定,控制器A可以从存储介质A中可用的(例如,未存储数据的)存储介质,并根据数据A的大小,从该可用的存储介质中,确存储单元A1,以使该存储单元A1的大小(或者说,包括的存储单元的数量)满足数据A的要求,例如,该存储单元A1的大小(或者说,包括的存储单元的数量)大于或等于存储数据A所需要的最小的存储介质的大小。

应理解,以上列举的存储单元A1的确定过程仅为示例性说明,本发明并未限定于此,只要使存储单元A1能够存储数据A即可。

另外,在本发明实施例中,在存储单元A1包括多个存储单元的情况下,优选使存储单元A1为连续的多个存储单元。

其后,控制器A可以将数据A存储在存储单元A1中。

应理解,以上列举的控制器A存储数据A的过程仅为示例性说明,本发明并未限定于此,例如,控制器A也可以不判定存储介质A中是否已经存储有该数据A,而直接确定存储单元A1,并在存储单元A1中存储数据A。

在S250,该存储器生成第一映射关系信息(即,映射关系信息的一例),该第一映射关系信息用于指示该第一存储单元的地址与该第一数据的索引之间的映射关系。

具体地说,控制器A可以确定该存储单元A1的地址(例如,物理地址,以下,为了便于理解和区分,记做:物理地址A1),并保存该物理地址A1与索引A的映射关系(即,第一映射关系信息的一例,以下,为了便于理解和区分,记做:映射关系A)。

应理解,以上列举的以物理地址作为存储单元的地址的方案仅为示例性说明,本发明并未限定于此,该存储单元的地址还可以是物理地址和逻辑地址双方,此情况下,该映射关系信息可以指示数据的索引与存储单元的逻辑地址的映射关系,并且,该映射关系还可以指示存储单元的逻辑地址与物理地址的映射关系。

以下,为了便于理解和说明,不失一般性,以物理地址作为存储的地址为例,对后续过程进行详细说明。

作为示例而非限定,在本发明实施例中,控制器A可以维护一个映射关系表项,该映射关系表项保存有该存储器A所存储的各数据的索引与各数据所存储于的存储介质的物理地址之间的一一映射关系。

此情况下,控制器A可以将该映射关系A记录在映射关系表项中。

作为示例而非限定,以下表1示出了本发明实施例的映射关系表项的一例。

表1

应理解,以上列举的表1仅为映射关系表项的一例,本发明并未限定于此,例如,在表1中记录物理地址为各数据所存储于的最小存储单元的物理地址,在另一种可能的实施方式中,映射关系表项所记录的物理地址还可以是数据所存储于的存储介质的起始物理和长度。

再例如,以下表2示出了本发明实施例的映射关系表项的一例。

表2

可选地,在本发明实施例中,存储器A在完成数据A的存储操作后,可以向处理器A反馈存储完成指示,从而,处理器A可以根据该存储完成指示,确定该数据A已经存储在存储器A中。

可选地,在S260,该服务器向该存储器发送第一数据处理请求(即,数据处理请求的一例),该第一数据处理请求用于指示对该第一数据(即,数据的一例)进行处理,该第一数据处理请求包括该第一数据的索引。

相应地,该存储器接收该服务器发送的第一数据处理请求,该第一数据处理请求用于指示对该第一数据进行处理,该第一数据处理请求包括该第一数据的索引;

在S270,该存储器根据该第一数据的索引和该第一映射关系信息,确定该该第一数据的索引对应的地址;

该存储器根据该第一数据处理请求,在该地址对应的存储单元中对该第一数据进行处理。

具体地说,在本发明实施例中,处理器A可能需要对存储在存储器A中的数据A进行操作,例如,读取(即,操作1)或删除(即,操作2),下面,以上述操作1和操作2为例,对处理器A和控制器A对已存储的数据A的处理过程进行说明。

操作1

可选地,

该存储器根据该数据处理请求,在该地址所对应的存储单元中对该数据进行处理,包括:

当该数据处理请求为数据读取请求时,该存储器从该地址所对应的存储单元中获取该数据,并向该服务器发送该数据。

具体地说,在本发明实施例中,当处理器A需要读取该数据A时,处理器A可以生成数据读取请求(或者说,数据读取指令,并在该数据读取请求中携带索引A,从而生成用于指示控制器A向处理器A返回该索引A所指示的数据(即,数据A)的请求(即,第一数据处理请求的一例,以下,为了便于理解和说明,记做:数据读取请求A)。作为示例而非限定,该数据读取请求可以采用在现有技术中的读取(GET)请求。

其后,处理器A可以(例如,通过总线)将该数据读取请求A发送至控制器A。

从而,控制器A能够接收到该数据读取请求A,并确定处理器A需要获取的数据的索引,即索引A。

其后,控制器A可以根据所保存的映射关系A(例如,映射关系表项),确定与该索引A相对应的物理地址(即,地址的一例),即,物理地址A1,进而确定该物理地址A1所指示的存储介质,即存储单元A1。

即,在本发明实施例中,控制器A可以基于映射关系表项,确定索引A所对应的数据存储在存储单元A1中。

从而,控制器A可以获取存储单元A1中存储的数据,即,数据A,并将该数据A发送至处理器A。

需要说明的是,在本发明实施例中,可能出现在同一时段内,处理器A需要读取包括该数据A在内的多个数据,此情况下,控制器A在获取该数据A之后,可以将该数据A和该的索引A一并发送至处理器A,从而,处理器A能够在接收到该数据A和该索引A之后,确定该数据A是该索引A对应的数据。

另外,在本发明实施例中,处理器A可以在数据读取请求A中添加指示标识,该指示标识用于指示控制器A需要仅反馈数据A自身,或者,该指示标识用于指示控制器A需要反馈数据A和索引A双方。

作为示例而非限定,可以使用1个比特位携带该指示标识,例如,当该指示标识为“1”时,控制器A可以确定需要仅反馈数据A;当指示标识为“0”时,控制器A可以确定需要反馈数据A和索引A双方。

操作2

可选地,该存储器根据该数据处理请求,在该地址所对应的存储单元中对该数据进行处理,包括:

当该数据处理请求为数据删除请求时,该存储器从该地址所对应的存储单元中删除该数据。

具体地说,在本发明实施例中,当处理器A需要删除该数据A时,处理器A可以生成数据删除请求(或者说,数据删除指令,并在该数据删除请求中携带索引A,从而生成用于指示控制器A删除该索引A所指示的数据(即,数据A)的请求(即,第一数据处理请求的另一例,以下,为了便于理解和说明,记做:数据删除请求A)。作为示例而非限定,该数据删除请求可以采用在现有技术中的读取(DELETE)请求。

其后,处理器A可以(例如,通过总线)将该数据删除请求A发送至控制器A。

从而,控制器A能够接收到该数据删除请求A,并确定需要删除的数据的索引,即索引A。

其后,控制器A可以根据所保存的映射关系A(例如,映射关系表项),确定与该索引A相对应的物理地址(即,地址的一例),即,物理地址A1,进而确定该物理地址A1所指示的存储介质,即存储单元A1。

即,在本发明实施例中,控制器A可以基于映射关系表项,确定索引A所对应的数据存储在存储单元A1中。

从而,控制器A可以删除存储单元A1中存储的数据,即,数据A。

可选地,在本发明实施例中,存储器A在完成数据A的删除操作后,可以向处理器A反馈删除完成指示,从而,处理器A可以根据该存储完成指示,确定该数据A已经从存储器A中删除。

根据本发明实施例的存储数据的方法,通过使服务器(例如,处理器)在存储数据时,将所要存储的数据和该数据的索引发送给存储器,该服务器能够在存储单元中存储该数据,并记录该存储单元的物理地址与该数据的索引的映射关系,从而,能够支持在读取或删除该数据时,服务器可以在处理指令中携带该数据的索引,存储器能够基于该映射关系,确定该存储该数据的存储单元的物理地址,进而在该存储单元中进行相关操作,从而,无需在服务器中保存数据的索引与逻辑地址之间的映射关系,并且,无需在存储器中保存物理地址与逻辑地址的映射关系,进而,无需在数据存储过程中,进行基于该映射关系的地址转换,能够降低资源开销,并且,减小数据存储的处理时延。

下面,结合图3对本发明另一实施例的存储数据的方法300中服务器(例如,处理器)和存储器(具体地说,是控制器)的动作和处理过程进行详细说明。

图3示出了本发明另一实施例的存储数据的方法300的示意性交互图。

以下,为了便于理解和说明,不是一般性,以服务器与存储器配置在同一设备中的情况为例,对该方法300的过程进行详细说明,此情况下,该服务器可以是计算机系统中的处理器。

并且,以计算机系统中的一个处理器(记做:处理器B)与一个存储器中的一个控制器(记做:控制器B)之间的交互过程为例,对方法300进行详细说明。

具体地说,控制器B可以访问(或者说,控制)多个存储介质(或者说,存储单元),以下,为了便于理解和区分,将该控制器B控制的存储介质记做:存储介质B。

作为示例而非限定,存储介质B可以包括多个存储数据的最小存储单元(即,存储单元的一例),以下,为了便于理解和说明,将该最小存储单元记做:存储单元。作为示例而非限定,该最小存储单元可以是K个比特或字节,K≥1。

如图3所示,在S310,控制器B可以获取存储介质B的相关信息。并且,作为存储介质B的相关信息,可以列举,例如,该存储介质B包括的存储芯片(die)的数量的信息以及每个die的大小的信息,或者,该存储介质B包括的存储单元的数量以及存储单元的大小。例如,该存储介质B的相关信息可以由制造商配置在控制器B中,或者,该控制器B也可以对该存储介质B进行检测,以确定存储介质B的相关信息。应理解,以上列举的控制器B可以获取存储介质B的相关信息的方法仅为示例性说明,本发明并未限定于此,现有技术中能够获得存储介质的相关信息的方法均落入本发明的保护范围内。

其后,控制器B可以基于存储介质B的相关信息,为存储介质B分配物理地址,例如,控制器B可以确定各存储单元的物理地址。

作为示例而非限定,例如,控制器B可以采用串行方式为存储介质B分配物理地址,例如,0~16GB为第一个die,16GB~32GB为第二个die,以此类推,从而实现串行访问。

再例如,控制器B可以采用并发方式为存储介质B分配物理地址,例如,0~1MB在第一个DIE,1MS~2MB在第二个DIE,以此类推,从而实现类似于磁盘阵列的并行访问。该分配方式,能够把连续的数据分散到多个磁盘上存取,这样,系统有数据请求就可以被多个磁盘并行的执行,每个磁盘执行属于它自己的那部分数据请求。这种数据上的并行操作可以充分利用总线的带宽,显著提高磁盘整体存取性能。

与现有技术相比,本发明实施例的物理地址分配过程无需基于逻辑地址,能够缩短物理地址分配过程的时间,提高处理效率。

在S310,该存储器生成映射关系信息,该映射关系信息用于指示存储单元的地址与该数据的索引之间的映射关系。

具体地说,控制器B可以确定多个存储单元(包括后述存储单元B1)的物理地址与多个索引(包括后述索引B)之间的映射关系(即,映射关系信息的一例,以下,为了便于理解和区分,记做:映射关系B)。

作为示例而非限定,在本发明实施例中,控制器B可以维护一个映射关系表项,该映射关系表项保存有多个索引与多个存储单元的物理地址之间的一一映射关系。上述表1和表2示出了本发明实施例的映射关系表项的一例。

另外,作为示例而非限定,记录有该第一映射关系信息的上述映射关系表项可以是由用户输入至控制器B,也可以是制造商配置在控制器B中,还可以是控制器B采用类似于方法200中控制器A确定映射关系A的方式确定的,本发明并未特别限定。

在S320,该计算机系统的处理器确定第一数据的索引。

具体地说,当处理器B需要对存储在存储器B中的一个数据(即,第一数据的一例,以下,为了便于理解,记做:数据B)时,处理器B可以获取该数据B的索引(以下,为了便于理解和区分,记做:索引B)。

可选地,该索引为键key,该数据为值value。

具体地说,在本发明实施例中,数据也可以称为值(VBLUE),例如,可以是处理器所执行的进程或线程产生的,或者,也可以是来自处理器从外部(例如,基于用户的输入)获取的,本发明并未特别限定。

并且,在本发明实施例中,索引也可以称为键(KEY),其中,在计算机系统中,一个数据可以具有至少一个索引,一个索引仅对应唯一的一个数据,并且,一个索引用于指示(或者说,标识)所对应的数据。作为示例而非限定,例如,索引可以是具有一定长度(例如,8~64字节内的任意长度)的字符串。应理解,以上列举的索引的具体形式仅为示例性说明,本发明并未限定于此。

在本发明实施例中,作为示例而非限定,各数据的索引,或者说,各数据与各索引之间的对应关系,可以是处理器根据预设的规则(例如,由用户设定,或者由业界标准或协议规定,或者由制造商设定)为各数据分配的,或者,各数据的索引也可以由外部设备设定并指示处理器,只要能够确保一个索引能够仅指示一个数据(或者说,基于一个索引能够确定唯一的一个数据)即可,本发明并未特别限定。

应理解,以上列举的数据和索引的具体形式仅为示例性说明,本发明并未限定于此,其他各种形式的数据和索引均落入本发明的保护范围内。

在S330,该服务器向该存储器发送第一数据处理请求,该第一数据处理请求用于指示对该第一数据进行处理,该第一数据处理请求包括该第一数据的索引。

相应地,在S340,该存储器接收该服务器发送的第一数据处理请求,该第一数据处理请求用于指示对该第一数据进行处理,该第一数据处理请求包括该第一数据的索引;

该存储器根据该第一数据的索引和该第一映射关系信息,确定该第一数据的索引所对应的地址(例如,物理地址,或者,逻辑地址和物理地址);

该存储器根据该第一数据处理请求,在该地址对应的存储单元中对该第一数据进行处理。

具体地说,在本发明实施例中,处理器B可能需要对存储在存储器B中的数据B进行操作,例如,读取(即,操作3)或删除(即,操作4),下面,以上述操作1和操作2为例,对处理器B和控制器B对已存储的数据B的处理过程进行说明。

操作3

可选地,该存储器根据该数据处理请求,在该地址所对应的存储单元中对该数据进行处理,包括:

当该数据处理请求为数据读取请求时,该存储器从该地址所对应的存储单元中获取该数据,并向该服务器发送该数据。

相应地,当该第一数据处理请求为数据读取请求时,该方法还包括,该服务器接收该存储器发送的该第一数据。

具体地说,在本发明实施例中,当处理器B需要读取该数据B时,处理器B可以生成数据读取请求(或者说,数据读取指令,并在该数据读取请求中携带索引B,从而生成用于指示控制器B向处理器B返回该索引B所指示的数据(即,数据B)的请求(即,第一数据处理请求的一例,以下,为了便于理解和说明,记做:数据读取请求B)。作为示例而非限定,该数据读取请求可以采用在现有技术中的读取(GET)请求。

其后,处理器B可以(例如,通过总线)将该数据读取请求B发送至控制器B。

从而,控制器B能够接收到该数据读取请求B,并确定处理器B需要获取的数据的索引,即索引B。

其后,控制器B可以根据所保存的映射关系B(例如,映射关系表项),确定与该索引B相对应的地址,例如,物理地址,即,物理地址B1,进而确定该物理地址B1所指示的存储单元,即存储单元B1,其中,该存储单元B1可以包括一个或多个存储单元,本发明并未特别限定。

即,在本发明实施例中,控制器B可以基于映射关系表项,确定索引B所对应的数据存储在物理地址B1对应的存储单元,即存储单元B1中。

从而,控制器B可以获取存储单元B1中存储的数据,即,数据B,并将该数据B发送至处理器B。

需要说明的是,在本发明实施例中,可能出现在同一时段内,处理器B需要读取包括该数据B在内的多个数据,此情况下,控制器B在获取该数据B之后,可以将该数据B和该的索引B一并发送至处理器B,从而,处理器B能够在接收到该数据B和该索引B之后,确定该数据B是该索引B对应的数据。

另外,在本发明实施例中,处理器B可以在数据读取请求B中添加指示标识,该指示标识用于指示控制器B需要仅反馈数据B自身,或者,该指示标识用于指示控制器B需要反馈数据B和索引B双方。

作为示例而非限定,可以使用1个比特位携带该指示标识,例如,当该指示标识为“1”时,控制器B可以确定需要仅反馈数据B;当指示标识为“0”时,控制器B可以确定需要反馈数据B和索引B双方。

操作4

可选地,该存储器根据该数据处理请求,在该地址所对应的存储单元中对该数据进行处理,包括:

当该数据处理请求为数据删除请求时,该存储器从该地址所对应的存储单元中删除该数据。

具体地说,在本发明实施例中,当处理器B需要删除该数据B时,处理器B可以生成数据删除请求(或者说,数据删除指令,并在该数据删除请求中携带索引B,从而生成用于指示控制器B删除该索引B所指示的数据(即,数据B)的请求(即,第一数据处理请求的另一例,以下,为了便于理解和说明,记做:数据删除请求B)。作为示例而非限定,该数据删除请求可以采用在现有技术中的读取(DELETE)请求。

其后,处理器B可以(例如,通过总线)将该数据删除请求B发送至控制器B。

从而,控制器B能够接收到该数据删除请求B,并确定需要删除的数据的索引,即索引B。

其后,控制器B可以根据所保存的映射关系B(例如,映射关系表项),确定与该索引B相对应的物理地址,即,物理地址B1,进而确定该物理地址B1所指示的存储单元,即存储单元B1。

即,在本发明实施例中,控制器B可以基于映射关系表项,确定索引B所对应的数据存储在存储单元B1中。

从而,控制器B可以删除存储单元B1中存储的数据,即,数据B。

可选地,在本发明实施例中,存储器B在完成数据B的删除操作后,可以向处理器B反馈删除完成指示,从而,处理器B可以根据该存储完成指示,确定该数据B已经从存储器B中删除。

根据本发明实施例的存储数据的方法,通过使存储器获取存储单元的物理地址与数据的索引的映射关系,从而,在接收到处理器发送的携带有索引的数据处理指令时,存储器能够基于该映射关系,确定该存储该数据的存储单元的物理地址,进而在该存储单元中进行相关操作,从而,无需在服务器(例如,处理器)中保存数据的索引与逻辑地址之间的映射关系,并且,无需在存储器中保存物理地址与逻辑地址的映射关系,进而,无需在数据存储过程中,进行基于该映射关系的地址转换,能够降低资源开销,并且,减小数据存储的处理时延。

图4是根据本发明实施例的存储器400的示意性框图。如图4所示,该存储器400包括:

至少一个存储单元410;

通信接口420,用于与服务器进行通信;

控制器430,与该通信接口相连,用于通过该通信接口接收该服务器发送的数据存储请求,该数据存储请求用于指示在该存储器中存储数据,该数据存储请求包括该数据和该数据的索引,该数据的索引用于唯一标识该数据,用于根据该数据存储请求,存储该数据,并确定用于存储该数据的存储单元的地址,用于生成映射关系信息,该映射关系信息用于指示该地址与该数据的索引之间的映射关系。

可选地,该控制器还用于通过该通信接口接收该服务器发送的数据处理请求,该数据处理请求用于指示对该数据进行处理,该数据处理请求包括该数据的索引;

用于根据该数据的索引和该映射关系信息,确定该地址;

用于根据该数据处理请求,在该地址所对应的存储单元中对该数据进行处理。

可选地,当该数据处理请求为数据读取请求时,该控制器用于从该地址所对应的存储介质中获取该数据,并通过该通信接口向该服务器发送该数据;或

当该数据处理请求为数据删除请求时,该控制器从该地址所对应的存储介质中删除该数据。

可选地,该索引为键key,该数据为值value。

该存储器400中的各单元或模块分别用于执行上述方法200中的存储器(例如,存储器A)的动作和功能,并且,上述服务器的动作与方法200中服务器(例如,处理器A)的动作相似,这里为了避免赘述,省略其详细说明。

应理解,在本发明实施例中,该控制器可以是中央处理单元(Central Processing Unit,简称为“CPU”),该控制器还可以是其他通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

该控制器可以集成有内存,该内存可以包括只读存储器和随机存取存储器,并向控制器提供指令和数据。内存的一部分还可以包括非易失性随机存取存储器。例如,内存还可以存储设备类型的信息。

在实现过程中,上述方法的各步骤可以通过控制器中的硬件的集成逻辑电路或者软件形式的指令完成。结合本发明实施例所公开的方法的步骤可以直接体现为硬件控制器执行完成,或者用控制器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于控制器的内存中,控制器读取内存中的信息,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。

根据本发明实施例的存储器,通过使服务器(例如,处理器)在存储数据时,将所要存储的数据和该数据的索引发送给存储器,该服务器能够在存储单元中存储该数据,并记录该存储单元的物理地址与该数据的索引的映射关系,从而,能够支持在读取或删除该数据时,服务器可以在处理指令中携带该数据的索引,存储器能够基于该映射关系,确定该存储该数据的存储单元的物理地址,进而在该存储单元中进行相关操作,从而,无需在服务器中保存数据的索引与逻辑地址之间的映射关系,并且,无需在存储器中保存物理地址与逻辑地址的映射关系,进而,无需在数据存储过程中,进行基于该映射关系的地址转换,能够降低资源开销,并且,减小数据存储的处理时延。

图5是根据本发明实施例的存储器500的示意性框图。如图5所示,该存储器500包括:

至少一个存储单元510;

通信接口520,用于与服务器进行通信;

控制器530,与该通信接口通信连接,用于通过该通信接口接收该服务器发送的数据处理请求,该数据处理请求用于指示对数据进行处理,该数据处理请求包括该数据的索引,该数据的索引用于唯一标识该数据,用于根据该数据的索引和映射关系信息,确定用于存储该数据的存储单元的地址,该映射关系信息用于指示该数据的索引与该地址之间的映射关系,用于根据该数据处理请求,在该地址所对应的存储单元中对该数据进行处理。

可选地,当该数据处理请求为数据读取请求时,该控制器用于从该地址所对应的存储单元中获取该数据,并通过该通信接口向该服务器发送该数据;或

当该数据处理请求为数据删除请求时,该控制器用于从该地址所对应的存储单元中删除该数据。

可选地,该索引为键key,该数据为值value。

该存储器500中的各单元或模块分别用于执行上述方法300中的存储器(例如,存储器B)的动作和功能,并且,上述服务器的动作与方法300中服务器(例如,处理器B)的动作相似,这里为了避免赘述,省略其详细说明。

应理解,在本发明实施例中,该控制器可以是中央处理单元(Central Processing Unit,简称为“CPU”),该控制器还可以是其他通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

该控制器可以集成有内存,该内存可以包括只读存储器和随机存取存储器,并向控制器提供指令和数据。内存的一部分还可以包括非易失性随机存取存储器。例如,内存还可以存储设备类型的信息。

在实现过程中,上述方法的各步骤可以通过控制器中的硬件的集成逻辑电路或者软件形式的指令完成。结合本发明实施例所公开的方法的步骤可以直接体现为硬件控制器执行完成,或者用控制器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于控制器的内存中,控制器读取内存中的信息,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。

根据本发明实施例的存储器,通过使服务器(例如,处理器)在存储数据时,将所要存储的数据和该数据的索引发送给存储器,该服务器能够在存储单元中存储该数据,并记录该存储单元的物理地址与该数据的索引的映射关系,从而,能够支持在读取或删除该数据时,服务器可以在处理指令中携带该数据的索引,存储器能够基于该映射关系,确定该存储该数据的存储单元的物理地址,进而在该存储单元中进行相关操作,从而,无需在服务器中保存数据的索引与逻辑地址之间的映射关系,并且,无需在存储器中保存物理地址与逻辑地址的映射关系,进而,无需在数据存储过程中,进行基于该映射关系的地址转换,能够降低资源开销,并且,减小数据存储的处理时延。

图6是根据本发明实施例的计算机系统600的示意性框图。如图6所示,该计算机系统600包括:

服务器610,用于确定数据的索引,向存储器发送数据存储请求,该数据存储请求用于指示在该存储器中存储数据,该数据存储请求包括该数据和该数据的索引,该数据的索引用于唯一标识该数据;

存储器620,用于接收该服务器发送的数据存储请求,根据该数据存储请求,存储该数据,并确定用于存储该数据的存储单元的地址,生成映射关系信息,该映射关系信息用于指示该地址与该数据的索引之间的映射关系。

可选地,该服务器还用于向该存储器发送数据处理请求,该数据处理请求用于指示对该数据进行处理,该数据处理请求包括该数据的索引;

该存储器还用于根据该数据的索引和该映射关系信息,确定该地址,并在该地址所对应的存储单元中对该数据进行处理。

可选地,该数据处理请求为数据读取请求,或该数据处理请求为数据删除请求。

可选地,该索引为键key,该数据为值value。

该计算机系统600中的服务器610用于执行上述方法200中的服务器(例如,处理器A)的动作和功能,并且,上述计算机系统600中的存储器620的动作与方法200中存储器(例如,存储器A)的动作相似,这里为了避免赘述,省略其详细说明。

根据本发明实施例的计算机系统,通过使存储器获取存储单元的物理地址与数据的索引的映射关系,从而,在接收到处理器发送的携带有索引的数据处理指令时,存储器能够基于该映射关系,确定该存储该数据的存储单元的物理地址,进而在该存储单元中进行相关操作,从而,无需在服务器(例如,处理器)中保存数据的索引与逻辑地址之间的映射关系,并且,无需在存储器中保存物理地址与逻辑地址的映射关系,进而,无需在数据存储过程中,进行基于该映射关系的地址转换,能够降低资源开销,并且,减小数据存储的处理时延。

图7是根据本发明实施例的计算机系统700的示意性框图。如图7所示,该计算机系统700包括:

服务器710,用于确定数据的索引,向该存储器发送数据处理请求,该数据处理请求用于指示对该数据进行处理,该数据处理请求包括该数据的索引,该数据的索引用于唯一标识该数据;

存储器720,用于接收该服务器发送的数据处理请求,根据该数据的索引和映射关系信息,确定用于存储该数据的存储单元的地址,该映射关系信息用于指示该数据的索引与该地址之间的映射关系,根据该数据处理请求,在该地址所对应的存储单元中对该数据进行处理。

可选地,该数据处理请求为数据读取请求,或该数据处理请求为数据删除请求。

可选地,该索引为键key,该数据为值value。

该计算机系统700中的服务器710用于执行上述方法300中的服务器(例如,处理器B)的动作和功能,并且,上述计算机系统700中的存储器720的动作与方法300中存储器(例如,存储器B)的动作相似,这里为了避免赘述,省略其详细说明。

根据本发明实施例的计算机系统,通过使存储器获取存储单元的物理地址与数据的索引的映射关系,从而,在接收到处理器发送的携带有索引的数据处理指令时,存储器能够基于该映射关系,确定该存储该数据的存储单元的物理地址,进而在该存储单元中进行相关操作,从而,无需在服务器(例如,处理器)中保存数据的索引与逻辑地址之间的映射关系,并且,无需在存储器中保存物理地址与逻辑地址的映射关系,进而,无需在数据存储过程中,进行基于该映射关系的地址转换,能够降低资源开销,并且,减小数据存储的处理时延。

应理解,在本发明的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。

本领普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

所属领的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1