[发明专利]使用主机存储器缓冲区的无序读取传输有效
申请号: | 201780021530.6 | 申请日: | 2017-02-24 |
公开(公告)号: | CN108885584B | 公开(公告)日: | 2022-09-27 |
发明(设计)人: | S.贝尼斯特;T.沙里菲 | 申请(专利权)人: | 桑迪士克科技有限责任公司 |
主分类号: | G06F12/02 | 分类号: | G06F12/02;G06F12/0871;G06F3/06 |
代理公司: | 北京市柳沈律师事务所 11105 | 代理人: | 邱军 |
地址: | 美国得*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 使用 主机 存储器 缓冲区 无序 读取 传输 | ||
1.一种用于存储器设备中数据传输的方法,所述方法包括:
从主机接收读取命令,
其中,所述读取命令指定将从存储器设备中的非易失性存储器读取的数据的区段;
为所述读取命令动态地分配所述主机中的主机存储器缓冲区中的存储器空间,其中所分配的存储器空间的大小等于所述读取命令的总数据传输大示;
以与在所述读取命令中指定的顺序不同的顺序从所述非易失性存储器读取数据的所述区段;
将数据的所述区段存储在所述主机存储器缓冲区中,其中数据的每个区段存储在主机存储器缓冲区中的与在所述读取命令中指定的顺序的数据的区段的位置相对应的位置中,其中,即使数据的所述区段从所述非易失性存储器中无序读取,将数据的所述区段按顺序存储在主机存储器缓冲区中;
确定是否从非易失性存储器中读取数据的最后区段;
响应确定从非易失性存储器读取数据的最后区段,并行执行以下操作:
按照在所述主机存储器缓冲区中的存储顺序读取存储在所述主机存储器缓冲区中的数据的所述区段;
标识主机存储器中的被指定为使用散集列表(SGL)进行数据传输的主机缓冲区的存储器位置;和
将数据的所述区段从所述主机存储器缓冲区传输到在所述散集列表中标识的主机缓冲区中的位置,其中,数据的所述区段以在所述主机存储器缓冲区中存储的顺序进行传输;和
解除对于所述主机存储器缓冲区中的存储器空间的分配。
2.根据权利要求1所述的方法,其中所述主机存储器缓冲区为从所述主机上的存储器分配的一部分。
3.根据权利要求1所述的方法,其中所述主机缓冲区不同于所述主机存储器缓冲区。
4.根据权利要求3所述的方法,其中所存储的数据的区段被传输至不同大小的多个主机缓冲区。
5.根据权利要求3所述的方法,其中所述主机缓冲区和所述主机存储器缓冲区存储在所述主机中。
6.根据权利要求1所述的方法,其中所述散集列表的多个区段中的每个区段包括:描述符,所述描述符包括指针以及对所述主机缓冲区的大小的指示。
7.根据权利要求1所述的方法,其中从所述主机接收的一个或多个所述读取命令包括无序数据。
8.根据权利要求7所述的方法,其中通过在所述主机存储器缓冲区中使用偏移来对所述无序的数据进行重新排序。
9.根据权利要求1所述的方法,其中,所述非易失性存储器包括三维存储器。
10.一种主机设备,所述主机设备被配置为连接至存储器设备,所述主机设备包括:
一个或多个主机缓冲区;
主机存储器缓冲区;以及
控制器,所述控制器被配置为:
向存储器设备发送读取命令,其中,所述读取命令指定将从存储器设备中的非易失性存储器读取的数据的区段;
将从所述存储器设备接收的数据的所述区段存储在所述主机存储器缓冲区中,其中数据的每个区段存储在主机存储器缓冲区中的与在所述读取命令中指定的顺序的数据的区段的位置相对应的位置中,其中,即使数据的所述区段从所述非易失性存储器中无序读取,将数据的所述区段按顺序存储在主机存储器缓冲区中;
确定是否从非易失性存储器中读取数据的最后区段;
响应确定从非易失性存储器读取数据的最后区段,并行执行以下操作:
按照在所述主机存储器缓冲区中的存储顺序读取存储在所述主机存储器缓冲区中的数据的所述区段;
标识使用散集列表(SGL)进行数据传输的一个或多个主机缓冲区的位置;和
将数据的所述区段从所述主机存储器缓冲区传输到由存储器设备标识的一个或多个主机缓冲区中的位置,其中,数据的所述区段以在所述主机存储器缓冲区中存储的顺序进行传输。
11.根据权利要求10所述的主机设备,其中所述存储器设备利用非易失性存储器高速(NVMe)协议。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于桑迪士克科技有限责任公司,未经桑迪士克科技有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201780021530.6/1.html,转载请声明来源钻瓜专利网。