【技术实现步骤摘要】
本专利技术涉及一种NandFlash缓冲管理方法,特别是一种利用散列链表数组和多个缓存单元配合管理NandFlash缓冲的方法。
技术介绍
NandFlash作为一种常用的非易失性闪存已被广泛地应用在各种数码产品中。系统对NandFlash的访问速度是影响整个产品性能的重要因素,NandFlash的结构是以块为单位的,每个块包含固定大小的页,每个页包括固定大小的比特值。系统对NandFlash访问的常用方法有两种:直接访问,即没有系统缓存单元,直接的驱动NandFlash进行读写。这种做法虽然简单,易于实现,但缺点明显。由于NandFlash修改某个比特时,只能从1修改为0,即便是对一个比特的修改也需要将该比特所在整个块擦除,再重新写入。所以在这种方式中,往块A中写入数据的流程如图1所示,先申请一个块大小的连续内存空间缓存,将要写入到块A中的数据对应的写入到缓存中,对块A执行块擦除操作,然后将缓存写回到块A。不难看出这种方法效率很低。另一个方法是系统申请一个块大小的连续内存空间缓存,并保留与缓存中数据对应的块号A,执行读出写入块B的某些数据的操作。具体来说,系统首先判断待读出或写入的块B的块号与缓存中的块号A是否相同,如果相同则直接在缓存中读出数据,如果A与B不相同,则将块缓存中的数据写回到块号A所对应的物理块上,并将块B中的数据读出写入到缓存中,此过程分别如图2、图3所示。在此种方法中,无论读写操作,系统都先访问缓存,判断缓存内容是否为需要的数据,如果是则直接使用缓存中的数据,如果不是则将缓存中的数据写回其对应的物理块中再将块B的内容写入缓存。-->这 ...
【技术保护点】
一种NandFlash缓冲管理方法,包括: 在内存中建立一个与NandFlash物理块地址一一对应的链表数组; 在内存中开辟多个缓存单元用于缓存NandFlash中的数据;和 根据所述链表数组与多个缓存单元配合对NandFlash进行读写操作。
【技术特征摘要】
1.一种NandFlash缓冲管理方法,包括:在内存中建立一个与NandFlash物理块地址一一对应的链表数组;在内存中开辟多个缓存单元用于缓存NandFlash中的数据;和根据所述链表数组与多个缓存单元配合对NandFlash进行读写操作。2.根据权利要求1所述的方法,其特征在于,所述多个缓存单元由一个链表头采用双向链表的形式链接成数据链表;所述链表数组包括链表索引数组,用于在链表数组中定位对应的NandFlash物理地址,链表数组中的数据所对应的NandFlash物理地址与同一个NandFlash物理地址在链表数组中相应的元素对应。3.根据权利要求2所述的方法,其特征在于,在读写操作中,将写入数据的缓存单元通过指针链入NandFlash物理地址对应的链表数组中,修改该写入数据的缓存单元的单元修改标记,所述单元修改标记用于标识该缓存单元是否被修改过。4.根据权利要求3所述的方法,其特征在于,根据最近最少使用原则将写入数据的缓存单元移动到链表头后面紧挨链表头的位置。5.根据权利要求3所述的方法,其特征在于,在读写过程中,将缓存单元内的数据与该数据在NandFlansh上对应的物理块关联,当缓存单元内数据被修改且有新的数据需要写入该缓存单元中的时候,将该缓存单元中的旧有数据写回其对应的物理块中。6.根据权利要求3所述的方法,其特征在于,所述方法在读NandFlash操作的过程包括:步骤101,计算出待读出NandFlash数据所在物理块的物理地址在链表数组中链表索引数组的位置;步骤102,根据链表索引数组的位置查找判断链表数组中是否包含所述待读出数据,如果不包含则执行步骤103;步骤103,判断数据链表是否包括空闲缓存单元,如果不包含则执行步骤104;步骤104,取链表头前面一个缓存单元为目标缓存单元,执行步骤105;步骤105,判断所述目标缓存单元的单元修改标记是否为修改过,如果修改过将该缓存单元中的旧有数据写回其对应的NandFlash物理块中,执行步骤106,否则直接执行步骤106;步骤106,从所述物理块中将待读出数据读入到所述目标缓存单元中,同时修改目标缓存单元的单元修改标记为没有修改过并执行步骤107;步骤107,将所述目标缓存单元链接到数据链表头的后紧邻链表头的位置,执行步骤108;步骤108,计算出待读出Nan dFlash数据所对应的物理块在链表数组中的链表索引数组的位置,将目标缓存单元链入到计算出的链表索引数组所对应的链表的末尾并执行步骤110;步骤110,从目标缓存单元中读出数据到指定的位置。7.根据权利要求6所述的方法,其特征在于,在步骤102中,如果包含所述待...
【专利技术属性】
技术研发人员:李栋梁,艾国,游明琦,
申请(专利权)人:北京中星微电子有限公司,
类型:发明
国别省市:11[中国|北京]
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。