CN103324493B - 基于nand flash的系统开机提速方法及系统 - Google Patents

基于nand flash的系统开机提速方法及系统 Download PDF

Info

Publication number
CN103324493B
CN103324493B CN201210075563.8A CN201210075563A CN103324493B CN 103324493 B CN103324493 B CN 103324493B CN 201210075563 A CN201210075563 A CN 201210075563A CN 103324493 B CN103324493 B CN 103324493B
Authority
CN
China
Prior art keywords
block
information
page
write
mark
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
CN201210075563.8A
Other languages
English (en)
Other versions
CN103324493A (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.)
Guangzhou Ankai Microelectronics Co.,Ltd.
Original Assignee
Anyka Guangzhou Microelectronics 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 Anyka Guangzhou Microelectronics Technology Co Ltd filed Critical Anyka Guangzhou Microelectronics Technology Co Ltd
Priority to CN201210075563.8A priority Critical patent/CN103324493B/zh
Publication of CN103324493A publication Critical patent/CN103324493A/zh
Application granted granted Critical
Publication of CN103324493B publication Critical patent/CN103324493B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本发明适用于信息处理领域,提供了一种基于NAND FLASH的系统开机提速方法及系统。所述方法包括:在预先选取的系统块上写入系统信息已经被修改的标志;系统关机前,根据是否写入系统信息已经被修改的标志选择是否写入被修改的系统信息,所述系统信息包括NFTL中所有逻辑块地址的最大使用页信息、所述逻辑块地址的链表头所对应的物理块的块号、以及每一个物理块记录的前一个物理块的块号;系统重新开机后,根据写入的系统信息已经被修改的标志,读取写入系统块上的系统信息。本发明实施例能够极大提升了系统开机速度。

Description

基于NAND FLASH的系统开机提速方法及系统
技术领域
本发明属于信息处理领域,尤其涉及基于NAND FLASH的系统开机提速方法及系统。
背景技术
NAND FLASH存储器是采用非易失闪存技术的存储器,该NAND FLASH存储器具有价格低、体积小、容量大、数据不易丢失等一系列优点,因此在嵌入式产品中得到了越来越广泛的应用,NAND FLASH的应用包括手机,数码相机、学习机,音视频播放器、游戏机,U盘,固态硬盘等等。
根据NAND FLASH的以下特性,在嵌入式系统中通常增加一层中间层以便更好的对NAND FLASH进行管理:(1)读、写单位与擦除单位不同:读和写都是以页(page)为单位进行操作,而擦除则以块为单位;(2)擦除操作频繁:任何NAND FLASH器件的写入操作只能在空或已擦除的块内进行,所以大多数情况下,在进行写入操作之前必须先执行擦除操作;(3)擦写次数有限:NAND FLASH的块有擦写次数的限制,若超过了最大可擦写次数,则这个块就成为坏块;(4)要求顺序写入:有的NAND FLASH要求在一个块内只能顺序连续写。其中,在嵌入式系统中增加的中间层也称为NAND FLASH转换层(NAND Flash Translation Layer,NFTL),该NFTL将逻辑块地址(Logical Block Address,LBA)对应到实体的NAND FLASH的位置,并透过一些机制能让系统把NAND FLASH当作一般的硬盘处理。该NFTL使得NAND FLASH设备的驱动更加简单,其在NAND FLASH驱动和上层文件系统之间提供一个抽象的接口,因此承上可以很好地支持FAT(File Allocation Table)等文件系统,启下能对NAND FLASH的擦除,读写,坏块,磨损平衡以及掉电处理进行很好的管理。
但是当前以NAND FLASH为存储介质的嵌入式产品的开机速度非常慢,市面上的很多智能手机(如以Andriod为操作系统的智能手机)的开机性能令人堪忧,这是因为以NANDFLASH为存储介质的嵌入式系统存在如下缺点:开机时,不能快速获取系统信息。为了还原关机前的信息,需要分别读取NANDFLASH的每一个块的区域外(Out OfBand,OOB)信息来还原关机前的数据,该OOB存在于每一个块的每个页,由于需要读取每个块的OOB数据,因此造成开机时间很长,在开机过程中造成系统多个功能(读写文件有关的功能)不能正常操作,影响了用户的使用。
发明内容
本发明实施例提供了一种基于NAND FLASH的系统开机提速方法,旨在解决现有以NAND FLASH为存储介质的系统的开机时间过长的问题。
本发明实施例是这样实现的,一种基于NAND FLASH的系统开机提速方法,所述方法包括步骤:
在预先选取的系统块上写入系统信息已经被修改的标志;
在系统关机前,根据是否写入系统信息已经被修改的标志选择是否写入被修改的系统信息,所述系统信息包括NAND FLASH转换层NFTL中所有逻辑块地址的最大使用页信息、所述逻辑块地址的链表头所对应的物理块的块号、以及每一个物理块记录的前一个物理块的块号;
系统重新开机后,根据写入的系统信息已经被修改的标志,读取写入系统块上的系统信息。
本发明实施例的另一目的在于提供一种基于NAND FLASH的系统开机提速系统,所述系统包括:
标志页写入单元,用于在预先选取的系统块上写入系统信息已经被修改的标志;
系统信息页写入单元,用于系统关机前,根据是否写入系统信息已经被修改的标志选择是否写入被修改的系统信息,所述系统信息包括NAND FLASH转换层NFTL中所有逻辑块地址的最大使用页信息、所述逻辑块地址的链表头所对应的物理块的块号、以及每一个物理块记录的前一个物理块的块号;
信息读取单元,用于系统重新开机后,根据写入的系统信息已经被修改的标志,读取写入系统块上的系统信息。
在本发明实施例中,通过读取系统块存储的系统信息就能够快速还原关机前的信息,而无需分别读取NFTL的每一个块的OOB信息,从而节省了获取系统信息的时间,提高了获取系统信息的效率,极大提升了系统开机速度。
附图说明
图1是本发明第一实施例提供的基于NAND FLASH的系统开机提速方法流程图;
图2是本发明基于NAND FLASH的系统开机提速方法第一实施例提供的在系统块写入系统信息已经被修改的标志,以及写入被修改的系统信息的示意图;
图3是本发明基于NAND FLASH的系统开机提速方法第一实施例提供的在系统块写入标志页的流程图;
图4是本发明基于NAND FLASH的系统开机提速方法第一实施例提供的在系统块写入系统信息页的流程图;
图5是本发明基于NAND FLASH的系统开机提速方法第一实施例提供的保存的系统信息内容的说明的示意图;
图6是本发明基于NAND FLASH的系统开机提速方法第一实施例提供的读取系统信息的流程图;
图7是本发明第三实施例提供的基于NAND FLASH的系统开机提速系统的结构;
图8是本发明第三实施例提供的包括标志页、系统信息页写入单元具体结构的基于NAND FLASH的系统开机提速系统的结构;
图9是本发明第三实施例提供的包含信息读取单元具体结构的基于NANDFLASH的系统开机提速系统的结构。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例中,在系统运行过程中,在选取的系统块上写入标志页,在系统关机前,根据系统块是否写有标志页选择是否写入系统信息页,在系统重启后,读取系统块存储的系统信息页以还原关机前的信息。
本发明实施例提供了一种:基于NAND FLASH的系统开机提速方法及系统。
所述方法包括:在预先选取的系统块上写入系统信息已经被修改的标志;
在系统关机前,根据是否写入系统信息已经被修改的标志选择是否写入被修改的系统信息,所述系统信息包括NAND FLASH转换层NFTL中所有逻辑块地址的最大使用页信息、所述逻辑块地址的链表头所对应的物理块的块号、以及每一个物理块记录的前一个物理块的块号;
系统重新开机后,根据写入的系统信息已经被修改的标志,读取写入系统块上的系统信息。
所述系统包括:标志页写入单元,用于在预先选取的系统块上写入系统信息已经被修改的标志;
系统信息页写入单元,用于系统关机前,根据是否写入系统信息已经被修改的标志选择是否写入被修改的系统信息,所述系统信息包括NAND FLASH转换层NFTL中所有逻辑块地址的最大使用页信息、所述逻辑块地址的链表头所对应的物理块的块号、以及每一个物理块记录的前一个物理块的块号;
信息读取单元,用于系统重新开机后,根据写入的系统信息已经被修改的标志,读取写入系统块上的系统信息。
在本发明实施例中,通过读取系统块存储的系统信息就能够快速还原关机前的信息,无需分别读取NFTL的每一个块的OOB信息,从而节省了获取系统信息的时间,提高了获取系统信息的效率,极大提升了系统开机速度。
为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。
实施例一:
图1示出了本发明基于NAND FLASH的系统开机提速方法第一实施例提供的流程图,详述如下:
步骤S11,在预先选取的系统块上写入系统信息已经被修改的标志。
本实施例中,预先选取的系统块为NFTL可管理中的第一个可用的空闲块,若该NFTL可管理中的第一个块已写有数据,不是空闲块,则将该NFTL可管理中的第一个块上的数据搬移到其他空闲块上,擦除该块上的数据,使之变为空闲块。将NFTL中第一个不是坏块的块作为系统块可以缩短每次开机时查找系统块的时间,提高开机性能。
本实施例中,在预先选取的系统块的页上写入标志系统信息已经被修改的信息,写入标志系统信息已经被修改的信息的页可称为标志页。
步骤S12,系统关机前,根据是否写入系统信息已经被修改的标志选择是否写入被修改的系统信息,该系统信息包括NAND FLASH转换层NFTL中所有逻辑块地址的最大使用页信息、该逻辑块地址的链表头所对应的物理块的块号、以及每一个物理块记录的前一个物理块的块号。
本实施例中,系统块的页上除了写入系统信息已经被修改的标志之外,还写入了被修改的系统信息,写入被修改的系统信息的页可称为系统信息页,在系统块中,可能存在多个连续的系统信息页。系统块的标志页和系统信息页存储的信息都包括写入的数据和OOB信息,并根据不同的OOB信息来区分标志页和系统信息页。需要指出的是,只要系统运行期间有写过标志页,则每次正常关机写入的系统信息大小都是相同的,其中,本实施例的系统信息包括逻辑块地址的最大使用页信息、该逻辑块地址的链表头所对应的物理块的块号、以及物理块记录的在链表中的前一个物理块的块号。
图2示出了在选取的系统块中写入系统信息已经被修改的标志,以及写入被修改的系统信息的示意图,详述如下:
在图2中,每一个大的长方形代表一个块,共有10块,块中的每一个小格代表一个页,页中有横虚线的表示标志页,页中有斜线的表示存有系统信息的系统信息页,其余的空闲页。在图2中,左边的10个大长方形是所有物理页的状态图,右边是从前一状态到后一状态产生的条件。例如,当系统第一次启动时,没有系统信息,则当系统有写操作或擦除块的操作时,将在系统块写上标志页,当系统正常关机时,将会保存系统相应的信息,因此在关机前将会保存系统所有信息到系统块上。
在系统重新开机后,执行步骤S13:
步骤S13,系统重新开机后,根据写入的系统信息已经被修改的标志,读取写入系统块上的系统信息。
本实施例中,系统重新开机后,查找标志页,并读取标志页后的系统信息页上的系统信息。进一步地,在本实施例中,当读取了存储在系统块的系统信息之后,若本次系统整个运行过程中有写命令,则将新的标志页写入系统块的最大使用页的下一页,关机时将系统信息从新的最大使用页的下一页开始写到系统块上,以保证每个物理块上的物理页是连续顺序写的。例如,假设系统块的最大使用页是A,则下次只能从该系统块的A+1页开始写,如果这个系统块写满了,则要先将该系统块擦除,再将要写的数据写入系统块上。如果在关机时没有保存所有逻辑块地址的最大使用页,那么重启后,若要对某个逻辑块地址进行写操作,由于不知道这个逻辑块地址的链表头的物理块的最大使用页,因此需要读取逻辑块地址的链表头所对应的物理块的每个页的OOB信息,以便得到逻辑块地址的最大使用页是多少,从而导致写速度下降。
在本发明实施例中,由于在选取的系统块存储标志系统信息已经被修改的信息和被修改的系统信息,因此在系统重启后,通过读取系统块存储的系统信息就能够快速还原关机前的信息,而无需分别读取NFTL的每一个块的OOB信息,从而节省了获取系统信息的时间,提高了获取系统信息的效率,极大提升了系统开机速度。
作为本发明一优选实施例,在系统运行过程中,步骤S11中的在预先选取的系统块上写入系统信息已经被修改的标志的步骤具体如图3所示,包括:
步骤S31,在系统运行时,判断接收的命令是否为写命令,该写命令包括写数据命令和擦除块命令,若是,执行步骤S32,否则,步骤S34。
本实施例中,在系统运行时,若接收到一个命令,则判断该命令是否为写命令。其中,判断一个命令是否为写命令是通过判断该命令是否为写数据命令,或者通过判断该命令是否为擦除块命令进行判断,若是写数据命令或擦除块命令,则该接收的命令为写命令。
步骤S32,判断系统启动后是否已经写入标志页,该标志页为写入系统信息已经被修改的标志的页,若是,执行步骤S34,否则,执行步骤S33。
本实施例中,在接收到写命令时,判断系统启动后是否已在系统块写入标志页,若没有,则执行步骤S33。
步骤S33,在系统块上写入标志页。
步骤S34,结束操作。
在本发明实施例中,若系统启动后标志页已写入系统块,则不再写入标志页,否则,在系统块写入标志页,从而能够有效避免标志页漏泄、多写的问题。
作为本发明一优选实施例,根据是否写入系统信息已经被修改的标志选择是否写入被修改的系统信息的步骤具体如图4所示,包括:
步骤S41,在系统关机时,判断本次系统运行过程中是否曾写入标志页,若是,执行步骤S42,否则,执行步骤S45。
本实施例中,若在系统运行过程中写过标志页,则在系统关机时,将会有写操作。
步骤S42,判断系统块是否有足够的空间保存将要写入的系统信息,若是,执行步骤S44,否则,执行步骤S43。
本实施例中,在存在写操作时,判断系统块的剩余空间是否大于或等于将写入的系统信息大小。
步骤S43,擦除系统块,并执行步骤S44。
本实施例中,当系统块的剩余空间小于将写入的系统信息大小时,对系统块执行擦除操作,以释放出空间存储新的系统信息。
步骤S44,在系统块写入系统信息。
步骤S45,返回。
在本发明实施例中,将修改的系统信息统一存入选取的系统块上,便于后续的快速读取。
为了更清楚地说明本发明保存的系统信息(NFTL中所有逻辑块地址的最大使用页信息、逻辑块地址的链表头所对应的物理块的块号、以及每一个物理块记录的前一个物理块的块号)中三个成员的意义,下面以图5为例,对逻辑块地址0写数据的过程进行说明:
在图5中,每一个大的长方形代表一个块,在块中的每个小格代表一个页,为了描述方便,物理块1的块号是1,物理块2的块号是2,物理块3的块号是3,每个块都假设为10页,从左到右依次为第0页、第1页、第2页、第3页、第4页、第5页、第6页、第7页、第8页、第9页,具有斜条纹的页代表已经使用过的页,其余代表空闲页。
1、物理块1中没有写入数据,该物理块1是空闲块,其最大使用页信息为0XFFFF,表示没有统计物理块1的最大使用页。
2、将物理块1加入到逻辑块地址0的链表上,从第0页开始写,共写入5个页的数据,则该逻辑块地址0的链表的最大使用页信息是4。
3、在最大使用页后面继续写入数据,从第5个页开始,写入5个页的数据,则该逻辑块地址0的链表的最大使用页信息为9,证明该逻辑块地址0已无空闲页。
4、由于物理块1已写完,若对逻辑块地址0再写入数据,则需要在逻辑块地址0的链表上加上一个新的空闲的物理块2,物理块1称为链表尾,物理块2称为链表头。
5、对逻辑块地址0的链表写7个页的数据,由于物理块2是空闲块,因此将数据写在物理块2的第0页至第6页,该逻辑块地址0的链表的最大使用页信息为6。
6、对逻辑块地址0的链表再写5个页的数据,根据物理块2的最大使用页信息得知物理块2还有3个空闲页,对逻辑块地址0写入3页数据后,物理块2被写满,逻辑块地址0的链表的最大使用页信息为9。剩下的2页需要在链表上再分配一个物理块3,该物理块3作为链表头。
7、在物理块3上写入剩下的2页数据,则该逻辑块地址0的链表的最大使用页信息是1。
在图5中,逻辑块地址0的链表长度为3,物理块1在链表的前一个物理块的块号是2,物理块2在链表的前一个物理块的块号是3,逻辑块地址0的链表的最大使用页信息是1。
作为本发明一优选实施例,根据写入的系统信息已经被修改的标志,读取写入系统块上的系统信息的步骤具体如图6所示,包括:
步骤S61,查找NFTL中第一个不是坏块的块。
本实施例中,在系统启动后,从前往后查找NFTL中第一个不是坏块的块,由于是从前到后查找,所以将NFTL中第一个不是坏块的块作为系统块,可以缩短每次开机时查找系统块的时间,从而提高开机性能。
步骤S62,判断查找的块是否为系统块,若是,执行步骤S64,否则,执行步骤S63。
本实施例中,判断查找的块是否存在标识页,若存在,判断该查找的块为系统块。
步骤S63,将查找的块对应的逻辑块地址进行垃圾回收,并执行步骤S64。
步骤S64,判断该块的最后一个标志页后的系统信息页的页数与NFTL系统保存的页数是否相同,若相同,执行步骤S66,否则,执行步骤S65。
本实施例中,系统块的最后一个标志页是最近一次启动时写入的,其后的系统信息页则是最近一次关机前写入的。当最后一个标志页后的系统信息页的页数与NFTL系统计算并保存的系统信息的页数相同时,表明所有修改的系统信息已写入,表明本次关机是正常关机。
步骤S65,读取所有块的OOB信息,以还原掉电前的信息。
本实施例中,当没有将所有修改的系统信息写入系统块时,需要读取NFTL可管理中的所有块的OOB信息,以还原掉电前的信息。
步骤S66,读取查找的块的系统信息页的信息,以还原关机前的信息。
本实施例中,直接从系统块读取最近一次修改的系统信息,由于修改的系统信息都存在同一系统块中,因此节省了读取时间。
步骤S67,结束操作。
在本发明实施例中,系统开机时,到NFTL的系统块的相应位置读取数据,可以还原关机前修改的系统信息,由于不需要分别读取NFTL内每一个块的OOB信息来还原关机前的信息,因此可以使系统的开机性能有几倍到几十倍的提升。以读取图5的系统信息为例,在读取存储的系统信息时,可以直接得到以下信息:逻辑块地址0的最大使用页是1,逻辑块地址0的链表的链表头所对应的物理块的块号是3,物理块3在链表中的前一个物理块的块号是2,物理块2在链表中的前一个物理块的块号是1,物理块1是逻辑块地址0的链表尾。
实施例二:
为了更清楚地说明本发明实施例提供的基于NAND FLASH的系统开机提速方法,下面给出了实现本发明需要用到的一些参数,详述如下:
所需要的结构体和函数定义:
本发明实施例中,在系统正常关机时,把NFTL在内存中的系统信息写到NANDFLASH的系统块(保存系统信息的块)上,系统开机时直接到系统块读取关机时保存的信息,不再需要其他额外的处理,因此可以快速还原关机前的信息,提高开机性能。
以65536个块(容量32G)的NAND FLASH的系统为例,系统把整个NANDFLASH创建为一个磁盘分区,磁盘空间被用完一半的情况下,本发明的开机时间比现有的技术的开机时间缩短几十倍。
实施例三:
图7示出了本发明第三实施例提供的基于NAND FLASH的系统开机提速系统的结构,为了便于说明,仅示出了与本发明实施例相关的部分。
该基于NAND FLASH的系统开机提速系统可以用于通过有线或者无线网络连接服务器的各种信息处理终端,例如移动电话、口袋计算机(Pocket Personal Computer,PPC)、掌上电脑、计算机、笔记本电脑、个人数字助理(Personal Digital Assistant,PDA)等,可以是运行于这些终端内的软件单元、硬件单元或者软硬件相结合的单元,也可以作为独立的挂件集成到这些终端中或者运行于这些终端的应用系统中,其中:
标志页写入单元71,用于在预先选取的系统块上写入系统信息已经被修改的标志。
本实施例中,选取的系统块为NFTL可管理中的第一个可用的空闲块,若该NFTL可管理中的第一个块已写有数据,不是空闲块,则将该NFTL可管理中的第一个块上的数据搬移到其他空闲块上,擦除该块上的数据,使之变为空闲块。将NFTL中第一个不是坏快的块作为系统块可以缩短每次开机时查找系统块的时间,提高开机性能。
系统信息页写入单元72,用于系统关机前,根据是否写入系统信息已经被修改的标志选择是否写入被修改的系统信息,该系统信息包括NAND FLASH转换层NFTL中所有逻辑块地址的最大使用页信息、该逻辑块地址的链表头所对应的物理块的块号、以及每一个物理块记录的前一个物理块的块号。
本实施例中,写有标志系统信息已经被修改的信息和被修改的系统信息的页分别称为标志页和系统信息页,该标志页和系统信息页存储的信息都包括写入的数据和OOB信息,并根据不同的OOB信息来区分标志页和系统信息页。
信息读取单元73,用于系统重新开机后,根据写入的系统信息已经被修改的标志,读取写入系统块上的系统信息。
本实施例中,读取存储在系统信息页上的系统信息。进一步地,在读取了系统信息之后,若本次系统整个运行过程中有写命令,则将新的标志页写入系统块的最大使用页的下一页,关机时将系统信息从新的最大使用页的下一页开始写到系统块上,保证了每个物理块上的物理页是连续、顺序写的。
在本发明实施例中,在系统运行过程中,标志页写入单元71在选取的系统块上写入标志页,在系统关机前,系统信息页写入单元72写入系统信息页,以便系统重启时,由信息读取单元73读取存储在系统块的信息。由于无需分别读取NFTL的每一个块的OOB信息,从而节省了获取系统信息的时间,提高了获取系统信息的效率,极大提升了系统开机速度。
作为本发明一优选实施例,图8示出了包括标志页写入单元71具体结构的基于NAND FLASH的系统开机提速系统的结构,该信息写入单元71包括:
写命令判断模块711,用于在系统运行时,判断接收的命令是否为写命令。
标志页写入判断模块712,用于在接收的命令为写命令时,判断系统启动后是否已经写入标志页,若是,返回系统,否则,在系统块上写入标志页。
作为本发明一优选实施例,该系统信息页写入单元72包括:
写操作判断模块721,用于在系统关机时,判断是否有写操作。
系统信息写入判断模块722,用于在有写操作时,判断系统块是否有足够的空间保存将要写入的系统信息,若是,在系统块写入系统信息,若否,则擦除系统块后再在擦除后的系统块上写入系统信息。
作为本发明一优选实施例,该系统包括:
作为本发明一优选实施例,图9示出了包含信息读取单元73具体结构的基于NANDFLASH的系统开机提速系统的结构,该信息读取单元73包括:
系统块查找模块731,用于查找NFTL中第一个不是坏块的块。
本实施例中,在查找系统块时,从前往后查找NFTL中第一个不是坏块的块,将NFTL中第一个不是坏块的块作为系统块可以缩短每次开机时查找系统块的时间,提高开机性能。
系统块判断模块732,用于判断查找的块是否为系统块。
垃圾回收模块733,用于在查找的块不是系统块时,将查找的块对应的逻辑块地址进行垃圾回收。
系统块处理模块734,用于判断该块的最后一个标志页后的系统信息页的页数与NFTL系统保存的页数是否相同。
各块信息读取模块735,用于读取所有块的OOB信息,以还原掉电前的信息。
本实施例中,若没有成功将所有修改的系统信息写入系统块,则需要读取各个块的OOB信息,该各个块的OOB信息包括了最近一次修改的系统信息,再根据读取的各个块的OOB信息来还原掉电前的信息。
系统块信息读取模块736,用于读取查找的块的系统信息页的信息,以还原关机前的信息。
本实施例中,若成功将所有修改的系统信息写入系统块,则直接从该系统块中读取存储的最近一次修改的系统信息,以还原关机前的信息。
结束模块737,用于结束操作。
在本发明实施例中,系统开机时,到NFTL的系统块的相应位置读取数据,可以还原关机前修改的系统信息,由于不需要分别读取NFTL内每一个块的OOB信息来还原关机前的信息,因此可以使系统的开机性能有几倍到几十倍的提升。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (8)

1.一种基于NAND FLASH的系统开机提速方法,其特征在于,所述方法包括步骤:
在预先选取的系统块上写入系统信息已经被修改的标志;
在系统关机前,根据是否写入系统信息已经被修改的标志选择是否写入被修改的系统信息,所述系统信息包括NAND FLASH转换层NFTL中所有逻辑块地址的最大使用页信息、所述逻辑块地址的链表头所对应的物理块的块号、以及每一个物理块记录的前一个物理块的块号;
系统重新开机后,根据写入的系统信息已经被修改的标志,读取写入系统块上的系统信息。
2.如权利要求1所述的方法,其特征在于,所述在预先选取的系统块上写入系统信息已经被修改的标志的步骤具体包括:
在系统运行时,判断接收的命令是否为写命令,所述写命令包括写数据命令和擦除块命令;
在接收的命令为写命令时,判断系统启动后是否已经写入标志页,所述标志页为写入系统信息已经被修改的标志的页,若是,结束操作,否则,在系统块上写入标志页。
3.如权利要求2所述的方法,其特征在于,所述在系统关机前,根据是否写入系统信息已经被修改的标志选择是否写入被修改的系统信息的步骤具体包括:
在系统关机时,判断本次系统运行过程中是否曾写入标志页;
在系统曾写入标志页时,判断系统块是否有足够的空间保存将要写入的系统信息,若是,在系统块写入系统信息,若否,则擦除系统块后再在擦除后的系统块上写入系统信息。
4.如权利要求1所述的方法,其特征在于,所述系统重新开机后,根据写入的系统信息已经被修改的标志,读取写入系统块上的系统信息的步骤具体包括:
步骤S61,查找NFTL中第一个不是坏块的块;
步骤S62,判断查找的块是否为系统块,若是,执行步骤S64,否则,执行步骤S63;
步骤S63,将查找的块对应的逻辑块地址进行垃圾回收,并执行步骤S64;
步骤S64,判断所述块的最后一个标志页后的系统信息页的页数与NFTL系统保存的页数是否相同,若相同,执行步骤S66,否则,执行步骤S65;
步骤S65,读取所有块的OOB信息,以还原掉电前的信息;
步骤S66,读取查找的块的系统信息页的信息,以还原关机前的信息。
5.一种基于NAND FLASH的系统开机提速系统,其特征在于,所述系统包括:
标志页写入单元,用于在预先选取的系统块上写入系统信息已经被修改的标志;
系统信息页写入单元,用于系统关机前,根据是否写入系统信息已经被修改的标志选择是否写入被修改的系统信息,所述系统信息包括NAND FLASH转换层NFTL中所有逻辑块地址的最大使用页信息、所述逻辑块地址的链表头所对应的物理块的块号、以及每一个物理块记录的前一个物理块的块号;
信息读取单元,用于系统重新开机后,根据写入的系统信息已经被修改的标志,读取写入系统块上的系统信息。
6.如权利要求5所述的系统,其特征在于,所述标志页写入单元包括:
写命令判断模块,用于在系统运行时,判断接收的命令是否为写命令,所述写命令包括写数据命令和擦除块命令;
标志页写入判断模块,用于在接收的命令为写命令时,判断系统启动后是否已经写入标志页,所述标志页为写入系统信息已经被修改的标志的页,若是,返回系统,否则,在系统块上写入标志页。
7.如权利要求6所述的系统,其特征在于,所述系统信息页写入单元包括:
写操作判断模块,用于在系统关机时,判断本次系统运行过程中是否曾写入标志页;
系统信息写入判断模块,用于在系统曾写入标志页时,判断系统块是否有足够的空间保存将要写入的系统信息,若是,在系统块写入系统信息,若否,则擦除系统块后再在擦除后的系统块上写入系统信息。
8.如权利要求5所述的系统,其特征在于,所述信息读取单元包括:
系统块查找模块,用于查找NFTL中第一个不是坏块的块;
系统块判断模块,用于判断查找的块是否为系统块;
垃圾回收模块,用于在查找的块不是系统块时,将查找的块对应的逻辑块地址进行垃圾回收;
系统块处理模块,用于判断所述块的最后一个标志页后的系统信息页的页数与NFTL系统保存的页数是否相同;
各块信息读取模块,用于在所述块的最后一个标志页后的系统信息页的页数与NFTL系统保存的页数不同时,读取所有块的OOB信息,以还原掉电前的信息;
系统块信息读取模块,用于在所述块的最后一个标志页后的系统信息页的页数与NFTL系统保存的页数相同时,读取查找的块的系统信息页的信息,以还原关机前的信息。
CN201210075563.8A 2012-03-20 2012-03-20 基于nand flash的系统开机提速方法及系统 Active CN103324493B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210075563.8A CN103324493B (zh) 2012-03-20 2012-03-20 基于nand flash的系统开机提速方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210075563.8A CN103324493B (zh) 2012-03-20 2012-03-20 基于nand flash的系统开机提速方法及系统

Publications (2)

Publication Number Publication Date
CN103324493A CN103324493A (zh) 2013-09-25
CN103324493B true CN103324493B (zh) 2016-10-05

Family

ID=49193262

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210075563.8A Active CN103324493B (zh) 2012-03-20 2012-03-20 基于nand flash的系统开机提速方法及系统

Country Status (1)

Country Link
CN (1) CN103324493B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104794144A (zh) * 2014-09-09 2015-07-22 北京君正集成电路股份有限公司 一种nand flash的管理方法及装置
CN104657283A (zh) * 2015-02-04 2015-05-27 成都三零嘉微电子有限公司 一种提高nftl算法读写性能的方法

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1856138A (zh) * 2005-04-20 2006-11-01 英华达(上海)电子有限公司 实现移动电话快速开机的方法
CN1858703A (zh) * 2005-10-13 2006-11-08 华为技术有限公司 设备启动方法
CN101364166A (zh) * 2008-09-23 2009-02-11 杭州华三通信技术有限公司 将2048字节页的Nand Flash模拟成硬盘的方法和装置
CN101477469A (zh) * 2009-02-06 2009-07-08 杭州华三通信技术有限公司 一种启动代码的可靠性读取方法、写入方法和装置
CN101558452A (zh) * 2006-12-07 2009-10-14 Nxp股份有限公司 用于在闪速eeprom存储页中重构可靠性数据的方法和装置
CN101887750A (zh) * 2009-05-15 2010-11-17 康佳集团股份有限公司 一种利用Flash存储器进行动态数据存储的方法
CN101923448A (zh) * 2010-02-08 2010-12-22 安凯(广州)微电子技术有限公司 一种nand闪存的转换层读写方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070299999A1 (en) * 2006-06-21 2007-12-27 Vicky Duerk Link protocol control for serial protocols

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1856138A (zh) * 2005-04-20 2006-11-01 英华达(上海)电子有限公司 实现移动电话快速开机的方法
CN1858703A (zh) * 2005-10-13 2006-11-08 华为技术有限公司 设备启动方法
CN101558452A (zh) * 2006-12-07 2009-10-14 Nxp股份有限公司 用于在闪速eeprom存储页中重构可靠性数据的方法和装置
CN101364166A (zh) * 2008-09-23 2009-02-11 杭州华三通信技术有限公司 将2048字节页的Nand Flash模拟成硬盘的方法和装置
CN101477469A (zh) * 2009-02-06 2009-07-08 杭州华三通信技术有限公司 一种启动代码的可靠性读取方法、写入方法和装置
CN101887750A (zh) * 2009-05-15 2010-11-17 康佳集团股份有限公司 一种利用Flash存储器进行动态数据存储的方法
CN101923448A (zh) * 2010-02-08 2010-12-22 安凯(广州)微电子技术有限公司 一种nand闪存的转换层读写方法

Also Published As

Publication number Publication date
CN103324493A (zh) 2013-09-25

Similar Documents

Publication Publication Date Title
US8037112B2 (en) Efficient access of flash databases
EP2115595B1 (en) Memory device performance enhancement through pre-erase mechanism
CN110427158B (zh) 固态硬盘的写入方法及固态硬盘
JP2006235960A (ja) ガーベッジコレクション高速化方法
CN101702139B (zh) 一种访问Nand闪存数据的方法和装置
CN104572478A (zh) 数据存取方法和数据存取装置
TW201112263A (en) Block management method for a flash memory and flash memory controller and storage system using the same
CN102890620A (zh) 非易失性临时数据处理
CN109671458A (zh) 管理闪存模块的方法及相关的闪存控制器
CN103996412A (zh) 一种用于智能卡非易失性存储器的掉电保护方法
CN106155915A (zh) 数据存储的处理方法及装置
TW200921385A (en) Storage system for improving efficiency in accessing flash memory and method for the same
CN102520885B (zh) 一种混合硬盘的数据管理系统
CN104376099A (zh) 一种基于闪存的文件系统的实现方法和实现装置
Jung et al. Fass: A flash-aware swap system
CN103677893B (zh) 开机的映像文件的大小缩减方法及运算装置
CN103324493B (zh) 基于nand flash的系统开机提速方法及系统
CN102955787A (zh) 一种文件目录表的使用方法、文件写入方法及应用的主电路板、cpu和外部存储器
CN100456263C (zh) 在税控收款机中使用闪存时处理坏块的方法
CN107544912A (zh) 一种日志记录方法、加载方法及其装置
CN105653466A (zh) 数据储存装置以及快闪存储器控制方法
CN101339490A (zh) 闪存的驱动装置及方法
KR101191650B1 (ko) 낸드 플래시 메모리에서 데이터의 주소를 사상시키는 장치 및 방법
CN114281247B (zh) 一种基于混合介质的flash带宽分配方法及装置
CN110262980A (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
PE01 Entry into force of the registration of the contract for pledge of patent right

Denomination of invention: Method and system for increasing booting speed of system based on NAND FLASH

Effective date of registration: 20171102

Granted publication date: 20161005

Pledgee: China Co truction Bank Corp Guangzhou economic and Technological Development Zone sub branch

Pledgor: Anyka (Guangzhou) Microelectronics Technology Co., Ltd.

Registration number: 2017990001008

PE01 Entry into force of the registration of the contract for pledge of patent right
PC01 Cancellation of the registration of the contract for pledge of patent right
PC01 Cancellation of the registration of the contract for pledge of patent right

Date of cancellation: 20181227

Granted publication date: 20161005

Pledgee: China Co truction Bank Corp Guangzhou economic and Technological Development Zone sub branch

Pledgor: Anyka (Guangzhou) Microelectronics Technology Co., Ltd.

Registration number: 2017990001008

PE01 Entry into force of the registration of the contract for pledge of patent right

Denomination of invention: Method and system for increasing booting speed of system based on NAND FLASH

Effective date of registration: 20190130

Granted publication date: 20161005

Pledgee: China Co truction Bank Corp Guangzhou economic and Technological Development Zone sub branch

Pledgor: Anyka (Guangzhou) Microelectronics Technology Co., Ltd.

Registration number: 2019440000051

PE01 Entry into force of the registration of the contract for pledge of patent right
PC01 Cancellation of the registration of the contract for pledge of patent right

Date of cancellation: 20200320

Granted publication date: 20161005

Pledgee: China Co truction Bank Corp Guangzhou economic and Technological Development Zone sub branch

Pledgor: ANYKA (GUANGZHOU) MICROELECTRONICS TECHNOLOGY Co.,Ltd.

Registration number: 2019440000051

PC01 Cancellation of the registration of the contract for pledge of patent right
CP01 Change in the name or title of a patent holder

Address after: 3 / F, C1 area, innovation building, 182 science Avenue, Science City, Guangzhou, Guangdong 510663

Patentee after: Guangzhou Ankai Microelectronics Co.,Ltd.

Address before: 3 / F, C1 area, innovation building, 182 science Avenue, Science City, Guangzhou, Guangdong 510663

Patentee before: ANYKA (GUANGZHOU) MICROELECTRONICS TECHNOLOGY Co.,Ltd.

CP01 Change in the name or title of a patent holder
CP02 Change in the address of a patent holder

Address after: 510555 No. 107 Bowen Road, Huangpu District, Guangzhou, Guangdong

Patentee after: Guangzhou Ankai Microelectronics Co.,Ltd.

Address before: 3 / F, C1 area, innovation building, 182 science Avenue, Science City, Guangzhou, Guangdong 510663

Patentee before: Guangzhou Ankai Microelectronics Co.,Ltd.

CP02 Change in the address of a patent holder