一种扩容固态硬盘及其扩容、数据写入和数据读取方法与流程

文档序号:29972088发布日期:2022-05-11 11:38阅读:465来源:国知局
一种扩容固态硬盘及其扩容、数据写入和数据读取方法与流程

1.本技术实施例涉及数据存储技术,尤指一种扩容固态硬盘及其扩容、数据写入和数据读取方法。


背景技术:

2.固态硬盘(ssd)作为一种新型的存储设备,具有存储空间大,读写速度快,运行噪音小,重量轻和体积小等优点。固态硬盘正在pc(个人计算机)等消费级领域和数据中心等企业级领域得到大规模应用。
3.由于需要存储的数据持续性增加,固态硬盘的使用者往往会面临着存储空间不足的问题。为了解决固态硬盘的存储空间不足的问题,目前存在以下解决方案:
4.1、使用者可以将当前固态硬盘拆解,增加固态硬盘存储介质的数量;该方法能够有效的增加当前固态硬盘的存储空间,但该方法也会中断扩容过程中当前固态硬盘的可用性(不能存储数据)。由于新增加存储介质,该固态硬盘还需要重新进行量产流程,影响原有存储数据的安全性。
5.2、使用者还可以将当前固态硬盘从主板上拆除,换上新的固态硬盘;该方法也会中断扩容过程中当前固态硬盘的可用性(不能存储数据),并且换上新的固态硬盘后,之前存储过数据的固态硬盘上的数据用户不能再访问。
6.3、使用者还可以通过第三方接口,接入移动硬盘;该方法可以不中断当前固态硬盘的可用性,但是由于第三方接口性能的限制,固态硬盘的使用者往往会面临存储数据的性能下降的问题。
7.在固态硬盘扩容过程中,不论是中断固态硬盘的存储数据的可用性还是降低数据存储的性能都会对使用者当前进行的业务产生重大不利影响。


技术实现要素:

8.本技术实施例提供了一种扩容固态硬盘及其扩容、数据写入和数据读取方法,能够为解决固态硬盘的存储空间不足的问题,以及保证当前需要扩容的固态硬盘在扩容过程中的数据存储可用性和数据存储性能的一致性提供技术基础。
9.本技术实施例提供了一种扩容固态硬盘,可以包括:主控模块以及与所述主控模块相连的存储介质、动态随机存取存储器dram、扩容接口和数据接口;
10.所述主控模块,设置为执行主机的读写命令解析、映射表管理以及存储介质读写命令控制;
11.所述存储介质,设置为存储用户数据和系统数据;
12.所述dram,设置为映射表和用户数据的暂存管理;
13.所述扩容接口,设置为与其它扩容固态硬盘中的扩容接口相连;
14.所述数据接口,设置为与主机的通讯接口相连。
15.在本技术的示例性实施例中,所述扩容接口可以包括:介质层,链路层和传输层;
16.所述介质层,可以设置为检测设备插入和拔出、执行数据流的并串转换或串并转换、执行数据比特流的双向传输以及协商传输速度和带宽;
17.所述链路层,可以设置为进行错误重传和增加数据校验位;
18.所述传输层,可以设置为将需要传输的数据封装成固定大小的数据包。
19.在本技术的示例性实施例中,所述介质层可以使用高速差分串行传输总线实现。
20.本技术实施例还提供了一种扩容固态硬盘的扩容方法,应用于与主机相连的第一扩容固态硬盘,所述第一扩容固态硬盘为上述的扩容固态硬盘;所述方法可以包括:
21.当检测到所述第一扩容固态硬盘的存储空间不足时,发出扩容提醒,并检测是否有任意的第二扩容固态硬盘接入所述第一扩容固态硬盘的第一扩容接口;所述第二扩容固态硬盘为上述的扩容固态硬盘;
22.当检测到有任意的第二扩容固态硬盘接入所述第一扩容接口时,获取所述第二扩容固态硬盘的存储空间大小;
23.采用中断机制告知所述主机有所述第二扩容固态硬盘接入,并根据所述主机的响应将所述第二扩容固态硬盘的存储空间大小发送给所述主机。
24.在本技术的示例性实施例中,所述获取所述第二扩容固态硬盘的存储空间大小,可以包括:
25.通过所述扩容接口向所述第二扩容固态硬盘发送第一命令,获取所述第二扩容固态硬盘根据所述第一命令返回的存储空间大小。
26.在本技术的示例性实施例中,所述根据所述主机的响应将所述第二扩容固态硬盘的存储空间大小发送给所述主机,可以包括:
27.接收所述主机在接收到中断后返回的第二命令,并根据所述第二命令向所述主机返回所述第二扩容固态硬盘的存储空间大小。
28.本技术实施例还提供了一种扩容固态硬盘的数据写入方法,可以应用于与主机相连的第一扩容固态硬盘,所述第一扩容固态硬盘的第一扩容接口与第二扩容固态硬盘的第二扩容接口相连,所述第一扩容固态硬盘和所述第二扩容固态硬盘均为上述的扩容固态硬盘;所述方法可以包括:
29.接收主机传输的数据以及所述数据对应的第一逻辑存储地址;
30.检测所述第一逻辑存储地址属于所述第一扩容固态硬盘的第一存储空间或者属于所述第二扩容固态硬盘的第二存储空间;
31.当检测出所述第一逻辑存储地址属于所述第一存储空间时,将所述数据写入所述第一扩容固态硬盘的第一存储介质中;
32.当检测出所述第一逻辑存储地址属于所述第二存储空间时,将所述数据写入所述第二扩容固态硬盘的第二存储介质中。
33.在本技术的示例性实施例中,所述将所述数据写入所述第二扩容固态硬盘的第二存储介质中,可以包括:
34.将所述第一逻辑存储地址转化为所述第二扩容固态硬盘中的第一逻辑地址;
35.将所述数据和所述第二逻辑地址通过所述第一扩容接口和所述第二扩容接口传输到所述第二存储介质中。
36.在本技术的示例性实施例中,所述将所述数据和所述第二逻辑地址通过所述第一
扩容接口和所述第二扩容接口传输到所述第二存储介质中,可以包括:
37.在所述第一扩容接口的第一传输层将所述数据按照预设大小封装成多个数据包;
38.由所述第一传输层将所述的数据包发送给所述第一扩容接口的第一链路层;
39.由所述第一链路层在所述多个数据包中的每个数据包的包尾加上校验码后,通过所述第一扩容接口的第一介质层传输给所述第二扩容接口,由所述第二扩容接口将加有所述校验码的多个数据包传输到所述第二存储介质中。
40.在本技术的示例性实施例中,所述方法还可以包括:
41.在将所述数据写入所述第一扩容固态硬盘的第一存储介质中以后,更新所述第一扩容固态硬盘中的第一dram中的映射表,并通过所述第一扩容固态硬盘的第一数据接口向所述主机返回写命令完成的信息;或者,
42.在将所述数据写入所述第二扩容固态硬盘的第二存储介质中以后,在所述第二扩容固态硬盘更新所述第二扩容固态硬盘中的第二dram中的映射表,并返回数据写入成功的信息以后,通过所述第一扩容固态硬盘的第一数据接口向所述主机返回写命令完成的信息。
43.本技术实施例还提供了一种扩容固态硬盘的数据读取方法,可以应用于与主机相连的第一扩容固态硬盘,所述第一扩容固态硬盘的第一扩容接口与第二扩容固态硬盘的第二扩容接口相连,所述第一扩容固态硬盘和所述第二扩容固态硬盘均为上述的扩容固态硬盘;所述方法可以包括:
44.获取主机传输的将要读取的第二逻辑存储地址;
45.检测所述第二逻辑存储地址属于所述第一扩容固态硬盘的第一存储空间或者属于所述第二扩容固态硬盘的第二存储空间;
46.当检测出所述第二逻辑存储地址属于所述第一存储空间时,根据所述第一逻辑存储地址查询所述第一扩容固态硬盘的第一映射表,并从所述第一扩容固态硬盘的第一存储介质中读取查询到的地址对应的数据;
47.当检测出所述第二逻辑存储地址属于所述第二存储空间时,将所述第二逻辑存储地址转化为所述第二扩容固态硬盘中的第二逻辑地址,以使得所述第二扩容固态硬盘根据所述第二逻辑地址查询所述第二扩容固态硬盘的第二映射表,并从所述第二扩容固态硬盘的第二存储介质中读取查询到的地址对应的数据。
48.在本技术的示例性实施例中,所述方法还可以包括:
49.在所述第一扩容固态硬盘从所述第一存储介质中读取到所述数据以后,将所述数据通过所述第一扩容固态硬盘的第一数据接口传输给所述主机;或者,
50.在所述第二扩容固态硬盘从所述第二存储介质中读取到所述数据以后,通过所述第二扩容接口和所述第一扩容接口接收所述第二扩容固态硬盘传输的所述数据,并将所述数据通过所述第一扩容固态硬盘的第一数据接口传输给所述主机。
51.与相关技术相比,本技术实施例的扩容固态硬盘可以包括主控模块以及与所述主控模块相连的存储介质、动态随机存取存储器dram、扩容接口和数据接口;所述主控模块,设置为执行主机的读写命令解析、映射表管理以及存储介质读写命令控制;所述存储介质,设置为存储用户数据和系统数据;所述dram,设置为映射表和用户数据的暂存管理;所述扩容接口,设置为与其它扩容固态硬盘中的扩容接口相连;所述数据接口,设置为与主机的通
讯接口相连。通过该实施例方案,为解决固态硬盘的存储空间不足的问题,以及保证当前需要扩容的固态硬盘在扩容过程中的数据存储可用性和数据存储性能的一致性提供了技术基础。
52.本技术的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本技术而了解。本技术的其他优点可通过在说明书以及附图中所描述的方案来实现和获得。
附图说明
53.附图用来提供对本技术技术方案的理解,并且构成说明书的一部分,与本技术的实施例一起用于解释本技术的技术方案,并不构成对本技术技术方案的限制。
54.图1为本技术实施例的扩容固态硬盘组成结构图;
55.图2为本技术实施例的扩容固态硬盘的扩容方法流程图;
56.图3为本技术实施例的第一扩容固态硬盘和第二扩容固态硬盘连接示意图;
57.图4为本技术实施例的扩容固态硬盘的数据写入方法流程图;
58.图5为本技术实施例的扩容固态硬盘的数据读取方法流程图。
具体实施方式
59.本技术描述了多个实施例,但是该描述是示例性的,而不是限制性的,并且对于本领域的普通技术人员来说显而易见的是,在本技术所描述的实施例包含的范围内可以有更多的实施例和实现方案。尽管在附图中示出了许多可能的特征组合,并在具体实施方式中进行了讨论,但是所公开的特征的许多其它组合方式也是可能的。除非特意加以限制的情况以外,任何实施例的任何特征或元件可以与任何其它实施例中的任何其他特征或元件结合使用,或可以替代任何其它实施例中的任何其他特征或元件。
60.本技术包括并设想了与本领域普通技术人员已知的特征和元件的组合。本技术已经公开的实施例、特征和元件也可以与任何常规特征或元件组合,以形成由权利要求限定的独特的发明方案。任何实施例的任何特征或元件也可以与来自其它发明方案的特征或元件组合,以形成另一个由权利要求限定的独特的发明方案。因此,应当理解,在本技术中示出和/或讨论的任何特征可以单独地或以任何适当的组合来实现。因此,除了根据所附权利要求及其等同替换所做的限制以外,实施例不受其它限制。此外,可以在所附权利要求的保护范围内进行各种修改和改变。
61.此外,在描述具有代表性的实施例时,说明书可能已经将方法和/或过程呈现为特定的步骤序列。然而,在该方法或过程不依赖于本文所述步骤的特定顺序的程度上,该方法或过程不应限于所述的特定顺序的步骤。如本领域普通技术人员将理解的,其它的步骤顺序也是可能的。因此,说明书中阐述的步骤的特定顺序不应被解释为对权利要求的限制。此外,针对该方法和/或过程的权利要求不应限于按照所写顺序执行它们的步骤,本领域技术人员可以容易地理解,这些顺序可以变化,并且仍然保持在本技术实施例的精神和范围内。
62.本技术实施例提供了一种扩容固态硬盘1,如图1所示,可以包括:主控模块11以及与所述主控模块11相连的存储介质12、动态随机存取存储器dram 13、扩容接口14和数据接口15;
63.所述主控模块11,设置为执行主机2的读写命令解析、映射表管理以及存储介质读写命令控制;
64.所述存储介质12,设置为存储用户数据和系统数据;
65.所述dram 13,设置为映射表和用户数据的暂存管理;
66.所述扩容接口14,设置为与其它扩容固态硬盘中的扩容接口相连;
67.所述数据接口15,设置为与主机2的通讯接口相连。
68.在本技术的示例性实施例中,所述的扩容固态硬盘是指具备动态扩容能力的固态硬盘。
69.在本技术的示例性实施例中,所述主控模块11主要完成主机端读写命令解析、映射表管理、对存储介质12的读写命令控制。
70.在本技术的示例性实施例中,存储介质12可以为nand flash(nand闪存),主要用于存储用户数据和系统数据(例如映射表,坏块表等)。
71.在本技术的示例性实施例中,dram(dynamic random access memory,即动态随机存取存储器)13主要完成映射表管理和用户数据的暂存管理。
72.在本技术的示例性实施例中,扩容接口14为动态扩容接口,将扩容接口14和其它具备动态扩容能力的固态硬盘(即扩容固态硬盘)中的扩容接口相连接,本扩容固态硬盘就能和其它扩容固态硬盘进行数据交换。是否具备扩容接口14也是本技术实施例方案的扩容固态硬盘区别于常规普通固态硬盘的重要标志之一。
73.在本技术的示例性实施例中,扩容固态硬盘上的扩容接口可以有多个。扩容固态硬盘可以通过扩容接口14同时连接多个扩容固态硬盘1,完成存储空间的极大扩展。
74.在本技术的示例性实施例中,数据接口15是扩容固态硬盘和主机进行通信的接口,该接口可以是sata(串行高级技术附件)、usb(通用串行总线)或者pcie(高速串行计算机扩展总线标准)等传统数据传输接口。主机通过数据接口15将用户数据写入到存储介质12中或者通过数据接口15从存储介质12中读出用户数据。
75.在本技术的示例性实施例中,所述扩容接口14可以包括:介质层,链路层和传输层;
76.所述介质层,可以设置为检测设备插入和拔出、执行数据流的并串转换或串并转换、执行数据比特流的双向传输以及协商传输速度和带宽;
77.所述链路层,可以设置为进行错误重传和增加数据校验位;
78.所述传输层,可以设置为将需要传输的数据封装成固定大小的数据包。
79.在本技术的示例性实施例中,为了保证扩容固态硬盘数据存储性能的一致性,本技术实施例方案中的扩容接口14可以由介质层,链路层和传输层三部分组成。
80.在本技术的示例性实施例中,介质层的功能是完成设备插入、拔出检测,完成数据流的并串转换/串并转换,完成数据比特流的双向传输,协商连接双方的传输速度和带宽;介质层在具体实现时可以使用高速差分串行传输总线来实现。
81.在本技术的示例性实施例中,链路层主要实现错误重传和增加数据校验位,保证传输数据完整性。
82.在本技术的示例性实施例中,传输层的功能是将需要传输的数据封装成固定大小的packet(数据包),在具体实现时,packet的大小可以是4kb。传输层可以为每个packet增
加一个独立的id(身份标识号)。
83.本技术实施例还提供了一种扩容固态硬盘的扩容方法,应用于与主机2相连的第一扩容固态硬盘,所述第一扩容固态硬盘为上述的扩容固态硬盘;如图2所示,所述方法可以包括步骤s101-s103:
84.s101、当检测到所述第一扩容固态硬盘的存储空间不足时,发出扩容提醒,并检测是否有任意的第二扩容固态硬盘接入所述第一扩容固态硬盘的第一扩容接口;所述第二扩容固态硬盘为上述的扩容固态硬盘;
85.s102、当检测到有任意的第二扩容固态硬盘接入所述第一扩容接口时,获取所述第二扩容固态硬盘的存储空间大小;
86.s103、采用中断机制告知所述主机2有所述第二扩容固态硬盘接入,并根据所述主机2的响应将所述第二扩容固态硬盘的存储空间大小发送给所述主机2。
87.在本技术的示例性实施例中,具备动态扩容能力的第一扩容固态硬盘a在刚开始部署使用时,和常规固态硬盘使用过程类似,将数据接口15通过专用的数据传输线(例如,sata传输线、pcie传输线等)连接到计算机或者服务器(即主机2)的主板上。主板上运行的操作系统就能检测到该第一扩容固态硬盘a,用户可以正常使用扩容固态硬盘a进行数据存储。当用户在使用的过程中发现第一扩容固态硬盘a的存储空间不足需要扩容时,用户可以通过扩容接口14(第一扩容固态硬盘a的第一扩容接口和第二扩容固态硬盘b的第二扩容接口),利用专用的数据传输线,将另一块具备动态扩容能力的第二扩容固态硬盘b连接到第一扩容固态硬盘a上。此时第二扩容固态硬盘b的第二数据接口不需要连接到主机2,如图3所示。
88.在本技术的示例性实施例中,所述获取所述第二扩容固态硬盘的存储空间大小,可以包括:
89.通过所述扩容接口向所述第二扩容固态硬盘发送第一命令,获取所述第二扩容固态硬盘根据所述第一命令返回的存储空间大小。
90.在本技术的示例性实施例中,第一扩容固态硬盘a通过第一数据接口(第一扩容固态硬盘a上的数据接口14)接入到主机,主机2检测到第一扩容固态硬盘a接入后,主机2可以发送命令command1(即第一命令)到第一扩容固态硬盘a获取第一扩容固态硬盘a存储空间大小k。
91.在本技术的示例性实施例中,主机2在存储空间k的范围内对第一扩容固态硬盘a进行读写操作。
92.在本技术的示例性实施例中,当第一扩容固态硬盘a的使用者发现扩容固态硬盘a存储空间不够主机使用时,使用者可以通过专用数据传输线将任意的第二扩容固态硬盘b的第二扩容接口和第一扩容固态硬盘a的第一扩容接口相连接,第二扩容固态硬盘b的第二数据接口不用连接到主机2。
93.在本技术的示例性实施例中,当第一扩容固态硬盘a检测到有设备(如第二扩容固态硬盘b)接入所述第一扩容接口时,通过第一扩容固态硬盘a的第一介质层与所接入的第二扩容固态硬盘b的第二介质层协商传输速度和传输带宽。
94.在本技术的示例性实施例中,所述根据所述主机的响应将所述第二扩容固态硬盘的存储空间大小发送给所述主机2,可以包括:
95.接收所述主机在接收到中断后返回的第二命令,并根据所述第二命令向所述主机2返回所述第二扩容固态硬盘的存储空间大小。
96.在本技术的示例性实施例中,第一扩容固态硬盘a通过第一扩容接口发送command2(即第二命令)到第二扩容固态硬盘b,获取第二扩容固态硬盘b的存储空间m。
97.在本技术的示例性实施例中,第一扩容固态硬盘a在获取了第二扩容固态硬盘b的存储空间m后,利用中断机制,通过数据接口15告知主机2有新设备接入。
98.在本技术的示例性实施例中,主机2在接收到中断后,发送command3(第三命令)到第一扩容固态硬盘a,以从第一扩容固态硬盘a获取第二扩容固态硬盘b的存储空间m。
99.在本技术的示例性实施例中,通过以上步骤完成了扩容过程。在扩容过程中,主机2可以正常发送读写命令到第一扩容固态硬盘a。
100.本技术实施例还提供了一种扩容固态硬盘的数据写入方法,可以应用于与主机相连的第一扩容固态硬盘,所述第一扩容固态硬盘的第一扩容接口与第二扩容固态硬盘的第二扩容接口相连,所述第一扩容固态硬盘和所述第二扩容固态硬盘均为上述的扩容固态硬盘;如图4所示,所述方法可以包括步骤s201-s204:
101.s201、接收主机传输的数据以及所述数据对应的第一逻辑存储地址;
102.s202、检测所述第一逻辑存储地址属于所述第一扩容固态硬盘的第一存储空间或者属于所述第二扩容固态硬盘的第二存储空间;
103.s203、当检测出所述第一逻辑存储地址属于所述第一存储空间时,将所述数据写入所述第一扩容固态硬盘的第一存储介质中;
104.s204、当检测出所述第一逻辑存储地址属于所述第二存储空间时,将所述数据写入所述第二扩容固态硬盘的第二存储介质中。
105.在本技术的示例性实施例中,在完成了扩容固态硬盘的扩容流程后,主机将要传输的数据{y1,y2,....,yn}赋予逻辑存储地址n(即第一逻辑存储地址),并将{y1,y2,....,yn}和逻辑存储地址n通过数据接口15传输到第一扩容固态硬盘a。
106.在本技术的示例性实施例中,第一扩容固态硬盘a在接收到数据{y1,y2,....,yn}和逻辑存储地址n后,对逻辑存储地址n进行检测,判断逻辑存储地址n是属于第一扩容固态硬盘a的存储空间k,还是属于第二扩容固态硬盘b的存储空间m。
107.在本技术的示例性实施例中,如果逻辑存储地址n属于存储空间k,则第一扩容固态硬盘a将数据{y1,y2,....,yn}写入到第一扩容固态硬盘a的第一存储介质中。
108.在本技术的示例性实施例中,在将所述数据{y1,y2,....,yn}写入所述第一扩容固态硬盘的第一存储介质中以后,更新所述第一扩容固态硬盘中的第一dram中的映射表,并通过所述第一扩容固态硬盘的第一数据接口向所述主机2返回写命令完成的信息。
109.在本技术的示例性实施例中,所述将所述数据写入所述第二扩容固态硬盘的第二存储介质中,可以包括:
110.将所述第一逻辑存储地址转化为所述第二扩容固态硬盘中的第一逻辑地址;
111.将所述数据和所述第二逻辑地址通过所述第一扩容接口和所述第二扩容接口传输到所述第二存储介质中。
112.在本技术的示例性实施例中,所述将所述数据和所述第二逻辑地址通过所述第一扩容接口和所述第二扩容接口传输到所述第二存储介质中,可以包括:
113.在所述第一扩容接口的第一传输层将所述数据按照预设大小封装成多个数据包;
114.由所述第一传输层将所述的数据包发送给所述第一扩容接口的第一链路层;
115.由所述第一链路层在所述多个数据包中的每个数据包的包尾加上校验码后,通过所述第一扩容接口的第一介质层传输给所述第二扩容接口,由所述第二扩容接口将加有所述校验码的多个数据包传输到所述第二存储介质中。
116.在本技术的示例性实施例中,如果逻辑存储地址n属于存储空间m,第一扩容固态硬盘a将逻辑存储地址n转换成第二扩容固态硬盘b中的逻辑地址p(即第一逻辑地址),则第一扩容固态硬盘a将数据{y1,y2,....,yn}和逻辑地址p通过第一扩容接口写入到第二扩容固态硬盘b中;具体写入方式可以包括:第一扩容固态硬盘a在第一扩容接口的传输层将数据{y1,y2,....,yn}按照4kb的大小封装成多个数据包,例如,{packet1,packet2,...,packetn},第一传输层将要传输的packet(数据包)发送给第一链路层,第一链路层将每个packet的包尾加上crc(循环冗余校验)校验码,然后通过第一介质层传输给第二扩容固态硬盘b。
117.在本技术的示例性实施例中,所述方法还可以包括:
118.在将所述数据写入所述第二扩容固态硬盘的第二存储介质中以后,在所述第二扩容固态硬盘更新所述第二扩容固态硬盘中的第二dram中的映射表,并返回数据写入成功的信息以后,通过所述第一扩容固态硬盘的第一数据接口向所述主机返回写命令完成的信息。
119.在本技术的示例性实施例中,第二扩容固态硬盘b在正确收到packet后,将packet写入到第二扩容固态硬盘b的第二存储介质中,并更新第二扩容固态硬盘b的第二dram的映射表。
120.在本技术的示例性实施例中,第二扩容固态硬盘b在写入packet后,返回写入成功状态到第一扩容固态硬盘a,第一扩容固态硬盘a将写成功的状态通过第一数据接口返回到主机2。
121.本技术实施例还提供了一种扩容固态硬盘的数据读取方法,可以应用于与主机2相连的第一扩容固态硬盘,所述第一扩容固态硬盘的第一扩容接口与第二扩容固态硬盘的第二扩容接口相连,所述第一扩容固态硬盘和所述第二扩容固态硬盘均为上述的扩容固态硬盘;如图5所示,所述方法可以包括步骤s301-s304:
122.s301、获取主机2传输的将要读取的第二逻辑存储地址;
123.s302、检测所述第二逻辑存储地址属于所述第一扩容固态硬盘的第一存储空间或者属于所述第二扩容固态硬盘的第二存储空间;
124.s303、当检测出所述第二逻辑存储地址属于所述第一存储空间时,根据所述第一逻辑存储地址查询所述第一扩容固态硬盘的第一映射表,并从所述第一扩容固态硬盘的第一存储介质中读取查询到的地址对应的数据;
125.s304、当检测出所述第二逻辑存储地址属于所述第二存储空间时,将所述第二逻辑存储地址转化为所述第二扩容固态硬盘中的第二逻辑地址,以使得所述第二扩容固态硬盘根据所述第二逻辑地址查询所述第二扩容固态硬盘的第二映射表,并从所述第二扩容固态硬盘的第二存储介质中读取查询到的地址对应的数据。
126.在本技术的示例性实施例中,在完成了扩容固态硬盘扩容流程后,在需要读取数
据时,主机2可以将要读取的逻辑存储地址c(即第二逻辑存储地址),通过数据接口15传输到第一扩容固态硬盘a;
127.在本技术的示例性实施例中,第一扩容固态硬盘a在接收到逻辑存储地址c后,可以对逻辑存储地址c进行检测,判断逻辑存储地址c是属于第一扩容固态硬盘a的存储空间k,还是属于第二扩容固态硬盘b的存储空间m。
128.在本技术的示例性实施例中,如果逻辑存储地址c属于存储空间k,则第一扩容固态硬盘a查询第一dram中的映射表,从第一存储介质中将数据{y1,y2,....,yn}读出来,然后通过第一数据接口向主机返回需要读取的数据{y1,y2,....,yn}。
129.在本技术的示例性实施例中,如果逻辑存储地址c属于存储空间m,则第一扩容固态硬盘a将逻辑存储地址c转换成第二扩容固态硬盘b中的逻辑地址d(即第二逻辑地址),并将逻辑地址d通过第一扩容接口和第二扩容接口写入到第二扩容固态硬盘b中。
130.在本技术的示例性实施例中,第二扩容固态硬盘b在正确收到逻辑地址d后,可以查询第二dram中的映射表,并从第二存储介质中读出数据{y1,y2,....,yn}。
131.在本技术的示例性实施例中,第二扩容固态硬盘b将读出的数据{y1,y2,....,yn}通过第二扩容接口和第一扩容借口传输给第一扩容固态硬盘a。
132.在本技术的示例性实施例中,第一扩容固态硬盘a将数据{y1,y2,....,yn}通过第一数据接口传输到主机。
133.在本技术的示例性实施例中,第一扩容固态硬盘a在收到主机传输的读取完成状态后,将该读取完成状态依次通过第一扩容接口和第二扩容接口传输给第二扩容固态硬盘b。
134.在本技术的示例性实施例中,至少包含以下优势:
135.1、在扩容的过程中,第一扩容固态硬盘a可以正常的响应主机2的读写命令,第一扩容固态硬盘a上已有的用户数据一直可以通过第一数据接口正常进行读出和写入操作。该动态扩容的方法保证了扩容固态硬盘在扩容过程中的数据存储可用性。
136.2、在扩容完成后,主机既可以读写第一扩容固态硬盘a上的数据,也可以读写第二扩容固态硬盘b上的数据。系统通过逻辑地址大小来区分主机2是想访问第一扩容固态硬盘a还是第二扩容固态硬盘b。无论是访问第一扩容固态硬盘a还是第二扩容固态硬盘b,访问的用户数据都是通过第一数据接口完成和主机2的传输。该动态扩容的方法保证了扩容固态硬盘数据存储性能的一致性。
137.本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些组件或所有组件可以被实施为由处理器,如数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于ram、rom、eeprom、闪存或其
他存储器技术、cd-rom、数字多功能盘(dvd)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1