• 四川郎酒股份有限公司获第十二届人民企业社会责任奖年度环保奖 2019-05-13
  • 银保监会新规剑指大企业多头融资和过度融资 2019-05-12
  • 韩国再提4国联合申办世界杯 中国网友无视:我们自己来 2019-05-11
  • 中国人为什么一定要买房? 2019-05-11
  • 十九大精神进校园:风正扬帆当有为 勇做时代弄潮儿 2019-05-10
  • 粽叶飘香幸福邻里——廊坊市举办“我们的节日·端午”主题活动 2019-05-09
  • 太原设禁鸣路段 设备在测试中 2019-05-09
  • 拜耳医药保健有限公司获第十二届人民企业社会责任奖年度企业奖 2019-05-08
  • “港独”没出路!“梁天琦们”该醒醒了 2019-05-07
  • 陈卫平:中国文化内涵包含三方面 文化复兴表现在其中 2019-05-06
  • 人民日报客户端辟谣:“合成军装照”产品请放心使用 2019-05-05
  • 【十九大·理论新视野】为什么要“建设现代化经济体系”?   2019-05-04
  • 聚焦2017年乌鲁木齐市老城区改造提升工程 2019-05-04
  • 【专家谈】上合组织——构建区域命运共同体的有力实践者 2019-05-03
  • 【华商侃车NO.192】 亲!楼市火爆,别忘了买车位啊! 2019-05-03
    • / 20
    • 下载费用:30 金币  

    重庆时时彩概率分析: 固态储存装置及其数据编程方法.pdf

    关 键 词:
    固态 储存 装置 及其 数据 编程 方法
      专利查询网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    摘要
    申请专利号:

    CN201510833643.9

    申请日:

    2015.11.25

    公开号:

    CN106802867A

    公开日:

    2017.06.06

    当前法律状态:

    实审

    有效性:

    审中

    法律详情: 实质审查的生效IPC(主分类):G06F 12/02申请日:20151125|||公开
    IPC分类号: G06F12/02; G11C16/10 主分类号: G06F12/02
    申请人: 光宝电子(广州)有限公司; 光宝科技股份有限公司
    发明人: 洪敏倚; 林良囿; 彭钰娟; 潘雅萍
    地址: 广东省广州高新技术产业开发区科学城光谱西路二十五号
    优先权:
    专利代理机构: 北京市柳沈律师事务所 11105 代理人: 王珊珊
    PDF完整版下载: PDF下载
    法律状态
    申请(专利)号:

    CN201510833643.9

    授权公告号:

    |||

    法律状态公告日:

    2017.06.30|||2017.06.06

    法律状态类型:

    实质审查的生效|||公开

    摘要

    本发明涉及一种固态储存装置及其数据编程方法。该固态储存装置包括:一控制器;以及一闪存,连接至该控制器,且包括多个区块;其中,该控制器用以决定是否启动一无用单元收集动作;并于决定启动该无用单元收集动作时,于该闪存中的这些区块中选定一第一开启区块,用以储存执行该无用单元收集动作时所搬移的一有效数据;以及编程该无用单元收集动作时所搬移的该有效数据至该第一开启区块;其中,该闪存中的这些区块具有另一被选定的一第二开启区块,用以储存由该主机输出的一写入数据。

    权利要求书

    1.一种固态储存装置的数据编程方法,该固态储存装置具有一闪存,
    该闪存包括多个区块,该数据编程方法包括下列步骤:
    决定是否启动一无用单元收集动作;
    于决定启动该无用单元收集动作时,于该闪存中的这些区块中选定一第
    一开启区块,用以储存执行该无用单元收集动作时所搬移的一有效数据;以

    编程该无用单元收集动作时所搬移的该有效数据至该第一开启区块;
    其中,该闪存中的这些区块具有另一被选定的一第二开启区块,用以储
    存由一主机输出的一写入数据。
    2.根据权利要求1所述的数据编程方法,其中执行该无用单元收集动
    作时所搬移的该有效数据以及由该主机输出的该写入数据分别被储存于该
    闪存中不同的区块内。
    3.根据权利要求1所述的数据编程方法,其中于决定启动该无用单元
    收集动作时,若该固态储存装置接收到由该主机输出的该写入数据,该数据
    编程方法还包括下列步骤:
    编程由该主机输出的该写入数据至该第二开启区块。
    4.根据权利要求1所述的数据编程方法,其中该固态储存装置具有一
    缓冲单元,其中该缓冲单元规划有一第一储存区与一第二储存区,分别用以
    暂存该无用单元收集动作时所搬移的该有效数据,以及由该主机输出的该写
    入数据。
    5.一种固态储存装置,经由一外部总线连接至一主机,该固态储存装
    置包括:
    一控制器;以及
    一闪存,连接至该控制器,且包括多个区块;
    其中,该控制器用以决定是否启动一无用单元收集动作;并于决定启动
    该无用单元收集动作时,于该闪存中的这些区块中选定一第一开启区块,用
    以储存执行该无用单元收集动作时所搬移的一有效数据;以及编程该无用单
    元收集动作时所搬移的该有效数据至该第一开启区块;
    其中,该闪存中的这些区块具有另一被选定的一第二开启区块,用以储
    存由该主机输出的一写入数据。
    6.根据权利要求5所述的固态储存装置,其中执行该无用单元收集动
    作时所搬移的该有效数据以及由该主机输出的该写入数据分别被储存于该
    闪存中不同的区块内。
    7.根据权利要求5所述的固态储存装置,其中于决定启动该无用单元
    收集动作时,若该固态储存装置接收到由该主机输出的该写入数据,该控制
    器还用以编程由该主机输出的该写入数据至该第二开启区块。
    8.根据权利要求5所述的固态储存装置,其中该固态储存装置还包括
    一缓冲单元,其中该缓冲单元规划有一第一储存区与一第二储存区,分别用
    以暂存该无用单元收集动作时所搬移的该有效数据,以及由该主机输出的该
    写入数据。

    说明书

    固态储存装置及其数据编程方法

    技术领域

    本发明涉及一种固态储存装置及其数据编程方法,且特别是涉及一种可
    执行无用单元收集(garbage collection)动作的固态储存装置及其包含无用单
    元收集动作的数据编程方法。

    背景技术

    众所周知,固态储存装置(Solid State Device,SSD)使用与非门闪存
    (NAND flash memory)为主要储存元件,而闪存为一种非易失性(non-volatile)
    存储器。也就是说,当数据编程(program)至闪存后,即使系统电源关闭,数
    据仍保存在闪存中。

    请参照图1,其所示为已知固态储存装置的示意图。固态储存装置10
    中包括一控制器101、一缓冲元件(buffering element)107与一闪存105??刂?br />器101连接至缓冲元件107与闪存105。再者,控制器101利用一外部总线
    20与主机(host)12之间进行指令与数据的传递。

    当主机12输出写入数据(write data)欲编程至闪存105时,控制器101
    会先将写入数据进行ECC编码程序,之后再将写入数据暂存于缓冲元件
    107。而控制器101会适时的进行编程动作,将缓冲元件107中的写入数据
    编程至闪存105。

    其中,缓冲元件107为高速缓存存储器(cache memory),可利用SRAM
    或者DRAM来实现。另外,外部总线20可为USB总线、IEEE 1394总线、
    PCIe总线或SATA总线等等。

    一般来说,闪存中105包括多个区块(block),而每个区块中又包括多个
    页(page)。例如,闪存中105中有1024个区块,而每个区块中有64页,每
    个页的容量为4K bytes。再者,由于闪存105的特性,数据编程是以页为基
    本单位来进行编程动作(program action),而数据擦除(erase)则是以区块为单
    位进行区块擦除动作(block erase action)。

    再者,主机12是以逻辑区块地址(logical block address,简称LBA)来存
    取闪存105。而一个LBA可对应至512字节(512bytes)的数据?;谎灾?,当
    主机12欲将写入数据编程至闪存时,主机12会先产生写入命令(write
    command)及LBA至控制器101。之后,主机12再将对应的写入数据输出至
    控制器101。而控制器101会将写入数据暂存于缓冲元件107中。

    假设闪存105中一个页的数据量为4Kbytes,则8个LBA的数据量等于
    一个页的数据量。由于闪存105是以页为基本单位来进行编程,所以当缓冲
    元件107中暂存的数据量达到或超过一页的数据量时,控制器101即可启动
    编程动作,并且以页为基本单位将数据编程至闪存中105。

    另外,控制器101会于闪存105中选定一个空白区块来进行数据编程,
    称为开启区块(open block)。当控制器101进行编程动作时,会将缓冲元件
    107中暂存的数据编程至开启区块。当开启区块填满数据后,控制器101会
    再选定另一空白区块为开启区块,并继续将缓冲元件107中的数据编程至开
    启区块。

    由于闪存105是以区块为擦除单位,每个页内的数据无法单独被擦除并
    更新(update),因此当闪存105接收到更新数据时,会将更新数据储存在新
    页(空白页)内,而原来旧页中的原始数据则被视为无效数据。如此,闪存105
    在经过长时间的存取之后,许多区块中都会包含有效数据以及无效数据,且
    闪存105的可编程空间会逐渐减少。

    请参照图2A至图2C,其所示为已知闪存进行数据更新的示意图。以
    下是以闪存105中有五个区块(Block_1~Block_5),每个区块中有四页
    (Page_1~Page_4)为例来进行说明。

    如图2A所示,假设区块1(Block_1)与区块2(Block_2)中所有的页内已
    分别储存有Data1~Data8的数据。

    假设主机12输出写入数据Data8′、Data2′、Data9、Data10、Data11、
    Data7′、Data12、Data13欲编程至闪存105中。其中,Data2′、Data7′、Data8′
    是Data2、Data7、Data8的更新数据,而Data9~Data13是新数据。

    如图2B所示,控制器101先选定区块3(Block_3)为开启区块,并将
    Data8′、Data2′、Data9、Data10编程至区块3(Block_3)。之后,控制器101
    再选定区块4(Block_4)为开启区块,并将Data11、Data7′、Data12、Data13
    编程至区块4(Block_4)中。其中,旧的Data2、Data7、Data8则被视为无效
    数据(以斜线来表示)。

    接着,假设主机12输出写入数据Data14、Data3′、Data7″、Data12′欲
    编程至闪存105中。其中,Data3′、Data7″、Data12′是Data3、Data7′、Data12
    的更新数据,而Data14是新数据。

    如图2C所示,控制器101选定区块5(Block_5)为开启区块,将Data14、
    Data3′、Data7"、Data12′编程至区块5(Block_5)。其中,旧的Data3、Data7′、
    Data12′则被视为无效数据(以斜线来表示)。

    由以上的说明可知,经过多次的编程之后,闪存105中会出现许多的无
    效数据,且闪存105的可编程空间会逐渐减少。由于闪存105的擦除最小单
    位为区块,而图2C所示的闪存105中虽然有部分区块中具有无效数据,但
    是这些区块中仍有部份的有效数据,因此控制器101无法直接擦除上述区
    块。

    由于闪存105中已经没有足够的储存空间,所以为了将储存无效数据的
    空间释放出来,固态储存装置10的控制器101会进行无用单元收集(garbage
    collection)动作,以释放储存无效数据的空间,增加可编程空间。

    一般来说,主机12可针对闪存105进行随机写入(random write)或者连
    续写入(sequential write)。于主机12输出的写入命令中,如果逻辑区块地址
    (LBA)不是连续地址即为随机写入。反之,如果写入指令中的LBA为连续地
    址,即为连续写入。其中,当主机12进行连续写入时,主机12会输出连续
    的写入数据储存至闪存105,例如连续数据重写(overwrite)或连续数据更新。
    以下延续图2C来说明已知闪存包含无用单元收集动作的编程流程。

    请参照图3A至图3F,其所绘示为已知固态储存装置中闪存包含无用单
    元收集动作的编程流程示意图。假设,控制器101欲将区块1(Block_1)及区
    块2(Block_2)中储存无效数据的空间清出,以便于编程新数据。首先,如图
    3A所示,控制器101将区块1(Block_1)及区块2(Block_2)中的有效数据
    Data1、Data4、Data5、Data6搬移(move)至缓冲元件107。搬移完成后,再
    将区块1(Block_1)及区块2(Block_2)中Data1、Data4、Data5、Data6视为无
    效数据(以斜线来表示)。

    基本上,控制器101在搬移欲清除的区块中的有效数据时,缓冲元件
    107仍可继续接收主机12输出的写入数据?;痪浠八?,控制器101可同时
    执行无用单元收集动作以及接收主机12输出的写入数据。因此,如图3A
    所示,缓冲元件107中包括欲清除的区块(区块1(Block_1)及区块2(Block_2))
    中的有效数据Data1、Data4、Data5、Data6,以及主机12输出的写入数据
    Data15、Data16、Data17、Data18。其中,写入数据Data15、Data16、Data17、
    Data18是连续写入数据。

    接着,于确认区块1(Block_1)及区块2(Block_2)中已无任何有效数据后,
    如图3B所示,控制器101即可对区块1(Block_1)及区块2(Block_2)进行区
    块擦除动作,使区块1(Block_1)及区块2(Block_2)成为空白区块。

    接着,如图3C所示,控制器101即可进行编程动作并将缓冲元件107
    中的数据编程至闪存105中,并且完成一次包含无用单元收集动作的编程流
    程。其中,控制器101先选定区块1(Block_1)为开启区块,将Data1、Data15、
    Data4、Data16编程至区块1(Block_1)。接着,控制器101选定区块2(Block_2)
    为开启区块,将Data17、Data5、Data6、Data18编程至区块2(Block_2)。

    由以上的说明可知,当控制器101进行包含无用单元收集动作的编程流
    程时,若欲清除的区块中同时储存有有效数据及无效数据时,控制器101需
    要将欲清除的区块中的有效数据搬移至缓冲元件107,同时也需要接收主机
    12所输出的写入数据,并将写入数据暂存至缓冲元件107?;谎灾?,已知固
    态储存装置10在进行包含无用单元收集动作的编程流程时,缓冲元件107
    内会交错地暂存无用单元收集动作所搬移的有效数据以及主机12所输出的
    写入数据。因此,当控制器101将缓冲元件107中的数据编程至闪存105中
    的开启区块(open block)后,该区块中也会交错地储存无用单元收集动作中所
    搬移的有效数据以及主机12所输出的写入数据,如图3C中的区块1(Block_1)
    及区块2(Block_2)所示。

    再者,如图3C所示,由于闪存105又再次没有足够的储存空间,所以
    控制器101需要再次执行无用单元收集动作,以便于编程新数据。

    假设,主机12输出写入数据Data15′、Data16′、Data17′、Data18′欲编
    程至闪存105中,其中,写入数据Data15′、Data16′、Data17′、Data18′是连
    续写入数据,且为Data15、Data16、Data17、Data18的更新数据。如图3C
    所示,虽然区块1(Block_1)及区块2(Block_2)中旧的Data15、Data16、Data17、
    Data18将因数据更新而被视为无效数据,但由于区块1(Block_1)及区块
    2(Block_2)仍储存有先前无用单元收集动作所搬移的有效数据,因此控制器
    101需要再次进行无用单元收集动作,并再次将这些有效数据搬移至缓冲元
    件107,以便对区块1(Block_1)及区块2(Block_2)进行区块擦除动作。

    请参照图3D至图3F,其所绘示为已知固态储存装置执行另一次包含无
    用单元收集动作的编程流程示意图。首先,如图3D所示,控制器101将区
    块1(Block_1)及区块2(Block_2)中的有效数据Data1、Data4、Data5、Data6
    搬移(move)至缓冲元件107。搬移完成后,再将区块1(Block_1)及区块
    2(Block_2)中Data1、Data4、Data5、Data6视为无效数据(以斜线来表示)。

    同理,控制器101在搬移欲清除的区块中的有效数据时,缓冲元件107
    仍可接收主机12输出的写入数据。因此,如图3D所示,缓冲元件107中包
    括欲清除的区块(区块1(Block_1)及区块2(Block_2))中的有效数据Data1、
    Data4、Data5、Data6、以及主机12输出的写入数据Data15′、Data16′、Data17′、
    Data18′。其中,区块1(Block_1)及区块2(Block_2)中旧的Data15、Data16、
    Data17、Data18因数据更新而被视为无效数据。

    接着,于确认区块1(Block_1)及区块2(Block_2)中已无任何有效数据后,
    如图3E所示,控制器101即可对区块1(Block_1)及区块2(Block_2)进行区块
    擦除动作,使区块1(Block_1)及区块2(Block_2)成为空白区块。

    接着,如图3F所示,控制器101即可进行编程动作并将缓冲元件107
    中的数据编程至闪存105中,并且完成一次包含无用单元收集动作的编程流
    程。其中,控制器101先选定区块1(Block_1)为开启区块,将Data1、Data15′、
    Data16′、Data4编程至区块1(Block_1)。接着,控制器101选定区块2(Block_2)
    为开启区块,将Data17′、Data18′、Data5、Data6编程至区块2(Block_2)。

    同理,当控制器101将缓冲元件107中的数据编程至闪存105中的开启
    区块(open block)后,该区块中也会交错地储存无用单元收集动作中所搬移的
    有效数据以及主机12所输出的写入数据,如图3F中的区块1(Block_1)及区
    块2(Block_2)所示。

    再者,于图3F的状况,由于闪存105又再次没有足够的储存空间,此
    时,若主机12欲再次更新或重写连续写入数据Data15′、Data16′、Data17′、
    Data18′时,控制器101需要再次执行无用单元收集动作,并再次重复搬移在
    先前无用单元收集动作所搬移的有效数据。其运作情况不再赘述。

    请参阅图4,其绘示为已知固态储存装置中闪存的数据储存示意图。根
    据已知固态储存装置10的数据编程方法,当闪存105没有足够的空间,并
    进行多次的包含无用单元收集动作的编程流程之后,每个区块
    (Block_1~Block_n)中会包括无用单元收集动作中所搬移的有效数据(GC)以
    及主机12所输出的写入数据(H)。

    根据已知固态储存装置10的数据编程方法。当固态储存装置10中的闪
    存105的储存状况如图4所示且主机12进行连续数据写入时,控制器101
    必须持续的进行无用单元收集动作,并重复地搬移在先前无用单元收集动作
    中所搬移的有效数据以产生空白区块,而开启区块中还是储存无用单元收集
    动作中所搬移的有效数据(GC)以及主机12所输出的写入数据(H)。如此,将
    导致固态储存装置10的写入速度(write speed)下降并且无法有效地提升。

    由以上的说明可知,由于根据已知固态储存装置10的数据处理方法,
    闪存105中的区块会交错地储存有无用单元收集动作中所搬移的有效数据
    (GC)及主机12的写入数据(H)。所以在主机10以连续写入的方式进行的连
    续数据重写或连续数据更新的过程,控制器101需持续进行无用单元收集动
    作,并重复地搬移在先前无用单元收集动作中所搬移的有效数据。再者,控
    制器101需先进行将欲清除的区块中的有效数据搬移至缓冲元件107后,才
    能进行区块擦除动作,并将数据编程至闪存105中。再者,由于缓冲元件
    107中仍包括有效数据(GC)以及写入数据(H),所以有效数据(GC)与写入数
    据(H)仍会交错地被编程至开启区块中。

    由于连续写入的过程,控制器101需要同时不断地进行无用单元收集动
    作,并重复地搬移在先前无用单元收集动作中所搬移的有效数据,因此固态
    储存装置10的写入速度会高低变化,并且无法到达较高的写入速度。

    发明内容

    本发明涉及一种固态储存装置,经由一外部总线连接至一主机,该固态
    储存装置包括:一控制器;以及一闪存,连接至该控制器,且包括多个区块;
    其中,该控制器用以决定是否启动一无用单元收集动作;并于决定启动该无
    用单元收集动作时,于该闪存中的这些区块中选定一第一开启区块,用以储
    存执行该无用单元收集动作时所搬移的一有效数据;以及编程该无用单元收
    集动作时所搬移的该有效数据至该第一开启区块;其中,该闪存中的这些区
    块具有另一被选定的一第二开启区块,用以储存由该主机输出的一写入数
    据。

    本发明有关于一种固态储存装置的数据编程方法,该固态储存装置具有
    一闪存,该闪存包括多个区块,该数据编程方法包括下列步骤:决定是否启
    动一无用单元收集动作;于决定启动该无用单元收集动作时,于该闪存中的
    这些区块中选定一第一开启区块,用以储存执行该无用单元收集动作时所搬
    移的一有效数据;以及编程该无用单元收集动作时所搬移的该有效数据至该
    第一开启区块;其中,该闪存中的这些区块具有另一被选定的一第二开启区
    块,用以储存由该主机输出的一写入数据。

    为了对本发明上述及其他方面有更佳的了解,下文特举较佳实施例,并
    结合附图详细说明。

    附图说明

    图1所绘示为已知固态储存装置的示意图。

    图2A至图2C所绘示为闪存进行数据更新的示意图。

    图3A至图3F所绘示为已知固态储存装置中闪存包含无用单元收集
    动作的编程流程示意图。

    图4所绘示为已知固态储存装置中闪存的储存数据示意图。

    图5所绘示为本发明实施例固态储存装置的示意图。

    图6A至图6F所绘示为本发明实施例固态储存装置中闪存包含无用
    单元收集动作的编程流程示意图。

    图7所绘示为本发明实施例固态储存装置中闪存的储存数据示意图。

    具体实施方式

    请参考图5,其所绘示为本发明固态储存装置的示意图。固态储存装置
    50中包括一控制器501、一缓冲元件(buffering element)510与一闪存505。
    控制器501连接至缓冲元件510与闪存505。再者,控制器501利用一外部
    总线55与主机(host)52之间进行指令与数据的传递。

    根据本发明的实施例,缓冲元件510中还划分为第一储存区512与第二
    储存区514。其中,无用单元收集动作中搬移的有效数据(GC)暂存于第一储
    存区512,而主机52所输出的写入数据(H)暂存于第二储存区514。

    再者,本发明的固态储存装置50中,控制器501还可于闪存505中选
    定二个空白区块,并定义为第一开启区块与第二开启区块。其中,第一开启
    区块用以储存无用单元收集动作中搬移的有效数据(GC),而第二开启区块用
    以储存主机52所输出的写入数据(H)?;痪浠八?,控制器501进行编程时,
    将第一储存区512中的有效数据(GC)与第二储存区514中的写入数据(H),
    分别储存于第一开启区块与第二开启区块。当第一开启区块被编程且填满之
    后,控制器501再由闪存505中选定另一第一开启区块,用以储存无用单元
    收集动作中搬移的有效数据(GC)。同理,当第二开启区块被编程且填满之后,
    控制器501再由闪存505中选定另一第二开启区块,用以储存主机52所输
    出的写入数据(H)。

    换言之,控制器501可将无用单元收集动作中搬移的有效数据(GC)与主
    机52所输出的写入数据(H)分别编程于不同的开启区块,以避免发生一个区
    块中同时包括无用单元收集动作中搬移的有效数据(GC)以及主机52所输出
    的写入数据(H),并可有效地提升固态储存装置10的写入速度。

    请参照图6A至图6F,其所绘示为本发明固态储存装置中闪存包含无用
    单元收集动作的编程流程示意图。此流程是延续图2C中闪存105来进一步
    说明本发明所揭示的方法。在图2C中,闪存105已没有足够的可编程空间
    来储存新数据,因此控制器501需进行无用单元收集动作。

    首先,如图6A所示,控制器501先将区块1(Block_1)与区块2(Block_2)
    中的有效数据Data1、Data4、Data5、Data6搬移至缓冲元件510中的第一储
    存区512。搬移完成后,再将区块1(Block_1)与区块2(Block_2)中的Data1、
    Data4、Data5、Data6视为无效数据(以斜线来表示)。

    相同地,控制器501在搬移闪存505中的有效数据时,缓冲元件510
    仍可继续接收主机52输出的写入数据?;痪浠八?,控制器501可同时执行
    无用单元收集动作以及接收主机52输出的数据。因此,如图6A所示,缓冲
    元件510中的第一储存区512中储存无用单元收集动作中搬移的有效数据
    Data1、Data4、Data5、Data6,而主机52输出的写入数据Data15、Data16、
    Data17、Data18则储存于第二储存区514。其中,Data15、Data16、Data17、
    Data18为新数据且为连续写入数据。

    接着,于确认区块1(Block_1)与区块2(Block_2)中已无任何有效数据后,
    如图6B所示,控制器501即可对区块1(Block_1)与区块2(Block_2)进行区
    块擦除动作,使区块1(Block_1)与区块2(Block_2)成为空白区块。

    接着,如图6C所示,控制器501即可进行编程动作并将缓冲元件510
    中的数据编程至闪存505中,并且完成一次包含无用单元收集动作的编程流
    程。其中,控制器501选定区块1(Block_1)为第一开启区块,将Data1、Data4、
    Data5、Data6编程至第一开启区块,亦即区块1(Block_1);再者,控制器501
    选定区块2(Block_2)为第二开启区块,将Data15、Data16、Data17、Data18
    编程至第二开启区块,亦即区块2(Block_2)。

    明显地,区块1(Block_1)中的所有数据皆为无用单元收集动作中搬移的
    有效数据(GC),并且区块2(Block_2)中的所有数据皆为主机52所输出的写
    入数据(H)。

    再者,由于图6C中,闪存505又再次没有足够的储存空间,所以控制
    器501需要再次执行无用单元收集动作,以便于编程数据至闪存505。假设,
    主机52输出写入数据Data15′、Data16′、Data17′、Data18′欲编程至闪存505
    中,其中,写入数据Data15′、Data16′、Data17′、Data18′是连续写入数据Data15、
    Data16、Data17、Data18的更新数据。由于在前次的包含无用单元收集动作
    的编程流程中,无用单元收集动作中搬移的有效数据皆是储存于第一开启区
    块,亦即区块1(Block_1),因此第二开启区块,亦即区块2(Block_2),仅储
    存主机52输出的写入数据Data15、Data16、Data17、Data18,而未储存无
    用单元收集动作中搬移的有效数据。因此,当储存于区块2(Block_2)中旧的
    Data15、Data16、Data17、Data18因数据更新而被视为无效数据时,控制器
    501可直接对区块2(Block_2)进行区块擦除动作来取得储存空间以编程数
    据,而无须进行有效数据的搬移动作。

    请参照图6D至图6F,其所绘示为固态储存装置执行另一次包含无用单
    元收集动作的编程流程示意图。如图6D所示,主机52输出的写入数据
    Data15′、Data16′、Data17′、Data18′暂储存于第二储存区514,而储存于区
    块2(Block_2)中旧的Data15、Data16、Data17、Data18因数据更新而被视为
    无效数据(以斜线来表示)。接着,于确认区块2(Block_2)中已无任何有效数
    据后,如图6E所示,控制器501即可对区块2(Block_2)进行区块擦除动作,
    使区块2(Block_2)成为空白区块。

    接着,如图6F所示,控制器501即可进行编程动作并将缓冲元件510
    中的数据编程至闪存505中,并且完成另一次包含无用单元收集动作的编程
    流程。其中,控制器501选定区块2(Block_2)为第二开启区块,将Data15′、
    Data16′、Data17′、Data18′编程至第二开启区块,亦即区块2(Block_2)。须注
    意的是,在此次包含无用单元收集动作的编程流程中,无用单元收集动作并
    不需要重复进行有效数据的搬移及编程动作,仅需直接进行区块擦除动作。
    如此,将可有效地避免固态储存装置50的写入速度下降。

    由以上的说明可知,根据本发明提出的固态储存装置,控制器501可选
    择二个空白区块作为第一开启区块及第二开启区块,并用以分别储存无用单
    元收集动作中搬移的有效数据(GC),以及主机输出的写入数据(H)。在本发
    明实施例中,缓冲元件510中更划分为第一储存区与第二储存区,并用以分
    别暂储存无用单元收集动作中搬移的有效数据(GC),以及主机所输出的写入
    数据(H)。

    因此,如图7所示,闪存505中的所有区块(Block~1~Block_n)不是被编
    程无用单元收集动作中搬移的有效数据(GC),就是被编程主机所输出的写入
    数据(H)。不会有任何区块同时包括无用单元收集动作中搬移的有效数据(GC)
    以及主机所输出的写入数据(H)。

    再者,当闪存505被编程且填满后,当主机52进行连续数据更新或重
    写(overwrite)时,由于闪存505中储存写入数据(H)的区块中完全没有任何无
    用单元收集动作所搬移的有效数据(GC)。因此,于进行连续数据更新或重写
    时,闪存505中储存写入数据(H)的区块有很高的机率会因数据被更新而使
    区块内的数据皆为无效数据,因此控制器501不需要重复进行有效数据的搬
    移及编程动作??刂破?01仅需将数据皆为无效数据的区块进行擦除后,便
    可设定该被擦除的空白区块为第二开启区块,并直接将写入数据编程于第二
    开启区块。

    根据本发明的实施例,由于控制器501不再需要重复进行有效数据的搬
    移及编程动作,因此控制器501可以维持在较高的写入速度将主机52输出
    的写入数据编程于闪存505中。

    此外,在本发明实施例中,控制器501可根据闪存505的可编成空间的
    大小来决定是否启动无用单元收集动作。其中,若闪存505具有足够的可编
    成空间,则控制器501可决定无须启动无用单元收集动作,并选定一第一开
    启区块用来储存主机输出的写入数据。反之,若闪存505的可编程空间不足
    时,则控制器501可决定启动无用单元收集动作,并选定一第二开启区块用
    来储存无用单元收集动作中所搬移的有效数据。其中,若在启动无用单元收
    集动作的过程中,主机亦输出写入数据欲编程至闪存505时,控制器501会
    选定一第一开启区块用来储存主机输出的写入数据,以及一第二开启区块用
    来储存无用单元收集动作中所搬移的有效数据。

    由以上的说明可知,本发明提出一种固态储存装置及其数据编程方法。
    通过将无用单元收集动作中搬移的有效数据(GC),以及主机输出的写入数据
    (H)分别储存在不同的区块中,使固态储存装置50可以维持用较高的写入速
    度来编程闪存505,提高固态储存装置50的整体效能(performance)。

    综上所述,虽然本发明已以较佳实施例揭示如上,然其并非用以限定本
    发明。本发明本领域技术人员,在不脱离本发明的精神和范围内,当可作各
    种的更动与润饰。因此,本发明的?;し段У笔尤ɡ笫榻缍ㄕ呶?。

    关于本文
    本文标题:固态储存装置及其数据编程方法.pdf
    链接地址://www.4mum.com.cn/p-6001265.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    [email protected] 2017-2018 www.4mum.com.cn网站版权所有
    经营许可证编号:粤ICP备17046363号-1 
     


    收起
    展开
  • 四川郎酒股份有限公司获第十二届人民企业社会责任奖年度环保奖 2019-05-13
  • 银保监会新规剑指大企业多头融资和过度融资 2019-05-12
  • 韩国再提4国联合申办世界杯 中国网友无视:我们自己来 2019-05-11
  • 中国人为什么一定要买房? 2019-05-11
  • 十九大精神进校园:风正扬帆当有为 勇做时代弄潮儿 2019-05-10
  • 粽叶飘香幸福邻里——廊坊市举办“我们的节日·端午”主题活动 2019-05-09
  • 太原设禁鸣路段 设备在测试中 2019-05-09
  • 拜耳医药保健有限公司获第十二届人民企业社会责任奖年度企业奖 2019-05-08
  • “港独”没出路!“梁天琦们”该醒醒了 2019-05-07
  • 陈卫平:中国文化内涵包含三方面 文化复兴表现在其中 2019-05-06
  • 人民日报客户端辟谣:“合成军装照”产品请放心使用 2019-05-05
  • 【十九大·理论新视野】为什么要“建设现代化经济体系”?   2019-05-04
  • 聚焦2017年乌鲁木齐市老城区改造提升工程 2019-05-04
  • 【专家谈】上合组织——构建区域命运共同体的有力实践者 2019-05-03
  • 【华商侃车NO.192】 亲!楼市火爆,别忘了买车位啊! 2019-05-03
  • 大乐透走势图带连线图 500元 倍投方案 稳赚 河内五分彩稳赚技巧 福彩3d杀6码等于01方法 双色球组选计算公式 新疆时时开奖结果记录 500元 倍投方案 稳赚pk10 数字彩票的技巧规律 时时彩有稳赚的方法吗 软件协议书范本 赛车pk10精准计划 体彩六码遗漏统计 pk10前三杀号技巧 广东11选5计划软件 超级大乐透走势图新浪爱彩 好运来极速赛车计划软件