固态硬盘的数据写入方法及系统.pdf

上传人:62****3 文档编号:4258180 上传时间:2018-09-12 格式:PDF 页数:10 大小:2.02MB
返回 下载 相关 举报
摘要
申请专利号:

CN201210209721.4

申请日:

2012.06.25

公开号:

CN102789422A

公开日:

2012.11.21

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效IPC(主分类):G06F 12/02申请日:20120625|||公开

IPC分类号:

G06F12/02

主分类号:

G06F12/02

申请人:

记忆科技(深圳)有限公司

发明人:

郁志平; 王猛; 徐伟华

地址:

518000 广东省深圳市南山区蛇口后海大道东角头东南工贸大厦5楼

优先权:

专利代理机构:

北京律诚同业知识产权代理有限公司 11006

代理人:

刘健;黄韧敏

PDF下载: PDF下载
内容摘要

本发明适用于计算机技术领域,提供了一种固态硬盘的数据写入方法,所述方法包括:将逻辑块内包含的逻辑页划分为若干第一写入点和第二写入点,当所述固态硬盘接收写命令时,选择其中的一个所述第一写入点作为所述写命令的起始写入点。更好的是,逻辑块的一个存储单元包括两个所述逻辑页,分别被划分为第一写入点和第二写入点,用于存储低位数据和高位数据。借此保证主机的当前写命令不会破坏之前已写入逻辑块内的数据。

权利要求书

1.一种固态硬盘的数据写入方法,其特征在于,所述方法包括:
将逻辑块内包含的逻辑页划分为若干第一写入点和第二写入点,当所述固
态硬盘接收写命令时,选择其中的一个所述第一写入点作为所述写命令的起始
写入点。
2.根据权利要求1所述的固态硬盘的数据写入方法,其特征在于,所述逻
辑块的一个存储单元包括两个所述逻辑页,所述两个逻辑页分别被划分为对应
的所述第一写入点和第二写入点。
3.根据权利要求1所述的固态硬盘的数据写入方法,其特征在于,若所述
写命令的结束写入点之后排列有第二写入点,则所述固态硬盘再次接收写命令
时,将所述第二写入点之后的首个第一写入点作为所述写命令的起始写入点。
4.根据权利要求2所述的固态硬盘的数据写入方法,其特征在于,所述存
储单元存储2bit数据,所述数据包括低位数据和高位数据。
5.根据权利要求4所述的固态硬盘的数据写入方法,其特征在于,所述第
一写入点对应的逻辑页用于存储所述低位数据,所述第二写入点对应的逻辑页
用于存储所述高位数据。
6.根据权利要求4所述的固态硬盘的数据写入方法,其特征在于,所述固
态硬盘接收到写命令时,先将所述低位数据写入,再将所述高位数据写入。
7.根据权利要求2所述的固态硬盘的数据写入方法,其特征在于,所述方
法还包括:将所述逻辑块中的有效页搬移到其它逻辑块中。
8.根据权利要求7所述的固态硬盘的数据写入方法,其特征在于,所述方
法还包括:
固态硬盘上电时,检查所述数据搬移是否完成;
若所述数据搬移未完成,则继续搬移对应的逻辑页,并判断该逻辑页是否
为所述第二写入点,若是,则对该逻辑页对应的第一写入点进行读操作,如果
所述读操作失败,则对该第一写入点重新做数据搬移。
9.一种固态硬盘的数据写入系统,其特征在于,所述系统包括:
写入点划分模块,用于将逻辑块内包含的逻辑页划分为若干第一写入点和
第二写入点;
选择模块,用于当所述固态硬盘接收写命令时,选择其中的一个所述第一
写入点作为所述写命令的起始写入点。
10.根据权利要求9所述的固态硬盘的数据写入系统,其特征在于,所述
系统还包括搬移模块,用于将所述逻辑块中的有效页搬移到其它逻辑块中。

说明书

固态硬盘的数据写入方法及系统

技术领域

本发明涉及计算机技术领域,尤其涉及一种固态硬盘的数据写入方法及系
统。

背景技术

MLC(Multi-Level Cell,多层单元)Nand Flash相对SLC(Single-Level Cell,
单层单元)Nand flash有更高的存储密度,在固态硬盘领域有着越来越广泛的应
用。MLC Nand Flash一个存储单元(memory cell)可以存储2bits的信息,这2
bits分属于两个不同的page,这样的一组page叫couple pages,存低位比特的叫
low page,存高位比特的叫up page,它执行写有以下两个约束:1)Low page必
须在up page之前被写入;2)Up page在写入过程中被打断,比如异常掉电,up 
page的信息会丢失,而且它对应的low page的信息也可能会丢失,而low page
不会影响其up page。

现有技术通过额外提供备用电源或超级电容,当主电源断电时,由备用电
源供电保证当前正在写的数据成功写入到Nand Flash中。但这种解决方式需要
提供外部的硬件支持,增加了成本和硬件复杂性,仍然无法解决备用电源同样
会失效造成相同的问题;另外,现有技术没有考虑到MLC Nand Flash独有的特
点,即当前写命令执行过程中异常掉电还可能会破坏此前已经写入到Nand Flash
中的数据。在固态硬盘领域,可以允许异常掉电造成当前部分数据的丢失,但
是不允许异常掉电破坏此前已经写入Nand Flash的数据。这种异常掉电造成的
影响是MLC Nand Flash独有的特点。

综上可知,现有的固态硬盘的数据写入技术,在实际使用上显然存在不便
与缺陷,所以有必要加以改进。

发明内容

针对上述的缺陷,本发明的目的在于提供一种固态硬盘的数据写入方法及
系统,可以确保固态硬盘当前执行的写命令不会破坏之前已写入Nand Flash的
数据。

为了实现上述目的,本发明提供一种固态硬盘的数据写入方法,所述方法
包括:

将逻辑块内包含的逻辑页划分为若干第一写入点和第二写入点,当所述固
态硬盘接收写命令时,选择其中的一个所述第一写入点作为所述写命令的起始
写入点。

根据本发明的固态硬盘的数据写入方法,所述逻辑块的一个存储单元包括
两个所述逻辑页,所述两个逻辑页分别被划分为对应的所述第一写入点和第二
写入点。

根据本发明的固态硬盘的数据写入方法,若所述写命令的结束写入点之后
排列有第二写入点,则所述固态硬盘再次接收写命令时,将所述第二写入点之
后的首个第一写入点作为所述写命令的起始写入点。

根据本发明的固态硬盘的数据写入方法,所述存储单元存储2bit数据,所
述数据包括低位数据和高位数据。

根据本发明的固态硬盘的数据写入方法,所述第一写入点对应的逻辑页用
于存储所述低位数据,所述第二写入点对应的逻辑页用于存储所述高位数据。

根据本发明的固态硬盘的数据写入方法,所述固态硬盘接收到写命令时,
先将所述低位数据写入,再将所述高位数据写入。

根据本发明的固态硬盘的数据写入方法,所述方法还包括:将所述逻辑块
中的有效页搬移到其它逻辑块中。

根据本发明的固态硬盘的数据写入方法,所述方法还包括:

固态硬盘上电时,检查所述数据搬移是否完成;

若所述数据搬移未完成,则继续搬移对应的逻辑页,并判断该逻辑页是否
为所述第二写入点,若是,则对该逻辑页对应的第一写入点进行读操作,如果
所述读操作失败,则对该第一写入点重新做数据搬移。

本发明还相应的提供一种固态硬盘的数据写入系统,所述系统包括:

写入点划分模块,用于将逻辑块内包含的逻辑页划分为若干第一写入点和
第二写入点;

选择模块,用于当所述固态硬盘接收写命令时,选择其中的一个所述第一
写入点为所述写命令的起始写入点。

根据本发明的固态硬盘的数据写入系统,所述系统还包括搬移模块,用于
将所述逻辑块中的有效页搬移到其它逻辑块中。

本发明通过将固态硬盘内逻辑块包含的逻辑页划分为若干第一写入点和第
二写入点,且优选的,第一写入点为写入安全点,当固态硬盘接收写命令时,
选择其中的一个第一写入点为所述写命令的起始写入点。借此,若固态硬盘在
执行写命令时,发生异常掉电,不会破坏已经写入到NAND Flash中的数据。更
好的,本发明还可以在一个逻辑块写入完成后进行数据搬移,保证有足够的写
入空间。

附图说明

图1是本发明一实施例的固态硬盘的结构示意图;

图2是本发明一实施例的逻辑块的页分页结构示意图;

图3是本发明一实施例的数据搬移结构示意图;

图4是本发明一实施例的上电处理方法流程图;

图5是本发明的固态硬盘的数据写入方法流程图。

具体实施方式

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

参见图1,本发明提供了一种固态硬盘的数据写入系统,该系统100包括写
入点划分模块10、选择模块20及搬移模块30。其中:

写入点划分模块10用于将逻辑块(block)内包含的逻辑页(page)划分为若干
第一写入点和第二写入点。本发明的实施例中,固态硬盘采用的储存结构为MLC
Nand Flash,其包括若干逻辑块,每个逻辑块包含有若干逻辑页。当固态硬盘接
收并执行写命令时,是以其中的一逻辑页为起始写入点或结束写入点。

进一步的,如背景技术中所述,逻辑块的一个存储单元包括两个逻辑页,
有这两个逻辑页分别被划分为对应的所述第一写入点和第二写入点,且一个存
储单元可以存储2bit数据,该数据包括低位数据和高位数据。在具体的执行写
入命令时,按照写入规则,低位数据被写入第一写入点对应的逻辑页(low page),
高位数据被写入第二写入点对应的逻辑页(up page),并且这一对数据在写入时,
首先将低位数据写入,然后再写入高位数据。

选择模块20用于当固态硬盘接收写命令时,选择其中的一个所述第一写入
点为写命令的起始写入点。本发明背景技术中已经描述,Up page在写入过程中
被打断,比如异常掉电,则该up page的信息会丢失,而且它对应的low page
的信息也可能会丢失,而low page信息的丢失则不会影响其up page。因此,当
固态硬盘执行主机(host)写命令时,若该写命令的最后写入点落在某个page
上时,选择模块20会选择跳过随后的若干个第二写入点,跳到一个合适的第一
写入点上,作为下次写命令的起始写入点,当然,若该写命令的最后写入点之
后的page为low page,则无需跳过,直接作为下次写命令的起始写入点。

本发明的一实施例中,固态硬盘一逻辑块的page分布如图2所示,需要说
明的,其它逻辑块的实际分布情况因Nand Flash产品而异,并不限于此分布。
Flash写入按page序号从小到大。图2中page 0,1,4,5,8,9……划分为第
一写入点,因为写这些page过程中出现异常掉电不会破坏在它之前的page,这
些page都是low page;与其相对的,page 2,3,6,7,10,11……定义为第二
写入点,因为这些page写过程中异常掉电可能会破坏与它对应的low page,这
些page都是up page。

具体应用中,假定当前写命令最后写入点落在page 6上,选择模块20会选
择跳过page 7、10和11,下一个写命令将会从page 12开始写起,因为page 7、
10和11属于第二写入点,且其low page已被当前写命令写入数据。同样的,对
于该逻辑块内每个page作为最后写入点时,写分配需要跳过的page情况如下表
1所示,表中只列举了前12个page的情况,后续的page与此类似。


表1

本发明的系统100保证当前写命令执行过程中的异常掉电不会破坏在此之
前所有写入的数据。这种写分配不会造成额外的写放大,但是每个逻辑块内真
实可用的page数量会低于实际page数量。本发明可以结合两种办法解决该问题:
1)增加OP(over provision),即额外提供Nand Flash空间。2)内部数据搬迁,
通过将多个没写满的block数据搬移到另外一个block内。具体的,本发明可通
过搬移模块30将逻辑块中的有效页搬移到其它逻辑块中。

实际应用中,主机读写固态硬盘的同时,搬移模块30对这些block进行搬
迁,将多个没写满的block搬迁到一个block内,及时确保有足够的Nand Flash
空间供主机写入。而“内部数据搬迁”的写分配按page序号从小到大依次写入,
不会跳过任何page,如图3所示,将多个“源block”中的page搬移到“目的
block”。需要说明的是,该过程也可能会发生异常断电,本发明可采用如图4
所示方法解决,上电时会检查上次是否发生异常掉电,若是,则进一步检查上
次“内部数据搬迁”是否完成,若没有,则继续搬移该page,并判断是否为第
二写入点,如果是的话,还要对该page对应的low page进行读操作,如果失败,
则对该low page也重新做搬迁。更好的,为保证重新做搬迁时源数据仍然存在,
本发明做以下限制:只有当“源block”内数据已搬迁完毕,并且“目的block”
落在安全点上,“源block”才能被擦除,借此保证数据的安全性和完整性。

参见图5,本发明提供了一种固态硬盘的数据写入方法,其可以通过如图1
所示的系统100实现,该方法包括:

步骤S501,写入点划分模块10将逻辑块内包含的逻辑页划分为若干第一写
入点和第二写入点。

固态硬盘的Nand Flash包括若干block,每个block分布有若干page,这些
page由写入点划分模块10划分为若干第一写入点和第二写入点。具体的,Block
的一个存储单元包括两个page,且这两个page分别被划分为对应的第一写入点
(对应page为low page)和第二写入点(对应page为up page)。每个储存单元存储
2bit数据,且该数据包括低位数据和高位数据,第一写入点对应的page用于存
储所述低位数据,第二写入点对应的page用于存储所述高位数据,当固态硬盘
接收到写命令时,先将所述低位数据写入,再将所述高位数据写入。

步骤S502,固态硬盘接收写命令时,选择模块20选择其中的一个第一写入
点作为所述写命令的起始写入点。

当固态硬盘执行写命令时,若该写命令的最后写入点落在某个page上,选
择模块20会选择跳过随后的若干个第二写入点,跳到一个合适的第一写入点上,
作为下次写命令的起始写入点。优选的,若该写命令的最后写入点之后的page
为low page,则无需跳过,直接作为下次写命令的起始写入点。若所述写命令的
结束写入点之后排列up page,固态硬盘再次接收写命令时,选择模块20将所述
第二写入点之后的首个第一写入点作为所述写命令的起始写入点。

更好的是,为保证硬盘数据的充分利用,在某block写完成之后,可以进行
数据搬移,将当前block中的有效page搬移到其它block中。当然,在此搬移过
程中也可能会发生异常掉电,本发明通过图4所示的方法流程进行解决,具体
包括:上电时会检查上次是否发生异常掉电,若是,则进一步检查上次“内部
数据搬迁”是否完成,若没有,则继续搬移该page,并判断是否为第二写入点,
如果是的话,还要对该page对应的low page进行读操作,如果失败,则对该low
page也重新做搬迁。更好的,为保证重新做搬迁时源数据仍然存在,本发明做
以下限制:只有当“源block”内数据已搬迁完毕,并且“目的block”落在安
全点上,“源block”才能被擦除,借此保证数据的安全性和完整性。

综上所述,本发明通过将固态硬盘内逻辑块包含的逻辑页划分为若干第一
写入点和第二写入点,且优选的,第一写入点为写入安全点,当固态硬盘接收
写命令时,选择其中的一个第一写入点为所述写命令的起始写入点。借此,若
固态硬盘在执行写命令时,发生异常掉电,不会破坏已经写入到NAND Flash
中的数据。更好的,本发明还可以在一个逻辑块写入完成后进行数据搬移,保
证有足够的写入空间。

当然,本发明还可有其它多种实施例,在不背离本发明精神及其实质的情
况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但
这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。

固态硬盘的数据写入方法及系统.pdf_第1页
第1页 / 共10页
固态硬盘的数据写入方法及系统.pdf_第2页
第2页 / 共10页
固态硬盘的数据写入方法及系统.pdf_第3页
第3页 / 共10页
点击查看更多>>
资源描述

《固态硬盘的数据写入方法及系统.pdf》由会员分享,可在线阅读,更多相关《固态硬盘的数据写入方法及系统.pdf(10页珍藏版)》请在专利查询网上搜索。

1、(10)申请公布号 CN 102789422 A (43)申请公布日 2012.11.21 C N 1 0 2 7 8 9 4 2 2 A *CN102789422A* (21)申请号 201210209721.4 (22)申请日 2012.06.25 G06F 12/02(2006.01) (71)申请人记忆科技(深圳)有限公司 地址 518000 广东省深圳市南山区蛇口后海 大道东角头东南工贸大厦5楼 (72)发明人郁志平 王猛 徐伟华 (74)专利代理机构北京律诚同业知识产权代理 有限公司 11006 代理人刘健 黄韧敏 (54) 发明名称 固态硬盘的数据写入方法及系统 (57) 摘要 。

2、本发明适用于计算机技术领域,提供了一种 固态硬盘的数据写入方法,所述方法包括:将逻 辑块内包含的逻辑页划分为若干第一写入点和第 二写入点,当所述固态硬盘接收写命令时,选择其 中的一个所述第一写入点作为所述写命令的起始 写入点。更好的是,逻辑块的一个存储单元包括两 个所述逻辑页,分别被划分为第一写入点和第二 写入点,用于存储低位数据和高位数据。借此保证 主机的当前写命令不会破坏之前已写入逻辑块内 的数据。 (51)Int.Cl. 权利要求书1页 说明书5页 附图3页 (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书 1 页 说明书 5 页 附图 3 页 1/1页 2 1.一。

3、种固态硬盘的数据写入方法,其特征在于,所述方法包括: 将逻辑块内包含的逻辑页划分为若干第一写入点和第二写入点,当所述固态硬盘接收 写命令时,选择其中的一个所述第一写入点作为所述写命令的起始写入点。 2.根据权利要求1所述的固态硬盘的数据写入方法,其特征在于,所述逻辑块的一个 存储单元包括两个所述逻辑页,所述两个逻辑页分别被划分为对应的所述第一写入点和第 二写入点。 3.根据权利要求1所述的固态硬盘的数据写入方法,其特征在于,若所述写命令的结 束写入点之后排列有第二写入点,则所述固态硬盘再次接收写命令时,将所述第二写入点 之后的首个第一写入点作为所述写命令的起始写入点。 4.根据权利要求2所述的。

4、固态硬盘的数据写入方法,其特征在于,所述存储单元存储 2bit数据,所述数据包括低位数据和高位数据。 5.根据权利要求4所述的固态硬盘的数据写入方法,其特征在于,所述第一写入点对 应的逻辑页用于存储所述低位数据,所述第二写入点对应的逻辑页用于存储所述高位数 据。 6.根据权利要求4所述的固态硬盘的数据写入方法,其特征在于,所述固态硬盘接收 到写命令时,先将所述低位数据写入,再将所述高位数据写入。 7.根据权利要求2所述的固态硬盘的数据写入方法,其特征在于,所述方法还包括:将 所述逻辑块中的有效页搬移到其它逻辑块中。 8.根据权利要求7所述的固态硬盘的数据写入方法,其特征在于,所述方法还包括: 。

5、固态硬盘上电时,检查所述数据搬移是否完成; 若所述数据搬移未完成,则继续搬移对应的逻辑页,并判断该逻辑页是否为所述第二 写入点,若是,则对该逻辑页对应的第一写入点进行读操作,如果所述读操作失败,则对该 第一写入点重新做数据搬移。 9.一种固态硬盘的数据写入系统,其特征在于,所述系统包括: 写入点划分模块,用于将逻辑块内包含的逻辑页划分为若干第一写入点和第二写入 点; 选择模块,用于当所述固态硬盘接收写命令时,选择其中的一个所述第一写入点作为 所述写命令的起始写入点。 10.根据权利要求9所述的固态硬盘的数据写入系统,其特征在于,所述系统还包括搬 移模块,用于将所述逻辑块中的有效页搬移到其它逻辑。

6、块中。 权 利 要 求 书CN 102789422 A 1/5页 3 固态硬盘的数据写入方法及系统 技术领域 0001 本发明涉及计算机技术领域,尤其涉及一种固态硬盘的数据写入方法及系统。 背景技术 0002 MLC(Multi-Level Cell,多层单元)Nand Flash相对SLC(Single-Level Cell, 单层单元)Nand flash有更高的存储密度,在固态硬盘领域有着越来越广泛的应用。MLC Nand Flash一个存储单元(memory cell)可以存储2bits的信息,这2bits分属于两个不 同的page,这样的一组page叫couple pages,存低位。

7、比特的叫low page,存高位比特的叫 up page,它执行写有以下两个约束:1)Low page必须在up page之前被写入;2)Up page 在写入过程中被打断,比如异常掉电,up page的信息会丢失,而且它对应的low page的信 息也可能会丢失,而low page不会影响其up page。 0003 现有技术通过额外提供备用电源或超级电容,当主电源断电时,由备用电源供电 保证当前正在写的数据成功写入到Nand Flash中。但这种解决方式需要提供外部的硬件支 持,增加了成本和硬件复杂性,仍然无法解决备用电源同样会失效造成相同的问题;另外, 现有技术没有考虑到MLC Nand。

8、 Flash独有的特点,即当前写命令执行过程中异常掉电还可 能会破坏此前已经写入到Nand Flash中的数据。在固态硬盘领域,可以允许异常掉电造成 当前部分数据的丢失,但是不允许异常掉电破坏此前已经写入Nand Flash的数据。这种异 常掉电造成的影响是MLC Nand Flash独有的特点。 0004 综上可知,现有的固态硬盘的数据写入技术,在实际使用上显然存在不便与缺陷, 所以有必要加以改进。 发明内容 0005 针对上述的缺陷,本发明的目的在于提供一种固态硬盘的数据写入方法及系统, 可以确保固态硬盘当前执行的写命令不会破坏之前已写入Nand Flash的数据。 0006 为了实现上述。

9、目的,本发明提供一种固态硬盘的数据写入方法,所述方法包括: 0007 将逻辑块内包含的逻辑页划分为若干第一写入点和第二写入点,当所述固态硬盘 接收写命令时,选择其中的一个所述第一写入点作为所述写命令的起始写入点。 0008 根据本发明的固态硬盘的数据写入方法,所述逻辑块的一个存储单元包括两个所 述逻辑页,所述两个逻辑页分别被划分为对应的所述第一写入点和第二写入点。 0009 根据本发明的固态硬盘的数据写入方法,若所述写命令的结束写入点之后排列有 第二写入点,则所述固态硬盘再次接收写命令时,将所述第二写入点之后的首个第一写入 点作为所述写命令的起始写入点。 0010 根据本发明的固态硬盘的数据写。

10、入方法,所述存储单元存储2bit数据,所述数据 包括低位数据和高位数据。 0011 根据本发明的固态硬盘的数据写入方法,所述第一写入点对应的逻辑页用于存储 所述低位数据,所述第二写入点对应的逻辑页用于存储所述高位数据。 说 明 书CN 102789422 A 2/5页 4 0012 根据本发明的固态硬盘的数据写入方法,所述固态硬盘接收到写命令时,先将所 述低位数据写入,再将所述高位数据写入。 0013 根据本发明的固态硬盘的数据写入方法,所述方法还包括:将所述逻辑块中的有 效页搬移到其它逻辑块中。 0014 根据本发明的固态硬盘的数据写入方法,所述方法还包括: 0015 固态硬盘上电时,检查所。

11、述数据搬移是否完成; 0016 若所述数据搬移未完成,则继续搬移对应的逻辑页,并判断该逻辑页是否为所述 第二写入点,若是,则对该逻辑页对应的第一写入点进行读操作,如果所述读操作失败,则 对该第一写入点重新做数据搬移。 0017 本发明还相应的提供一种固态硬盘的数据写入系统,所述系统包括: 0018 写入点划分模块,用于将逻辑块内包含的逻辑页划分为若干第一写入点和第二写 入点; 0019 选择模块,用于当所述固态硬盘接收写命令时,选择其中的一个所述第一写入点 为所述写命令的起始写入点。 0020 根据本发明的固态硬盘的数据写入系统,所述系统还包括搬移模块,用于将所述 逻辑块中的有效页搬移到其它逻。

12、辑块中。 0021 本发明通过将固态硬盘内逻辑块包含的逻辑页划分为若干第一写入点和第二写 入点,且优选的,第一写入点为写入安全点,当固态硬盘接收写命令时,选择其中的一个第 一写入点为所述写命令的起始写入点。借此,若固态硬盘在执行写命令时,发生异常掉电, 不会破坏已经写入到NAND Flash中的数据。更好的,本发明还可以在一个逻辑块写入完成 后进行数据搬移,保证有足够的写入空间。 附图说明 0022 图1是本发明一实施例的固态硬盘的结构示意图; 0023 图2是本发明一实施例的逻辑块的页分页结构示意图; 0024 图3是本发明一实施例的数据搬移结构示意图; 0025 图4是本发明一实施例的上电。

13、处理方法流程图; 0026 图5是本发明的固态硬盘的数据写入方法流程图。 具体实施方式 0027 为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对 本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并 不用于限定本发明。 0028 参见图1,本发明提供了一种固态硬盘的数据写入系统,该系统100包括写入点划 分模块10、选择模块20及搬移模块30。其中: 0029 写入点划分模块10用于将逻辑块(block)内包含的逻辑页(page)划分为若干第 一写入点和第二写入点。本发明的实施例中,固态硬盘采用的储存结构为MLCNand Flash, 其包。

14、括若干逻辑块,每个逻辑块包含有若干逻辑页。当固态硬盘接收并执行写命令时,是以 其中的一逻辑页为起始写入点或结束写入点。 说 明 书CN 102789422 A 3/5页 5 0030 进一步的,如背景技术中所述,逻辑块的一个存储单元包括两个逻辑页,有这两个 逻辑页分别被划分为对应的所述第一写入点和第二写入点,且一个存储单元可以存储2bit 数据,该数据包括低位数据和高位数据。在具体的执行写入命令时,按照写入规则,低位数 据被写入第一写入点对应的逻辑页(low page),高位数据被写入第二写入点对应的逻辑页 (up page),并且这一对数据在写入时,首先将低位数据写入,然后再写入高位数据。 。

15、0031 选择模块20用于当固态硬盘接收写命令时,选择其中的一个所述第一写入点为 写命令的起始写入点。本发明背景技术中已经描述,Up page在写入过程中被打断,比如异 常掉电,则该up page的信息会丢失,而且它对应的low page的信息也可能会丢失,而low page信息的丢失则不会影响其up page。因此,当固态硬盘执行主机(host)写命令时,若 该写命令的最后写入点落在某个page上时,选择模块20会选择跳过随后的若干个第二写 入点,跳到一个合适的第一写入点上,作为下次写命令的起始写入点,当然,若该写命令的 最后写入点之后的page为low page,则无需跳过,直接作为下次写。

16、命令的起始写入点。 0032 本发明的一实施例中,固态硬盘一逻辑块的page分布如图2所示,需要说明的,其 它逻辑块的实际分布情况因Nand Flash产品而异,并不限于此分布。Flash写入按page序 号从小到大。图2中page 0,1,4,5,8,9划分为第一写入点,因为写这些page过程中出 现异常掉电不会破坏在它之前的page,这些page都是low page;与其相对的,page 2,3,6, 7,10,11定义为第二写入点,因为这些page写过程中异常掉电可能会破坏与它对应的 low page,这些page都是up page。 0033 具体应用中,假定当前写命令最后写入点落在p。

17、age 6上,选择模块20会选择跳过 page 7、10和11,下一个写命令将会从page 12开始写起,因为page 7、10和11属于第二 写入点,且其low page已被当前写命令写入数据。同样的,对于该逻辑块内每个page作为 最后写入点时,写分配需要跳过的page情况如下表1所示,表中只列举了前12个page的 情况,后续的page与此类似。 0034 0035 表1 0036 本发明的系统100保证当前写命令执行过程中的异常掉电不会破坏在此之前 所有写入的数据。这种写分配不会造成额外的写放大,但是每个逻辑块内真实可用的 page数量会低于实际page数量。本发明可以结合两种办法解决。

18、该问题:1)增加OP(over provision),即额外提供Nand Flash空间。2)内部数据搬迁,通过将多个没写满的block 说 明 书CN 102789422 A 4/5页 6 数据搬移到另外一个block内。具体的,本发明可通过搬移模块30将逻辑块中的有效页搬 移到其它逻辑块中。 0037 实际应用中,主机读写固态硬盘的同时,搬移模块30对这些block进行搬迁,将多 个没写满的block搬迁到一个block内,及时确保有足够的Nand Flash空间供主机写入。 而“内部数据搬迁”的写分配按page序号从小到大依次写入,不会跳过任何page,如图3所 示,将多个“源block。

19、”中的page搬移到“目的block”。需要说明的是,该过程也可能会发 生异常断电,本发明可采用如图4所示方法解决,上电时会检查上次是否发生异常掉电,若 是,则进一步检查上次“内部数据搬迁”是否完成,若没有,则继续搬移该page,并判断是否 为第二写入点,如果是的话,还要对该page对应的low page进行读操作,如果失败,则对该 low page也重新做搬迁。更好的,为保证重新做搬迁时源数据仍然存在,本发明做以下限 制:只有当“源block”内数据已搬迁完毕,并且“目的block”落在安全点上,“源block”才 能被擦除,借此保证数据的安全性和完整性。 0038 参见图5,本发明提供了一。

20、种固态硬盘的数据写入方法,其可以通过如图1所示的 系统100实现,该方法包括: 0039 步骤S501,写入点划分模块10将逻辑块内包含的逻辑页划分为若干第一写入点 和第二写入点。 0040 固态硬盘的Nand Flash包括若干block,每个block分布有若干page,这些page 由写入点划分模块10划分为若干第一写入点和第二写入点。具体的,Block的一个存储单 元包括两个page,且这两个page分别被划分为对应的第一写入点(对应page为low page) 和第二写入点(对应page为up page)。每个储存单元存储2bit数据,且该数据包括低位 数据和高位数据,第一写入点对应。

21、的page用于存储所述低位数据,第二写入点对应的page 用于存储所述高位数据,当固态硬盘接收到写命令时,先将所述低位数据写入,再将所述高 位数据写入。 0041 步骤S502,固态硬盘接收写命令时,选择模块20选择其中的一个第一写入点作为 所述写命令的起始写入点。 0042 当固态硬盘执行写命令时,若该写命令的最后写入点落在某个page上,选择模块 20会选择跳过随后的若干个第二写入点,跳到一个合适的第一写入点上,作为下次写命令 的起始写入点。优选的,若该写命令的最后写入点之后的page为low page,则无需跳过,直 接作为下次写命令的起始写入点。若所述写命令的结束写入点之后排列up p。

22、age,固态硬盘 再次接收写命令时,选择模块20将所述第二写入点之后的首个第一写入点作为所述写命 令的起始写入点。 0043 更好的是,为保证硬盘数据的充分利用,在某block写完成之后,可以进行数据搬 移,将当前block中的有效page搬移到其它block中。当然,在此搬移过程中也可能会发 生异常掉电,本发明通过图4所示的方法流程进行解决,具体包括:上电时会检查上次是否 发生异常掉电,若是,则进一步检查上次“内部数据搬迁”是否完成,若没有,则继续搬移该 page,并判断是否为第二写入点,如果是的话,还要对该page对应的low page进行读操作, 如果失败,则对该lowpage也重新做搬。

23、迁。更好的,为保证重新做搬迁时源数据仍然存在, 本发明做以下限制:只有当“源block”内数据已搬迁完毕,并且“目的block”落在安全点 上,“源block”才能被擦除,借此保证数据的安全性和完整性。 说 明 书CN 102789422 A 5/5页 7 0044 综上所述,本发明通过将固态硬盘内逻辑块包含的逻辑页划分为若干第一写入点 和第二写入点,且优选的,第一写入点为写入安全点,当固态硬盘接收写命令时,选择其中 的一个第一写入点为所述写命令的起始写入点。借此,若固态硬盘在执行写命令时,发生异 常掉电,不会破坏已经写入到NAND Flash中的数据。更好的,本发明还可以在一个逻辑块 写入完成后进行数据搬移,保证有足够的写入空间。 0045 当然,本发明还可有其它多种实施例,在不背离本发明精神及其实质的情况下,熟 悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变 形都应属于本发明所附的权利要求的保护范围。 说 明 书CN 102789422 A 1/3页 8 图1 图2 说 明 书 附 图CN 102789422 A 2/3页 9 图3 图4 说 明 书 附 图CN 102789422 A 3/3页 10 图5 说 明 书 附 图CN 102789422 A 10 。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1