一种存储器文件数据虚拟存取方法

文档序号:6636113阅读:418来源:国知局
专利名称:一种存储器文件数据虚拟存取方法
技术领域
本发明属于计算机存储器文件数据存取和文件管理技术领域,具体地说是一种存储器文件数据虚拟存取方法。
背景技术
文件系统是软件为了存储和管理数据,而在存储器上建立的文件数据结构的总和,如软硬盘、光盘、内存、闪存(Flash)等。一般来说,文件系统由目录和文件组成,通常包括参数块、文件分配表、根目录列表和数据区,文件系统主要完成三项功能跟踪记录存储器上中被耗用的空间和自由空间、维护目录名和文件名和跟踪记录每一个文件的物理存储位置。
在现有技术中,计算机通过存储器中的文件系统在读写存储器的数据时,通常直接向硬件设备存储器发送读写指令,对存储器中的扇区内的数据进行直接的读、写或擦除,这种文件系统和文件数据的读写方法存在较大问题1、由于部分文件系统,如文件分配表FAT文件系统的本身设计原因,它的引导及参数块(BPB)、FAT表及根目录的存储顺序必须是连续且固定的,如果其中的任何一处出现坏块,将导致整个文件系统无法使用,虽然可以恢复将文件数据到另一个存储器中,但要重新使用该存储器必须进行格式化。2、部分文件系统,如FAT文件系统不考虑掉电保护,这是由于其采用传统数据结构的原因,虽然可以对其进行定制以支持掉电保护,但这可能导致与其它系统不兼容的问题,同时也会增加文件系统的开发难度和稳定性风险。3、部分文件系统,如FAT文件系统的最小操作单位与闪存(Flash)不兼容,虽然理论上FAT文件系统可以支持最大64K簇(cluster),但这通常在上千兆存储空间的设备上使用,一般情况下视窗操作系统Windows无法识别使用大容量簇为基础的小容量存储设备。4、部分文件系统,如FAT文件系统不考虑写平衡问题,主要原因是文件系统的坏块管理安全性不足,由于部分文件系统的一些数据表格,如FAT表需要频繁更新,但因为其存储位置固定,在一些类型存储器的存储区域出现坏块的可能性大幅度增加,进而导致文件系统故障。
现有技术对扇区采用直接访问方式,因此当扇区出现坏块时便无法使用,如果坏块扇区出现在关键数据存储位置时,会导致文件系统的崩溃;现有技术仅能对一种物理存储设备进行数据管理,不能将多种不同类型的物理存储设备作为进行统一的数据管理;现有技术对扇区的访问是不考虑其寿命的,因此在部分存储设备特别是闪存上,将会导致其关键数据存储扇区由于操作次数过多出现坏块而导致文件系统崩溃丢失数据的严重情况,同样由于擦除次数较多,扇区变成坏块,导致可使用容量的下降;现有技术未考虑到特殊存储设备的特性,如闪存,这类设备的单个扇区仅能写入一次,现有技术在处理再次写入已写入扇区时,需要将临近的多个扇区内容一同擦除,在擦除之前需要将临近的多个扇区数据读入缓冲中,再将写入数据与临近的多个扇区在缓冲内的数据写入,导致不必要的写入和擦除操作,减少存储器的寿命,增加了操作时间,例如,一般的FLASH在读写数据的最小操作单位为512-528个字节(Bytes),但写入数据时,如果欲写入位置已经存在数据,需将该单元位置数据擦除后,方能写入,一般需要擦除16-32Kbytes,当欲写入一个512字节的数据于第3个扇区时,该扇区已存在数据,这时需要将该第1-32扇区的内容读入内存,在内存中将第3扇区的内容替换掉,并擦除1-32扇区的所有内容,再写回FLASH 1-32扇区的内容。
现有文件系统实现的写操作具有以下缺点1、由于每次写操作均要读写存储器,而闪存的擦写速度慢,因此,导致整个写操作的执行效率低。2、由于读写存储器的频率高,会缩短存储器的使用寿命。

发明内容
为了克服现有技术的不足之处,本发明的目的在于提供一种存储器文件数据虚拟存取方法,以延长存储器的使用寿命,提高读写效率。
为完成上述发明目的,本发明采取的整体技术方案为一种存储器文件数据虚拟存取方法,包括以下步骤步骤1、存储器接获来自文件系统对某扇区的文件数据的读写或删除请求;步骤2、计算机中央处理器通过查询地址转换表将读写或删除请求的逻辑扇区地址转换为物理扇区地址;步骤3、通过物理状态记录表找到该物理扇区的可用数据块设备;步骤4、从该物理扇区可用数据块设备中读取文件数据,并返回给文件系统,或将文件数据写入到该物理扇区的可用数据块设备中,或将文件数据从该物理扇区的可用数据块设备中删除。
所述步骤1中的存储器上有两个相同的核心描述块,将文件数据通过循环校验运算后存入存储器中的两个不同块中,以互相验证,用于互相验证和支持掉电保护与擦除加速。
所述校验运算具体包括当系统初始化时,分别读取各个核心描述块并对它们进行校验码计算;当任意核心描述块计算的校验码与核心描述块保存的校验码不同时,该核心描述块无效;当所有核心描述块计算的校验码与核心描述块保存的校验码不同时,重新格式化;当任意核心描述块计算的校验码与核心描述块保存的校验码相同时,该核心描述块有效;当所有核心描述块计算的校验码与核心描述块保存的校验码相同时,对两个核心描述块的参考值进行对比,当一个核心描述块参考值大于另一个核心描述块参考值时,取大的核心描述块为有效,使用有效的核心描述块作为当前的各个表的数据。
所述步骤1中的文件系统包括有地址转换表和物理分布描述表,这两个数据表存储于相同的存储器扇区设备中。
所述地址转换表用于将逻辑与物理块地址转换,表的各项索引号代表逻辑地址,其包含的值为物理地址。
所述步骤3还包括通过物理分布描述表获得该物理扇区的描述符的步骤。
所述物理分布描述表是文件系统物理状态记录表的辅助表,用于将多种不同的独立存储器设备的数据访问地址联结成线性访问地址。
所述步骤3具体包括下述步骤步骤311、通过物理状态记录表获得第一个可用块,并通过块删除/写计数器表获得该块的使用次数;步骤312、通过删除/写计数器表获得多个可用块和其使用次数,并进行对比步骤313、通过对所有可用块进行遍历后,获得一个使用次数最少的可用块。
所述步骤311中的获得第一个可用块具体包括以下步骤步骤3111、对产生坏块的块转换表标记为产生坏块;步骤3112、将物理状态记录表中原有的值赋给一个存储器中的临时变量;步骤3113、获得一个新的可用块;步骤3114、将物理状态记录表最后一个逻辑地址分配给坏的物理块。
所述步骤4中的将文件数据写入到该物理数据块设备进一步包括以下步骤步骤41、判断物理扇区的状态,如果该物理扇区的状态为未使用或已删除,则通过物理分布描述表获得该物理扇区的设备描述符,以确定该物理扇区的设备及地址,进一步判断该扇区是否需要进行擦除操作,如果该扇区的状态为已删除,同时存储器需要擦除旧数据才能写入时,则擦除该扇区的数据内容;步骤42、如果该扇区的状态为已使用或无法使用,则逐个查询地址转换表得到物理地址,再通过物理状态记录表获得物理扇区地址的状态,直至找到一个未使用或已删除的物理扇区,并与文件系统请求的逻辑扇区所在的地址转换表交换为物理扇区地址;步骤43、查询前首先记录原文件系统请求的逻辑扇区地址,当查询到未使用或已删除的物理扇区地址时,保存该物理扇区地址位于地址转换表的逻辑扇区地址,将该物理扇区地址保存至文件系统请求的逻辑扇区地址的地址转换表中,将该表逻辑扇区地址中的物理扇区地址保存在找到的新物理扇区的扇区逻辑地址的地址转换表中;步骤44、将数据写入该物理设备的扇区中。
所述步骤44进一步包括以下步骤步骤441、在物理状态记录表中寻找可使用块,如果有可使用块,则直接写入新数据,并把该块标记为已使用;步骤442、如果在物理状态记录表中无法寻找到未使用块时,则寻找对物理状态记录表中的延迟删除的块,对该延迟删除块进行擦除操作,并写入数据。
所述步骤4中的将文件数据从该物理扇区的设备中删除具体是指将该设备数据块在物理状态记录表中的状态标记为延迟删除,不进行实际擦除操作。
所述步骤4中的删除在系统处于空闲状态时进行。
所述步骤4还包括修改数据的步骤,具体是指在物理状态记录表中寻找未使用的块,并将修改的新数据写入未使用块中,物理状态记录表标记原始块为延迟擦除,写入块为已使用。
本发明的方法通过引入地址转换表、物理状态表及分布描述表,对多种不同类型的存储设备加以利用,达到了极高的读写效率和使用寿命。当一个设备有闪存及内存时,可以预先将数据存入闪存,当文件系统对位于闪存的数据进行修改时,为了系统的稳定性,可以不直接修改闪存,而通过地址转换表将闪存处的数据位置移到内存数据位置,更新数据,通过该方法可以提高文件系统的数据读写效率,延长存储器的使用寿命,因此具有显著的优点和有益的效果。


图1为本发明的文件系统结构图;图2为本发明各数据结构之间关系图;图3为本发明虚拟数据存取示意图;图4为本发明数据结构建立过程示意图;图5为主流程图;图6为向文件系统写入数据流程图;图7为删除数据流程图。
具体实施例方式
下面结合说明书附图来说明本发明的具体实施方式

如图1所示,本发明的文件系统结构图,文件系统包括有参数块、文件分配表、根目录列表和数据区,它还包括有两个核心数据表地址转换表和物理地址分配表,这两个数据表存储于存储设备中,文件系统存储数据相同,存储器包括软硬盘、光盘、内存、闪存(Flash)等,本发明特别适用于大数据量存取的存储器,如闪存(Flash)。
表1物理分布描述表

表1为物理分布描述表,它是物理状态记录表的辅助表,该表将多种不同的独立存储器设备的数据访问地址即块/总线地址联结成线性访问地址。计算机中央处理器通过物理分布描述表获得该物理扇区的描述符的步骤。描述符可以使物理扇区的标示符。
图2所示是本发明各数据结构之间的关系,物理状态记录表保存着两个不同类型设备的各个数据段的状态,状态有4种,分别为未用(已删除)、已用、待删除和无法使用(坏块),地址转换表用于各个逻辑块地址到物理块地址的转换。
在表1和图2中,物理状态记录表通过物理分布描述表按照线性地址描述多种不同设备的物理状态。表1的实例数据显示,物理状态描述表的第0块至第99块是非易失性存储器的第0块至第99块,物理状态描述表的第100块至第200块是易失性存储器的0x0至0xC800地址范围内的状态。
地址转换表与物理分布描述表的转换目的是不同的,地址转换表为每一个单独的逻辑地址提供了一个物理地址,每个邻近的逻辑块地址可以是不连续的物理地址,逻辑块地址也叫虚拟地址,它是一种由软件使用的地址,通过地址转换表将逻辑地址转换为物理地址,它可以将分布在物理地址空间中的各个数据,连接成连续的逻辑地址空间,而物理分布描述表以存储器中的扇区设备为基础,为一段连续的块或地址提供映射。
如图3所示,本发明所述的读写方法是虚拟存储器方法,文件系统在读写存储器时,不再像现有技术中的方法那样直接向存储器硬件设备发送读写指令,而是首先将读写指令通过地址转换,将逻辑地址转换为存储器硬件设备的物理地址。本发明的方法为文件系统提供一种抽象方法,使文件系统如同操作存储器硬件设备一样的来达到解决问题的目的。
请参阅图4,首先建立数据结构,本发明的数据结构建立过程如图4所示。首先,为每一个设备配置物理分布描述表,该表根据特定设备情况由开发人员自行配置,配置该表的目的是将多种不同类型的设备在逻辑上合并成一个统一类型方法和统一线性访问地址的设备;然后,根据各个设备的容量总和获得最大的存储容量;根据最大的存储容量来分配数据结构所需的空间,并初始化数据结构的数据;之后,检查存储器的状态,并将存储器状态保存到物理状态记录表中的相应数据项;最后,按照自然顺序分配地址转换表中的各项值,如地址转换表的第一项逻辑第0个扇区为物理状态分配表中的第0个扇区,也就是物理分布描述表中对物理状态分配表的第0个扇区描述的某个设备的某个扇区。
例如存储器是一块新的没有格式化的闪存(Flash),使用之前必须进行初始化,其过程如下首先,建立数据块状态转换表(BST)也就是物理状态记录表的缓冲区,并将缓冲内容置空;然后检查坏块,并根据坏块的编号来设置其状态。
之后,建立临时用于数据BST的缓冲区,并将缓冲区内容置空;进行块分类,将可用块置于块转换表的前部分。
将坏块置于表的后部分;将BST通过循环校验(CRC)运算取得过程校验码,将BST存入首个可用块中;将BST通过CRC运算取得过程校验码,将BST的副本存入第二个可用块中;关闭BST的缓冲,建立临时用于块删除/写计数器表(BCT,BlocksErased/Wear Counter Table)缓冲,并将缓冲内容置空;接下来,初始化块删除/写计数器表BCT将BCT通过与上次过程校验码进行CRC运算取得本次过程校验码,将BCT存入首个可用块中;将BCT通过与上次过程校验码进行CRC运算取得本次过程校验码,将BCT存入第二个可用块中,首个可用块大小一般为系统上非易失性存储器的最小读写单位,如2k,因为BST,BCT数据结构数据量小,所以可以存入同一个块。
最后,结束初始化。
数据结构建立之后,就可以使用这些数据BST进行文件数据的读写和删除操作了。
请参阅图5本发明的主流程图,本发明包括以下步骤步骤1、存储器接获来自文件系统对某扇区的文件数据的读写或删除请求;步骤2、计算机中央处理器通过查询地址转换表将读写或删除请求的逻辑扇区地址转换为物理扇区地址;步骤3、通过物理状态记录表找到该物理扇区的使用次数最少的可用数据块设备;
步骤4、从该物理扇区可用数据块设备中读取文件数据,并返回给文件系统,或将文件数据写入到该物理扇区的可用数据块设备中,或将文件数据从该物理扇区的可用数据块设备中删除。
如图6所示,向文件系统写入数据的步骤如下接获来自文件系统对某扇区的写入数据请求,通过查询地址转换表获得该扇区的物理地址,并通过物理状态记录表获得该扇区的状态,并判断该扇区的状态;如果该扇区的状态为未使用或已删除,通过物理分布描述表获得该扇区的设备描述符,以确定该扇区的物理设备及地址,进一步判断该扇区是否需要进行擦除操作,因为有些存储器需要在写入新数据之前对原数据进行擦除操作,如果该扇区的状态为已删除,同时存储器需要擦除旧数据才能写入时,先擦除该扇区的数据内容;如果该扇区的状态为已使用或无法使用,逐个查询地址转换表得到物理地址,再通过物理状态记录表获得物理扇区地址的状态,直到找到一个未使用或已删除的物理扇区;通过与文件系统请求的逻辑扇区所在的地址转换表交换物理扇区地址,以达到为文件系统请求的逻辑扇区分配新的可写入扇区的目的,查询前首先记录原文件系统请求的逻辑扇区地址A;当查询到未使用或已删除的物理扇区地址时,保存该物理扇区地址位于地址转换表的逻辑扇区地址B;将该物理扇区地址保存至文件系请求的逻辑扇区地址A的地址转换表中,将该表逻辑扇区地址A中的物理扇区地址保存在找到新物理扇区的扇区逻辑地址B的地址转换表中;最后,将数据写入该物理设备的扇区中。
在逻辑地址和物理地址交换之前还包括执行写平衡步骤,它包括动态写平衡和静态写平衡,动态写平衡将会为写操作提供最佳候选可用块,实现方法如下
通过数据块状态转换表(BST)也就是物理状态记录表获得第一个可用块,并通过块删除/写计数器表(BCT)获得该块的使用次数;通过BST/BCT获得n个可用块和其使用次数,并进行对比;通过对所有可用块进行遍历后,获得一个使用次数最少的可用块。
静态写平衡是一个不常用的技术,与动态写平衡相比,其操作时间较长,但可以对已使用数据进行整理,动态写平衡则不对已使用数据进行整理。
由于一些数据长期不被修改,其所在块的寿命较高,且动态写平衡无法对其进行操作;而另一些数据经常修改如核心描述块(CDB)。通过静态写平衡可以将最少擦写次数的数据与最多擦写次数的数据对调(SWAP)所在的物理存储块。
静态写平衡又分为两种模式全面写平衡和一般写平衡,前者即最少擦写次数的数据与最多擦写次数的数据,对调所在的物理存储块的数据,并修改地址转换表;可用块与已有块均可。一般写平衡,即最少擦写次数的已用块数据与最多擦写次数的可用块数据对调所在的物理存储块,并修改地址转换表。
当使用和操作的过程中产生坏块时,在BST中标记为11b即可,即BST[物理坏块号]=11b。
在本发明中,任何读写闪存(Flash)的操作都是基于一个逻辑到物理的地址转换表。在初始化过程时,可用块与坏块都作了连续的逻辑位置分割,即可用块在地址转换表的前部分,坏块紧接着可用块在转换表的后部分。
但在使用过程中会持续不断出现坏块,因此需要将后续在可用块中产生的坏块通过地址转换表移至表的后部分,使转换表前部分以继续保持以可用块为主。其转换方法为对产生坏块的物理状态记录表标记为产生坏块;将数据物理状态记录表中原有的值赋予一个临时变量;获得一个新的可用块;将数据物理状态记录表最后一个逻辑地址分配为坏的物理块本发明还支持掉电保护与擦除加速。掉电保护技术是指系统突然掉电/复位后,存储器数据仍能恢复至最后一次成功操作的状态。该状态为一个完整的写入状态,如果掉电/复位在闪存编程的过程中,该过程的所有数据仍将丢失,无法恢复。为了完成该功能,需在存储器如闪存(Flash)上建立了两份相同的核心描述块(CDB)。
读/写与修改/擦除的操作过程如下当执行写操作时,首先在BST中寻找可使用块,直接写入新数据,并把该块BST标记为已使用;当执行擦除操作时,将该块在BST的状态标记为延迟删除(Pending Delete)即可,不进行实际擦除操作;当执行写操作时,但在BST中无法寻找到未使用块块时,这说明要么空间不够,大部分已被坏块和有用数据占用,无法继续操作,报告信息给用户,要么是垃圾未清空,BST中有延迟删除未实际擦除,则首先对BST中的延迟删除的块进行擦除操作,然后将该块分配给写操作,任何擦除都需要对该块的BCT进行加1,在执行本过程之前,会首先进行状态保存;当执行修改操作时,在BST中寻找未使用的块,并将修改的新数据写入未使用块中,BST标记原始块为延迟擦除,写入块为已使用。
状态保存主要是对BST及参考值的保存,实际是将核心描述块(CDB)整体保存。在状态未保存前的所有操作,一旦掉电/复位将不起任何效果。
状态保存操作将会把原CDB内容读出,并将当前缓冲中的BST替换原BST,重新进行循环校验(CRC)运算后存入闪存中的不同的两个块中,包含副本。
在存储器上建立两份相同的核心描述块(CDB)可以起到互相验证的作用,当存入任何一个CBD时断电,不会影响上次以存入的数据状态。
每次执行操作,管理系统无法判断其单位操作如关闭文件、删除文件等,因此需要提供一个接口给文件系统,每当一个单位操作完成时,便通知管理系统进行用于掉电保护的状态保存,或者当队列/内存的缓冲排满时,自动执行。
在通常文件系统中,类似CDB这样的关键数据结构,都保存在固定位置,如第一个扇区。
但由于CDB本身是闪存所有块中操作最为频繁的一个,所以CDB每次存储的位置也是根据写平衡和擦除加速技术得出的,CDB每次修改后写入的新块,都将会是所有未使用块中擦写次数最少的块。
在为格式化的存储器如闪存(Flash)中,含有空闲区,用于保存ECC数据校验码和其它可定制数据。在此,本发明将所有其它可定制数据定义为签名数据,CDB数据的签名将与所有其它数据的签名不同。因此当初始化系统时,对存储器所有块进行遍历/枚举操作,读取并判断块的签名,当与预定为CDB的签名相符合,即为CDB数据。因此可以动态获得CDB数据结构。
下面判断CDB的有效性。本发明有两个CDB位于存储器的不同位置,每个CDB都有其对自身的校验码和参考值。当系统初始化时,分别读取各个CDB并对它们进行校验码计算。
当任意CDB计算的校验码与CDB保存的校验码不同时,该CDB无效。
当所有CDB计算的校验码与CDB保存的校验码不同时,表明整个系统损毁,必须重新格式化。
当任意CDB计算的校验码与CDB保存的校验码相同时,该CDB有效。
当所有CDB计算的校验码与CDB保存的校验码相同时,对两个CDB的参考值进行对比,当一个CDB参考值大于另一个CDB参考值时取大的CDB有效。使用有效的CDB作为当前的各个表包括物理分布描述表、BTT,BST,BCT等的数据。
请参阅图7所示,删除数据的过程如下首先,接获来自文件系统对某扇区的清除数据请求;然后,通过查询地址转换表获得该扇区的物理地址,设置该物理地址的查询物理状态记录表中的状态为已删除,并结束。
擦除数据亦可选取另一途径,可以使文件系统在写入数据时无需立即擦除,即可直接写入新的数据,擦除工作可以在系统空闲状态进行,以提高写入效率。
本发明可以基于任何文件系统,并适合总线地址如内存与块地址如输入输出(I/O)模式下的存储器设备访问如闪存和磁盘。
本发明通过引入地址转换表、物理状态表及分布描述表对多种不同类型的存储设备数据进行读取、写入或删除,具有较高的读写效率和使用寿命。当一个设备有闪存及内存时,可以预先将数据存入闪存,当文件系统对位于闪存的数据进行修改时,为了系统的稳定性,可以不直接修改闪存,通过地址转换表将闪存处的数据位置移内存处数据位置,既可以更新数据。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的权利要求范围之内。
权利要求
1.一种存储器文件数据虚拟存取方法,其特征在于,该方法包括以下步骤步骤1、存储器接获来自文件系统对某扇区的文件数据的读写或删除请求;步骤2、计算机中央处理器通过查询地址转换表将读写或删除请求的逻辑扇区地址转换为物理扇区地址;步骤3、通过物理状态记录表找到该物理扇区的可用数据块设备;步骤4、从该物理扇区可用数据块设备中读取文件数据,并返回给文件系统,或将文件数据写入到该物理扇区的可用数据块设备中,或将文件数据从该物理扇区的可用数据块设备中删除。
2.根据权利要求1所述的存储器文件数据虚拟存取方法,其特征在于,所述步骤1中的存储器上有两个相同的核心描述块,将文件数据通过循环校验运算后存入存储器中的两个不同块中,以互相验证,用于互相验证和支持掉电保护与擦除加速。
3.根据权利要求2所述的存储器文件数据虚拟存取方法,其特征在于,所述校验运算具体包括当系统初始化时,分别读取各个核心描述块并对它们进行校验码计算;当任意核心描述块计算的校验码与核心描述块保存的校验码不同时,该核心描述块无效;当所有核心描述块计算的校验码与核心描述块保存的校验码不同时,重新格式化;当任意核心描述块计算的校验码与核心描述块保存的校验码相同时,该核心描述块有效;当所有核心描述块计算的校验码与核心描述块保存的校验码相同时,对两个核心描述块的参考值进行对比,当一个核心描述块参考值大于另一个核心描述块参考值时,取大的核心描述块为有效,使用有效的核心描述块作为当前的各个表的数据。
4.根据权利要求1所述的存储器文件数据虚拟存取方法,其特征在于,所述步骤1中的文件系统包括有地址转换表和物理分布描述表,这两个数据表存储于相同的存储器扇区设备中。
5.根据权利要求4所述的存储器文件数据虚拟存取方法,其特征在于,所述地址转换表用于将逻辑与物理块地址转换,表的各项索引号代表逻辑地址,其包含的值为物理地址。
6.根据权利要求1所述的存储器文件数据虚拟存取方法,其特征在于,所述步骤3还包括通过物理分布描述表获得该物理扇区的描述符的步骤。
7.根据权利要求6所述的存储器文件数据虚拟存取方法,其特征在于,所述物理分布描述表是文件系统物理状态记录表的辅助表,用于将多种不同的独立存储器设备的数据访问地址联结成线性访问地址。
8.根据权利要求1所述的存储器文件数据虚拟存取方法,其特征在于,所述步骤3具体包括下述步骤步骤311、通过物理状态记录表获得第一个可用块,并通过块删除/写计数器表获得该块的使用次数;步骤312、通过删除/写计数器表获得多个可用块和其使用次数,并进行对比;步骤313、通过对所有可用块进行遍历后,获得一个使用次数最少的可用块。
9.根据权利要求1所述的存储器文件数据虚拟存取方法,其特征在于,所述步骤311中的获得第一个可用块具体包括以下步骤步骤3111、对产生坏块的块转换表标记为产生坏块;步骤3112、将物理状态记录表中原有的值赋给一个存储器中的临时变量;步骤3113、获得一个新的可用块;步骤3114、将物理状态记录表最后一个逻辑地址分配给坏的物理块。
10.根据权利要求1所述的存储器文件数据虚拟存取方法,其特征在于,所述步骤4中的将文件数据写入到该物理数据块设备进一步包括以下步骤步骤41、判断物理扇区的状态,如果该物理扇区的状态为未使用或已删除,则通过物理分布描述表获得该物理扇区的设备描述符,以确定该物理扇区的设备及地址,进一步判断该扇区是否需要进行擦除操作,如果该扇区的状态为已删除,同时存储器需要擦除旧数据才能写入时,则擦除该扇区的数据内容;步骤42、如果该扇区的状态为已使用或无法使用,则逐个查询地址转换表得到物理地址,再通过物理状态记录表获得物理扇区地址的状态,直至找到一个未使用或已删除的物理扇区,并与文件系统请求的逻辑扇区所在的地址转换表交换为物理扇区地址;步骤43、查询前首先记录原文件系统请求的逻辑扇区地址,当查询到未使用或已删除的物理扇区地址时,保存该物理扇区地址位于地址转换表的逻辑扇区地址,将该物理扇区地址保存至文件系统请求的逻辑扇区地址的地址转换表中,将该表逻辑扇区地址中的物理扇区地址保存在找到的新物理扇区的扇区逻辑地址的地址转换表中;步骤44、将数据写入该物理设备的扇区中。
11.根据权利要求10所述的存储器文件数据虚拟存取方法,其特征在于,所述步骤44进一步包括以下步骤步骤441、在物理状态记录表中寻找可使用块,如果有可使用块,则直接写入新数据,并把该块标记为已使用;步骤442、如果在物理状态记录表中无法寻找到未使用块时,则寻找对物理状态记录表中的延迟删除的块,对该延迟删除块进行擦除操作,并写入数据。
12.根据权利要求1所述的存储器文件数据虚拟存取方法,其特征在于,所述步骤4中的将文件数据从该物理扇区的设备中删除具体是指将该设备数据块在物理状态记录表中的状态标记为延迟删除,不进行实际擦除操作。
13.根据权利要求1所述的存储器文件数据虚拟存取方法,其特征在于,所述步骤4中的删除在系统处于空闲状态时进行。
14.根据权利要求1所述的存储器文件数据虚拟存取方法,其特征在于,所述步骤4还包括修改数据的步骤,具体是指在物理状态记录表中寻找未使用的块,并将修改的新数据写入未使用块中,物理状态记录表标记原始块为延迟擦除,写入块为已使用。
全文摘要
本发明是一种存储器文件数据虚拟存取方法。存储器接获来自文件系统对某扇区的文件数据的读写或删除请求;计算机中央处理器通过查询地址转换表将读写或删除请求的逻辑扇区地址转换为物理扇区地址通过物理状态记录表找到该物理扇区的使用次数最少的可用数据块设备;从该物理扇区可用数据块设备中读取文件数据,并返回给文件系统,或将文件数据写入到该物理扇区的可用数据块设备中,或将文件数据从该物理扇区的可用数据块设备中删除。本发明通过引入地址转换表、物理状态表及物理分布描述表,可将不同类型存储设备抽象为一种统一寻址和操作方法的存储设备,提高了文件系统的数据读写效率、存储器的管理便利性,延长了存储器的使用寿命。
文档编号G06F11/10GK1719422SQ20051009083
公开日2006年1月11日 申请日期2005年8月18日 优先权日2005年8月18日
发明者谭帅, 周政军, 赵原 申请人:北京中星微电子有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1