Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
METHOD FOR MAPPING DISK ARRAY OF SOLID HARD DISK AND SOLID HARD DISK
Document Type and Number:
WIPO Patent Application WO/2014/000585
Kind Code:
A1
Abstract:
The present invention provides a method for mapping a disk array of a solid hard disk as well as the solid hard disk, and is applicable to the technical field of solid memory. The method comprises the steps of: setting a virtual address layer between a logic address layer and a physical address layer of the solid hard disk; respectively mapping a user data block of the logic address layer onto a corresponding virtual address layer; and the virtual address layer respectively mapping the user data block onto a corresponding physical address layer. Therefore, according to the present invention, the independence of the solid hard disk on the additional transfer interface part is reduced, and the manufacturing cost of the hard disk is lowered.

Inventors:
WANG MENG (CN)
XU WEIHUA (CN)
Application Number:
PCT/CN2013/077376
Publication Date:
January 03, 2014
Filing Date:
June 18, 2013
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
RAMAXEL TECHNOLOGY SHENZHEN LTD (CN)
International Classes:
G06F12/02; G06F3/06; G06F11/10
Foreign References:
CN101840364A2010-09-22
CN102405460A2012-04-04
US7904636B22011-03-08
US20100030948A12010-02-04
CN102830942A2012-12-19
Attorney, Agent or Firm:
LECOME INTELLETUAL PROPERTY AGNET LTD. (CN)
北京律诚同业知识产权代理有限公司 (CN)
Download PDF:
Claims:
权利要求书

1、 一种固态硬盘磁盘阵列映射的方法, 其特征在于, 所述方法包括: 在固态硬盘的逻辑地址层与物理地址层之间设置虚拟地址层;

将所述逻辑地址层的用户数据块分别映射到对应的所述虚拟地址层上; 所述虚拟地址层再将所述用户数据块分别映射到对应的所述物理地址层 上'

2、 根据权利要求 1所述的方法, 其特征在于, 所述逻辑地址层的每四个用 户数据和所述虚拟地址层的每四个用户数据和一个校验数据组成一个条带, 其 中所述虚拟地址层的第一到第四个用户数据分别对应于所述逻辑地址层的四个 用户数据。

3、 根据权利要求 2所述的方法, 其特征在于, 所述逻辑地址层的逻辑地址 给定的 LA地址 N, 存在 N = 4*Q + R ( 0 <= R < 4);

则存在如下的关系:

所述 LA所在的 Stripe为 Q;

所述 LA对应的 VA地址为 5*Q + R;

Stripe Q内 LA地址分别为: 4*Q + 0 ~4*Q + 3;

其中, LA表示逻辑地址; Stripe表示条带; VA表示虚拟地址。

4、 根据权利要求 3所述的方法, 其特征在于, 所述虚拟地址与物理地址之 间维持一个固定深度的映射表: g_v2p_table[MAX_VA]。

5、 根据权利要求 4所述的方法, 其特征在于, 在主机读取 LA_0数据: N = 4*0 + 0时, 根据所述 g_v2p_table映射表, 读取 VA_0 所在的物理地址下的用 户数据; 如果数据校验正确, 则直接返回给主机;

如果数据校验错误, 则读取 Stripe 0 内其他 VA 的数据: VA_1/VA_2/VA_3/VA_4 , 根据校验数据的产生规则恢复 VA_0的数据。

6、 一种固态硬盘, 包括逻辑地址层和物理地址层, 其特征在于, 所述固态 硬盘包括:

虚拟地址层, 设置于所述固态硬盘的逻辑地址层与物理地址层之间; 所述逻辑地址层的用户数据块分别映射到对应的所述虚拟地址层上; 所述 虚拟地址层再将所述用户数据块分别映射到对应的所述物理地址层上。 7、 根据权利要求 6所述的固态硬盘, 其特征在于, 所述逻辑地址层的每四 个用户数据和所述虚拟地址层的每四个用户数据和一个校验数据组成一个条 带, 其中所述虚拟地址层的第一到第四个用户数据分别对应于所述逻辑地址层 的四个用户数据。

8、 根据权利要求 7所述的固态硬盘, 其特征在于, 所述逻辑地址层的逻辑 给定的 LA地址 N, 存在 N = 4*Q + R ( 0 <= R < 4);

则存在如下的关系:

所述 LA所在的 Stripe为 Q;

所述 LA对应的 VA地址为 5*Q + R;

Stripe Q内 LA地址分别为: 4*Q + 0 ~4*Q + 3;

其中, LA表示逻辑地址; Stripe表示条带; VA表示虚拟地址;

所述虚拟地址与物理地址之间维持一个固定深度的映射表: g_v2p_table[MAX_VA]。

9、根据权利要求 8所述的固态硬盘, 其特征在于, 在主机读取 LA_0数据:

N = 4*0 + 0时, 根据所述 g_v2p_table映射表, 读取 VA_0 所在的物理地址下的 用户数据; 如果数据校验正确, 则直接返回给主机;

如果数据校验错误, 则读取 Stripe 0 内 其他 VA 的数据: VA_1/VA_2/VA_3/VA_4 , 根据校验数据的产生规则恢复 VA_0的数据。

10、 根据权利要求 6~9任一项所述的固态硬盘, 其特征在于, 所述固态硬 盘包括:

磁盘阵列管理模块, 用于将建立所述虚拟地址层; 并将所述逻辑地址层的 用户数据块分别映射到对应的所述虚拟地址层上; 再将所述虚拟地址层的用户 数据块分别映射到对应的所述物理地址层上; 和 /或

映射管理模块, 用于将建立所述虚拟地址层; 并将所述逻辑地址层的用户 数据块分别映射到对应的所述虚拟地址层上; 再将所述虚拟地址层的用户数据 块分别映射到对应的所述物理地址层上。

Description:
固态^:磁盘阵列映射的方法及其固态硬盘

技术领域

本发明涉及固态硬盘存储技术领域, 尤其涉及一种固态硬盘磁盘阵列映射 的方法及其固态硬盘。 背景技术

固态硬盘( Solid State Disk、 IDE FLASH DISK )用固态电子存储芯片阵列 而制成的硬盘, 由控制单元和存储单元(FLASH芯片)组成。 固态硬盘的接口 规范和定义、 功能及使用方法上与普通硬盘的完全相同, 在产品外形和尺寸上 也完全与普通硬盘一致。 广泛应用于军事、 车载、 工控、 视频监控、 网络监控、 网络终端、 电力、 医疗、 航空等、 导航设备等领域。

参见图 1 , 在一个中国申请号为 200710036050.5 , 发明名称为"基于 RAID 技术的固态硬盘存储卡"的发明专利中, 通过 PCI(Peripheral Component Interconnect, 外设组件互连标准) 、 PCIE ( PCI-Express, 最新的总线和接口标 准 ) 、 PCI-X ( Peripheral Components Interconnect, 并连的 PCI总线 )到 SAT A ( Serial Advanced Technology Attachment, 串行高级技术附件) 的转接卡 RAID ( Redundant Arrays of Inexpensive Disks , 磁盘阵歹 'J )控制器, 提高了系统的容 量 /读写速度和 I/O ( input/output, 输入输出接口 )处理能力。 该装置需要有接口 规范转接装置的存在, 使得多个 SSD之间形成 RAID的保护装置。 但是, 对于 应用量较大的单个固态硬盘的应用场景下, 该方案则无法实施。

参见图 2~图 3 , 在一个中国申请号为 201010285233.2, 发明名称为在固态 存储器中实现 RAID", 介绍了在固态存储系统中实现数据存储的系统 和技术, 着重介绍了一种 RAID装置的组成部分尤其是数据纠错保护策略 对于映射策 格以及 RAID Meta ( Redundant Arrays of Inexpensive Disks Meta-information , 磁 盘阵列元素可提供有关页面的元信息) , 数据的维护未提出有效的解决方案。

固态硬盘中的映射策略是整个系统的核心部分 , 引入 RAID 支持后, 采用 何种映射以及 RAID Meta数据管理策略对于产品的内存开销、 写放大、 设计复 杂度等方面影响甚大。 如图 2所示, LA_X为主机依次写入数据块的逻辑地址, 固件中对应分配有

PA_X_Y(X为独立可操作的 NAND设备号, Y为 NAND设备内的最小编程单位 全局页地址)物理地址, 则系统中需要维护如下两个表: 逻辑地址到 Stripe (条 带)的关联和 Stripe到物理地址组的关联。 在此情形下, 对于落在同一个 Stripe 内的 LA地址没有做任何约束, 当一个现有条带内的个别数据 (如 LA_0 )被改 写后, 必须占用新的条带 Stripe M (其内其他三个数据块发生了变化) 。 如此, 相关映射表的维护代价相当大。另外一方面, 当 LA_0被复写后,先前旧的 LA_0 中的数据可能被垃圾回收掉, 乃至物理上被擦除。 当 LA_2001数据出错时, 因 为此条带内的 PA_0_0 的数据已经被擦除, 无法用其余 4 个物理数据来恢复 LA—2001的数据。

综上可知, 现有的固态硬盘磁盘阵列映射技术在实际使用 上, 显然存在不 便与缺陷, 所以有必要加以改进。 发明内容

针对上述的缺陷, 本发明的目的在于提供一种固态硬盘磁盘阵列 映射的方 法及其固态硬盘, 减少了固态硬盘对于额外转接接口部件的依赖 性, 降低了固 态硬盘的制作成本。

为了实现上述目的, 本发明提供一种固态硬盘磁盘阵列映射的方法 , 所述 方法包括:

在固态硬盘的逻辑地址层与物理地址层之间设 置虚拟地址层;

将所述逻辑地址层的用户数据块分别映射到对 应的所述虚拟地址层上; 所述虚拟地址层再将所述用户数据块分别映射 到对应的所述物理地址层 上。

根据所述的方法, 所述逻辑地址层的每四个用户数据和所述虚拟 地址层的 一个校验数据组成一个条带, 其中所述虚拟地址层的第一到

地址层的虚拟地址之间的映射关系公式为:

给定的 LA地址 N, 存在 N = 4*Q + R ( 0 <= R < 4); 则存在如下的关系:

所述 LA所在的 Stripe为 Q;

所述 LA对应的 VA地址为 5*Q + R ;

Stripe Q内 LA地址分别为: 4*Q + 0 ~4*Q + 3;

其中, LA表示逻辑地址; Stripe表示条带; VA表示虚拟地址。

根据所述的方法, 所述虚拟地址与物理地址之间维持一个固定深 度的映射 表: g_v2p_table[MAX_VA]„

根据所述的方法, 在主机读取 LA_0 数据: N = 4*0 + 0 时, 根据所述 g_v2p_table映射表, 读取 VA_0 所在的物理地址下的用户数据; 如果数据校验 正确, 则直接返回给主机;

如果数据校验错误, 则读取 Stripe 0 内其他 VA 的数据: VA_1/VA_2/VA_3/VA_4 , 根据校验数据的产生规则恢复 VA_0的数据。

为了实现本发明的另一发明目的, 本发明还提供了一种固态硬盘, 包括逻 辑地址层和物理地址层, 所述固态硬盘包括:

虚拟地址层, 设置于所述固态硬盘的逻辑地址层与物理地址 层之间; 所述逻辑地址层的用户数据块分别映射到对应 的所述虚拟地址层上; 所述 虚拟地址层再将所述用户数据块分别映射到对 应的所述物理地址层上。

根据所述的固态硬盘, 所述逻辑地址层的每四个用户数据和所述虚拟 地址 层的每四个用户数据和一个校验数据组成一个 条带, 其中所述虚拟地址层的第 一到

虚拟地址层的虚拟地址之间的映射关系公式 为:

给定的 LA地址 N, 存在 N = 4*Q + R ( 0 <= R < 4);

则存在如下的关系:

所述 LA所在的 Stripe为 Q;

所述 LA对应的 VA地址为 5*Q + R;

Stripe Q内 LA地址分别为: 4*Q + 0 ~4*Q + 3;

其中, LA表示逻辑地址; Stripe表示条带; VA表示虚拟地址;

所述虚拟地址与物理地址之间维持一个固定深 度的映射表: g_v2p_table[MAX_VA]„ 根据所述的固态硬盘, 在主机读取 LA_0数据: N = 4*0 + 0时, 根据所述 g_v2p_table映射表, 读取 VA_0 所在的物理地址下的用户数据; 如果数据校验 正确, 则直接返回给主机;

如果数据校验错误, 则读取 Stripe 0 内 其他 VA 的数据: VA_1/VA_2/VA_3/VA_4 , 根据校验数据的产生规则恢复 VA_0的数据。

根据所述的固态硬盘, 所述固态硬盘包括:

磁盘阵列管理模块, 用于将建立所述虚拟地址层; 并将所述逻辑地址层的 用户数据块分别映射到对应的所述虚拟地址层 上; 再将所述虚拟地址层的用户 数据块分别映射到对应的所述物理地址层上; 和 /或

映射管理模块, 用于将建立所述虚拟地址层; 并将所述逻辑地址层的用户 数据块分别映射到对应的所述虚拟地址层上; 再将所述虚拟地址层的用户数据 块分别映射到对应的所述物理地址层上。

本发明通过在固态硬盘的逻辑地址层与物理地 址层之间设置虚拟地址层; 将所述逻辑地址层的用户数据块分别映射到对 应的所述虚拟地址层上; 所述虚 拟地址层再将所述用户数据块分别映射到对应 的所述物理地址层上。

由于在固态硬盘内部所使用的逻辑到物理地 址映射的基础上引入了虚拟地址 层, 提供了固态硬盘的内建 RAID支持, 无须引入额外的接口规范或者主机端 的参与, 并且在引入虚拟地址层后, 有效降低了 RAID Meta数据管理 /内存需求 等方面的开销, 使得内建 RAID功能的固态硬盘产品化成本降低。 附图说明

图 1是现有技术中的固态硬盘与 PC的连接示意图;

图 2是现有技术中的逻辑地址到物理地址的映射 意图;

图 3是现有技术中的逻辑地址到物理地址的映射 意图;

图 4是本发明第一实施例提供的固态硬盘的结构 意图;

图 5是本发明一个实施例提供的固态硬盘的结构 意图;

图 6是本发明一个实施例提供的条带的结构示意 ;

图 7是本发明的一个实施例提供的逻辑地址 -虚拟地址-物理地址的间接映射 的示意图;

图 8是本发明一个实施例提供主机复写逻辑地址 示意图; 图 9是本发明一个实施例提供的固态硬盘磁盘阵 映射的方法流程图。 具体实施方式

为了使本发明的目的、 技术方案及优点更加清楚明白, 以下结合附图及实 施例, 对本发明进行进一步详细说明。 应当理解, 此处所描述的具体实施例仅 仅用以解释本发明, 并不用于限定本发明。

参见图 4, 在本发明的第一实施例中提供了一种固态硬盘 100, 包括逻辑地 址层 10和物理地址层 20, 固态硬盘 100包括:

虚拟地址层 30, 设置于固态硬盘 100的逻辑地址层 10与物理地址层 20之 间;

逻辑地址层 10的用户数据块分别映射到对应的虚拟地址层 30上; 虚拟地 址层 30再将所述用户数据块分别映射到对应的物理 址层 20上。

参见图 5, 在本发明的一个实施例中, 固态硬盘 100包括:

磁盘阵列管理模块 40, 用于将建立虚拟地址层 30; 并将逻辑地址层 10的 用户数据块分别映射到对应的虚拟地址层 30上; 再将虚拟地址层 30的用户数 据块分别映射到对应的物理地址层 20上; 和 /或

映射管理模块 50, 用于将建立虚拟地址层 30; 并将逻辑地址层 10的用户 数据块分别映射到对应的虚拟地址层 30上; 再将所述虚拟地址层 30的用户数 据块分别映射到对应的物理地址层 20上。

在该实施例中, 固态硬盘 100采用内建 RAID的方式, 减少对于额外转接 接口部件的依赖性, 降低了产品成本开销; 适用于单个或者多个固态硬盘 100 等各种应用场景。 并且通过虚拟地址层 30对数据的映射的转换, 保证了用户数 据的可恢复性。

在本发明的第二实施例中, 逻辑地址层 10的每四个用户数据和虚拟地址层 30的每四个用户数据和一个校验数据组成一个 带,其中虚拟地址层 30的第一 到第四个用户数据分别对应于逻辑地址层 10的四个用户数据。

在该实施例中, 提出了基于虚拟地址的 RAID映射 /管理策略, 在维持对用 户寻址方式不变的前提下, 可以不需要额外内存开销即可实现 RAID条带的管 理。

在本发明的第三实施例中, 逻辑地址层 10的逻辑地址与所述条带以及与虚 拟地址层 30的虚拟地址之间的映射关系公式为:

给定的 LA地址 N, 存在 N = 4*Q + R ( 0 <= R < 4);

则存在如下的关系:

所述 LA所在的 Stripe为 Q;

所述 LA对应的 VA地址为 5*Q + R;

Stripe Q内 LA地址分别为: 4*Q + 0 ~4*Q + 3;

其中, LA表示逻辑地址; Stripe表示条带; VA表示虚拟地址。

另外, 所述虚拟地址与物理地址之间维持一个固定深 度的映射表: g_v2p_table[MAX_VA]。

在该实施例中, 如图 4所示, 主机访问操作如下: 主机 PC端基于逻辑地址 来访问固态硬盘 100, 访问范围可以是: LA_0 ~ LA_MAX。 经过固态硬盘 100 内部映射管理模块 50后,被转化成虚拟地址,进一步地被转换成 应的 PA (物 理地址)该物理地址是可以在固态硬盘 100内可以直接寻址到 NAND阵列进行 操作的地址。 Stripe (条带): 是指 RAID中具有数据容错 /恢复功能的数据块组。 如每四个逻辑地址数据块产生一个校验数据块 , 则对于主机访问范围 LA_0 ~ LA_MAX, 可以分为若干个组, 每个组属于一个 Stripe。 例如: Stripe 0内包含 LA_0, LA_1 , LA_2, LA_3 逻辑地址的用户数据块,分别映射到 VA_0, VA_1 , VA_2, VA_3 (VA_4为对应的校验数据块的虚拟地址); Stripe 1内包含 LA_4 , LA_5 , LA_6, LA_7 逻辑地址的用户数据块,分别映射到 VA_5, VA_6, VA_7, VA_8(VA_9为对应的校验数据块的虚拟地址)。 对以上的 Stripe 和 LA之间的 关系归纳抽象下, 则可以表达为 Stripe N 内包含 LA_4*N , LA_4*N+1 , LA_4*N+2, LA_4*N+3 逻辑地址的用户数据块, 对应虚拟地址为: VA_5*N, VA_5*N +1 , VA_5*N+2 , VA_5*N+3 (VA_5*N+4为该 Stripe内的校验数据块 的虚拟地址)。

在本发明的一个实施例中, 映射表如图 6所示, 在 LA与 PA之间引入了

VA层次, 存在如下的关系:

Stripe N的 LA组成如下: 用户数据: LA_4*N , LA_4*N + 1 , LA_4*N+2 , LA_4*N+3;校验数据:不占用有效 LA地址, 对主机隐藏。

Stripe N的 VA组成如下:用户数据: VA_5*N, VA_5*N +1 , VA_5*N+2, VA_5*N+3 , 校验数据: VA_5*N+4。 给定 LA地址 N, 存在 N = 4*Q + R ( 0 <= R < 4);

则存在如下的关系:

该 LA所在的 Stripe为 Q;

该 LA对应的 VA地址为 5*Q + R ;

Stripe Q内 LA地址分别为: 4*Q + 0 ~4*Q + 3; VA与 PA之间维持一个固定 深度的 映射表: 深度为 总 的 页数量。 因 此全局地维护一个 g_v2p_table[MAX_VA] ,这也是基于页映射常用的表项,其具体的存 策略可以 视内存大小全部 /部分地加载在内存中。 三个地址描述: LA/VA/PA, LA到 VA 的映射如前所描述; 而要真正对 NAND进行读写操作, 需要将 VA地址转换成 PA地址。 g_v2p_table正是这样的目的。 其索引为 VA, 值为 PA, MAX_VA 为最大的 VA数目。从每 4个 LA对应 4个 VA以及一个校验数据块 VA (共 5个 VA), 所以存在如下关系: MAX_VA = MAX_LA*5/4。

在主机读取 LA_0数据: N = 4*0 + 0时, 根据所述 g_v2p_table映射表, 读 取 VA_0 所在的物理地址下的用户数据; 如果数据校验正确, 则直接返回给主 机;

如果数据校验错误, 则读取 StripeO 内 其他 VA 的数据: VA_1/VA_2/VA_3/VA_4 , 根据校验数据的产生规则恢复 VA_0的数据。

参见图 7, 在本发明的另一个实施例中, 主机读取 LA_0数据: N = 4*0 + 0 根据 g_v2p_table映射表,读取 VA_0 所在的 PA数据。 如果数据校验正确, 则直接返回给主机。

如果数据校验错误, 则读取 Stripe 0 内 其他 VA 的数据: VA_1/VA_2/VA_3/VA_4 , 根据校验块的产生规则来恢复 VA_0的数据。

参见图 8, 主机复写 LA_2数据: N = 4*0 + 2 。 当主机复写了 LA_2的数据 时, 为保证 Stripe O的校验数据的有效性, 需要按照如下的规则进行写操作: 将新的数据写入到 PA_2_101地址, 更改 g_v2p_table[VA_2] = PA_2_101。 根据旧的 LA_2(VA_2)、 旧的 VA_4以及新的 LA_2 '的数据产生新的校验数据块, 写入到 PA_4_124中, 更改 g_v2p_table[VA_4] = PA_4_124。

在此情形下, Stripe 0的组成仍然维持 VA_0 ~ VA_4 , 其实际的物理地址 可以根据 g_v2p_table查询获得。

即使旧的 VA_2所在的 PA_2_100物理页被擦除, Stripe 0内的各个用户数 据块的校验数据块仍然有效, 因为该 Stripe 0内的各个数据块都是最新的用户有 效数据, 不会被垃圾回收掉, 且其校验数据块也是根据此组用户数据计算产 生。 因此, 可以根据旧的 VA_2, 旧的 VA_4以及新写入的 LA_2'(VA_2)数据, 生成 新的校验数据, 写入 VA_4中。

参见图 9, 在本发明的一个实施例中, 提供了一种固态硬盘 100内建 RAID 映射方法, 在固态硬盘 100 内部所使用的逻辑到物理地址映射的基础上引 入了 虚拟地址层 30, 提供了一种固态硬盘 100磁盘阵列映射的方法, 所述方法包括: 步骤 S901中,磁盘阵列管理模块 40/映射管理模块 50在固态硬盘 100的逻 辑地址层 10与物理地址层 20之间设置虚拟地址层 30;

步骤 S902中, 磁盘阵列管理模块 40/映射管理模块 50将逻辑地址层 10的 用户数据块分别映射到对应的虚拟地址层 30上;

步骤 S903中, 磁盘阵列管理模块 40/映射管理模块 50再将虚拟地址层 30 的用户数据块分别映射到对应的物理地址层 20上。

在该实施例中, 固态硬盘 100的内建 RAID支持, 无须引入额外的接口规 范或者主机端的参与。 引入虚拟地址层 30后, 有效降低了 RAID Meta数据管理 /内存需求等方面的开销,使得内建 RAID功能的固态硬盘 100产品化成本降低。

在本发明的一个实施例中, 逻辑地址层 10的每四个用户数据和虚拟地址层 30的每四个用户数据和一个校验数据组成一个 带,其中虚拟地址层 30的第一 到第四个用户数据分别对应于逻辑地址层 10的四个用户数据。 所述校验数据的 作用是当 Stripe N内任意一个用户数据丟失的时候,可以由条 内其他数据以及 这个校验数据恢复出来。 主机访问是基于逻辑地址 LA的, 任意一个 Stripe N内 的 VA_5*N+4没有映射到任何逻辑地址,所以主机是 有办法访问到该数据的。 并且主机能够访问到的 LA, 有且都有一个唯一的 VA地址与之对应( VA_5*N, VA_5*N +1 , VA_5*N+2, VA_5*N+3中某一个) 。

逻辑地址层 10的逻辑地址与所述条带以及与虚拟地址层 30的虚拟地址之 间的映射关系公式为: 给定的 LA (逻辑地址)地址 N, 存在 N = 4*Q + R ( 0 <= R < 4);

则存在如下的关系: 所述 LA所在的 Stripe为 Q;

所述 LA对应的 VA地址为 5*Q + R

Stripe Q内 LA地址分别为: 4*Q + 0 ~4*Q + 3;

N = 4*Q + R ( 0 <= R < 4)实际是对于一个逻辑地址 LA_N, 对于 N, Q 为 N 除以 4后整数值, R为对应的余数。 因为从前面可知, 每 4个连续的逻辑地址的 用户数据组成了一个 Stripe. 当采用 N= 4*Q +R表示后,我们可以方便知道其所 在的 Stripe为 Q, 偏移为 R。 其中, LA表示逻辑地址; Stripe表示条带; VA表 示虚拟地址。

所述虚拟地址与物理地址之间维持一个固定深 度的映射表: g_v2p_table[MAX_VA]„ 在主机读取 LA_0数据: N = 4*0 + 0 时, 根据所述 g_v2p_table映射表, 读取 VA_0 所在的物理地址下的用户数据; 如果数据校验 正确, 则直接返回给主机; 如果数据校验错误, 则读取 Stripe 0内其他 VA的数 据: VA_1/VA_2/VA_3/VA_4 , 根据校验数据的产生规则恢复 VA_0的数据。

综上所述, 本发明通过在固态硬盘的逻辑地址层与物理地 址层之间设置虚 拟地址层; 将所述逻辑地址层的用户数据块分别映射到对 应的所述虚拟地址层 上; 所述虚拟地址层再将所述用户数据块分别映射 到对应的所述物理地址层上。 由于在固态硬盘内部所使用的逻辑到物理地址 映射的基础上引入了虚拟地址 层, 提供了固态硬盘的内建 RAID支持, 无须引入额外的接口规范或者主机端 的参与, 并且在引入虚拟地址层后, 有效降低了 RAID Meta数据管理 /内存需求 等方面的开销, 使得内建 RAID功能的固态硬盘产品化成本降低。

当然, 本发明还可有其它多种实施例, 在不背离本发明精神及其实质的情 这些相应的改变和变形都应属于本发明所附的 权利要求的保护范围。