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

文档序号:9687350阅读:来源:国知局
是否超出可操作的地址范围; 若超出,则所述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-based SSD、磁盘 HDD。
【专利摘要】本发明实施例提供一种存储设备间移动数据的方法、控制器和存储系统。方法,包括:一体化存储UAS控制器接收用户空间库发送的数据移动请求,所述数据移动请求包括源存储设备的源地址、目的存储设备的目的地址以及所需移动的数据大小,所述数据移动请求为所述用户空间库接收到应用程序对所述用户空间库中的数据移动应用程序接口API的调用请求时发送的;所述UAS控制器根据所述源地址、目的地址以及数据大小,将待移动数据从所述源存储设备移动到目的存储设备。本发明实施例的数据移动过程,在用户态即可实现两个存储设备之间的直接的数据移动,而无需操作系统参与,无需进入内核态,从而可以节约系统开销。
【IPC分类】G06F13/16, G06F12/02
【公开号】CN105446888
【申请号】CN201410240821
【发明人】夏飞, 陈明宇, 蒋德钧, 熊劲
【申请人】华为技术有限公司, 中国科学院计算技术研究所
【公开日】2016年3月30日
【申请日】2014年5月30日
【公告号】WO2015180649A1
当前第5页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1