CN102830942B - 固态硬盘磁盘阵列映射的方法及其固态硬盘 - Google Patents
固态硬盘磁盘阵列映射的方法及其固态硬盘 Download PDFInfo
- Publication number
- CN102830942B CN102830942B CN201210217582.XA CN201210217582A CN102830942B CN 102830942 B CN102830942 B CN 102830942B CN 201210217582 A CN201210217582 A CN 201210217582A CN 102830942 B CN102830942 B CN 102830942B
- Authority
- CN
- China
- Prior art keywords
- layer
- address layer
- virtual address
- user data
- solid state
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 239000007787 solid Substances 0.000 title claims abstract description 67
- 238000013507 mapping Methods 0.000 title claims abstract description 40
- 238000000034 method Methods 0.000 title claims abstract description 23
- 238000005516 engineering process Methods 0.000 abstract description 4
- 238000004519 manufacturing process Methods 0.000 abstract description 2
- 238000007726 management method Methods 0.000 description 12
- 238000010586 diagram Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 238000013523 data management Methods 0.000 description 4
- 230000007547 defect Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- OKTJSMMVPCPJKN-UHFFFAOYSA-N Carbon Chemical compound [C] OKTJSMMVPCPJKN-UHFFFAOYSA-N 0.000 description 1
- 241001269238 Data Species 0.000 description 1
- 230000003321 amplification Effects 0.000 description 1
- 229910052799 carbon Inorganic materials 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000004615 ingredient Substances 0.000 description 1
- 238000003199 nucleic acid amplification method Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0626—Reducing size or complexity of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
Abstract
本发明适用于固态存储技术领域,提供了一种固态硬盘磁盘阵列映射的方法及其固态硬盘,所述方法包括:在固态硬盘的逻辑地址层与物理地址层之间设置虚拟地址层;将所述逻辑地址层的用户数据块分别映射到对应的所述虚拟地址层上;所述虚拟地址层再将所述用户数据块分别映射到对应的所述物理地址层上。借此,本发明减少了固态硬盘对于额外转接接口部件的依赖性,降低了固态硬盘的制作成本。
Description
技术领域
本发明涉及固态硬盘存储技术领域,尤其涉及一种固态硬盘磁盘阵列映射的方法及其固态硬盘。
背景技术
固态硬盘(SolidStateDisk、IDEFLASHDISK)用固态电子存储芯片阵列而制成的硬盘,由控制单元和存储单元(FLASH芯片)组成。固态硬盘的接口规范和定义、功能及使用方法上与普通硬盘的完全相同,在产品外形和尺寸上也完全与普通硬盘一致。广泛应用于军事、车载、工控、视频监控、网络监控、网络终端、电力、医疗、航空等、导航设备等领域。
参见图1,在一个中国申请号为200710036050.5,发明名称为“基于RAID技术的固态硬盘存储卡”的发明专利中,通过PCI(PeripheralComponentInterconnect,外设组件互连标准)、PCIE(PCI-Express,最新的总线和接口标准)、PCI-X(PeripheralComponentsInterconnect,并连的PCI总线)到SATA(SerialAdvancedTechnologyAttachment,串行高级技术附件)的转接卡RAID(RedundantArraysofInexpensiveDisks,磁盘阵列)控制器,提高了系统的容量/读写速度和I/O(input/output,输入输出接口)处理能力。该装置需要有接口规范转接装置的存在,使得多个SSD之间形成RAID的保护装置。但是,对于应用量较大的单个固态硬盘的应用场景下,该方案则无法实施。
参见图2~图3,在一个中国申请号为201010285233.2,发明名称为在固态存储器中实现RAID”,介绍了在固态存储系统中实现数据存储的系统和技术,着重介绍了一种RAID装置的组成部分尤其是数据纠错保护策略,对于映射策略以及RAIDMeta(RedundantArraysofInexpensiveDisksMeta-information,磁盘阵列元素可提供有关页面的元信息),数据的维护未提出有效的解决方案。
固态硬盘中的映射策略是整个系统的核心部分,引入RAID支持后,采用何种映射以及RAIDMeta数据管理策略对于产品的内存开销、写放大、设计复杂度等方面影响甚大。
如图2所示,LA_X为主机依次写入数据块的逻辑地址,固件中对应分配有PA_X_Y(X为独立可操作的NAND设备号,Y为NAND设备内的最小编程单位全局页地址)物理地址,则系统中需要维护如下两个表:逻辑地址到Stripe(条带)的关联和Stripe到物理地址组的关联。在此情形下,对于落在同一个Stripe内的LA地址没有做任何约束,当一个现有条带内的个别数据(如LA_0)被改写后,必须占用新的条带StripeM(其内其他三个数据块发生了变化)。如此,相关映射表的维护代价相当大。另外一方面,当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;
StripeQ内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所在的物理地址下的用户数据;如果数据校验正确,则直接返回给主机;
如果数据校验错误,则读取Stripe0内其他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;
StripeQ内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所在的物理地址下的用户数据;如果数据校验正确,则直接返回给主机;
如果数据校验错误,则读取Stripe0内其他VA的数据:VA_1/VA_2/VA_3/VA_4,根据校验数据的产生规则恢复VA_0的数据。
根据所述的固态硬盘,所述固态硬盘包括:
磁盘阵列管理模块,用于将建立所述虚拟地址层;并将所述逻辑地址层的用户数据块分别映射到对应的所述虚拟地址层上;再将所述虚拟地址层的用户数据块分别映射到对应的所述物理地址层上;和/或
映射管理模块,用于将建立所述虚拟地址层;并将所述逻辑地址层的用户数据块分别映射到对应的所述虚拟地址层上;再将所述虚拟地址层的用户数据块分别映射到对应的所述物理地址层上。
本发明通过在固态硬盘的逻辑地址层与物理地址层之间设置虚拟地址层;将所述逻辑地址层的用户数据块分别映射到对应的所述虚拟地址层上;所述虚拟地址层再将所述用户数据块分别映射到对应的所述物理地址层上。
由于在固态硬盘内部所使用的逻辑到物理地址映射的基础上引入了虚拟地址层,提供了固态硬盘的内建RAID支持,无须引入额外的接口规范或者主机端的参与,并且在引入虚拟地址层后,有效降低了RAIDMeta数据管理/内存需求等方面的开销,使得内建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;
StripeQ内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。例如:Stripe0内包含LA_0,LA_1,LA_2,LA_3逻辑地址的用户数据块,分别映射到VA_0,VA_1,VA_2,VA_3(VA_4为对应的校验数据块的虚拟地址);Stripe1内包含LA_4,LA_5,LA_6,LA_7逻辑地址的用户数据块,分别映射到VA_5,VA_6,VA_7,VA_8(VA_9为对应的校验数据块的虚拟地址)。对以上的Stripe和LA之间的关系归纳抽象下,则可以表达为StripeN内包含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层次,存在如下的关系:
StripeN的LA组成如下:用户数据:LA_4*N,LA_4*N+1,LA_4*N+2,LA_4*N+3;校验数据:不占用有效LA地址,对主机隐藏。
StripeN的VA组成如下:用户数据:VA_5*N,VA_5*N+1,VA_5*N+2,VA_5*N+3,校验数据:VA_5*N+4。
LA与Stripe以及VA之间的映射可以由公式推导出来:
给定LA地址N,存在N=4*Q+R(0<=R<4);
则存在如下的关系:
该LA所在的Stripe为Q;
该LA对应的VA地址为5*Q+R;
StripeQ内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所在的物理地址下的用户数据;如果数据校验正确,则直接返回给主机;
如果数据校验错误,则读取Stripe0内其他VA的数据:VA_1/VA_2/VA_3/VA_4,根据校验数据的产生规则恢复VA_0的数据。
参见图7,在本发明的另一个实施例中,主机读取LA_0数据:N=4*0+0
根据g_v2p_table映射表,读取VA_0所在的PA数据。如果数据校验正确,则直接返回给主机。
如果数据校验错误,则读取Stripe0内其他VA的数据:VA_1/VA_2/VA_3/VA_4,根据校验块的产生规则来恢复VA_0的数据。
参见图8,主机复写LA_2数据:N=4*0+2。当主机复写了LA_2的数据时,为保证Stripe0的校验数据的有效性,需要按照如下的规则进行写操作:
将新的数据写入到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。
在此情形下,Stripe0的组成仍然维持VA_0~VA_4,其实际的物理地址可以根据g_v2p_table查询获得。
即使旧的VA_2所在的PA_2_100物理页被擦除,Stripe0内的各个用户数据块的校验数据块仍然有效,因为该Stripe0内的各个数据块都是最新的用户有效数据,不会被垃圾回收掉,且其校验数据块也是根据此组用户数据计算产生。因此,可以根据旧的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后,有效降低了RAIDMeta数据管理/内存需求等方面的开销,使得内建RAID功能的固态硬盘100产品化成本降低。
在本发明的一个实施例中,逻辑地址层10的每四个用户数据和虚拟地址层30的每四个用户数据和一个校验数据组成一个条带,其中虚拟地址层30的第一到第四个用户数据分别对应于逻辑地址层10的四个用户数据。所述校验数据的作用是当StripeN内任意一个用户数据丢失的时候,可以由条带内其他数据以及这个校验数据恢复出来。主机访问是基于逻辑地址LA的,任意一个StripeN内的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
StripeQ内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所在的物理地址下的用户数据;如果数据校验正确,则直接返回给主机;如果数据校验错误,则读取Stripe0内其他VA的数据:VA_1/VA_2/VA_3/VA_4,根据校验数据的产生规则恢复VA_0的数据。
综上所述,本发明通过在固态硬盘的逻辑地址层与物理地址层之间设置虚拟地址层;将所述逻辑地址层的用户数据块分别映射到对应的所述虚拟地址层上;所述虚拟地址层再将所述用户数据块分别映射到对应的所述物理地址层上。由于在固态硬盘内部所使用的逻辑到物理地址映射的基础上引入了虚拟地址层,提供了固态硬盘的内建RAID支持,无须引入额外的接口规范或者主机端的参与,并且在引入虚拟地址层后,有效降低了RAIDMeta数据管理/内存需求等方面的开销,使得内建RAID功能的固态硬盘产品化成本降低。
当然,本发明还可有其它多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
Claims (7)
1.一种固态硬盘磁盘阵列映射的方法,其特征在于,所述方法包括:
在固态硬盘的逻辑地址层与物理地址层之间设置虚拟地址层;
将所述逻辑地址层的用户数据块分别映射到对应的所述虚拟地址层上;
所述虚拟地址层再将所述用户数据块分别映射到对应的所述物理地址层上;
所述逻辑地址层的每四个用户数据和所述虚拟地址层的每四个用户数据和一个校验数据组成一个条带,其中所述虚拟地址层的第一到第四个用户数据分别对应于所述逻辑地址层的四个用户数据;
所述逻辑地址层的逻辑地址与所述条带以及与所述虚拟地址层的虚拟地址之间的映射关系公式为:
给定的LA地址N,存在N=4*Q+R(0<=R<4);
则存在如下的关系:
所述LA所在的Stripe为Q;
所述LA对应的VA地址为5*Q+R;
StripeQ内LA地址分别为:4*Q+0~4*Q+3;
其中,LA表示逻辑地址;Stripe表示条带;VA表示虚拟地址,Q为N除以4后整数值,R为对应的余数。
2.根据权利要求1所述的方法,其特征在于,所述虚拟地址与物理地址之间维持一个固定深度的映射表:g_v2p_table[MAX_VA];所述固定深度为固定的总的页数量。
3.根据权利要求2所述的方法,其特征在于,在主机读取LA_0数据:N=4*0+0时,根据所述g_v2p_table映射表,读取VA_0所在的物理地址下的用户数据;如果数据校验正确,则直接返回给主机;
如果数据校验错误,则读取Stripe0内其他VA的数据:VA_1/VA_2/VA_3/VA_4,根据校验数据的产生规则恢复VA_0的数据。
4.一种固态硬盘,包括逻辑地址层和物理地址层,其特征在于,所述固态硬盘包括:
虚拟地址层,设置于所述固态硬盘的逻辑地址层与物理地址层之间;
所述逻辑地址层的用户数据块分别映射到对应的所述虚拟地址层上;所述虚拟地址层再将所述用户数据块分别映射到对应的所述物理地址层上;
所述逻辑地址层的每四个用户数据和所述虚拟地址层的每四个用户数据和一个校验数据组成一个条带,其中所述虚拟地址层的第一到第四个用户数据分别对应于所述逻辑地址层的四个用户数据;
所述逻辑地址层的逻辑地址与所述条带以及与所述虚拟地址层的虚拟地址之间的映射关系公式为:
给定的LA地址N,存在N=4*Q+R(0<=R<4);
则存在如下的关系:
所述LA所在的Stripe为Q;
所述LA对应的VA地址为5*Q+R;
StripeQ内LA地址分别为:4*Q+0~4*Q+3;
其中,LA表示逻辑地址;Stripe表示条带;VA表示虚拟地址;Q为N除以4后整数值,R为对应的余数。
5.根据权利要求4所述的固态硬盘,其特征在于,所述虚拟地址与物理地址之间维持一个固定深度的映射表:g_v2p_table[MAX_VA];所述固定深度为固定的总的页数量。
6.根据权利要求5所述的固态硬盘,其特征在于,在主机读取LA_0数据:N=4*0+0时,根据所述g_v2p_table映射表,读取VA_0所在的物理地址下的用户数据;如果数据校验正确,则直接返回给主机;
如果数据校验错误,则读取Stripe0内其他VA的数据:VA_1/VA_2/VA_3/VA_4,根据校验数据的产生规则恢复VA_0的数据。
7.根据权利要求4~6任一项所述的固态硬盘,其特征在于,所述固态硬盘包括:
磁盘阵列管理模块,用于将建立所述虚拟地址层;并将所述逻辑地址层的用户数据块分别映射到对应的所述虚拟地址层上;再将所述虚拟地址层的用户数据块分别映射到对应的所述物理地址层上;和/或
映射管理模块,用于将建立所述虚拟地址层;并将所述逻辑地址层的用户数据块分别映射到对应的所述虚拟地址层上;再将所述虚拟地址层的用户数据块分别映射到对应的所述物理地址层上。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210217582.XA CN102830942B (zh) | 2012-06-28 | 2012-06-28 | 固态硬盘磁盘阵列映射的方法及其固态硬盘 |
PCT/CN2013/077376 WO2014000585A1 (zh) | 2012-06-28 | 2013-06-18 | 固态硬盘磁盘阵列映射的方法及其固态硬盘 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210217582.XA CN102830942B (zh) | 2012-06-28 | 2012-06-28 | 固态硬盘磁盘阵列映射的方法及其固态硬盘 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102830942A CN102830942A (zh) | 2012-12-19 |
CN102830942B true CN102830942B (zh) | 2016-06-22 |
Family
ID=47334096
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210217582.XA Expired - Fee Related CN102830942B (zh) | 2012-06-28 | 2012-06-28 | 固态硬盘磁盘阵列映射的方法及其固态硬盘 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN102830942B (zh) |
WO (1) | WO2014000585A1 (zh) |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102830942B (zh) * | 2012-06-28 | 2016-06-22 | 记忆科技(深圳)有限公司 | 固态硬盘磁盘阵列映射的方法及其固态硬盘 |
CN107066202B (zh) * | 2013-03-11 | 2020-07-28 | 北京忆恒创源科技有限公司 | 具有多个固态盘的存储设备 |
CN103150261B (zh) * | 2013-03-11 | 2017-02-08 | 北京忆恒创源科技有限公司 | 用于同时访问多个固态盘的方法与装置 |
CN103440206B (zh) * | 2013-07-25 | 2016-06-01 | 记忆科技(深圳)有限公司 | 一种固态硬盘及其混合映射方法 |
CN103744798A (zh) * | 2013-12-17 | 2014-04-23 | 记忆科技(深圳)有限公司 | 固态硬盘的垃圾回收方法 |
CN103677674B (zh) * | 2013-12-27 | 2017-01-04 | 华为技术有限公司 | 一种数据处理方法及装置 |
CN105893188B (zh) | 2014-09-30 | 2018-12-14 | 伊姆西公司 | 用于加速磁盘阵列的数据重构的方法和装置 |
CN106326134B (zh) * | 2015-06-30 | 2019-10-01 | 华为技术有限公司 | Ftl地址映射的方法及装置 |
US10169141B2 (en) * | 2016-08-11 | 2019-01-01 | SK Hynix Inc. | Modifiable stripe length in flash memory devices |
CN108153482B (zh) * | 2016-12-05 | 2021-09-07 | 厦门旌存半导体技术有限公司 | Io命令处理方法与介质接口控制器 |
CN107391391B (zh) * | 2017-07-19 | 2019-05-14 | 深圳大普微电子科技有限公司 | 在固态硬盘的ftl实现数据拷贝的方法、系统及固态硬盘 |
CN107562644B (zh) * | 2017-08-11 | 2021-02-09 | 记忆科技(深圳)有限公司 | 一种固态硬盘映射表的压缩方法 |
CN107832168B (zh) * | 2017-10-13 | 2020-10-16 | 记忆科技(深圳)有限公司 | 一种固态硬盘数据保护的方法 |
CN112015668B (zh) * | 2019-05-31 | 2023-03-31 | 西安诺瓦星云科技股份有限公司 | 物理地址获取方法及装置和多媒体播放盒 |
CN110569000A (zh) * | 2019-09-17 | 2019-12-13 | 深圳忆联信息系统有限公司 | 基于固态硬盘阵列的主机端raid管理方法和装置 |
CN114817093B (zh) * | 2022-06-30 | 2022-12-02 | 苏州浪潮智能科技有限公司 | 一种数据传输方法、系统、装置及存储介质 |
CN117762529B (zh) * | 2023-12-26 | 2024-06-21 | 合芯科技有限公司 | 一种服务器批量组磁盘阵列的方法、装置、设备及介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101840364A (zh) * | 2010-01-29 | 2010-09-22 | 成都市华为赛门铁克科技有限公司 | 一种恢复数据的方法及存储装置 |
US7904636B2 (en) * | 2002-01-11 | 2011-03-08 | Stec, Inc. | System and method for accessing interleaved data in a memory device |
CN102405460A (zh) * | 2009-02-11 | 2012-04-04 | 艾梵尼达有限公司 | 虚拟存储系统及其运行方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20100012938A (ko) * | 2008-07-30 | 2010-02-09 | 주식회사 하이닉스반도체 | 웨어 레벨링을 수행하는 반도체 스토리지 시스템 및 그제어 방법 |
CN101976176B (zh) * | 2010-08-19 | 2011-12-14 | 北京同有飞骥科技股份有限公司 | 一种水平型分组并行分布校验的磁盘阵列的构建方法 |
CN102830942B (zh) * | 2012-06-28 | 2016-06-22 | 记忆科技(深圳)有限公司 | 固态硬盘磁盘阵列映射的方法及其固态硬盘 |
-
2012
- 2012-06-28 CN CN201210217582.XA patent/CN102830942B/zh not_active Expired - Fee Related
-
2013
- 2013-06-18 WO PCT/CN2013/077376 patent/WO2014000585A1/zh active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7904636B2 (en) * | 2002-01-11 | 2011-03-08 | Stec, Inc. | System and method for accessing interleaved data in a memory device |
CN102405460A (zh) * | 2009-02-11 | 2012-04-04 | 艾梵尼达有限公司 | 虚拟存储系统及其运行方法 |
CN101840364A (zh) * | 2010-01-29 | 2010-09-22 | 成都市华为赛门铁克科技有限公司 | 一种恢复数据的方法及存储装置 |
Also Published As
Publication number | Publication date |
---|---|
CN102830942A (zh) | 2012-12-19 |
WO2014000585A1 (zh) | 2014-01-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102830942B (zh) | 固态硬盘磁盘阵列映射的方法及其固态硬盘 | |
CN104102585B (zh) | 映射信息记录方法、存储器控制器与存储器储存装置 | |
US9996435B2 (en) | Reliability scheme using hybrid SSD/HDD replication with log structured management | |
CN103699344B (zh) | 非易失性存储器装置及其操作方法 | |
CN104699413B (zh) | 数据管理方法、存储器存储装置及存储器控制电路单元 | |
EP2483782B1 (en) | Power interrupt management | |
CN104615550B (zh) | 一种存储设备坏块的处理方法、装置及存储设备 | |
CN104583930B (zh) | 数据迁移的方法、控制器和数据迁移装置 | |
CN102792284B (zh) | 存储器设备耗损均衡技术 | |
CN104699417B (zh) | 数据储存装置以及其数据存取方法 | |
US9971514B2 (en) | Dynamic logical groups for mapping flash memory | |
DE102009026189A1 (de) | Intelligenter Speicher-Transfer-Manager für den Befehlsablauf für Data-Striping zu Raw-NAND-Flash-Speicher-Modulen | |
CN105745627A (zh) | 用于非易失性存储器存储设备的地址转换 | |
TW201437807A (zh) | 映射資訊記錄方法、記憶體控制器與記憶體儲存裝置 | |
US9268688B2 (en) | Data management method, memory controller and memory storage apparatus | |
CN103377143B (zh) | 存储器管理方法、存储器控制器与存储器存储装置 | |
US20210240584A1 (en) | Data recovery method, system, and apparatus in storage system | |
TWI498738B (zh) | 檔案保護方法與系統及其記憶體控制器與記憶體儲存裝置 | |
CN102609358B (zh) | 聚集静态数据的方法及其固态硬盘 | |
CN102541755A (zh) | 闪存存储器及其接收数据的方法 | |
CN102867046B (zh) | 基于固态硬盘的数据库优化方法及系统 | |
CN103593255B (zh) | 数据管理方法、记忆存储存储器与记忆存储控制器 | |
CN201237907Y (zh) | 单盘结构的固态raid系统 | |
CN113918087B (zh) | 存储装置以及用于管理存储装置中的命名空间的方法 | |
CN102375781B (zh) | 数据保护方法、存储器控制器及可携式存储器储存装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20160622 |
|
CF01 | Termination of patent right due to non-payment of annual fee |