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

文档序号:9687350阅读:636来源:国知局
存储设备间移动数据的方法、控制器和存储系统的制作方法
【技术领域】
[0001]本发明实施例涉及存储技术,尤其涉及一种存储设备间移动数据的方法、控制器和存储系统。
【背景技术】
[0002]一体化存储(Unified Accessing Storage,以下简称:UAS)系统中可以包括多种不同特性的存储设备,如可以包括动态随机访问存储器(Dynamic Random Access Memory,以下简称:DRAM)、非易失性存储器(Non-Volatile Memory,以下简称:NVM)、基于Flash的固态硬盘(Flash-based Solid State Disk,以下简称:Flash-based SSD)、磁盘(HardDisk,以下简称:HDD)等。这些不同特性的存储设备都通过内存总线或者其它互连方式连接到CPU。一体化存储系统对不同特性的存储设备进行统一编址,CPU可以寻址到整个存储系统的各个地址空间,从而可以针对一体化存储系统中的各个存储设备进行存取访问。
[0003]为了更好地利用一体化存储系统的性能,需要支持应用程序在一体化存储系统的不同存储设备间移动数据。因此,如何使应用程序能够在一体化存储系统的不同存储设备间移动数据,成为亟待解决的技术问题。

【发明内容】

[0004]本发明实施例提供一种存储设备间移动数据的方法、控制器和存储系统。
[0005]第一方面,提供一种存储设备间移动数据的方法,包括:
[0006]一体化存储UAS控制器接收用户空间库发送的数据移动请求,所述数据移动请求包括源存储设备的源地址、目的存储设备的目的地址以及所需移动的数据大小,所述数据移动请求为所述用户空间库接收到应用程序对所述用户空间库中的数据移动应用程序接口 API的调用请求时发送的;
[0007]所述UAS控制器根据所述源地址、目的地址以及数据大小,将待移动数据从所述源存储设备移动到目的存储设备。
[0008]第二方面,提供一种UAS控制器,包括:
[0009]接收模块,用于接收用户空间库发送的数据移动请求,所述数据移动请求包括源存储设备的源地址、目的存储设备的目的地址以及所需移动的数据大小,所述数据移动请求为所述用户空间库接收到应用程序对所述用户空间库中的数据移动应用程序接口 API的调用请求时发送的;
[0010]数据移动模块,用于根据所述源地址、目的地址以及数据大小,将待移动数据从所述源存储设备移动到目的存储设备。
[0011]第三方面,提供一种UAS系统,包括:UAS控制器和与所述UAS控制器连接的至少两个存储设备,所述UAS控制器采用上述的UAS控制器。
[0012]本发明上述实施例,通过在用户空间库中增加数据移动API,从而使得应用程序可以通过调用该用户空间库中的API,向UAS控制器发送数据移动请求;UAS控制器在接收到数据移动请求之后,可以根据该请求中包含的源存储设备的源地址、目的存储设备的目的地址以及所需移动的数据大小,将所需移动的数据从源存储设备移动到目的存储设备,从而可以完成两个存储设备间的数据移动。因此,本发明实施例只需要开发用户空间库中的数据移动API,实现简便;而且,本发明实施例的数据移动过程,在用户态即可实现两个存储设备之间的直接的数据移动,而无需操作系统参与,无需进入内核态,从而可以节约系统开销。
【附图说明】
[0013]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0014]图1为本发明存储设备间移动数据的方法实施例一的流程图;
[0015]图2为图1所示方法所应用的系统架构图;
[0016]图3为本发明存储设备间移动数据的方法实施例二的流程图;
[0017]图4为本发明UAS控制器实施例的结构示意图;
[0018]图5为本发明UAS系统实施例的结构示意图。
【具体实施方式】
[0019]为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0020]图1为本发明存储设备间移动数据的方法实施例一的流程图,图2为图1所示方法所应用的系统架构图,如图1和2所示,本实施例的方法可以包括:
[0021]S101、UAS控制器接收用户空间库发送的数据移动请求,该数据移动请求包括源存储设备的源地址、目的存储设备的目的地址以及所需移动的数据大小,数据移动请求为用户空间库接收到应用程序对用户空间库中的数据移动应用程序接口(Applicat1nProgramming Interface,以下简称:API)的调用请求时发送的;
[0022]S102、UAS控制器根据源地址、目的地址以及数据大小,将待移动数据从源存储设备移动到目的存储设备。
[0023]具体来说,本实施例所采用的系统架构包括软件部分和硬件部分,其中,软件部分包括应用程序和用户空间库,硬件部分包括UAS控制器和与该UAS控制器连接的DRAM、NVM、Flash-based SSD、HDD等多种不同特性的存储设备,UAS控制器可以控制这些存储设备上的数据操作。应用程序可以调用用户空间库中提供的API,从而可以通过用户空间库向UAS控制器发送访问请求,以访问存储设备中的数据。
[0024]为了实现本实施例的技术方案,可以在用户空间库中增加一个数据移动API (以下简称:moVe API), move API的基本参数可以包括待移动数据所在源存储设备的源地址src_addr、目的存储设备的目的地址dest_addr以及所需移动的数据大小data_size,该接口函数可以表征为 void move (src_addr, dest_addr, data_size,......)。
[0025]应用程序可以向用户空间库发送调用请求,以调用用户空间库中的move API,即可将从源地址src_addr开始的data_size大小的数据块移动到目的地址dest_addr开始的位置。
[0026]用户空间库在接收到应用程序对该move API的调用时,即可向UAS控制器发送数据移动请求,该数据移动请求即可将应用程序调用move API时发送的源存储设备的源地址src_addr、目的存储设备的目的地址dest_addr以及所需移动的数据大小data_size传送给UAS控制器。
[0027]UAS控制器在接收到用户空间库发送的数据移动请求后,即可根据该数据移动请求中所包含的源存储设备的源地址src_addr、目的存储设备的目的地址dest_addr以及所需移动的数据大小data_Size,将所需移动的数据从源存储设备移动到目的存储设备。
[0028]在具体实现数据移动时,UAS控制器可以先将源地址转换为源物理地址,并将目的地址转换为目的物理地址;然后可以确定从源物理地址开始的数据大小的数据块为待移动数据;并将待移动数据从源物理地址移动到目的物理地址。
[0029]可选的,应用程序在调用用户空间库中的move API时,还可以进一步设置一数据有效标志位,即valid标志。该标志位用于表示是否保留源地址上的数据;相应的,用户空间库在向UAS控制器发送数据移动请求时,可以将该数据有效标志位携带在数据移动请求中,从而使得UAS控制器可以获知在数据移动时,是否需要保留源地址上的数据。相应的,UAS控制器在根据源地址、目的地址以及数据大小,将待移动数据从源存储设备移动到目的
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1