CN100470677C - 提高闪存盘数据写入速度的方法 - Google Patents
提高闪存盘数据写入速度的方法 Download PDFInfo
- Publication number
- CN100470677C CN100470677C CNB2004100509520A CN200410050952A CN100470677C CN 100470677 C CN100470677 C CN 100470677C CN B2004100509520 A CNB2004100509520 A CN B2004100509520A CN 200410050952 A CN200410050952 A CN 200410050952A CN 100470677 C CN100470677 C CN 100470677C
- Authority
- CN
- China
- Prior art keywords
- block
- old
- storage block
- formation
- flash disk
- 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 - Lifetime
Links
- 238000000034 method Methods 0.000 title claims abstract description 37
- 238000003860 storage Methods 0.000 claims abstract description 89
- 230000015572 biosynthetic process Effects 0.000 claims description 47
- 238000004140 cleaning Methods 0.000 claims description 33
- 230000008023 solidification Effects 0.000 claims description 8
- 238000012217 deletion Methods 0.000 claims description 4
- 230000037430 deletion Effects 0.000 claims description 4
- 238000000151 deposition Methods 0.000 claims description 2
- 238000005755 formation reaction Methods 0.000 description 35
- 238000007726 management method Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 238000013500 data storage Methods 0.000 description 2
- 230000010076 replication Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明公开了一种提高闪存盘数据写入速度的方法,用来解决闪存盘在数据写入过程中,操作下一存储块前要等待擦除操作的完成,进而影响写入速度的问题。所述方法包括以下步骤:1)在所述固化软件中设置存放空块信息的新块队列和存放旧块信息的待擦除块队列,所述旧块指已写入数据的存储块;2)所述控制芯片接收数据写操作指令,并解析所述数据写操作指令的逻辑地址;3)判断与所述逻辑地址对应的存储块是否为旧块;4)如果是旧块,则从所述新块队列中取出一新块写入所述写指令欲写入的数据;5)将所述旧块中已有的数据复制到所述新块中,用所述新块取代所述旧块,将所述旧块放入所述待擦除块队列中;6)统一擦除所述待擦除块队列中的旧块。
Description
技术领域
本发明涉及闪存盘的数据存储技术,特别涉及一种提高闪存盘数据写入速度的方法。
背景技术
目前的闪存盘包括用于控制数据存取的控制器和用于存储数据的闪存介质,依照现有的闪存介质存取技术,闪存介质包括多个存储块,每个存储块由多个页构成,每页划分为数据存储区和冗余区。
闪存介质中的存储块分为两类:新块(指未写入数据的存储块,即空块)和已写有数据的块。新块的内容全部为逻辑1,而已写有数据的块则可能包含地址信息、写入的数据、标志信息等内容.根据闪存介质的读写特性,只有对所述新块进行写操作才能保证数据是有效并且可还原的,对所述已写有数据的块再写入数据将可能导致已有数据甚至存储介质被破坏。要对一个已写有数据的存储块再进行数据写入操作,就必须先将其擦除操作使其成为新块,或者寻找另一个新块将数据写入该新块,然后将已写有数据的存储块中的数据搬迁到该写入该新块,再将所述已写有数据的存储块擦除。
在现有技术中,闪存盘的上层操作系是通过逻辑地址访问闪存盘,并认为闪存盘是一个逻辑地址连续分布的物理存储介质,而闪存盘中的固化软件则通过物理地址来实际访问Flash中的块,所以闪存盘的固化软件中建立了一个逻辑地址到物理地址的对应表,即地址对照表。闪存盘在接收到主机端的写指令时,其固化软件先解析所述写指令的逻辑地址,并寻找一个物理地址来对应该逻辑地址,即在地址对照表中建立该逻辑地址与该物理地址的对应关系,且在该物理地址的位置存放实际的写入的数据。所以,当闪存盘接收到一个来自主机端的写指令时,先分析判断该写指令指向的逻辑地址是否对应了一个已写有数据的存储块,即判断写指令指向的逻辑地址在闪存盘的地址对照表是否有对应的物理地址记录。
如果没有对应物理地址记录,则代表该写指令指向的逻辑地址尚未有数据写入过,此时找出一个新块,将写指令中的数据写入该新块对应页中,给该新块标注写入命令指向的逻辑地址。
如果在地址对照表中找到对应物理地址,说明该写指令指向的存储块(以下简称为旧块)有数据写入过,不可直接写入新数据。此时仍应找出一个新块,将写指令中的数据写入该新块对应页中,给该新块标注写指令指向的逻辑地址。再将该旧块中,未被要写入的新数据覆盖的那些页的原有数据复制到数块的对应页中。最后将旧块擦除,使其成为未记载任何数据信息的新块。通过上述过程,将要写入的新数据和旧块中未被新数据覆盖的原有数据整合起来保存在新块中,以该新块替代原块,完成写入新数据的过程。
由于在写入下一个存储块之前必须对已写有数据的存储块进行擦除操作,而查找新块和擦除已写有数据的存储块的操作需要耗费时间,降低了数据写入操作的执行速度。本发明提出将新块和需要擦除的存储块统一管理起来,寻求合适的时机将其统一擦除的改进方案。
发明内容
为了解决闪存盘在数据写入过程中,操作下一存储块之前要等待一次擦除操作的完成,进而影响写入速度的问题,本发明提供了一种提高闪存盘数据写入速度的方法。
本发明是通过以下技术方案实现的:
一种提高闪存盘数据写入速度的方法,所述闪存盘包括控制芯片和闪存芯片,所述控制芯片中包括固化软件,所述方法包括以下步骤:1)在所述固化软件中设置存放空块信息的新块队列和存放旧块信息的待擦除块队列,所述旧块指已写入数据的存储块;2)所述控制芯片接收数据写操作指令,并解析所述数据写操作指令的逻辑地址;3)判断与所述逻辑地址对应的存储块是否为旧块;4)如果是旧块,则从所述新块队列中取出一新块写入所述写指令欲写入的数据;5)将所述旧块中已有的数据复制到所述新块中,用所述新块取代所述旧块,将所述旧块放入所述待擦除块队列中。6)统一擦除所述待擦除块队列中的旧块。
使用本发明提供的方法可在执行对已写有数据的存储块的写指令过程中采用集中擦除待擦除块的方式,使得每操作下一个块之前不需要等待块的擦除操作,进而节省时间、提高数据写入效率,改善闪存盘的性能。
优选地,本发明包括以下改进方案:在所述新块的冗余区中写入所述存储块的物理地址和逻辑地址,若步骤6)尚未完成时闪存盘突然断电,则再次上电时执行以下步骤:a)将逻辑地址相同的存储块组成“同逻辑地址待擦除块队列”;b)读取所述“同逻辑地址待擦除块队列”中任一存储块的冗余区的物理地址标记;c)根据步骤b)所读取的物理地址标记,查找“同逻辑地址待擦除块”队列中,是否存在相同物理地址的存储块;d)如果“同逻辑地址待擦除块”队列中,存在与步骤b)所读取的物理地址相同的存储块,则将该存储块删除;e)如果“同逻辑地址待擦除块”队列中,不存在与步骤b)所读取的物理地址相同的存储块,则将上述被读取的存储块删除;f)重复步骤b)-e)直到所述“同逻辑地址待擦除块队列”中只剩一块存储块。
使用所述改进方案能使闪存盘在突然断电的情况下避免数据的丢失,保证操作过程中的数据安全。
本发明还包括以下改进方案:在步骤5)之前判断下一条写指令是否与步骤1)中的写指令是否为连续写操作;如果下一条写指令是与步骤1)中的写指令为连续写操作则在步骤5)之前执行下一条写指令。
利用上述方法,进一步简化写指令执行过程,提高数据操作效率、节省操作时间,还可减少对闪存介质频繁操作而引起的损耗,延长闪存盘使用寿命。
附图说明
图1是本发明的提高闪存盘数据写入速度的方法的主流程图;
图2是本发明中闪存盘突然断电后再上电时判断需要擦除的旧块的具体流程图。
具体实施方式
下面结合附图详细介绍本发明,附图仅用于说明,不是对本发明专利保护范围的限制。
本发明提供的是提高闪存盘数据写入速度的方法,可采用内嵌式软件(即固化软件)实现。为此,适用于本发明的闪存盘至少应具备控制芯片和闪存芯片。
使用本发明的方法时,在闪存盘控制芯片的固件中设置两个队列,分别用于存放存储空间中的新块与待擦除的旧块(以下简称待擦除块)的地址信息,两个队列分别称为新块队列和待擦除块队列。本发明所述的新块是内容为空的存储块即其内容为1,所称旧块是指其数据已被复制到新块,需要擦除的存储块。所述两队列一般在闪存盘上电初始化过程中建立,用来实现对需要擦除的旧块的统一管理及擦除。
请参见图1,在固件中使用以下流程来实现对需要擦除的原块的统一管理、擦除:
在步骤101中,闪存盘接收到一个来自主机端的写指令时。
随后,通过闪存盘固件中的地址对照表判断该写指令指向的地址是否对应了一个实际的存储块,即指向的逻辑地址在对照表中是否存在对应的物理地址(步骤102)。
如果没有对应记录,则代表该指向的地址尚未写入数据,应从新块队列中取出一个新块(步骤103’)。
然后,在步骤105中,将写指令中的数据写入该新块对应页中,给该新块标注写指令指向的逻辑地址。
如果写指令指向的地址存在对应的存储块物理地址,则代表该指向的存储块(即旧块)已经被写入过数据,所以从新块队列中取出一个新块(步骤103)。
在该新块冗余区中写入旧块的物理地址(步骤104)。
在该新块冗余区中写入旧块的逻辑地址(步骤105)。
将写指令中的数据写入该新块对应页中(步骤106)。
将该旧块中,未被写指令覆盖的那些页的原有数据复制到该新块的对应页中(步骤107)。
然后,在步骤108中,将旧块信息放入待擦除块队列中。
在步骤109中,修改地址对照表,将实际写入新数据的新块物理地址与写指令中的逻辑地址建立对应关系。
另外,需在闪存盘固件中设置计时器,从写操作完成后开始计时,以在闪存盘写操作完成后的空闲时间将待擦除块队列中的存储块擦除,并且在每个存储块擦除完成后将其物理地址信息放入新块队列,以便以后的写入操作取用。所述待擦除块的擦除还应当在闪存盘断电前完成,所以控制芯片的固件在接收到主机操作***发出的闪存盘将安全退出的命令时,会执行擦除待擦除块队列中的存储块的操作以在闪存盘断电前擦除所述擦除块队列中的存储块,然后向主机操作***返回命令执行成功的信息。
使用本发明的方案,可在执行对已写有数据的存储块(旧块)的写指令过程中采用集中擦除旧块的方式,使得每操作下一个存储块之前不需要等待旧块的擦除操作,进而节省时间、提高效率,改善闪存盘的性能.
上述步骤中,步骤104和105是用来判断存储块中数据的新旧情况,具体来说判断方法如下:根据现有的Windows操作***及磁盘管理技术,一条写指令中包含的数据通常不超出一个存储块的容量,多数情况下需要N条写指令才能完成对一个存储块所有页写入数据.执行这N条指令,将产生N-1个待擦除旧块,最后仅剩1个包含最新数据的存储块.
如果这N-1个旧块尚未来得及统一擦除,闪存盘就断电或者结束操作,待擦除块队列及新块队列信息将不会保存下来。在闪存空间中将存在N个不同的存储块,具有不同的物理地址,却标记相同的逻辑地址,其中的数据内容却不相同。当闪存盘再次上电,进行物理地址到逻辑地址的对照时将会出错。
为解决上述问题,本发明需要采取步骤104,在每取用一个新块,向其中写入写指令数据时,都将该写指令对应的原块物理地址写入该新块的冗余区中,表明该新块中的原有数据是由该物理地址指向的原块复制而来。
在闪存盘断电后再次上电时,根据存储块冗余区中标记的原块物理地址来判断存储块中数据的新旧程度,进一步决定是否保留该存储块。
若在上电时发现有2个以上存储块即不同物理地址的存储块对应相同的逻辑地址,那么可以判断各存储块冗余区中标记的旧块物理地址中必然有一个存储块冗余中标记的旧块物理地址指向另一个存储块本身的物理地址,那么这个块就是写入新数据的块,而被指向的块就是包含原有数据的旧块,如果有较多的存储块对应相同逻辑地址的情况可以此类推,具体的判断流程如下:
请参见流程图2,闪存盘突然断电后再上电时判断需要擦除的存储块的具体流程如下:
先找出所有标记有相同逻辑地址的存储块,将这些存储块组成“同逻辑地址待擦除块”队列。
在步骤201中,读取该“同逻辑地址待擦除块”队列中任一存储块的冗余区中标记的旧块物理地址。
在步骤202中,查找该队列中其余存储块,判断是否存与该存储块对应的旧块,即是否一个存储块本身的物理地址与该存储块中标记的旧块物理地址相同。
如果存在该旧块,说明旧块中部分原有数据被复制到该存储块中,此时将该旧块删除(步骤203);
如果找不到该存储块的旧块,说明该存储块中的数据未从现有“同逻辑地址待擦除块”队列中任何一存储块中复制过数据,则将该存储块擦除(步骤204);
接下来在步骤205中,判断队列中的存储块数量是否大于1;
若队列中的存储块数量大于1,则重复步骤201至步骤205,操作队列中的下一存储块;直到步骤205中判断队列中的存储快数量不大于1时为止,此时,队列中所剩的存储块中保存的数据就是最新的,在逻辑地址对照表中将该存储块的物理地址与逻辑地址建立对照关系。
另外,在对大容量Flash(即每个存储块包含256Page)操作时,由于根据目前Windows的操作***及磁盘管理技术,一条写指令中包含的数据通常不超出一个存储块(256Page)的容量,多数情况下需要N条写指令才能完成对一个存储块所有页写入数据。并且一般来讲,所述N条写指令可能连续下达。
在执行完毕一条写指令后,如果被写入的存储块并没有被该写指令完全覆盖,则有可能下次写指令是接着上次写指令的地址,在该块中继续写入数据。此时为节省操作和提高效率,减少原有数据的复制操作,可进行如下改进:
在本次写入指令完成后暂时不将旧块内容复制到该存储块,也不立即将旧块放入待擦除块队列;
判断下一条指令与本次写入指令是否为连续写操作;
如果下一条指令与本次写入指令为连续写操作,则继续写,直到把该存储块写完,再将旧块放入待擦除块队列;
如果下一条指令与本次写入指令不为连续写操作,则将旧块内容复制到该存储块,并把旧块放入待擦除块队列。
利用上述方法,进一步简化写指令执行过程,提高数据操作效率、节省操作时间,还可保证操作过程中的数据安全,减少对闪存介质频繁操作而引起的损耗,延长闪存盘使用寿命。
以上所述仅为本发明的优选实施方式,本领域技术人员可以理解,这些实施方案不应构成对本发明专利保护范围的限制,凡在本发明的说明书及附图所公开内容的基础上进行的等效结构变换,都包括在本发明的权利要求书所限定的本发明的专利保护范围内。
Claims (8)
1.一种提高闪存盘数据写入速度的方法,所述闪存盘包括控制芯片和闪存芯片,所述控制芯片中设有固化软件,所述方法包括以下步骤:1)在所述固化软件中设置存放空块信息的新块队列和存放旧块信息的待擦除块队列,所述旧块指已写入数据的存储块;2)所述控制芯片接收数据写操作指令,并解析所述数据写操作指令的逻辑地址;3)判断与所述逻辑地址对应的存储块是否为旧块;4)如果是旧块,则从所述新块队列中取出一新块写入所述写指令欲写入的数据;5)将所述旧块中已有的数据复制到所述新块中,用所述新块取代所述旧块,且将所述旧块放入所述待擦除块队列中;6)统一擦除所述待擦除块队列中的旧块。
2.如权利要求1所述的提高闪存盘数据写入速度的方法,其特征在于:步骤3)是通过以下方式实现的:判断所述逻辑地址在控制芯片的逻辑对照表中是否存在对应的物理地址,如果存在对应的物理地址则所述存储块为旧块。
3.如权利要求2所述的提高闪存盘数据写入速度的方法,其特征在于:步骤5)进一步包括:修改所述逻辑对照表,将所述新块的物理地址与写指令中的所述逻辑地址建立对应关系。
4.如权利要求1所述的提高闪存盘数据写入速度的方法,其特征在于:步骤5)还包括在所述新块的冗余区中写入所述旧块的物理地址和逻辑地址。
5.如权利要求1所述的提高闪存盘数据写入速度的方法,其特征在于:步骤6)进一步包括所述控制芯片在所述闪存盘写操作完成后到断电前的时间内统一擦除所述待擦除块队列中的旧块。
6.如权利要求4所述的提高闪存盘数据写入速度的方法,其特征在于:所述方法还包括:若步骤6)尚未完成时闪存盘突然断电,则再次上电时执行以下步骤:a)将逻辑地址相同的存储块组成“同逻辑地址待擦除块队列”;b)读取所述“同逻辑地址待擦除块队列”中任一存储块的冗余区的物理地址标记;c)根据步骤b)所读取的物理地址标记,查找“同逻辑地址待擦除块”队列中,是否存在相同物理地址的存储块;d)如果“同逻辑地址待擦除块”队列中,存在与步骤b)所读取的物理地址相同的存储块,则将该存储块删除;e)如果“同逻辑地址待擦除块”队列中,不存在与步骤b)所读取的物理地址相同的存储块,则将上述被读取的存储块删除;f)重复步骤b)-e)直到所述“同逻辑地址待擦除块队列”中只剩一块存储块。
7.如权利要求1所述的提高闪存盘数据写入速度的方法,其特征在于:所述方法还包括:在步骤5)之前判断下一条写指令是否与步骤1)中的写指令为连续写操作。
8.如权利要求7所述的提高闪存盘数据写入速度的方法,其特征在于:如果下一条写指令是与步骤1)中的写指令为连续写操作则在步骤5)之前执行下一条写指令,直到把所述新块写完再执行步骤5)。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2004100509520A CN100470677C (zh) | 2004-07-30 | 2004-07-30 | 提高闪存盘数据写入速度的方法 |
HK06107797.4A HK1087832A1 (en) | 2004-07-30 | 2006-07-12 | Method for increasing speed of writing data into flash memory disk |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2004100509520A CN100470677C (zh) | 2004-07-30 | 2004-07-30 | 提高闪存盘数据写入速度的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1728282A CN1728282A (zh) | 2006-02-01 |
CN100470677C true CN100470677C (zh) | 2009-03-18 |
Family
ID=35927487
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2004100509520A Expired - Lifetime CN100470677C (zh) | 2004-07-30 | 2004-07-30 | 提高闪存盘数据写入速度的方法 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN100470677C (zh) |
HK (1) | HK1087832A1 (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101441552B (zh) * | 2007-11-19 | 2012-05-23 | 深圳市朗科科技股份有限公司 | 闪存介质坏块处理方法 |
CN101458658B (zh) * | 2007-12-13 | 2011-07-06 | 中芯国际集成电路制造(上海)有限公司 | 用于闪存的数据存储方法及装置 |
CN101464836B (zh) * | 2007-12-20 | 2010-10-20 | 宇瞻科技股份有限公司 | 闪存储存装置的数据储存方法 |
CN101266577B (zh) * | 2008-03-27 | 2010-06-16 | 上海交通大学 | 可编程片上带有存储器接口的nor闪存读取控制方法 |
CN101630233B (zh) * | 2008-07-17 | 2012-07-11 | 群联电子股份有限公司 | 用于闪存的数据存取方法、储存***与控制器 |
CN101493794B (zh) * | 2009-01-19 | 2011-12-21 | 成都市华为赛门铁克科技有限公司 | 一种闪存数据处理方法及装置 |
KR102038036B1 (ko) * | 2013-05-28 | 2019-10-30 | 에스케이하이닉스 주식회사 | 반도체 장치 및 반도체 장치를 포함하는 반도체 시스템 |
CN109117385A (zh) * | 2018-07-20 | 2019-01-01 | 江苏华存电子科技有限公司 | 一种关联式垃圾数据回收方法 |
CN111324549B (zh) * | 2018-12-14 | 2022-07-01 | 北京兆易创新科技股份有限公司 | 一种存储器及其控制方法和装置 |
CN110806840A (zh) * | 2019-10-24 | 2020-02-18 | 深圳市得一微电子有限责任公司 | 一种基于多数据流的闪存卡数据存储方法、闪存卡及设备 |
-
2004
- 2004-07-30 CN CNB2004100509520A patent/CN100470677C/zh not_active Expired - Lifetime
-
2006
- 2006-07-12 HK HK06107797.4A patent/HK1087832A1/xx unknown
Also Published As
Publication number | Publication date |
---|---|
HK1087832A1 (en) | 2006-10-20 |
CN1728282A (zh) | 2006-02-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103577121B (zh) | 一种基于Nand Flash的高可靠线性文件存取方法 | |
EP0770960B1 (en) | Flash translation layer block indication map revision method | |
CN1900919B (zh) | 包括多个块的闪速存储器 | |
CN102576293B (zh) | 固态存储设备和分层存储***中的数据管理 | |
CN101477492B (zh) | 一种用于固态硬盘的循环重写闪存均衡方法 | |
US7761655B2 (en) | Storage system and method of preventing deterioration of write performance in storage system | |
CN100565477C (zh) | 一种NAND Flash存储器的动态管理方法 | |
CN101382918B (zh) | 一种基于数据交换区的NAND Flash闪存优化管理方法 | |
CN103577574B (zh) | 一种基于nand flash的高可靠线性文件*** | |
CN106527969B (zh) | 一种寿命均衡的NandFlash存储器读写方法 | |
CN100501868C (zh) | 基于NAND Flash存储器文件***的实现方法 | |
CN102135942B (zh) | 一种存储设备中实现损耗均衡的方法及存储设备 | |
CN103544110A (zh) | 一种基于固态盘的块级连续数据保护方法 | |
US20090193182A1 (en) | Information storage device and control method thereof | |
CN103049349B (zh) | 基于分层存储的快照方法及*** | |
CN100449549C (zh) | 嵌入式***中NAND Flash存储器上建立文件***的方法 | |
EP1782176A2 (en) | Systems, methods, computer readable medium and apparatus for memory management using nvram | |
CN102043687B (zh) | 实现数据快照的首写拷贝装置及控制方法 | |
CN102096561B (zh) | 分层数据存储处理方法、装置以及存储设备 | |
CN101483067A (zh) | 快闪存储器数据写入方法及其快闪存储器控制器 | |
CN105718530A (zh) | 文件存储***及其文件存储控制方法 | |
CN107239526A (zh) | 文件***实现方法、碎片整理方法、操作位置定位方法 | |
CN102779096A (zh) | 一种基于页块面三维的闪存地址映射方法 | |
CN106598493A (zh) | 一种固态硬盘地址映射表管理方法 | |
CN101515276A (zh) | 一种文件数据写操作的方法、文件数据恢复方法及*** |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 1087832 Country of ref document: HK |
|
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: GR Ref document number: 1087832 Country of ref document: HK |