《读数据的方法及装置.pdf》由会员分享,可在线阅读,更多相关《读数据的方法及装置.pdf(10页珍藏版)》请在专利查询网上搜索。
1、(10)申请公布号 CN 103677670 A (43)申请公布日 2014.03.26 CN 103677670 A (21)申请号 201310674656.7 (22)申请日 2013.12.11 G06F 3/06(2006.01) (71)申请人 华为技术有限公司 地址 518129 广东省深圳市龙岗区坂田华为 总部办公楼 (72)发明人 林新建 龚涛 (74)专利代理机构 北京同立钧成知识产权代理 有限公司 11205 代理人 刘芳 (54) 发明名称 读数据的方法及装置 (57) 摘要 本发明实施例提供一种读数据的方法及装 置, 该方法包括 : 存储设备的控制器接收主机发 送的。
2、读数据请求, 读数据请求包括待读取数据的 逻辑地址 ; 存储设备的控制器将所述逻辑地址发 送给固态硬盘的控制器 ; 固态硬盘的控制器根据 所述逻辑地址在固态硬盘的非易失性存储介质中 保存的映射表中进行查询, 获得待读取数据的物 理地址 ; 固态硬盘的控制器根据待读取数据的物 理地址获得待读取数据, 并发送给存储设备的控 制器 ; 存储设备的控制器向所述主机发送待读取 数据。 本发明实施例中的映射表为一个映射表, 可 以根据逻辑地址直接查找物理地址, 这样相对于 现有技术的两次映射大大减小了上述存储设备和 主机的开销, 且提高了获取数据的效率。 (51)Int.Cl. 权利要求书 2 页 说明书。
3、 5 页 附图 2 页 (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书2页 说明书5页 附图2页 (10)申请公布号 CN 103677670 A CN 103677670 A 1/2 页 2 1. 一种读数据的方法, 所述方法应用于存储设备中, 所述存储设备包括所述存储设备 的控制器, 所述存储设备的控制器包括高速缓存设备, 所述高速缓存设备包括固态硬盘, 其 中所述固态硬盘包括所述固态硬盘的控制器和所述固态硬盘的非易失性存储介质, 其特征 在于, 所述方法包括 : 所述存储设备的控制器接收主机发送的读数据请求, 其中, 所述读数据请求包括待读 取数据的逻辑地址 ; 。
4、所述存储设备的控制器将所述逻辑地址发送给所述固态硬盘的控制器 ; 所述固态硬盘的控制器根据所述逻辑地址在所述固态硬盘的非易失性存储介质中保 存的映射表中进行查询, 获得所述待读取数据的物理地址, 所述映射表中保存有所述逻辑 地址与所述物理地址之间的对应关系, 所述物理地址是指所述待读取数据保存在所述固态 硬盘的非易失性存储介质中的地址 ; 所述固态硬盘的控制器根据所述待读取数据的物理地址获得所述待读取数据, 并发送 给所述存储设备的控制器 ; 所述存储设备的控制器向所述主机发送所述待读取数据。 2. 根据权利要求 1 所述的方法, 其特征在于, 所述逻辑地址对应的逻辑空间大于所述 物理地址对应。
5、的物理空间。 3. 根据权利要求 1 所述的方法, 其特征在于, 还包括 : 所述存储设备的控制器接收所述主机发送写数据请求, 所述写数据请求中包括所述待 读取数据 ; 所述存储设备的控制器将所述待读取数据发送给所述固态硬盘的控制器 ; 所述固态硬盘的控制器根据所述待读取数据的数据类型将所述待读取数据写入所述 固态硬盘的非易失性存储介质中。 4. 根据权利要求 3 所述的方法, 其特征在于, 所述固态硬盘的控制器根据所述待读取 数据的数据类型将所述待读取数据写入所述固态硬盘的非易失性存储介质中, 包括 : 所述固态硬盘的控制器根据所述写数据请求中携带的所述待读取数据的数据类型, 将 所述待读取。
6、数据写入所述固态硬盘的非易失性存储介质中 ; 或者, 所述固态硬盘的控制器识别出所述待读取数据的数据类型, 并根据所述数据类型将所 述待读取数据写入所述固态硬盘的非易失性存储介质中。 5. 一种存储设备, 其特征在于, 所述存储设备包括 : 所述存储设备的控制器, 所述存储 设备的控制器包括高速缓存设备, 所述高速缓存设备包括固态硬盘, 所述固态硬盘包括所 述固态硬盘的控制器和所述固态硬盘的非易失性存储介质, 其中 : 所述存储设备的控制器, 用于接收主机发送的读数据请求, 其中, 所述读数据请求包括 待读取数据的逻辑地址 ; 将所述逻辑地址发送给所述固态硬盘的控制器 ; 所述固态硬盘的控制器。
7、, 用于根据所述逻辑地址在所述固态硬盘的非易失性存储介质 中保存的映射表中进行查询, 获得所述待读取数据的物理地址, 所述映射表中保存有所述 逻辑地址与所述物理地址之间的对应关系, 所述物理地址是指所述待读取数据保存在所述 固态硬盘的非易失性存储介质中的地址 ; 根据所述待读取数据的物理地址获得所述待读取 数据, 并发送给所述存储设备的控制器 ; 所述存储设备的控制器, 还用于向所述主机发送所述待读取数据。 权 利 要 求 书 CN 103677670 A 2 2/2 页 3 6. 根据权利要求 5 所述的存储设备, 其特征在于, 所述逻辑地址对应的逻辑空间大于 所述物理地址对应的物理空间。 。
8、7. 根据权利要求 5 所述的存储设备, 其特征在于, 所述存储设备的控制器, 还用于接收 所述主机发送写数据请求, 所述写数据请求中包括所述待读取数据 ; 将所述待读取数据发 送给所述固态硬盘的控制器 ; 所述固态硬盘的控制器, 还用于根据所述待读取数据的数据类型将所述待读取数据写 入所述固态硬盘的非易失性存储介质中。 8. 根据权利要求 7 所述的存储设备, 其特征在于, 所述固态硬盘的控制器, 具体用于根 据所述写数据请求中携带的所述待读取数据的数据类型, 将所述待读取数据写入所述固态 硬盘的非易失性存储介质中 ; 或者, 识别出所述待读取数据的数据类型, 并根据所述数据类型将所述待读取。
9、数据写入所述 固态硬盘的非易失性存储介质中。 权 利 要 求 书 CN 103677670 A 3 1/5 页 4 读数据的方法及装置 技术领域 0001 本发明涉及通信技术, 尤其涉及一种读数据的方法及装置。 背景技术 0002 当前, 在存储领域, 在传统磁盘的存储阵列中, 使用固态硬盘 (Solid State Device, 简称 SSD) 作为高速缓存, 以作为内存高速缓存的扩展。具体地, 以 SSD 作为高速缓 存, 可以将 SSD 提供的存储空间划分成若干个小块。在整个存储系统中, 维护有两层映射 表 : 第一层映射表是在存储阵列的内存中维护一个映射表, 这个映射表中记录了 “存。
10、储阵列 的逻辑单元号 (Logical Unit Number, 简称 LUN) 的逻辑块地址 (Logical Block Address, 简称 LBA) ” 到 “SSD 的 LBA” 的映射关系 ; 第二层映射表是 SSD 中维护的映射表, 这个映射表 中记录了 “SSD 的 LBA” 到 “SSD 闪存页的物理块地址 (Physics Block Address, 简称 PBA) ” 的映射关系。 0003 现有技术中, 主机读取数据时, 现在上述存储阵列的内存中进行查找, 如果没有获 取到所需数据, 则先根据 LUN 的 LBA 信息在第一层映射表中查找到对应的 SSD 的 LBA。
11、, 然后 根据第二层映射表查找到实际存储的位置信息 PBA, 进而访问实际存储数据的位置获取到 数据。 0004 但是, 采用现有技术通过两层映射表查找, 会使得存储设备读取数据的效率很低。 发明内容 0005 本发明实施例提供一种读数据的方法及装置, 用于解决存储设备读取数据效率低 的问题。 0006 本发明实施例第一方面提供一种读数据的方法, 所述方法应用于存储设备中, 所 述存储设备包括所述存储设备的控制器, 所述存储设备的控制器包括高速缓存设备, 所述 高速缓存设备包括固态硬盘, 其中所述固态硬盘包括所述固态硬盘的控制器和所述固态硬 盘的非易失性存储介质, 所述方法包括 : 0007 。
12、所述存储设备的控制器接收主机发送的读数据请求, 其中, 所述读数据请求包括 待读取数据的逻辑地址 ; 0008 所述存储设备的控制器将所述逻辑地址发送给所述固态硬盘的控制器 ; 0009 所述固态硬盘的控制器根据所述逻辑地址在所述固态硬盘的非易失性存储介质 中保存的映射表中进行查询, 获得所述待读取数据的物理地址, 所述映射表中保存有所述 逻辑地址与所述物理地址之间的对应关系, 所述物理地址是指所述待读取数据保存在所述 固态硬盘的非易失性存储介质中的地址 ; 0010 所述固态硬盘的控制器根据所述待读取数据的物理地址获得所述待读取数据, 并 发送给所述存储设备的控制器 ; 0011 所述存储设。
13、备的控制器向所述主机发送所述待读取数据。 0012 结合第一方面, 在第一方面的第一种可能的实施方式中, 所述逻辑地址对应的逻 说 明 书 CN 103677670 A 4 2/5 页 5 辑空间大于所述物理地址对应的物理空间。 0013 结合第一方面, 在第一方面的第二种可能的实施方式中, 所述方法还包括 : 0014 所述存储设备的控制器接收所述主机发送写数据请求, 所述写数据请求中包括所 述待读取数据 ; 0015 所述存储设备的控制器将所述待读取数据发送给所述固态硬盘的控制器 ; 0016 所述固态硬盘的控制器根据所述待读取数据的数据类型将所述待读取数据写入 所述固态硬盘的非易失性存储。
14、介质中。 0017 结合第一方面的第二种可能的实施方式, 在第一方面的第三种可能的实施方式 中, 所述固态硬盘的控制器根据所述待读取数据的数据类型将所述待读取数据写入所述固 态硬盘的非易失性存储介质中, 包括 : 0018 所述固态硬盘的控制器根据所述写数据请求中携带的所述待读取数据的数据类 型, 将所述待读取数据写入所述固态硬盘的非易失性存储介质中 ; 或者, 0019 所述固态硬盘的控制器识别出所述待读取数据的数据类型, 并根据所述数据类型 将所述待读取数据写入所述固态硬盘的非易失性存储介质中。 0020 本发明实施例第二方面提供一种存储设备, 所述存储设备包括 : 所述存储设备的 控制器。
15、, 所述存储设备的控制器包括高速缓存设备, 所述高速缓存设备包括固态硬盘, 所述 固态硬盘包括所述固态硬盘的控制器和所述固态硬盘的非易失性存储介质, 其中 : 0021 所述存储设备的控制器, 用于接收主机发送的读数据请求, 其中, 所述读数据请求 包括待读取数据的逻辑地址 ; 将所述逻辑地址发送给所述固态硬盘的控制器 ; 0022 所述固态硬盘的控制器, 用于根据所述逻辑地址在所述固态硬盘的非易失性存储 介质中保存的映射表中进行查询, 获得所述待读取数据的物理地址, 所述映射表中保存有 所述逻辑地址与所述物理地址之间的对应关系, 所述物理地址是指所述待读取数据保存在 所述固态硬盘的非易失性存。
16、储介质中的地址 ; 根据所述待读取数据的物理地址获得所述待 读取数据, 并发送给所述存储设备的控制器 ; 0023 所述存储设备的控制器, 还用于向所述主机发送所述待读取数据。 0024 结合第二方面, 在第二方面的第一种可能的实施方式中, 所述逻辑地址对应的逻 辑空间大于所述物理地址对应的物理空间。 0025 结合第二方面, 在第二方面的第二种可能的实施方式中, 所述存储设备的控制器, 还用于接收所述主机发送写数据请求, 所述写数据请求中包括所述待读取数据 ; 将所述待 读取数据发送给所述固态硬盘的控制器 ; 0026 所述固态硬盘的控制器, 还用于根据所述待读取数据的数据类型将所述待读取数。
17、 据写入所述固态硬盘的非易失性存储介质中。 0027 结合第二方面的第二种可能的实施方式, 在第二方面的第三种可能的实施方式 中, 所述固态硬盘的控制器, 具体用于根据所述写数据请求中携带的所述待读取数据的数 据类型, 将所述待读取数据写入所述固态硬盘的非易失性存储介质中 ; 或者, 0028 识别出所述待读取数据的数据类型, 并根据所述数据类型将所述待读取数据写入 所述固态硬盘的非易失性存储介质中。 0029 本发明实施例中, 非易失性存储介质中保存的映射表为一个映射表, 可以根据逻 辑地址直接查找物理地址, 来获取数据, 这样相对于现有技术的两次映射大大减小了上述 说 明 书 CN 103。
18、677670 A 5 3/5 页 6 存储设备以及需要读取该存储设备数据的主机的开销, 且提高了读取数据的效率。 附图说明 0030 为了更清楚地说明本发明实施例或现有技术中的技术方案, 下面将对实施例或现 有技术描述中所需要使用的附图作一简单地介绍, 显而易见地, 下面描述中的附图是本发 明的一些实施例, 对于本领域普通技术人员来讲, 在不付出创造性劳动性的前提下, 还可以 根据这些附图获得其他的附图。 0031 图 1 为本发明提供的读数据的方法实施例一的流程示意图 ; 0032 图 2 为本发明实施例提供的存储设备实施例一的结构示意图。 具体实施方式 0033 为使本发明实施例的目的、 。
19、技术方案和优点更加清楚, 下面将结合本发明实施例 中的附图, 对本发明实施例中的技术方案进行清楚、 完整地描述, 显然, 所描述的实施例是 本发明一部分实施例, 而不是全部的实施例。 基于本发明中的实施例, 本领域普通技术人员 在没有作出创造性劳动前提下所获得的所有其他实施例, 都属于本发明保护的范围。 0034 图 1 为本发明提供的读数据的方法实施例一的流程示意图, 该方法应用于存储设 备中, 该存储设备包括该存储设备的控制器, 该存储设备的控制器包括高速缓存设备, 该高 速缓存设备包括固态硬盘 (Solid State Drive, 简称 SSD) 。具体地, 该 SSD 包括该 SSD。
20、 的 控制器和该 SSD 的非易失性存储介质 (例如 Flash 颗粒) 。 0035 如图 1 所示, 该方法包括 : 0036 S101、 存储设备的控制器接收主机发送的读数据请求, 其中, 该读数据请求包括待 读取数据的逻辑地址。 0037 S102、 存储设备的控制器将上述逻辑地址发送给 SSD 的控制器。 0038 S103、 SSD 的控制器根据上述逻辑地址在上述 SSD 的非易失性存储介质中保存的 映射表中进行查询, 获得上述待读取数据的物理地址, 该映射表中保存有上述逻辑地址与 物理地址之间的对应关系, 该物理地址是指上述待读取数据保存在上述 SSD 的非易失性存 储介质中的地。
21、址。 0039 具体地, SSD 的控制器在映射表查询过程中, 如果发现上述逻辑地址不存在, 或者 上述逻辑地址对应的内容为空, 则向所述存储设备的控制器返回空 ; 如果查找到物理地址, 则继续进行下述步骤。 0040 S104、 SSD 的控制器根据上述待读取数据的物理地址获得上述待读取数据, 并发送 给上述存储设备的控制器。 0041 S105、 存储设备的控制器向主机发送上述待读取数据。 0042 本实施例中, 非易失性存储介质中保存的映射表为一个映射表, 可以根据逻辑地 址直接查找物理地址, 来获取数据, 这样相对于现有技术的两次映射大大减小了上述存储 设备和主机的开销, 且提高了读取。
22、数据的效率。 0043 具体实现过程中, 上述逻辑地址对应的逻辑空间大于上述物理地址对应的物理空 间。具体可以通过多种方式来实现, 例如采用比物理空间更大的一维索引表、 二级页表、 哈 希表、 排序树等来实现。 说 明 书 CN 103677670 A 6 4/5 页 7 0044 进一步地, 上述存储设备的控制器接收主机发送的写数据请求, 该写数据请求中 包括上述待读取数据。存储设备的控制器将该待读取数据发送给 SSD 的控制器, 该 SSD 的 控制器根据上述待读取数据的数据类型将上述待读取数据写入上述 SSD 的非易失性存储 介质中。以便后续根据读请求进行读取。 0045 上述 SSD 。
23、的控制器根据上述待读取数据的数据类型将上述待读取数据写入上述 SSD 的非易失性存储介质中, 主要是 SSD 的非易失性存储介质中不同类型的数据是缓存在 不同位置的。具体可以是, 将第一类数据和第二类数据缓存在 SSD 的非易失性存储介质中 的不同位置。其中, 第一类数据的价值高于第二类数据的价值。具体地, 上述第一类数据可 以是热点数据, 即高价值数据, 这些数据在未来工作中还会被频繁访问 ; 上述第二类数据为 低价值数据, 即在未来工作中这些数据很少会被访问, 或者不会再被访问。本发明实施例 中, 将第一类数据和第二类数据分别进行缓存, 在存储设备的存储空间不足时, SSD 的控制 器会优。
24、先释放第二类数据, 这样可以更合理的发挥高速缓存设备在实际应用中的价值。 0046 具体地, 上述 SSD 的控制器将上述待读取数据的数据类型将上述待读取数据写入 上述 SSD 的非易失性存储介质中, 可以为 : SSD 的控制器根据上述写数据请求中携带的上述 待读取数据的数据类型, 将上述待读取数据写入上述 SSD 的非易失性存储介质中。这种方 式中, 是由主机来识别数据类型, 直接携带在写数据请求中, SSD 的控制器按照写数据请求 中的数据类型分别进行缓存即可。或者, 0047 SSD 的控制器识别出上述待读取数据的数据类型, 并根据上述数据类型将上述待 读取数据写入上述 SSD 的非易。
25、失性存储介质中。这种方式中, 是由 SSD 的控制器自己来识 别数据类型, 先识别出数据类型再根据数据类型进行缓存。或者, 0048 主机向低速缓存设备写入或读取上述待读取数据时, 在上述 SSD 的非易失性存储 介质中备份一次上述待读取数据, SSD 的控制器根据该待读取数据的属性和频度, 识别出该 待读取数据的数据类型, 并根据上述数据类型将上述待读取数据写入上述 SSD 的非易失性 存储介质中。 0049 进一步地, 上述存储设备的控制器还侦听主机访问低速存储设备的访问信息, 并 根据上述访问信息识别出热点区域, 周期性的从上述低速存储设备中读取上述热点区域的 数据, 并将这些数据发送给。
26、SSD的控制器, 以使SSD的控制器根据上述数据类型将上述待读 取数据写入上述 SSD 的非易失性存储介质中。这种方式中, 主机在对低速存储设备进行访 问时, 存储设备的控制器会侦听到访问的数据, 存储设备的控制器的高速缓存设备并不真 正缓存这些访问数据, 而是根据这些访问来识别热点区域, 之后高速缓存设备可以周期性 的通过与低速存储设备之间的访问链路将热点区域中的数据读取过来, 以使 SSD 的控制器 根据上述数据类型将上述待读取数据写入上述 SSD 的非易失性存储介质中。 0050 另外, 上述 SSD 的控制器将第二类数据进行释放, 可以具体是, SSD 的控制器根据 近期最少使用 (L。
27、east Recently Used, 简称LRU) 算法, 识别出上述第二类数据进行释放, 即 淘汰掉这些数据, 节省高速缓存设备的空间。SSD 的控制器还可以根据近似的 LRU 算法, 并 结合时间局部性和空间局部性原理识别出第二类数据进行释放。其中近似的 LRU 算法可以 是各种 LRU 算法的变种, 例如最近未使用页淘汰 (Non Recently Used, 简称 NRU) 算法等。 0051 图2为本发明实施例提供的存储设备实施例一的结构示意图, 如图2所示, 该存储 设备包括 : 存储设备的控制器201, 该存储设备的控制器201包括高速缓存设备202, 高速缓 说 明 书 CN。
28、 103677670 A 7 5/5 页 8 存设备 202 包括固态硬盘 203, 具体地, 该固态硬盘 203 包括 : 固态硬盘的控制器 204 和固 态硬盘的非易失性存储介质 205。 0052 存储设备的控制器 201, 用于接收主机发送的读数据请求, 其中, 所述读数据请求 包括待读取数据的逻辑地址 ; 将所述逻辑地址发送给固态硬盘的控制器 204。固态硬盘的 控制器 204, 用于根据所述逻辑地址在所述固态硬盘的非易失性存储介质 204 中保存的映 射表中进行查询, 获得所述待读取数据的物理地址, 所述映射表中保存有所述逻辑地址与 所述物理地址之间的对应关系, 所述物理地址是指所。
29、述待读取数据保存在所述固态硬盘的 非易失性存储介质 204 中的地址 ; 根据所述待读取数据的物理地址获得所述待读取数据, 并发送给所述存储设备的控制器。 存储设备的控制器201, 还用于向所述主机发送所述待读 取数据。 0053 进一步地, 所述逻辑地址对应的逻辑空间大于所述物理地址对应的物理空间。 0054 上述存储设备的控制器 201 还用于接收所述主机发送写数据请求, 所述写数据请 求中包括所述待读取数据 ; 将所述待读取数据发送给固态硬盘的控制器 204。 0055 固态硬盘的控制器 204, 还用于根据所述待读取数据的数据类型将所述待读取数 据写入固态硬盘的非易失性存储介质 204。
30、 中。 0056 具体地, 固态硬盘的控制器 204, 根据所述写数据请求中携带的所述待读取数据的 数据类型, 将所述待读取数据写入所述固态硬盘的非易失性存储介质中 ; 或者, 识别出所述 待读取数据的数据类型, 并根据所述数据类型将所述待读取数据写入所述固态硬盘的非易 失性存储介质中。 0057 上述装置用于执行前述方法实施例, 其实现原理和技术效果类似, 在此不再赘述。 0058 本领域普通技术人员可以理解 : 实现上述各方法实施例的全部或部分步骤可以通 过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程 序在执行时, 执行包括上述各方法实施例的步骤 ; 而前述。
31、的存储介质包括 : ROM、 RAM、 磁碟 或者光盘等各种可以存储程序代码的介质。 0059 最后应说明的是 : 以上各实施例仅用以说明本发明的技术方案, 而非对其限制 ; 尽管参照前述各实施例对本发明进行了详细的说明, 本领域的普通技术人员应当理解 : 其 依然可以对前述各实施例所记载的技术方案进行修改, 或者对其中部分或者全部技术特征 进行等同替换 ; 而这些修改或者替换, 并不使相应技术方案的本质脱离本发明各实施例技 术方案的范围。 说 明 书 CN 103677670 A 8 1/2 页 9 图 1 说 明 书 附 图 CN 103677670 A 9 2/2 页 10 图 2 说 明 书 附 图 CN 103677670 A 10 。