CN102012869B - 闪存储存系统的数据刻录方法 - Google Patents

闪存储存系统的数据刻录方法 Download PDF

Info

Publication number
CN102012869B
CN102012869B CN200910171446XA CN200910171446A CN102012869B CN 102012869 B CN102012869 B CN 102012869B CN 200910171446X A CN200910171446X A CN 200910171446XA CN 200910171446 A CN200910171446 A CN 200910171446A CN 102012869 B CN102012869 B CN 102012869B
Authority
CN
China
Prior art keywords
data
entity
entity memory
leaf
memory region
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.)
Active
Application number
CN200910171446XA
Other languages
English (en)
Other versions
CN102012869A (zh
Inventor
苏佐政
洪世芳
方子维
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
A Data Technology Co Ltd
Original Assignee
A Data Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by A Data Technology Co Ltd filed Critical A Data Technology Co Ltd
Priority to CN200910171446XA priority Critical patent/CN102012869B/zh
Publication of CN102012869A publication Critical patent/CN102012869A/zh
Application granted granted Critical
Publication of CN102012869B publication Critical patent/CN102012869B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

一种闪存储存系统的数据刻录方法,在数据存入闪存时,将经常更新的数据以及未对齐一个实体记忆页的数据作集中配置,并尽量集中刻录于同一实体记忆区块之中,让之后因为数据更新与未对齐数据的连续写入而产生的无效实体记忆页,能够集中于某些实体记忆区块。如此一来,在闪存执行无效数据回收作业时,便能有较高的储存空间回收效率。

Description

闪存储存系统的数据刻录方法
技术领域
本发明涉及一种数据刻录方法,尤其是指一种数据在闪存中的刻录配置方法,以改善闪存储存空间的使用效率及提升其工作效能。
背景技术
闪存(Flash memory)是一种非挥发性的储存组件,由于其具有低耗电、高存取速率、耐震及重量轻等优点,因此已逐渐地取代部分传统的硬盘装置,而广泛的被使用在计算机系统及可携式电子装置等作为储存单元之用。
一般闪存储存系统的架构图如图1所示,快闪记忆体5包括一控制单元51及一记忆单元53。闪存记忆体5利用控制单元51来处理主机系统4传来的写入指令与数据。控制单元51接收主机系统4的指令后,配合逻辑与实体地址的转换运算,对记忆单元53执行数据存取的动作。
请参阅图2,记忆单元53被规划成若干个实体记忆区块(本例为m+1个实体记忆区块PBA0~PBAm),其中实体记忆区块就是记忆单元53最小的数据抹除单位。而一个实体记忆区块中又划分成多个实体记忆页(本例中每个实体记忆区块中有n+1个实体记忆页PPA0~PPAn),其中实体记忆页则为记忆单元53最小的数据写入单位。
当主机系统4传送数据写入指令及相关的数据给控制单元51,控制单元5 1执行逻辑与实体地址转换后,便从记忆单元53中任意挑选一已抹除的实体记忆区块(假设为实体记忆区块PBA0),然后再将欲写入的数据依实体记忆页的顺序(0,1,2,......,n),写入实体记忆区块中。
公知的记忆单元53的数据更新方法如图3所示,首先,控制单元51收到一笔数据更新的指令,该指令指示将更新记忆单元53的实体记忆区块PBA0的实体记忆页PPA0上的数据D00。于是控制单元51便于记忆单元53上任意挑选一已抹除的实体记忆区块PBA1,来储存主机系统4传来的更新数据D00’。然后控制单元51将更新数据D00’由实体记忆区块PBA1头端的实体记忆页PPA0开始储存,并且将实体记忆区块PBA0的实体记忆页PPA0上的数据D00注记为无效数据,完成数据更新。
接着控制单元51收到第二笔数据更新的指令,该指令指示将更新实体记忆区块PBA2的实体记忆页PPA2的数据D22。因为目前正在写入的实体记忆区块为PBA1,所以控制单元51便将主机系统4传来的更新数据D22’接续储存于实体记忆区块PBA1中的实体记忆页PPA1,然后将实体记忆区块PBA2的数据D22注记为无效数据。
同样地,接着控制单元51又接到第三笔更新指令,将更新数据D33’存于实体记忆区块PBA1的实体记忆页PPA2中,然后注记实体记忆区块PBA3上的实体记忆页PPA3的数据D33为无效数据。而第四笔更新指令则是将更新数据D34’写入实体记忆区块PBA1的实体记忆页PPA3中,并将实体记忆区块PBA3的实体记忆页PPA4上的数据D34标记为无效数据。
由图3中可知,当更新数据越来越多时,被标记为无效的实体记忆页也会越来越多。当记忆单元53剩余中的储存空间将要不够或是剩余储存容量达到一默认值时,便需要执行所谓的无效数据回收作业(garbage collection),来释放被无效数据所占用的实体记忆页,以让后续写入的数据可以顺利的继续写入记忆单元53中。
以图4并配合图3的例子来进行无效数据回收的说明,控制单元51从记忆单元53中挑选了无效数据最多的实体记忆区块PBA3,然后将实体记忆区块PBA3上的有效数据D30~D32以及D35~D3n共n-1个实体记忆页的数据,复制到另一已抹除的实体记忆区块PBA4中,然后抹除实体记忆区块PBA3以提供后续数据写入。如此便可释放出实体记忆区块PBA4最后的两个实体记忆页PPAn-1与PPAn的储存空间,供后续写入数据使用。
由图4可观察到,一个实体记忆区块中所包含的无效数据越多,在执行无效数据回收作业时,将会有较佳的记忆空间释放效率;反之,若实体记忆区块中所包含的无效数据不多,则储存空间的释放效率则较不佳。如实体记忆区块PBA3中只包含两个无效实体记忆页PPA3以及PPA4,经无效数据回收后,实体记忆区块PBA4上便只释放出两个实体记忆页PPAn-1和PPAn的储存空间。而且,要是记忆单元53中大部分实体记忆区块都只有少数无效的实体记忆页的情况,控制单元51在执行无效数据回收作业时,将增加挑选回收的实体记忆区块的难度,其储存空间释放的效率便不理想。
而除了前述的原因之外,写入数据于储存地址对齐与否的问题,也是造成记忆空间释放作业效率不佳的因素之一。由于主机系统4所传来的数据,不会刚好都是记忆单元53最小的数据写入单位(实体记忆页)的倍数,因此会发生写入数据地址无法对齐的情形。
请参阅图5A,若有一笔数据D1欲写入,包括了D10、D11以及D12,其中D10与D11是写满一个实体记忆页的数据,可刚好写入实体记忆区块PBA0的实体记忆页PPA0与实体记忆页PPA1中。而数据D12则不够一个实体记忆页的大小,所以控制单元51将数据D12传到记忆单元53时,会连同实体记忆页PPA2之前所存的旧数据Dd2一起刻录到实体记忆页PPA2中。例如,实体记忆页PPA2先前为已抹除的空间,因此里面的位储存的旧数据Dd2都是1,则可将部份数据D12未填满一个实体记忆页的剩余部份的位填入1,并将其与D12一起存入实体记忆页PPA2。
接着请参阅图5B,若控制单元51所接收的下一笔数据D2(包含有资料D20、D21、D22和D23)其数据写入的起始地址刚好是接在前一笔数据D1的地址后面,也就是接在数据D12后面,则控制单元51便从实体记忆页PPA2将数据D12复制出来,并与数据D20合并成一个实体记忆页的容量,接续写入于实体记忆页PPA3,然后将实体记忆页PPA2标记为无效。
由图5B中可发现,在实体记忆页PPA6的地方又出现数据D23填入后还不足一个实体记忆页的情形,即如同实体记忆页PPA2纪录数据D12的方法一样,剩余的空间则填入实体记忆页PPA6先前的旧数据Dd6。
因此由图5A和图5B可观察到,不足一个实体记忆页的写入数据,会在下一笔连续数据写入时,造成实体记忆区块中部分实体记忆页被标记为无效。若记忆单元53中大部分的实体记忆区块都个别包含少数无效的实体记忆页,其执行储存空间释放作业的效率同样会不尽理想。
发明内容
有鉴于此,本发明所欲解决的问题在于,将欲写入闪存(flashmemory)的记忆单元中的数据刻录地址进行配置,让之后产生的无效实体记忆页能够集中于某些记忆单元的实体记忆区块,进而提升执行无效数据回收作业(garbage collection)时,储存空间的释放效率。
为了达到上述目的,根据本发明的一方案,提供一种闪存的数据刻录方法,应用于一闪存,该闪存中包含有一控制单元以及一记忆单元,其中记忆单元又划分为多个实体记忆区块(Physical Block),而一个实体记忆区块的容量即是闪存最小的数据抹除单位,其方法步骤如下:
首先,控制单元接收到一主机系统传送而来的一数据以及一写入指令,其中写入指令包含数据欲写入的逻辑地址,与数据的数据长度。接着,控制单元依据数据的长度,判断数据是否为经常更新的数据。若判断结果显示该数据是经常更新的数据,控制单元便将数据分配并写入已存有经常更新的数据的实体记忆区块,让之后因为数据更新而产生的无效实体记忆页能够集中,以提升储存空间释放的效率。
而根据本发明的另一方案,提供了另一种闪存的数据刻录方法,同样应用于一闪存,该闪存包含有一控制单元以及一记忆单元,其中记忆单元划分成多个实体记忆区块,实体记忆区块又包含有多个实体记忆页(Physical Page),而一个实体记忆页的容量即是闪存最小的数据写入单位,其方法步骤包括:
控制单元接收到一主机系统传送而来的一数据以及一写入指令,其中写入指令包含了数据欲写入的逻辑地址与数据的数据长度。接着,控制单元依据逻辑实体地址对应表的对应关系、数据的长度、以及实体记忆页的容量,来判断欲写入的数据是否有部份数据未切齐一个实体记忆页。若判断出有部份数据未切齐一个实体记忆页,则控制单元便将该部份的数据分配并写入已存有未切齐的数据的实体记忆区块,让之后因为未切齐实体记忆页且地址连续的写入数据所造成的无效实体记忆页能够集中于某些实体记忆区块中,来提升储存空间释放的效率。
另外,根据本发明的又一方案,提供了一种闪存的数据刻录方法,应用于一闪存,该闪存包含一控制单元以及一记忆单元,其中记忆单元划分成多个实体记忆区块,而实体记忆区块又包含有多个实体记忆页,其方法步骤如下:
首先,控制单元接收到一主机系统传送而来的一数据以及一写入指令,其中写入指令包含有数据欲写入的逻辑地址,与数据的数据长度。接着控制单元依据数据的长度,判断其是否为经常更新的数据,若是,则将该数据与之前所储存的经常更新的数据作集中储存。
然后,若该数据被判定为不常更新的数据,控制单元便再依据一逻辑实体地址对应表的对应关系、数据的长度、以及实体记忆页的容量,进一步判断该资料是否有部份未切齐一个实体记忆页,然后将部份未切齐的数据集中写入先前已存有未切齐的数据的实体记忆区块。值得一提的是,经常更新的数据与未切齐一个实体记忆页的零碎数据,两者可以一起集中储存于某些实体记忆区块,让之后产生的无效实体记忆页能尽量集中,提升执行无效数据回收的效率。
在数据写入于闪存时,借助于将经常更新的数据与未切齐的零碎数据集中于一实体记忆区块中来储存,让之后无效的记忆空间能够集中与某些实体记忆区块,使得执行无效数据回收作业时,储存空间的释放效率能进一步提升。
以上的概述与接下来的实施例,皆是为了进一步说明本发明的技术手段与目的,然而所叙述的实施例与附图仅提供参考说明用,并非用来对本发明加以限制。
附图说明
图1为公知闪存储存系统的架构图;
图2为公知闪存的记忆单元的储存空间划分的示意图;
图3为公知的记忆单元的数据更新方法的示意图;
图4为公知无效数据回收作业的示意图;
图5A、图5B为公知数据连续写入的方法的示意图;
图6为本发明一种实施例的闪存储存系统的硬件方块图;
图7为本发明一种实施例的闪存储存系统的功能方块图;
图8A、图8B为本发明闪存的刻录方法的一种实施例的示意图;
图8C为本发明执行无效数据回收作业时的示意图;
图9为本发明闪存的数据刻录方法的一种实施例的流程图;
图10A、图10B为本发明数据处理方法的另一种实施例的示意图;
图11为本发明闪存的数据刻录方法的又一种实施例的流程图;以及
图12为本发明闪存的数据刻录方法的再一种实施例的流程图。
【主要元件符号说明】
公知技术:
4 主机系统
5 闪存
51 控制单元
53 记忆单元
PBA 实体记忆区块
PPA 实体记忆页
本发明:
1 主机系统
2 闪存
21 控制单元
211 微处理单元
213 主机接口
215 内存接口
217 非挥发性储存单元
219 挥发性储存单元
23 记忆单元
231 记忆胞数组
31 逻辑实体地址转换单元
311 逻辑实体地址对应表
32 数据检视单元
33 数据配置管理单元
34 数据存取单元
35 数据抹除单元
PBA 实体记忆区块
PPA 实体记忆页
LBA 逻辑区块
LPA 逻辑记忆页
S901~S909 流程图步骤说明
S1101~S1109 流程图步骤说明
S1201~S1213 流程图步骤说明
具体实施方式
为了提升无效数据回收作(garbage collection)的储存空间释放效率,本发明提供了一些数据刻录的方法,进而将经常更新的数据以及未对齐的零碎数据作配置写入闪存中,让无效实体记忆页产生时能够集中于某些实体记忆区块。
请参阅图6,为闪存储存系统的一种实施例的硬件方块图。闪存2中包括一控制单元21及一记忆单元23,其中控制单元21中又包括有一微处理单元211、一主机接口213、一内存接口215、一非挥发性储存单元217及一挥发性储存单元219,而记忆单元23则包括一记忆胞数组231。记忆单元23中的记忆胞数组231被规划成若干个实体记忆区块(Physical Block),为记忆单元23最小的数据抹除单位;而一个实体记忆区块中则又划分有若干个实体记忆页(Physical Page),为记忆单元23最小的数据写入单位。
控制单元21利用主机接口213与外部的主机系统1进行指令与数据的传输,而透过内存接口215与记忆单元23进行指令与数据的传输。非挥发性储存单元217,如只读存储器(Read Only Memory,ROM),是用于储存管理记忆单元23的相关程序代码,而微处理单元211就是根据储存在非挥发性储存单元217中的程序代码,以及由主机系统1传来的指令和数据,来管理与控制记忆单元23。
挥发性储存单元219,如随机存取内存(Random Access Memory,RAM),可设于控制单元21的内部或外部,用于暂时存放管理记忆单元23的相关信息(诸如逻辑实体地址对应表、储存空间数据配置信息表或区块信息表等相关管理窗体),以及控制单元21与记忆单元23间的存取数据。
接着请参阅图7,为闪存储存系统的一种实施例的功能方块图,如图所示,控制单元21中包括有一逻辑实体地址转换单元31、一数据检视单元32、一数据配置管理单元33、一数据存取单元34、及一数据抹除单元35。
其中,逻辑实体地址转换单元31是用来将主机系统1所传来的逻辑地址转换成记忆单元23中对应的实体地址,并通过一逻辑实体地址对应表(logical to physical address mapping table)来管理并纪录逻辑地址与实体地址的对应关系。数据检视单元32则是用于辨识主机系统1所传来欲写入的数据的大小,以及该数据储存于实体地址上的对应情形。
而数据配置管理单元33用于管理记忆单元23中储存数据的配置信息,可通过区块信息表(block information table)的建立与管理,来纪录每个实体记忆页的状态,如已抹除(Free)、有效或无效,以及储存于各个实体记忆区块中所包含的无效的实体记忆页的数量。根据区块信息表,即可于记忆单元23中找出存有无效数据的实体记忆页较多的实体记忆区块,来进行无效数据回收(garbage collection)的作业。
另外,数据存取单元34即是用于进行记忆单元23中的数据存取的动作,而数据抹除单元35则是用来对记忆单元23进行实体记忆区块数据抹除的作业。
再次参阅图7,并配合参考图6,当控制单元21由主机接口213接收到主机系统1所传来的数据写入指令与所欲储存的用户数据后,便将该欲储存的数据暂存于挥发性储存单元219中;其中写入指令包括有数据欲写入的逻辑地址以及数据的长度。接着利用逻辑实体地址转换单元31,将写入指令所指定的逻辑地址转换为实体地址。
数据检视单元32根据写入指令所指示的数据长度,辨识该笔数据的大小,以及用户数据于实体储存地址的边界对齐情况。然后,数据存取单元34便根据数据检视单元32的分析结果,以及根据数据配置管理单元33的区块信息表等等的管理窗体,将数据经由内存接口215写入记忆单元23中。
而记忆单元23陆续储存用户数据后,将可能发生记忆单元23中储存空间越来越少的情况。为避免储存空间不够使用而造成新的用户数据无法继续写入的窘境,控制单元21会在可使用的储存空间的数量减少到一默认值时,执行无效数据回收(garbage collection)作业,以释放被无效数据占用的储存空间。
控制单元21是利用数据配置管理单元33、数据存取单元34、及数据抹除单元35,来进行无效数据回收的作业。通过数据配置管理单元33,找出大部分储存空间被无效数据占用的实体记忆区块来进行无效数据回收。值得注意的是,由于本发明的数据配置刻录方法,可将经常更新的小数据及不满一个最小写入单位(实体记忆页)的数据集中管理,因此无效的实体记忆页将会集中产生于某些实体记忆区块中,所以控制单元21针对该些实体记忆区块进行无效数据回收作业,将可得到较佳的储存空间释放效率。
一般来说,小数据的更新频率,通常会较大数据的更新频率高得多,因此利用数据检视单元32辨识用户数据的大小,即可判断出该笔数据是否为经常更新的数据,进而再将经常更新的小数据与不常更新的大数据配置于不同的实体记忆区块来储存。
进一步说明,控制单元21的数据检视单元32可预先设定数据长度的一门限值(threshold value),若控制单元21所接收的用户数据小于或等于门限值时,即将该笔数据判断为经常更新的小数据。在一较佳的实施例中,由操作系统数据统计分析的结果显示,4KB以下大小的数据,即为操作系统上最常更新的资料长度,因此门限值可以设定为4KB大小的数据长度。
请参阅图8A,为记忆单元23中数据处理方法的一种实施例的示意图,控制单元21接收主机系统1传来的指令,指示有一写入数据D00其逻辑地址为逻辑区块LBA0上的逻辑记忆页LPA0,以及有一更新数据D10’其地址为逻辑区块LBA1的逻辑记忆页LPA0。其中逻辑区块LBA1的逻辑记忆页LPA0原是对应实体记忆区块PBA1的实体记忆页PPA0,而数据D00与更新数据D10’皆小于控制单元21中所设定的数据门限值。
首先用户数据D00经逻辑实体地址的转换和数据大小的检视,控制单元21可于记忆单元23中挑选一已抹除过的实体记忆区块PBA2来储存小于或等于门限值的用户数据D00。故用户数据D00即储存到实体记忆区块PBA2上的实体记忆页PPA0中,并于逻辑实体地址转换表上,建立起逻辑区块LBA0的逻辑记忆页LPA0与实体记忆区块PBA2的实体记忆页PPA0间的对应关系。而实体记忆区块PBA2后续便将被用来储存数据长度小于门限值的数据。
而更新数据D10’同样被判断为经常更新的小数据,所以被接着配置于实体记忆区块PBA2的实体记忆页PPA1中,然后逻辑实体地址对应表也跟着进行更新,将逻辑区块LBA1的逻辑记忆页LPA0对应至实体记忆区块PBA2上的实体记忆页PPA1;以及一并更新区块信息表,将实体记忆区块PBA1的实体记忆页PPA0注记为无效,并将实体记忆区块PBA1纪录无效数据实体记忆页的数目增加一。
接着,若控制单元21接收来欲储存于逻辑区块LBA2的用户数据D2,其中用户数据D2的长度大于门限值,则控制单元21便于记忆单元23中寻找另一已抹除的实体记忆区块PBA3来储存用户数据D2,如此一来,经常更新的小数据以及不常更新的大数据便被分别储存于不同的实体记忆区块中。
接着请参阅图8B,为闪存数据处理方法的一种实施例的示意图,承图8A,若接下来控制单元21接收到逻辑区块LBA0的逻辑记忆页LPA0的更新数据D00’,则将数据D00’连续储存于实体记忆区块PBA2的实体记忆页PPA2中。然后控制单元21更新逻辑实体地址对应表,将逻辑区块LBA0的逻辑记忆页LPA0对应至实体记忆区块PBA2的实体记忆页PPA2;以及更新区块信息表,将实体记忆区块PBA2的实体记忆页PPA0注记为无效,并将纪录实体记忆区块PBA2中无效实体记忆页的数目的值增加一。
又若主机系统1接着更新逻辑区块LBA1的逻辑记忆页LPA0的数据,控制单元21便将更新数据D10”写入实体记忆区块PBA2的实体记忆页PPA3中,然后更新逻辑实体地址对应表,将逻辑区块LBA1之逻辑记忆页LPA0对应至实体记忆区块PBA2的实体记忆页PPA3;以及更新区块信息表,将实体记忆区块PBA2的实体记忆页PPA1标记为无效,并将实体记忆区块PBA2的无效实体记忆页数目再加一。
然后更进一步地,主机系统1又继续传送指令,指示再一次更新逻辑区块LBA0的逻辑记忆页LPA0的数据,控制单元21便将更新数据D00”接续写入于实体记忆区块PBA2上的实体记忆页PPA4,然后更新逻辑实体地址对应表,将逻辑区块LBA0的逻辑记忆页LPA0对应至实体记忆区块PBA2的实体记忆页PPA4;以及更新区块信息表,将实体记忆区块PBA2的实体记忆页PPA2注记为无效,并将实体记忆区块PBA2的无效实体记忆页数目再加一。
实体记忆区块PBA2储存该些小于数据门限值的数据,经过数次数据的写入与更新作业后,因更新动作产生的无效实体记忆页也较容易产生于实体记忆区块PBA2中,如图8B所示的实体记忆区块PBA2之实体记忆页PPA0、PPA1以及PPA2。
由图8B可发现,这种数据配置刻录的方法,可有效的将因数据更新所产生的无效实体记忆页,集中于储存有长度小于门限值的数据的实体记忆区块上。因此,控制单元21若要执行无效数据回收作业时,便可通过检查区块信息表,搜寻无效的实体记忆页较多的实体记忆区块,即可轻易的挑出大多数实体记忆页被无效数据占用的实体记忆区块,然后将该些实体记忆区块中的有效数据复制至一已抹除的实体记忆区块中储存,然后再抹除被无效数据占用的实体记忆区块,有效率的释放出储存空间供数据写入。
如图8C所示,为闪存无效数据回收方法示意图,承接第图8A以及图8B,当控制单元21要执行储存空间释放无效数据回收作业时,储存小于门限值的小数据的实体记忆区块PBA2的无效实体记忆页,会较储存大于门限值的数据的实体记忆区块PBA3的无效实体记忆页来的多。因此通过搜寻区块信息表,即可找到记忆单元23中如实体记忆区块PBA2这样的实体记忆区块来进行无效数据回收的作业,以释放被无效数据占用的记忆空间。
然后控制单元21便于记忆单元23中挑出一已抹除的实体记忆区块PBA6来纪录实体记忆区块PBA2上的有效数据。因为实体记忆区块PBA2中所存的多数为无效数据,所以需复制的有效数据相对的少,因此实体记忆区块PBA6上所释放出来的储存空间也就较习知无效数据回收作业技术多得多。
请参阅图9,为闪存数据刻录方法的一种实施例的流程图,应用于一闪存的数据刻录。首先,控制单元21接收到主机系统1传送而来的数据以及写入指令(S901),其中写入指令包含数据欲写入的逻辑地址,与数据的数据长度。接着,控制单元21依据数据的长度,判断数据是否为经常更新的数据(S903)。
若判断结果显示该数据是经常更新的数据,便更进一步判断是否有已存有经常更新的数据的实体记忆区块(S904),若确实有已存有经常更新的数据的实体记忆区块,则控制单元21便将数据分配并写入已存有经常更新的数据的实体记忆区块中(S905),然后更新逻辑实体地址对应表中纪录的对应关系(S909);若没有已存着经常更新的数据的实体记忆区块,则控制单元21便将该数据存入一已抹除的实体记忆区块中(S906),并同样更新逻辑实体地址对应表(S909)。而若判断该数据为不常更新的数据,控制单元21便将该数据写入未存有经常更新的数据的实体记忆区块中,也就是其可为已抹除的实体记忆区块或已存有不常更新的数据的实体记忆区块(S907),并更新逻辑实体地址对应表(S909)。
请参阅图10A,为闪存数据处理方法的另一种实施例的示意图。当控制单元21由主机系统1接收一笔数据D0,包括有数据D00、数据D01及数据D02,其所欲写入的逻辑地址分别为逻辑区块LBA4之逻辑记忆页LPA0、LPA1及LPA2。通过逻辑实体地址转换与数据长度的分析,可得知数据D00与数据D01能够填满一个实体记忆页并与实体记忆页的地址切齐,而数据D02则不满一个实体记忆页。
控制单元21于记忆单元23中挑选一实体记忆区块PBA4,利用实体记忆区块PBA4来储存数据D00与数据D01。因此数据D00与数据D01便依序写入实体记忆区块PBA4中的实体记忆页PPA0与实体记忆页PPA1中。接着,控制单元21于记忆单元23中另外挑选一实体记忆区块PBA5,将无法填满一个实体记忆页的容量的数据D02,储存在实体记忆区块PBA5的实体记忆页PPA0中。
而实体记忆区块PBA5的实体记忆页PPA0中未被数据D02填满的剩余空间,可填入实体记忆页PPA0先前的旧数据Dd0,使得数据D02加上旧数据Dd0能够填满一个记忆单元23的最小写入单位,也就是一个实体记忆页。最后,数据D0于对应的实体储存空间储存完毕后,控制单元21便依其更新逻辑实体地址对应表311所纪录的对应关系,如第十A图所示。
请接着参阅图10B,为闪存数据处理方法的一种实施例的示意图。承图10A,若接下来控制单元21从主机系统1接收到一笔数据D1,其包括数据D10、数据D11、数据D12及数据D13,其欲写入的逻辑地址则接续前笔写入的数据D0的地址,也就是分别为逻辑区块LBA4的逻辑记忆页LPA2、LPA3、LPA4和LPA5。
控制单元21在分析用户数据D1的地址与长度后,将先前所存的数据D02从实体记忆区块PBA5的实体记忆页PPA0读取出来,然后再和数据D10合并一起继续写入实体记忆区块PBA4尚未写入数据的实体记忆页中。
再次参阅图10B,原本实体记忆区块PBA5中的实体记忆页PPA0因为其储存的数据已为无效,而被标记为无效的实体记忆页,故区块信息表中实体记忆区块PBA5的无效的实体记忆页数目便增加一。而数据D11与数据D12接着分别被配置到实体记忆区块PBA4中的实体记忆页PPA3与PPA4。
最后,数据D13未能填满一个实体记忆页,其将造成储存地址无法切齐(not align)实体记忆页的地址的情况。于是控制单元21便将数据D13写入实体记忆区块PBA5的实体记忆页PPA1中,而实体记忆区块PBA5的实体记忆页PPA1中无法填满的储存空间一样由实体记忆页PPA1先前所存的旧数据Dd1来填满。最后,依据所有数据的刻录地址分配,来更新逻辑实体地址对应表311,以便后续追踪该些数据的储存地址。
由图10B可观察到,将没有切齐记忆单元23的最小写入单位的用户数据,集中配置于另一实体记忆区块PBA5管理的方法,将会使无效的实体记忆页集中于同一实体记忆区块PBA5中,可有效避免因无法切齐实体记忆页的地址的数据连续写入时,造成无效的实体记忆页分散产生于实体记忆区块中的现象。而控制单元21则可由区块信息表中找到的无效的实体记忆页较多的实体记忆区块,使在无效数据回收时,可释放出较多的储存空间。
另外,用于储存无法写满一个实体记忆页的数据的实体记忆区块(如图10A与图10B所示的实体记忆区块PBA5),其可与用于储存小于门限值的经常更新的数据的实体记忆区块(如图8A和图8B所示的实体记忆区块PBA2)为同一个实体记忆区块。也就是控制单元21可将无法切齐一个实体记忆页的地址的数据,以及小于门限值的数据储存于同一个实体记忆区块中,借此进一步提高储存空间释放作业的效率。
请参阅图11,为闪存的刻录方法的一种实施例的流程图,包含:控制单元21接收到主机系统1传送而来的数据以及写入指令(S1101),其中写入指令包含了数据欲写入的逻辑地址与数据的数据长度。接着,控制单元21依据逻辑实体地址对应表311的对应关系、数据的长度、以及实体记忆页的容量,来判断欲写入的数据是否有数据未切齐一个实体记忆页(S1103)。
若判断出有部份零碎的数据未能切齐一个实体记忆页,控制单元21便将该数据有切齐的部份存入未存有未对齐的数据的实体记忆区块中(S1106),接着判断记忆单元23中是否有已存有未对齐的数据的实体记忆区块(S1104)。若确实有已存有未对齐的数据的实体记忆区块,则控制单元21便将该部份的零碎数据分配并写入该已存有未切齐的数据的实体记忆区块(S1105),但要是记忆单元中23并未有已存有未对齐的数据的实体记忆区块,则控制单元21便找寻另一个已抹除的实体记忆区块,来存放未对齐的数据(S1108),并更新逻辑实体地址对应表311纪录的对应关系(S1109)。若判断该数据没有未对齐一个实体记忆页的零碎数据,则将其存入未存有未对齐之数据的实体记忆区块,也就是该数据可存入一已抹除的实体记忆区块或一已存有可对齐的数据的实体记忆区块中(S1107),并同样更新逻辑实体地址对应表311所纪录的对应关系(S1109)。
接着请参阅图12,为闪存的刻录方法的另一种实施例的流程图,首先,控制单元21接收到主机系统1传送而来的数据以及写入指令(S1201)。接着控制单元21依据数据的长度,判断其是否为经常更新的数据(S1203),若是,进一步判断记忆单元23中是否有已存有经常更新的数据的实体记忆区块存在(S1204),若确实存在已存有经常更新的数据的实体记忆区块,则将该数据写入与已存有经常更新的数据的实体记忆区块(S1205);若记忆单元23中目前无已存有经常更新的数据的实体记忆区块,则将该数据存入一已抹除的实体记忆区块中(S1206)。
而若该数据被判定为不常更新的数据,控制单元21便再依据逻辑实体地址对应表311中纪录的对应关系、数据的长度、以及实体记忆页之容量,进一步判断该数据是否有未切齐一个实体记忆页的零碎数据(S1207),若有,控制单元21便先将该数据有对齐的部份写入未存有经常更新的数据以及未存有未对齐的零碎数据的实体记忆区块中(S1210),接着进一步判断记忆单元23中是否有已存有未切齐的数据的实体记忆区块存在(S1208),若确实有已存有未切齐的数据的实体记忆区块,则将部份未切齐的零碎资料写入先前已存有未切齐的数据的实体记忆区块中(S1209);而若无已存有未切齐的数据的实体记忆区块,则将该数据未切齐的部份存入一已抹除之实体记忆区块中(S1212)。
若该不常更新的数据没有未对齐的零碎部份,则将该数据存入未存有经常更新的数据以及未存有未对齐的零碎数据的实体记忆区块,也就是可将该数据存入一已抹除的实体记忆区块或一已存有可对齐的数据的实体记忆区块中(S1211)。最后,控制单元21依据该些数据的刻录分配,更新逻辑实体地址对应表311(S1213)。
值得一提的是,图12所示的经常更新的数据与未切齐一个实体记忆页的零碎数据,两者可以储存于同一实体记忆区块中,让之后产生的无效的实体记忆页能尽量集中,提升执行无效数据回收的效率。
综上所述,借助于数据长度的分析,将数据依其性质作分配并刻录于记忆单元23中,使得之后产生无效的实体记忆页尽量集中于记忆单元23某部分的实体记忆区块中。如此一来,在执行无效数据回收作业来释放储存空间时,可容易的挑选到大部分实体记忆页皆为储存无效数据的实体记忆区块,来进行无效数据的回收(garbage collection),以得到较佳的储存空间释放效率。
以上所述为本发明的具体实施例的说明与附图,而本发明的所有权利范围应以前述的权利要求为准,任何本发明的领域的普通技术人员,可轻易思及的变化或修改皆可涵盖在本案所界定的保护范围之内。

Claims (7)

1.一种闪存储存系统的数据刻录方法,其特征在于,该闪存储存系统包含一控制单元以及一记忆单元,其中该记忆单元包含多个实体记忆区块,而该实体记忆区块又包含有多个实体记忆页;以及该控制单元包含一逻辑实体地址对应表,该逻辑实体地址对应表用于记录一主机系统与该记忆单元间的传输数据的逻辑地址与实体地址的对应关系,该方法包括:
该控制单元接收该主机系统传送的一写入指令以及一数据,其中该写入指令包含该数据的逻辑地址与该数据的数据长度;
该控制单元依据该逻辑实体地址对应表以及该写入指令,来判断该数据是否有部份数据未切齐该实体记忆页;以及
该控制单元依据判断结果,将该数据分配并写入该实体记忆区块。
2.如权利要求1所述的闪存储存系统的数据刻录方法,其特征在于,该控制单元判断该数据是否有部份数据未切齐该实体记忆页,依据该数据的逻辑地址与实体地址的对应关系,以及依据该实体记忆页的大小与该数据的数据长度,来计算出该数据中是否有部份数据未能写满一个该实体记忆页。
3.如权利要求1所述的闪存储存系统的数据刻录方法,其特征在于,该控制单元将该数据分配并写入该实体记忆区块,将该数据中未切齐该实体记忆页的部份数据,写入该些实体记忆区块其中的一个已抹除的实体记忆区块或一已存有未切齐该实体记忆页的部份数据的实体记忆区块,而将该数据中可切齐该实体记忆页的部份数据,写入该些实体记忆区块其中的另一个已抹除的实体记忆区块或一已存有可切齐该实体记忆页的部份数据的实体记忆区块。
4.一种闪存储存系统的数据刻录方法,其特征在于,该闪存储存系统包含一控制单元以及一记忆单元,其中该记忆单元包含多个实体记忆区块,而该实体记忆区块又包含有多个实体记忆页;以及该控制单元包含一逻辑实体地址对应表,该逻辑实体地址对应表用于记录一主机系统与该记忆单元间的传输数据的逻辑地址与实体地址的对应关系,该方法包括:
该控制单元接收该主机系统传送的一写入指令以及一数据,其中该写入指令包含该数据的逻辑地址与该数据的数据长度; 
该控制单元将该数据的数据长度与默认的一门限值作比较,将数据长度小于或等于该门限值的该数据写入于该些实体记忆区块中的一第一实体记忆区块;以及
该控制单元依据该逻辑实体地址对应表与该写入指令,来判断数据长度大于该门限值的该数据是否有部份数据未切齐该实体记忆页,并将该数据中可切齐该实体记忆页的部份数据写入于该些实体记忆区块中的一第二实体记忆区块,而将该数据中未能切齐该实体记忆页的部份数据写入于该些实体记忆区块中的一第三实体记忆区块。
5.如权利要求4所述的闪存储存系统的数据刻录方法,其特征在于,该第一实体记忆区块与该第三实体记忆区块为该记忆单元中的同一个实体记忆区块。
6.如权利要求5所述的闪存储存系统的数据刻录方法,其特征在于,该第一实体记忆区块与该第三实体记忆区块为一至少已存有一数据长度小于或等于该门限值的数据的实体记忆区块、一至少已存有一未能切齐该实体记忆页的部份数据的实体记忆区块、或一已抹除的实体记忆区块。
7.如权利要求4所述的闪存储存系统的数据刻录方法,其特征在于,该第二实体记忆区块为一已抹除的实体记忆区块或一已存有可切齐该实体记忆页的部份数据的实体记忆区块。 
CN200910171446XA 2009-09-04 2009-09-04 闪存储存系统的数据刻录方法 Active CN102012869B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN200910171446XA CN102012869B (zh) 2009-09-04 2009-09-04 闪存储存系统的数据刻录方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN200910171446XA CN102012869B (zh) 2009-09-04 2009-09-04 闪存储存系统的数据刻录方法

Publications (2)

Publication Number Publication Date
CN102012869A CN102012869A (zh) 2011-04-13
CN102012869B true CN102012869B (zh) 2012-11-14

Family

ID=43843044

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200910171446XA Active CN102012869B (zh) 2009-09-04 2009-09-04 闪存储存系统的数据刻录方法

Country Status (1)

Country Link
CN (1) CN102012869B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103077118A (zh) * 2012-12-28 2013-05-01 深圳市硅格半导体有限公司 一种无效数据回收方法及系统
CN103150124B (zh) * 2013-01-29 2016-01-27 深圳市硅格半导体股份有限公司 一种解决sd协议超时的方法及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1243317A (zh) * 1998-07-28 2000-02-02 索尼公司 非易失存储器、记录装置和记录方法
CN101127004A (zh) * 2007-09-24 2008-02-20 中兴通讯股份有限公司 一种在闪存上存取数据的系统及方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1243317A (zh) * 1998-07-28 2000-02-02 索尼公司 非易失存储器、记录装置和记录方法
CN101127004A (zh) * 2007-09-24 2008-02-20 中兴通讯股份有限公司 一种在闪存上存取数据的系统及方法

Also Published As

Publication number Publication date
CN102012869A (zh) 2011-04-13

Similar Documents

Publication Publication Date Title
US9626286B2 (en) Hardware and firmware paths for performing memory read processes
CN101980177B (zh) 一种操作Flash的方法和装置
CN101937319B (zh) 存储器系统及其映射方法
US10915475B2 (en) Methods and apparatus for variable size logical page management based on hot and cold data
CN101169751B (zh) 具有闪存设备的系统及其数据恢复方法
CN102831070B (zh) 用于存储器装置的存储地址重新映射的方法和系统
US10540274B2 (en) Memory devices including dynamic superblocks, and related methods and electronic systems
Chung et al. System software for flash memory: A survey
US8386698B2 (en) Data accessing method for flash memory and storage system and controller using the same
JP4738038B2 (ja) メモリカード
US9436615B2 (en) Optimistic data read
EP2565792A1 (en) Block management schemes in hybrid SLC/MLC memory
CN101606133A (zh) 具有连续逻辑地址空间接口的直接数据文件系统的使用
CN103455432A (zh) 用来管理一记忆装置的方法以及其相关的记忆装置
CN101556555B (zh) 用于闪存的区块管理方法、其控制器与储存系统
CN102779095A (zh) 闪存装置、存储器控制装置、存储器控制方法及存储系统
CN104598386B (zh) 通过追踪和利用二级映射索引重复利用固态驱动器块
CN101123116A (zh) 存储装置及其读写方法
CN103970669A (zh) 用于加速在固态设备中的回收操作的物理到逻辑地址映射
CN106598493A (zh) 一种固态硬盘地址映射表管理方法
US20100318726A1 (en) Memory system and memory system managing method
CN103246609A (zh) 一种闪存存储设备中冷热数据区分管理的方法及装置
CN103365786A (zh) 数据存储方法、装置和系统
CN101833519B (zh) 一种减少存储技术设备中地址映射表常驻内存的方法
CN102541753B (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