CN105446888A - 存储设备间移动数据的方法、控制器和存储系统 - Google Patents

存储设备间移动数据的方法、控制器和存储系统 Download PDF

Info

Publication number
CN105446888A
CN105446888A CN201410240821.2A CN201410240821A CN105446888A CN 105446888 A CN105446888 A CN 105446888A CN 201410240821 A CN201410240821 A CN 201410240821A CN 105446888 A CN105446888 A CN 105446888A
Authority
CN
China
Prior art keywords
data
memory device
physical address
source
moved
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
CN201410240821.2A
Other languages
English (en)
Other versions
CN105446888B (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.)
Huawei Technologies Co Ltd
Institute of Computing Technology of CAS
Original Assignee
Huawei Technologies Co Ltd
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 Huawei Technologies Co Ltd, Institute of Computing Technology of CAS filed Critical Huawei Technologies Co Ltd
Priority to CN201410240821.2A priority Critical patent/CN105446888B/zh
Priority to PCT/CN2015/079947 priority patent/WO2015180649A1/zh
Publication of CN105446888A publication Critical patent/CN105446888A/zh
Application granted granted Critical
Publication of CN105446888B publication Critical patent/CN105446888B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明实施例提供一种存储设备间移动数据的方法、控制器和存储系统。方法,包括:一体化存储UAS控制器接收用户空间库发送的数据移动请求,所述数据移动请求包括源存储设备的源地址、目的存储设备的目的地址以及所需移动的数据大小,所述数据移动请求为所述用户空间库接收到应用程序对所述用户空间库中的数据移动应用程序接口API的调用请求时发送的;所述UAS控制器根据所述源地址、目的地址以及数据大小,将待移动数据从所述源存储设备移动到目的存储设备。本发明实施例的数据移动过程,在用户态即可实现两个存储设备之间的直接的数据移动,而无需操作系统参与,无需进入内核态,从而可以节约系统开销。

Description

存储设备间移动数据的方法、控制器和存储系统
技术领域
本发明实施例涉及存储技术,尤其涉及一种存储设备间移动数据的方法、控制器和存储系统。
背景技术
一体化存储(UnifiedAccessingStorage,以下简称:UAS)系统中可以包括多种不同特性的存储设备,如可以包括动态随机访问存储器(DynamicRandomAccessMemory,以下简称:DRAM)、非易失性存储器(Non-VolatileMemory,以下简称:NVM)、基于Flash的固态硬盘(Flash-basedSolidStateDisk,以下简称:Flash-basedSSD)、磁盘(HardDisk,以下简称:HDD)等。这些不同特性的存储设备都通过内存总线或者其它互连方式连接到CPU。一体化存储系统对不同特性的存储设备进行统一编址,CPU可以寻址到整个存储系统的各个地址空间,从而可以针对一体化存储系统中的各个存储设备进行存取访问。
为了更好地利用一体化存储系统的性能,需要支持应用程序在一体化存储系统的不同存储设备间移动数据。因此,如何使应用程序能够在一体化存储系统的不同存储设备间移动数据,成为亟待解决的技术问题。
发明内容
本发明实施例提供一种存储设备间移动数据的方法、控制器和存储系统。
第一方面,提供一种存储设备间移动数据的方法,包括:
一体化存储UAS控制器接收用户空间库发送的数据移动请求,所述数据移动请求包括源存储设备的源地址、目的存储设备的目的地址以及所需移动的数据大小,所述数据移动请求为所述用户空间库接收到应用程序对所述用户空间库中的数据移动应用程序接口API的调用请求时发送的;
所述UAS控制器根据所述源地址、目的地址以及数据大小,将待移动数据从所述源存储设备移动到目的存储设备。
第二方面,提供一种UAS控制器,包括:
接收模块,用于接收用户空间库发送的数据移动请求,所述数据移动请求包括源存储设备的源地址、目的存储设备的目的地址以及所需移动的数据大小,所述数据移动请求为所述用户空间库接收到应用程序对所述用户空间库中的数据移动应用程序接口API的调用请求时发送的;
数据移动模块,用于根据所述源地址、目的地址以及数据大小,将待移动数据从所述源存储设备移动到目的存储设备。
第三方面,提供一种UAS系统,包括:UAS控制器和与所述UAS控制器连接的至少两个存储设备,所述UAS控制器采用上述的UAS控制器。
本发明上述实施例,通过在用户空间库中增加数据移动API,从而使得应用程序可以通过调用该用户空间库中的API,向UAS控制器发送数据移动请求;UAS控制器在接收到数据移动请求之后,可以根据该请求中包含的源存储设备的源地址、目的存储设备的目的地址以及所需移动的数据大小,将所需移动的数据从源存储设备移动到目的存储设备,从而可以完成两个存储设备间的数据移动。因此,本发明实施例只需要开发用户空间库中的数据移动API,实现简便;而且,本发明实施例的数据移动过程,在用户态即可实现两个存储设备之间的直接的数据移动,而无需操作系统参与,无需进入内核态,从而可以节约系统开销。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明存储设备间移动数据的方法实施例一的流程图;
图2为图1所示方法所应用的系统架构图;
图3为本发明存储设备间移动数据的方法实施例二的流程图;
图4为本发明UAS控制器实施例的结构示意图;
图5为本发明UAS系统实施例的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明存储设备间移动数据的方法实施例一的流程图,图2为图1所示方法所应用的系统架构图,如图1和2所示,本实施例的方法可以包括:
S101、UAS控制器接收用户空间库发送的数据移动请求,该数据移动请求包括源存储设备的源地址、目的存储设备的目的地址以及所需移动的数据大小,数据移动请求为用户空间库接收到应用程序对用户空间库中的数据移动应用程序接口(ApplicationProgrammingInterface,以下简称:API)的调用请求时发送的;
S102、UAS控制器根据源地址、目的地址以及数据大小,将待移动数据从源存储设备移动到目的存储设备。
具体来说,本实施例所采用的系统架构包括软件部分和硬件部分,其中,软件部分包括应用程序和用户空间库,硬件部分包括UAS控制器和与该UAS控制器连接的DRAM、NVM、Flash-basedSSD、HDD等多种不同特性的存储设备,UAS控制器可以控制这些存储设备上的数据操作。应用程序可以调用用户空间库中提供的API,从而可以通过用户空间库向UAS控制器发送访问请求,以访问存储设备中的数据。
为了实现本实施例的技术方案,可以在用户空间库中增加一个数据移动API(以下简称:moveAPI),moveAPI的基本参数可以包括待移动数据所在源存储设备的源地址src_addr、目的存储设备的目的地址dest_addr以及所需移动的数据大小data_size,该接口函数可以表征为voidmove(src_addr,dest_addr,data_size,……)。
应用程序可以向用户空间库发送调用请求,以调用用户空间库中的moveAPI,即可将从源地址src_addr开始的data_size大小的数据块移动到目的地址dest_addr开始的位置。
用户空间库在接收到应用程序对该moveAPI的调用时,即可向UAS控制器发送数据移动请求,该数据移动请求即可将应用程序调用moveAPI时发送的源存储设备的源地址src_addr、目的存储设备的目的地址dest_addr以及所需移动的数据大小data_size传送给UAS控制器。
UAS控制器在接收到用户空间库发送的数据移动请求后,即可根据该数据移动请求中所包含的源存储设备的源地址src_addr、目的存储设备的目的地址dest_addr以及所需移动的数据大小data_size,将所需移动的数据从源存储设备移动到目的存储设备。
在具体实现数据移动时,UAS控制器可以先将源地址转换为源物理地址,并将目的地址转换为目的物理地址;然后可以确定从源物理地址开始的数据大小的数据块为待移动数据;并将待移动数据从源物理地址移动到目的物理地址。
可选的,应用程序在调用用户空间库中的moveAPI时,还可以进一步设置一数据有效标志位,即valid标志。该标志位用于表示是否保留源地址上的数据;相应的,用户空间库在向UAS控制器发送数据移动请求时,可以将该数据有效标志位携带在数据移动请求中,从而使得UAS控制器可以获知在数据移动时,是否需要保留源地址上的数据。相应的,UAS控制器在根据源地址、目的地址以及数据大小,将待移动数据从源存储设备移动到目的存储设备之后,还可以进一步地根据数据有效标识位确定是否保留源地址上的数据,若不保存,则可以将源地址上的数据置为无效。
可选的,UAS控制器可以对可移动的数据进行权限控制,例如设定预设地址范围内的数据是可操作的或者不可操作的。因此,UAS控制器在确定从源物理地址开始的数据大小的数据块为待移动数据之前,还可以先确定源物理地址和目的物理地址是否超出可操作的地址范围;若超出,则UAS控制器可以向用户空间库发送地址越界报告,进而可以使得用户空间库向应用程序通知地址越界,操作错误;若未超出,则UAS控制器再去执行确定从源物理地址开始的数据大小的数据块为待移动数据的步骤。
下面针对三种场景对数据移动过程进行详细说明。
场景一、若源物理地址为一个源存储设备的物理地址,且目的物理地址为一个目的存储设备的物理地址,则UAS控制器可以采用两种方式进行数据移动:
方式一、UAS控制器先从源存储设备读取待移动数据,并根据目的物理地址将读取的待移动数据写入目的存储设备中;
方式二、UAS控制器可以从源存储设备读取待移动数据,并将读取的待移动数据缓存到UAS控制器的缓存空间中;然后,从缓存空间中读取待移动数据,并根据目的物理地址将读取的待移动数据写入目的存储设备中。
场景二、若源物理地址为一个源存储设备的物理地址,且目的物理地址包含至少两个目的存储设备的物理地址;或者,若源物理地址包含至少两个源存储设备的物理地址,且目的物理地址为一个目的存储设备的物理地址;或者,若源物理地址包含至少两个源存储设备的物理地址,且目的物理地址包含至少两个目的存储设备的物理地址,则UAS控制器可以将移动操作拆分为一个源存储设备对应一个目的存储设备的移动子操作,并且采用两种方式进行具体的数据移动:
方式一、UAS控制器针对每个移动子操作,从源存储设备读取待移动数据,并根据目的物理地址将读取的待移动数据写入目的存储设备中;
方式二:UAS控制器针对每个移动子操作,从源存储设备读取待移动数据,并将读取的待移动数据缓存到UAS控制器的缓存空间中,从缓存空间中读取待移动数据,并根据目的物理地址将读取的待移动数据写入目的存储设备中。
场景三、若所述源物理地址包含一个源存储设备中的至少两个非连续的物理地址,所述目的物理地址为一个目的存储设备中的连续物理地址;或者,所述源物理地址为一个源存储设备中的连续物理地址,所述目的物理地址包含一个目的存储设备中的至少两个非连续的物理地址;或者,所述源物理地址包含一个源存储设备中的至少两个非连续的物理地址,所述目的物理地址包含一个目的存储设备中的至少两个非连续的物理地址,则UAS控制器将移动操作拆分为源物理地址中的每一个物理地址对应目的物理地址中的每一个物理地址的移动子操作,并且采用两种方式进行具体的数据移动:
方式一、UAS控制器针对每个移动子操作,从源存储设备读取对应物理地址的待移动数据,并根据对应目的物理地址将读取的待移动数据写入目的存储设备中;
方式二、UAS控制器针对每个移动子操作,从源存储设备读取对应物理地址的待移动数据,并将读取的待移动数据缓存到UAS控制器的缓存空间中,从缓存空间中读取待移动数据,并根据对应目的物理地址将读取的待移动数据写入目的存储设备中。
另外,若目的存储设备是以数据块粒度存储的设备,例如目的存储设备为flash-basedSSD,则UAS控制器在将待移动数据写入目的存储设备时,可以根据flash-basedSSD的数据块粒度大小,对待移动数据进行数据块划分;若划分得到的数据块均为数据块粒度大小,即待移动数据的大小是数据块粒度的整数倍,则UAS控制器可以将划分得到的各个数据块直接写入目的存储设备;若划分得到的数据块包括N个数据块粒度大小的数据块和1个小于数据块粒度大小的数据块,也即待移动数据的大小不是数据块粒度的整数倍,则UAS控制器可以将划分得到的N个数据块直接写入目的存储设备,而对于剩余的1个小于数据块粒度大小的数据块来说,可以先填充为满足数据块粒度大小的数据块,然后再写入目的存储设备。
上述实施例中,用户空间库向UAS控制器发送数据移动请求的过程,既可以通过对UAS控制器中的寄存器进行写操作来实现,也可以通过扩展指令的方式向UAS发送指令的方式来实现。这两种实现方式,均可以使得用户空间库与UAS控制器之间直接进行通信,而不需要操作系统的参与。
针对UAS控制器中寄存器置位的方式来说,UAS控制器具体可以接收用户空间库发送的寄存器写请求,该寄存器写请求包括源存储设备的源地址、目的存储设备的目的地址以及所需移动的数据大小;然后,UAS控制器即可将源地址、目的地址以及数据大小写入寄存器。在UAS控制器需要根据源地址、目的地址以及数据大小,将待移动数据从所述源存储设备移动到目的存储设备时,UAS控制器可以从寄存器中读取源地址、目的地址以及数据大小,并根据源地址、目的地址以及数据大小,将待移动数据从源存储设备移动到目的存储设备。
针对扩展指令的方式来说,本发明实施例可以针对该数据移动操作专门扩展出一条操作指令,即数据移动操作指令,UAS控制器和用户空间库均可识别该数据移动操作指令。UAS控制器可以接收用户空间库发送的数据移动操作指令,该数据移动操作指令包括源存储设备的源地址、目的存储设备的目的地址以及所需移动的数据大小;然后,UAS控制器即可根据该数据移动操作指令,将待移动数据从源存储设备移动到目的存储设备。
进一步的,应用程序需要获知数据移动操作的完成状态,因此,用户空间库与UAS控制器需要配合以向应用程序通知数据移动操作完成。在完成数据移动之后,UAS控制器可以向寄存器中写入移动操作完成信息。
本发明实施例可以在用户空间库中增加另一API,即检查API(以下简称:checkAPI)。当应用程序需要检查数据移动操作是否完成时,可以向用户空间库发送checkAPI的调用请求;用户空间库在接收到该调用请求时读取寄存器,获取该移动操作完成信息;并且,向应用程序通知数据移动操作完成。在具体实现时,应用程序在调用checkAPI时,用户空间库可以启动一个专门的线程,不断查询UAS控制器中的寄存器的写入状态,如果查询到寄存器中写入了移动操作完成信息,则可以通知应用程序数据移动操作完成。
下面采用一个具体的实例,对本发明的技术方案进行说明。
图3为本发明存储设备间移动数据的方法实施例二的流程图,如图3所示,本实施例的方法可以包括:
S301、应用程序调用用户空间库中的申请API(以下简称:acquireAPI),请求在DRAM和HDD上申请2MB和1MB的虚拟地址空间。
具体来说,应用程序可以调用用户空间库中的如下两个acquireAPI:
addr1=acquire(2MB,LOW_LATENCY);
addr2=acquire(1MB,PERSISTENT);
其中,LOW_LATENCY表示低延迟,addr1=acquire(2MB,LOW_LATENCY)表征需要在满足低延迟特性的DRAM上分配2MB的虚拟地址空间addr1;PERSISTENT表示持久化,addr2=acquire(1MB,PERSISTENT)表征需要在满足持久化特性的HDD上分配1MB的虚拟地址空间addr2。
S302、用户空间库向UAS控制器发送物理空间分配请求,以请求UAS控制器在DRAM和HDD上为应用程序分配2MB和1MB的物理地址空间。
S303、UAS控制器根据物理空间分配请求,在DRAM和HDD上为应用程序分配2MB和1MB的物理地址空间。
S304、应用程序调用用户空间库中的moveAPI,请求将DRAM中512KB的数据移动到HDD中。
具体来说,应用程序可以调用move(addr1,addr2,512KB)。
S305、用户空间库获得move调用后,将UAS控制器中的寄存器地址映射到用户态空间,向UAS控制器发送寄存器写请求。
S306、UAS控制器接收到寄存器写请求,将源地址add1和目的地址add2转换成物理地址,发现源设备和目的设备分别是DRAM和HDD。
S307、UAS控制器将DRAM中指定地址处512KB的数据移动到HDD中。
S308、在数据传输完成后,UAS控制器将移动操作完成信息写入寄存器。
可选的,UAS控制器可以将DRAM中移动的512KB的数据块信息置为无效。
S309、应用程序调用用户空间库中的checkAPI。
S310、用户空间库在获得check调用后,读取UAS控制器中的寄存器,获取移动操作完成信息。
S311、用户空间库向应用程序通知数据移动操作完成。
综上,本发明上述实施例的方法,通过在用户空间库中增加数据移动API,从而使得应用程序可以通过调用该用户空间库中的API,向UAS控制器发送数据移动请求;UAS控制器在接收到数据移动请求之后,可以根据该请求中包含的源存储设备的源地址、目的存储设备的目的地址以及所需移动的数据大小,将所需移动的数据从源存储设备移动到目的存储设备,从而可以完成两个存储设备间的数据移动。因此,本发明实施例只需要开发用户空间库中的数据移动API,实现简便;而且,本发明实施例的数据移动过程,在用户态即可实现两个存储设备之间的直接的数据移动,而无需操作系统参与,无需进入内核态,从而可以节约系统开销。
图4为本发明UAS控制器实施例的结构示意图,如图4所示,本实施例的UAS控制器可以包括:接收模块41、数据移动模块42;
其中,接收模块41,用于接收用户空间库发送的数据移动请求,所述数据移动请求包括源存储设备的源地址、目的存储设备的目的地址以及所需移动的数据大小,所述数据移动请求为所述用户空间库接收到应用程序对所述用户空间库中的数据移动应用程序接口API的调用请求时发送的;数据移动模块42,用于根据所述源地址、目的地址以及数据大小,将待移动数据从所述源存储设备移动到目的存储设备。
可选的,接收模块41,具体用于:
接收用户空间库发送的寄存器写请求,所述寄存器写请求包括源存储设备的源地址、目的存储设备的目的地址以及所需移动的数据大小;
将所述源地址、目的地址以及数据大小写入寄存器;
相应的,数据移动模块42,具体用于:
从所述寄存器中读取所述源地址、目的地址以及数据大小,并根据所述源地址、目的地址以及数据大小,将待移动数据从所述源存储设备移动到目的存储设备。
或者,接收模块41,具体用于:
接收用户空间库发送的数据移动操作指令,所述数据移动操作指令包括源存储设备的源地址、目的存储设备的目的地址以及所需移动的数据大小。
进一步的,数据移动模块42,还用于:
向寄存器中写入移动操作完成信息,以使所述用户空间库在接收到所述应用程序对所述用户空间库中的检查API的调用请求时读取所述移动操作完成信息并向所述应用程序通知数据移动操作完成。
另外,数据移动模块42,具体用于:
将所述源地址转换为源物理地址,并将所述目的地址转换为目的物理地址;
确定从所述源物理地址开始的所述数据大小的数据块为待移动数据;
将所述待移动数据从所述源物理地址移动到所述目的物理地址。
在具体实现时,若所述源物理地址为一个源存储设备的物理地址,且所述目的物理地址为一个目的存储设备的物理地址,则:
数据移动模块42,具体用于:
从所述源存储设备读取所述待移动数据,并根据所述目的物理地址将读取的所述待移动数据写入所述目的存储设备中;
或者,
从所述源存储设备读取所述待移动数据,并将读取的所述待移动数据缓存到所述UAS控制器的缓存空间中;从所述缓存空间中读取所述待移动数据,并根据所述目的物理地址将读取的所述待移动数据写入所述目的存储设备中。
或者,若所述源物理地址为一个源存储设备的物理地址,且所述目的物理地址包含至少两个目的存储设备的物理地址;或者,若所述源物理地址包含至少两个源存储设备的物理地址,且所述目的物理地址为一个目的存储设备的物理地址;或者,若所述源物理地址包含至少两个源存储设备的物理地址,且所述目的物理地址包含至少两个目的存储设备的物理地址,则:
数据移动模块42,具体用于:
将移动操作拆分为一个源存储设备对应一个目的存储设备的移动子操作;
针对每个移动子操作,从所述源存储设备读取所述待移动数据,并根据所述目的物理地址将读取的所述待移动数据写入所述目的存储设备中;或者,从源存储设备读取所述待移动数据,并将读取的所述待移动数据缓存到所述UAS控制器的缓存空间中,从所述缓存空间中读取所述待移动数据,并根据所述目的物理地址将读取的所述待移动数据写入目的存储设备中。
或者,若所述源物理地址包含一个源存储设备中的至少两个非连续的物理地址,所述目的物理地址为一个目的存储设备中的连续物理地址;或者,所述源物理地址为一个源存储设备中的连续物理地址,所述目的物理地址包含一个目的存储设备中的至少两个非连续的物理地址;或者,所述源物理地址包含一个源存储设备中的至少两个非连续的物理地址,所述目的物理地址包含一个目的存储设备中的至少两个非连续的物理地址,则:
数据移动模块42,具体用于:
将移动操作拆分为所述源物理地址中的每一个物理地址对应所述目的物理地址中的每一个物理地址的移动子操作;
针对每个移动子操作,从所述源存储设备读取对应物理地址的待移动数据,并根据对应目的物理地址将读取的所述待移动数据写入所述目的存储设备中;或者,从源存储设备读取对应物理地址的待移动数据,并将读取的待移动数据缓存到所述UAS控制器的缓存空间中,从所述缓存空间中读取待移动数据,并根据对应目的物理地址将读取的所述待移动数据写入目的存储设备中。
更进一步的,若所述目的存储设备是以数据块粒度存储的设备,则数据移动模块42,具体用于:
根据所述数据块粒度大小,对所述待移动数据进行数据块划分;
若划分得到的数据块均为所述数据块粒度大小,则将划分得到的各个数据块写入目的存储设备;
若划分得到的数据块包括N个数据块粒度大小的数据块和1个小于数据块粒度大小的数据块,则将划分得到的所述N个数据块写入目的存储设备,并将所述1个小于数据块粒度大小的数据块填充为满足数据块粒度大小的数据块并写入目的存储设备。
另外,数据移动模块42,还用于:
确定所述源物理地址和目的物理地址是否超出可操作的地址范围;
若超出,则向所述用户空间库发送地址越界报告;
若未超出,则执行确定从所述源物理地址开始的所述数据大小的数据块为待移动数据的步骤。
另外,数据移动请求中还包括数据有效标志位,所述数据有效标志位用于表示是否保留源地址上的数据;
相应的,数据移动模块42,还用于:
根据所述数据有效标识位确定是否保留源地址上的数据,若不保存,则将所述源地址上的数据置为无效。
本实施例的装置可以用于执行图1~3所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
图5为本发明UAS系统实施例的结构示意图,如图5所示,本实施例的系统可以包括:UAS控制器51和与UAS控制器51连接的至少两个存储设备52,本实施例中示例出了DRAM、NVM、Flash-basedSSD、HDD。
其中,该UAS控制器51具体可以采用图4所示方法实施例的结构,并且该UAS控制器51与软件部分的配合的系统架构可以如图2所示,该UAS控制器51可以用于执行图1或3所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (24)

1.一种存储设备间移动数据的方法,其特征在于,包括:
一体化存储UAS控制器接收用户空间库发送的数据移动请求,所述数据移动请求包括源存储设备的源地址、目的存储设备的目的地址以及所需移动的数据大小,所述数据移动请求为所述用户空间库接收到应用程序对所述用户空间库中的数据移动应用程序接口API的调用请求时发送的;
所述UAS控制器根据所述源地址、目的地址以及数据大小,将待移动数据从所述源存储设备移动到目的存储设备。
2.根据权利要求1所述的方法,其特征在于,所述UAS控制器接收用户空间库发送的数据移动请求,所述数据移动请求包括源存储设备的源地址、目的存储设备的目的地址以及所需移动的数据大小,包括:
所述UAS控制器接收用户空间库发送的寄存器写请求,所述寄存器写请求包括源存储设备的源地址、目的存储设备的目的地址以及所需移动的数据大小;
所述UAS控制器将所述源地址、目的地址以及数据大小写入寄存器;
所述UAS控制器根据所述源地址、目的地址以及数据大小,将待移动数据从所述源存储设备移动到目的存储设备,包括:
所述UAS控制器从所述寄存器中读取所述源地址、目的地址以及数据大小,并根据所述源地址、目的地址以及数据大小,将待移动数据从所述源存储设备移动到目的存储设备。
3.根据权利要求1所述的方法,其特征在于,所述UAS控制器接收用户空间库发送的数据移动请求,所述数据移动请求包括源存储设备的源地址、目的存储设备的目的地址以及所需移动的数据大小,包括:
所述UAS控制器接收用户空间库发送的数据移动操作指令,所述数据移动操作指令包括源存储设备的源地址、目的存储设备的目的地址以及所需移动的数据大小。
4.根据权利要求2或3所述的方法,其特征在于,所述UAS控制器根据所述源地址、目的地址以及数据大小,将待移动数据从所述源存储设备移动到目的存储设备之后,还包括:
所述UAS控制器向寄存器中写入移动操作完成信息,以使所述用户空间库在接收到所述应用程序对所述用户空间库中的检查API的调用请求时读取所述移动操作完成信息并向所述应用程序通知数据移动操作完成。
5.根据权利要求1~4中任一项所述的方法,其特征在于,所述UAS控制器根据所述源地址、目的地址以及数据大小,将待移动数据从所述源存储设备移动到目的存储设备,包括:
所述UAS控制器将所述源地址转换为源物理地址,并将所述目的地址转换为目的物理地址;
所述UAS控制器确定从所述源物理地址开始的所述数据大小的数据块为待移动数据;
所述UAS控制器将所述待移动数据从所述源物理地址移动到所述目的物理地址。
6.根据权利要求5所述的方法,其特征在于,若所述源物理地址为一个源存储设备的物理地址,且所述目的物理地址为一个目的存储设备的物理地址,则:
所述UAS控制器将所述待移动数据从所述源物理地址移动到所述目的物理地址,包括:
所述UAS控制器从所述源存储设备读取所述待移动数据,并根据所述目的物理地址将读取的所述待移动数据写入所述目的存储设备中;
或者,
所述UAS控制器从所述源存储设备读取所述待移动数据,并将读取的所述待移动数据缓存到所述UAS控制器的缓存空间中;从所述缓存空间中读取所述待移动数据,并根据所述目的物理地址将读取的所述待移动数据写入所述目的存储设备中。
7.根据权利要求5所述的方法,其特征在于,若所述源物理地址为一个源存储设备的物理地址,且所述目的物理地址包含至少两个目的存储设备的物理地址;或者,若所述源物理地址包含至少两个源存储设备的物理地址,且所述目的物理地址为一个目的存储设备的物理地址;或者,若所述源物理地址包含至少两个源存储设备的物理地址,且所述目的物理地址包含至少两个目的存储设备的物理地址,则:
所述UAS控制器将所述待移动数据从所述源物理地址移动到所述目的物理地址,包括:
所述UAS控制器将移动操作拆分为一个源存储设备对应一个目的存储设备的移动子操作;
所述UAS控制器针对每个移动子操作,从所述源存储设备读取所述待移动数据,并根据所述目的物理地址将读取的所述待移动数据写入所述目的存储设备中;或者,所述UAS控制器从源存储设备读取所述待移动数据,并将读取的所述待移动数据缓存到所述UAS控制器的缓存空间中,从所述缓存空间中读取所述待移动数据,并根据所述目的物理地址将读取的所述待移动数据写入目的存储设备中。
8.根据权利要求5所述的方法,其特征在于,若所述源物理地址包含一个源存储设备中的至少两个非连续的物理地址,所述目的物理地址为一个目的存储设备中的连续物理地址;或者,所述源物理地址为一个源存储设备中的连续物理地址,所述目的物理地址包含一个目的存储设备中的至少两个非连续的物理地址;或者,所述源物理地址包含一个源存储设备中的至少两个非连续的物理地址,所述目的物理地址包含一个目的存储设备中的至少两个非连续的物理地址,则:
所述UAS控制器将所述待移动数据从所述源物理地址移动到所述目的物理地址,包括:
所述UAS控制器将移动操作拆分为所述源物理地址中的每一个物理地址对应所述目的物理地址中的每一个物理地址的移动子操作;
所述UAS控制器针对每个移动子操作,从所述源存储设备读取对应物理地址的待移动数据,并根据对应目的物理地址将读取的所述待移动数据写入所述目的存储设备中;或者,所述UAS控制器从源存储设备读取对应物理地址的待移动数据,并将读取的待移动数据缓存到所述UAS控制器的缓存空间中,从所述缓存空间中读取待移动数据,并根据对应目的物理地址将读取的所述待移动数据写入目的存储设备中。
9.根据权利要求6~8中任一项所述的方法,其特征在于,若所述目的存储设备是以数据块粒度存储的设备,则所述UAS控制器将所述待移动数据写入目的存储设备,包括:
所述UAS控制器根据所述数据块粒度大小,对所述待移动数据进行数据块划分;
若划分得到的数据块均为所述数据块粒度大小,则所述UAS控制器将划分得到的各个数据块写入目的存储设备;
若划分得到的数据块包括N个数据块粒度大小的数据块和1个小于数据块粒度大小的数据块,则所述UAS控制器将划分得到的所述N个数据块写入目的存储设备,并将所述1个小于数据块粒度大小的数据块填充为满足数据块粒度大小的数据块并写入目的存储设备。
10.根据权利要求5~9中任一项所述的方法,其特征在于,所述UAS控制器确定从所述源物理地址开始的所述数据大小的数据块为待移动数据之前,还包括:
所述UAS控制器确定所述源物理地址和目的物理地址是否超出可操作的地址范围;
若超出,则所述UAS控制器向所述用户空间库发送地址越界报告;
若未超出,则所述UAS控制器执行确定从所述源物理地址开始的所述数据大小的数据块为待移动数据的步骤。
11.根据权利要求1~10中任一项所述的方法,其特征在于,所述数据移动请求中还包括数据有效标志位,所述数据有效标志位用于表示是否保留源地址上的数据;
相应的,所述UAS控制器根据所述源地址、目的地址以及数据大小,将待移动数据从所述源存储设备移动到目的存储设备之后,还包括:
所述UAS控制器根据所述数据有效标识位确定是否保留源地址上的数据,若不保存,则将所述源地址上的数据置为无效。
12.一种一体化存储UAS控制器,其特征在于,包括:
接收模块,用于接收用户空间库发送的数据移动请求,所述数据移动请求包括源存储设备的源地址、目的存储设备的目的地址以及所需移动的数据大小,所述数据移动请求为所述用户空间库接收到应用程序对所述用户空间库中的数据移动应用程序接口API的调用请求时发送的;
数据移动模块,用于根据所述源地址、目的地址以及数据大小,将待移动数据从所述源存储设备移动到目的存储设备。
13.根据权利要求12所述的控制器,其特征在于,所述接收模块,具体用于:
接收用户空间库发送的寄存器写请求,所述寄存器写请求包括源存储设备的源地址、目的存储设备的目的地址以及所需移动的数据大小;
将所述源地址、目的地址以及数据大小写入寄存器;
所述数据移动模块,具体用于:
从所述寄存器中读取所述源地址、目的地址以及数据大小,并根据所述源地址、目的地址以及数据大小,将待移动数据从所述源存储设备移动到目的存储设备。
14.根据权利要求12所述的控制器,其特征在于,所述接收模块,具体用于:
接收用户空间库发送的数据移动操作指令,所述数据移动操作指令包括源存储设备的源地址、目的存储设备的目的地址以及所需移动的数据大小。
15.根据权利要求13或14所述的控制器,其特征在于,所述数据移动模块,还用于向寄存器中写入移动操作完成信息,以使所述用户空间库在接收到所述应用程序对所述用户空间库中的检查API的调用请求时读取所述移动操作完成信息并向所述应用程序通知数据移动操作完成。
16.根据权利要求12~15中任一项所述的控制器,其特征在于,所述数据移动模块,具体用于:
将所述源地址转换为源物理地址,并将所述目的地址转换为目的物理地址;
确定从所述源物理地址开始的所述数据大小的数据块为待移动数据;
将所述待移动数据从所述源物理地址移动到所述目的物理地址。
17.根据权利要求16所述的控制器,其特征在于,若所述源物理地址为一个源存储设备的物理地址,且所述目的物理地址为一个目的存储设备的物理地址,则:
所述数据移动模块,具体用于:
从所述源存储设备读取所述待移动数据,并根据所述目的物理地址将读取的所述待移动数据写入所述目的存储设备中;
或者,
从所述源存储设备读取所述待移动数据,并将读取的所述待移动数据缓存到所述UAS控制器的缓存空间中;从所述缓存空间中读取所述待移动数据,并根据所述目的物理地址将读取的所述待移动数据写入所述目的存储设备中。
18.根据权利要求16所述的控制器,其特征在于,若所述源物理地址为一个源存储设备的物理地址,且所述目的物理地址包含至少两个目的存储设备的物理地址;或者,若所述源物理地址包含至少两个源存储设备的物理地址,且所述目的物理地址为一个目的存储设备的物理地址;或者,若所述源物理地址包含至少两个源存储设备的物理地址,且所述目的物理地址包含至少两个目的存储设备的物理地址,则:
所述数据移动模块,具体用于:
将移动操作拆分为一个源存储设备对应一个目的存储设备的移动子操作;
针对每个移动子操作,从所述源存储设备读取所述待移动数据,并根据所述目的物理地址将读取的所述待移动数据写入所述目的存储设备中;或者,从源存储设备读取所述待移动数据,并将读取的所述待移动数据缓存到所述UAS控制器的缓存空间中,从所述缓存空间中读取所述待移动数据,并根据所述目的物理地址将读取的所述待移动数据写入目的存储设备中。
19.根据权利要求16所述的控制器,其特征在于,若所述源物理地址包含一个源存储设备中的至少两个非连续的物理地址,所述目的物理地址为一个目的存储设备中的连续物理地址;或者,所述源物理地址为一个源存储设备中的连续物理地址,所述目的物理地址包含一个目的存储设备中的至少两个非连续的物理地址;或者,所述源物理地址包含一个源存储设备中的至少两个非连续的物理地址,所述目的物理地址包含一个目的存储设备中的至少两个非连续的物理地址,则:
所述数据移动模块,具体用于:
将移动操作拆分为所述源物理地址中的每一个物理地址对应所述目的物理地址中的每一个物理地址的移动子操作;
针对每个移动子操作,从所述源存储设备读取对应物理地址的待移动数据,并根据对应目的物理地址将读取的所述待移动数据写入所述目的存储设备中;或者,从源存储设备读取对应物理地址的待移动数据,并将读取的待移动数据缓存到所述UAS控制器的缓存空间中,从所述缓存空间中读取待移动数据,并根据对应目的物理地址将读取的所述待移动数据写入目的存储设备中。
20.根据权利要求17~19中任一项所述的控制器,其特征在于,若所述目的存储设备是以数据块粒度存储的设备,则所述数据移动模块,具体用于:
根据所述数据块粒度大小,对所述待移动数据进行数据块划分;
若划分得到的数据块均为所述数据块粒度大小,则将划分得到的各个数据块写入目的存储设备;
若划分得到的数据块包括N个数据块粒度大小的数据块和1个小于数据块粒度大小的数据块,则将划分得到的所述N个数据块写入目的存储设备,并将所述1个小于数据块粒度大小的数据块填充为满足数据块粒度大小的数据块并写入目的存储设备。
21.根据权利要求17~20中任一项所述的控制器,其特征在于,所述数据移动模块,还用于:
确定所述源物理地址和目的物理地址是否超出可操作的地址范围;
若超出,则向所述用户空间库发送地址越界报告;
若未超出,则执行确定从所述源物理地址开始的所述数据大小的数据块为待移动数据的步骤。
22.根据权利要求12~21中任一项所述的控制器,其特征在于,所述数据移动请求中还包括数据有效标志位,所述数据有效标志位用于表示是否保留源地址上的数据;
相应的,所述数据移动模块,还用于:
根据所述数据有效标识位确定是否保留源地址上的数据,若不保存,则将所述源地址上的数据置为无效。
23.一种一体化存储UAS系统,其特征在于,包括:UAS控制器和与所述UAS控制器连接的至少两个存储设备,所述UAS控制器采用权利要求12~22中任一项所述的UAS控制器。
24.根据权利要求23所述的系统,其特征在于,所述至少两个存储设备,包括下述存储设备中的至少两个存储设备:
动态随机访问存储器DRAM、非易失性存储器NVM、基于闪存Flash的固态硬盘Flash-basedSSD、磁盘HDD。
CN201410240821.2A 2014-05-30 2014-05-30 存储设备间移动数据的方法、控制器和存储系统 Active CN105446888B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201410240821.2A CN105446888B (zh) 2014-05-30 2014-05-30 存储设备间移动数据的方法、控制器和存储系统
PCT/CN2015/079947 WO2015180649A1 (zh) 2014-05-30 2015-05-27 存储设备间移动数据的方法、控制器和存储系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410240821.2A CN105446888B (zh) 2014-05-30 2014-05-30 存储设备间移动数据的方法、控制器和存储系统

Publications (2)

Publication Number Publication Date
CN105446888A true CN105446888A (zh) 2016-03-30
CN105446888B CN105446888B (zh) 2018-10-12

Family

ID=54698115

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410240821.2A Active CN105446888B (zh) 2014-05-30 2014-05-30 存储设备间移动数据的方法、控制器和存储系统

Country Status (2)

Country Link
CN (1) CN105446888B (zh)
WO (1) WO2015180649A1 (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107632795A (zh) * 2017-10-25 2018-01-26 奇酷互联网络科技(深圳)有限公司 移动数据的方法、设备、移动终端以及计算机存储介质
CN108572792A (zh) * 2017-06-13 2018-09-25 北京金山云网络技术有限公司 数据存储方法、装置、电子设备及计算机可读存储介质
CN108762666A (zh) * 2018-04-13 2018-11-06 北京优帆科技有限公司 一种存储系统的访问方法、系统、介质及设备
CN109408404A (zh) * 2018-10-15 2019-03-01 深圳忆联信息系统有限公司 基于tf卡的逆向查表方法、装置和计算机设备
CN111209231A (zh) * 2018-11-21 2020-05-29 上海寒武纪信息科技有限公司 数据处理方法、装置及相关产品
CN111209243A (zh) * 2018-11-21 2020-05-29 上海寒武纪信息科技有限公司 数据处理装置、方法及相关产品
CN111210012A (zh) * 2018-11-21 2020-05-29 上海寒武纪信息科技有限公司 数据处理方法、装置及相关产品
CN112559390A (zh) * 2016-09-23 2021-03-26 华为数字技术(成都)有限公司 一种数据写入控制方法及存储设备

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109324982B (zh) * 2017-07-31 2023-06-27 上海华为技术有限公司 一种数据处理方法以及数据处理装置
CN115567590B (zh) * 2022-11-17 2023-03-10 鹏城实验室 数据包调度方法、装置、设备及可读存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050278492A1 (en) * 2004-06-10 2005-12-15 Stakutis Christopher J Method, system, and program for migrating source data to target data
CN102521138A (zh) * 2011-11-28 2012-06-27 成都市华为赛门铁克科技有限公司 数据迁移触发方法和装置
CN103763383A (zh) * 2014-01-27 2014-04-30 西安雷迪维护系统设备有限公司 一体化云存储系统及其存储方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8195912B2 (en) * 2007-12-06 2012-06-05 Fusion-io, Inc Apparatus, system, and method for efficient mapping of virtual and physical addresses
CN101694635B (zh) * 2009-10-22 2013-10-16 中兴通讯股份有限公司 基于虚拟磁带库备份的控制方法、系统及近线存储节点

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050278492A1 (en) * 2004-06-10 2005-12-15 Stakutis Christopher J Method, system, and program for migrating source data to target data
CN102521138A (zh) * 2011-11-28 2012-06-27 成都市华为赛门铁克科技有限公司 数据迁移触发方法和装置
CN103763383A (zh) * 2014-01-27 2014-04-30 西安雷迪维护系统设备有限公司 一体化云存储系统及其存储方法

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112559390B (zh) * 2016-09-23 2023-06-06 成都华为技术有限公司 一种数据写入控制方法及存储设备
CN112559390A (zh) * 2016-09-23 2021-03-26 华为数字技术(成都)有限公司 一种数据写入控制方法及存储设备
CN108572792A (zh) * 2017-06-13 2018-09-25 北京金山云网络技术有限公司 数据存储方法、装置、电子设备及计算机可读存储介质
CN108572792B (zh) * 2017-06-13 2021-06-11 北京金山云网络技术有限公司 数据存储方法、装置、电子设备及计算机可读存储介质
CN107632795A (zh) * 2017-10-25 2018-01-26 奇酷互联网络科技(深圳)有限公司 移动数据的方法、设备、移动终端以及计算机存储介质
CN107632795B (zh) * 2017-10-25 2020-11-24 奇酷互联网络科技(深圳)有限公司 移动数据的方法、设备、移动终端以及计算机存储介质
CN108762666A (zh) * 2018-04-13 2018-11-06 北京优帆科技有限公司 一种存储系统的访问方法、系统、介质及设备
CN108762666B (zh) * 2018-04-13 2020-07-03 北京青云科技股份有限公司 一种存储系统的访问方法、系统、介质及设备
CN109408404B (zh) * 2018-10-15 2020-10-09 深圳忆联信息系统有限公司 基于tf卡的逆向查表方法、装置和计算机设备
CN109408404A (zh) * 2018-10-15 2019-03-01 深圳忆联信息系统有限公司 基于tf卡的逆向查表方法、装置和计算机设备
CN111210012A (zh) * 2018-11-21 2020-05-29 上海寒武纪信息科技有限公司 数据处理方法、装置及相关产品
CN111209243A (zh) * 2018-11-21 2020-05-29 上海寒武纪信息科技有限公司 数据处理装置、方法及相关产品
CN111209231B (zh) * 2018-11-21 2021-05-11 上海寒武纪信息科技有限公司 数据处理方法、装置及相关产品
CN111209231A (zh) * 2018-11-21 2020-05-29 上海寒武纪信息科技有限公司 数据处理方法、装置及相关产品
CN111209243B (zh) * 2018-11-21 2022-12-02 上海寒武纪信息科技有限公司 数据处理装置、方法及相关产品
CN111210012B (zh) * 2018-11-21 2022-12-09 上海寒武纪信息科技有限公司 数据处理方法、装置及相关产品

Also Published As

Publication number Publication date
WO2015180649A1 (zh) 2015-12-03
CN105446888B (zh) 2018-10-12

Similar Documents

Publication Publication Date Title
CN105446888A (zh) 存储设备间移动数据的方法、控制器和存储系统
US10296217B2 (en) Techniques to configure a solid state drive to operate in a storage mode or a memory mode
CN110059020B (zh) 扩展内存的访问方法、设备以及系统
US10031845B2 (en) Method and apparatus for processing sequential writes to a block group of physical blocks in a memory device
KR102147993B1 (ko) 불휘발성 메모리 시스템 및 그것의 동작 방법
KR102106261B1 (ko) 메모리 컨트롤러의 작동 방법과 이를 포함하는 장치들의 작동 방법들
KR102077149B1 (ko) 메모리 관리 방법 및 장치
KR20160049200A (ko) 데이터 저장 장치의 작동 방법, 이를 포함하는 모바일 컴퓨팅 장치, 및 이의 작동 방법
EP3049944A1 (en) Block storage apertures to persistent memory
TW201706850A (zh) 電腦系統以及非揮發性記憶體的操作方法
CN103441948A (zh) 一种数据访问方法、网卡及存储系统
KR102263326B1 (ko) 그래픽 프로세싱 유닛 및 이를 이용한 그래픽 데이터 처리 방법
JP2017073129A (ja) Nvdimmを含む装置及びそのアクセス方法
EP3506075A1 (en) Mass storage device capable of fine grained read and/or write operations
CN105138481A (zh) 存储数据的处理方法、装置和系统
CN104346293A (zh) 混合内存的数据访问方法、模块、处理器及终端设备
JP2014522023A (ja) メモリタイプ間でデータを移動させるための技術
US20190146926A1 (en) Storage device and operating method of storage device
CN103034616A (zh) 一种多个操作系统访问存储介质的方法、计算机
US10019198B2 (en) Method and apparatus for processing sequential writes to portions of an addressable unit
TW201443646A (zh) 用於存取記憶體之系統及方法
WO2017151262A1 (en) Method and apparatus for providing a contiguously addressable memory region by remapping an address space
US8402229B1 (en) System and method for enabling interoperability between application programming interfaces
US9904622B2 (en) Control method for non-volatile memory and associated computer system
KR20150041873A (ko) 데이터 처리 시스템

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant