CN100426259C - 一种存储器文件数据虚拟存取方法 - Google Patents
一种存储器文件数据虚拟存取方法 Download PDFInfo
- Publication number
- CN100426259C CN100426259C CNB2005100908332A CN200510090833A CN100426259C CN 100426259 C CN100426259 C CN 100426259C CN B2005100908332 A CNB2005100908332 A CN B2005100908332A CN 200510090833 A CN200510090833 A CN 200510090833A CN 100426259 C CN100426259 C CN 100426259C
- Authority
- CN
- China
- Prior art keywords
- physical
- data
- address
- sector
- physical sector
- 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 - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 49
- 230000015654 memory Effects 0.000 claims abstract description 61
- 238000013519 translation Methods 0.000 claims abstract description 37
- 238000012217 deletion Methods 0.000 claims abstract description 14
- 230000037430 deletion Effects 0.000 claims abstract description 14
- 238000012545 processing Methods 0.000 claims abstract description 9
- 230000014616 translation Effects 0.000 claims description 35
- 238000006243 chemical reaction Methods 0.000 claims description 18
- 230000003111 delayed effect Effects 0.000 claims description 9
- 230000008569 process Effects 0.000 description 16
- 238000004321 preservation Methods 0.000 description 7
- 230000003139 buffering effect Effects 0.000 description 6
- 238000007726 management method Methods 0.000 description 5
- 230000003068 static effect Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 125000004122 cyclic group Chemical group 0.000 description 2
- 238000013523 data management Methods 0.000 description 2
- 230000007812 deficiency Effects 0.000 description 2
- 238000000151 deposition Methods 0.000 description 2
- 239000012467 final product Substances 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 238000010977 unit operation Methods 0.000 description 2
- 241001269238 Data Species 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000000547 structure data Methods 0.000 description 1
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System (AREA)
Abstract
本发明是一种存储器文件数据虚拟存取方法。存储器接获来自文件***对某扇区的文件数据的读写或删除请求;计算机中央处理器通过查询地址转换表将读写或删除请求的逻辑扇区地址转换为物理扇区地址通过物理状态记录表找到该物理扇区的使用次数最少的可用数据块设备;从该物理扇区可用数据块设备中读取文件数据,并返回给文件***,或将文件数据写入到该物理扇区的可用数据块设备中,或将文件数据从该物理扇区的可用数据块设备中删除。本发明通过引入地址转换表、物理状态表及物理分布描述表,可将不同类型存储设备抽象为一种统一寻址和操作方法的存储设备,提高了文件***的数据读写效率、存储器的管理便利性,延长了存储器的使用寿命。
Description
技术领域
本发明属于计算机存储器文件数据存取和文件管理技术领域,具体地说是一种存储器文件数据虚拟存取方法。
技术背景
文件***是软件为了存储和管理数据,而在存储器上建立的文件数据结构的总和,如软硬盘、光盘、内存、闪存(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中的文件***包括有地址转换表和物理分布描述表,这两个数据表存储于相同的存储器扇区设备中,所述物理分布描述表用于将多种不同的独立存储器设备的数据访问地址联结成线性访问地址。
所述地址转换表用于将逻辑地址与物理地址转换,表的各项索引号代表逻辑地址,其包含的值为物理地址。
所述物理分布描述表是所述文件***物理状态记录表的辅助表。
所述步骤3具体包括下述步骤:
步骤311、通过物理状态记录表获得第一个可用块,并通过块删除/写计数器表获得该块的使用次数;
步骤312、通过物理状态记录表获得多个可用块,并通过块删除/写计数器表获得所述多个可用块的使用次数,并进行对比;
步骤313、通过对所有可用块进行遍历后,获得一个使用次数最少的可用块。
该方法还包括将在所述可用数据块中产生的坏块通过地址转换表移至地址转换表的后部分,使地址转换表前部分保持以可用数据块为主的步骤:
步骤3111、对产生坏块的物理状态记录表标记为产生坏块;
步骤3112、将物理状态记录表中原有的值赋给一个存储器中的临时变量;
步骤3113、获得一个新的可用数据块;
步骤3114、将物理状态记录表最后一个逻辑地址分配给坏的物理块。
所述步骤4中的将文件数据写入到该物理数据块设备进一步包括以下步骤:
步骤41、判断物理扇区的状态,如果该物理扇区的状态为未使用或已删除,则通过物理分布描述表获得该物理扇区的设备描述符,以确定该物理扇区的设备及地址,进一步判断该物理扇区是否需要进行擦除操作,如果该物理扇区的状态为已删除,同时存储器需要擦除旧数据才能写入时,则擦除该物理扇区的数据内容;
步骤42、如果该物理扇区的状态为已使用或无法使用,则首先记录原文件***请求的逻辑扇区地址,逐个查询地址转换表得到物理扇区地址,再通过物理状态记录表获得物理扇区地址的状态,直至找到一个未使用或已删除的物理扇区,保存该物理扇区地址位于地址转换表的逻辑扇区地址,将该物理扇区地址保存至文件***请求的逻辑扇区地址的地址转换表中,将该表逻辑扇区地址中的物理扇区地址保存在找到的新物理扇区的扇区逻辑地址的地址转换表中;然后,通过物理分布描述表获得该未使用或已删除的物理扇区的设备描述符,以确定该未使用或已删除的物理扇区的设备及地址,进一步判断该未使用或已删除的物理扇区是否需要进行擦除操作,如果该未使用或已删除的物理扇区的状态为已删除,同时存储器需要擦除旧数据才能写入时,则擦除该未使用或已删除的物理扇区的数据内容;
步骤43、将数据写入该未使用或已删除的物理扇区中。
所述步骤43进一步包括以下步骤:
步骤441、在物理状态记录表中寻找可使用块,如果有可使用块,则直接写入新数据,并把该块标记为已使用;
步骤442、如果在物理状态记录表中无法寻找到未使用块时,则在该物理状态记录表中寻找延迟删除的块,对该延迟删除块进行擦除操作,并写入数据。
所述步骤4中的将文件数据从该物理扇区的可用数据块设备中删除具体是指将该设备数据块在物理状态记录表中的状态标记为延迟删除,不进行实际擦除操作。
所述步骤4中的删除在***处于空闲状态时进行。
所述步骤4还包括修改数据的步骤,具体是指在物理状态记录表中寻找未使用的块,并将修改的新数据写入未使用块中,物理状态记录表标记原始块为延迟擦除,写入块为已使用。
本发明的方法通过引入地址转换表、物理状态表及分布描述表,对多种不同类型的存储设备加以利用,达到了极高的读写效率和使用寿命。当一个设备有闪存及内存时,可以预先将数据存入闪存,当文件***对位于闪存的数据进行修改时,为了***的稳定性,可以不直接修改闪存,而通过地址转换表将闪存处的数据位置移到内存数据位置,更新数据,通过该方法可以提高文件***的数据读写效率,延长存储器的使用寿命,因此具有显著的优点和有益的效果。
附图说明
图1为本发明的文件***结构图;
图2为本发明各数据结构之间关系图;
图3为本发明虚拟数据存取示意图;
图4为本发明数据结构建立过程示意图;
图5为主流程图;
图6为向文件***写入数据流程图;
图7为删除数据流程图。
具体实施方式
下面结合说明书附图来说明本发明的具体实施方式。
如图1所示,本发明的文件***结构图,文件***包括有参数块、文件分配表、根目录列表和数据区,它还包括有两个核心数据表:地址转换表和物理地址分配表,这两个数据表存储于存储设备中,文件***存储数据相同,存储器包括软硬盘、光盘、内存、闪存(Flash)等,本发明特别适用于大数据量存取的存储器,如闪存(Flash)。
表1物理分布描述表
物理设备标识符 | 物理状态表中的起始位置 | 物理状态表中的结束位置 | 物理设备的起始位置 |
非易失性存储器(磁盘) | 0 | 99 | 0(块) |
易失性存储器(内存) | 100 | 200 | 0x0(地址) |
表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)模式下的存储器设备访问如闪存和磁盘。
本发明通过引入地址转换表、物理状态表及分布描述表对多种不同类型的存储设备数据进行读取、写入或删除,具有较高的读写效率和使用寿命。当一个设备有闪存及内存时,可以预先将数据存入闪存,当文件***对位于闪存的数据进行修改时,为了***的稳定性,可以不直接修改闪存,通过地址转换表将闪存处的数据位置移内存处数据位置,既可以更新数据。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的权利要求范围之内。
Claims (10)
1、 一种存储器文件数据虚拟存取方法,其特征在于,该方法包括以下步骤:
步骤1、存储器接获来自文件***对某扇区的文件数据的读写或删除请求;
步骤2、计算机中央处理器通过查询地址转换表将读写或删除请求的逻辑扇区地址转换为物理扇区地址;
步骤3、所述计算机中央处理器通过物理状态记录表找到该物理扇区的可用数据块设备;
步骤4、所述计算机中央处理器从该物理扇区可用数据块设备中读取文件数据,并返回给文件***,或将文件数据写入到该物理扇区的可用数据块设备中,或将文件数据从该物理扇区的可用数据块设备中删除;
其中,所述步骤1中的文件***包括有地址转换表和物理分布描述表,这两个数据表存储于相同的存储器扇区设备中,所述物理分布描述表用于将多种不同的独立存储器设备的数据访问地址联结成线性访问地址。
2、 根据权利要求1所述的存储器文件数据虚拟存取方法,其特征在于,所述地址转换表用于将逻辑地址与物理地址转换,表的各项索引号代表逻辑地址,其包含的值为物理地址。
3、 根据权利要求1所述的存储器文件数据虚拟存取方法,其特征在于,所述物理分布描述表是所述文件***物理状态记录表的辅助表。
4、 根据权利要求1所述的存储器文件数据虚拟存取方法,其特征在于,所述步骤3具体包括下述步骤:
步骤311、通过物理状态记录表获得第一个可用块,并通过块删除/写计数器表获得该块的使用次数;
步骤312、通过物理状态记录表获得多个可用块,并通过块删除/写计数器表获得所述多个可用块的使用次数,并进行对比;
步骤313、通过对所有可用块进行遍历后,获得一个使用次数最少的可用块。
5、 根据权利要求1所述的存储器文件数据虚拟存取方法,其特征在于,该方法还包括将在所述可用数据块中产生的坏块通过地址转换表移至地址转换表的后部分,使地址转换表前部分保持以可用数据块为主的步骤:
步骤3111、对产生坏块的物理状态记录表标记为产生坏块;
步骤3112、将物理状态记录表中原有的值赋给一个存储器中的临时变量;
步骤3113、获得一个新的可用数据块;
步骤3114、将物理状态记录表最后一个逻辑地址分配给坏的物理块。
6、 根据权利要求1所述的存储器文件数据虚拟存取方法,其特征在于,所述步骤4中的将文件数据写入到该物理数据块设备进一步包括以下步骤:
步骤41、判断物理扇区的状态,如果该物理扇区的状态为未使用或已删除,则通过物理分布描述表获得该物理扇区的设备描述符,以确定该物理扇区的设备及地址,进一步判断该物理扇区是否需要进行擦除操作,如果该物理扇区的状态为已删除,同时存储器需要擦除旧数据才能写入时,则擦除该物理扇区的数据内容;
步骤42、如果该物理扇区的状态为已使用或无法使用,则首先记录原文件***请求的逻辑扇区地址,逐个查询地址转换表得到物理扇区地址,再通过物理状态记录表获得物理扇区地址的状态,直至找到一个未使用或已删除的物理扇区,保存该物理扇区地址位于地址转换表的逻辑扇区地址,将该物理扇区地址保存至文件***请求的逻辑扇区地址的地址转换表中,将该表逻辑扇区地址中的物理扇区地址保存在找到的新物理扇区的扇区逻辑地址的地址转换表中;然后,通过物理分布描述表获得该未使用或已删除的物理扇区的设备描述符,以确定该未使用或已删除的物理扇区的设备及地址,进一步判断该未使用或已删除的物理扇区是否需要进行擦除操作,如果该未使用或已删除的物理扇区的状态为已删除,同时存储器需要擦除旧数据才能写入时,则擦除该未使用或已删除的物理扇区的数据内容;
步骤43、将数据写入该未使用或已删除的物理扇区中。
7、 根据权利要求6所述的存储器文件数据虚拟存取方法,其特征在于,所述步骤43进一步包括以下步骤:
步骤441、在物理状态记录表中寻找可使用块,如果有可使用块,则直接写入新数据,并把该块标记为已使用;
步骤442、如果在物理状态记录表中无法寻找到未使用块时,则在该物理状态记录表中寻找延迟删除的块,对该延迟删除块进行擦除操作,并写入数据。
8、 根据权利要求1所述的存储器文件数据虚拟存取方法,其特征在于,所述步骤4中的将文件数据从该物理扇区的可用数据块设备中删除具体是指将该设备数据块在物理状态记录表中的状态标记为延迟删除,不进行实际擦除操作。
9、 根据权利要求1所述的存储器文件数据虚拟存取方法,其特征在于,所述步骤4中的删除在***处于空闲状态时进行。
10、 根据权利要求1所述的存储器文件数据虚拟存取方法,其特征在于,所述步骤4还包括修改数据的步骤,具体是指在物理状态记录表中寻找未使用的块,并将修改的新数据写入未使用块中,物理状态记录表标记原始块为延迟擦除,写入块为已使用。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2005100908332A CN100426259C (zh) | 2005-08-18 | 2005-08-18 | 一种存储器文件数据虚拟存取方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2005100908332A CN100426259C (zh) | 2005-08-18 | 2005-08-18 | 一种存储器文件数据虚拟存取方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1719422A CN1719422A (zh) | 2006-01-11 |
CN100426259C true CN100426259C (zh) | 2008-10-15 |
Family
ID=35931261
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2005100908332A Expired - Fee Related CN100426259C (zh) | 2005-08-18 | 2005-08-18 | 一种存储器文件数据虚拟存取方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100426259C (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7376807B2 (en) * | 2006-02-23 | 2008-05-20 | Freescale Semiconductor, Inc. | Data processing system having address translation bypass and method therefor |
CN102004706B (zh) * | 2009-09-01 | 2012-09-19 | 联芯科技有限公司 | 一种基于ftl的闪存擦写掉电保护方法 |
CN103034592B (zh) * | 2012-12-05 | 2016-09-28 | 华为技术有限公司 | 数据处理方法和装置 |
CN104281539B (zh) * | 2013-07-10 | 2019-02-26 | 北京旋极信息技术股份有限公司 | 一种缓存管理方法及装置 |
CN106339327B (zh) * | 2015-07-06 | 2019-08-20 | 上海大学 | 一种计算机***及刀片式服务器机箱 |
CN110019073A (zh) * | 2017-12-29 | 2019-07-16 | 北京忆恒创源科技有限公司 | 使用kv存储设备提供文件***的方法及其文件*** |
US10496548B2 (en) * | 2018-02-07 | 2019-12-03 | Alibaba Group Holding Limited | Method and system for user-space storage I/O stack with user-space flash translation layer |
CN108763559B (zh) * | 2018-05-25 | 2021-10-01 | 广东电网有限责任公司 | 一种基于大数据的数据存储方法、***、设备及存储介质 |
CN109918228B (zh) * | 2019-01-28 | 2021-01-12 | 浙江中控技术股份有限公司 | 一种数据掉电保持方法及*** |
CN111061649B (zh) * | 2019-10-28 | 2023-09-29 | 宁波三星智能电气有限公司 | 一种存储器的存储空间自适应分配方法 |
CN112947862B (zh) * | 2021-03-10 | 2022-09-20 | 歌尔科技有限公司 | 设备、Flash存储器及其数据存储方法 |
CN116185563B (zh) * | 2022-12-27 | 2024-04-16 | 上海千顾汽车科技有限公司 | 一种基于车规级微控制器数据闪存的软件模拟算法 |
CN116166194B (zh) * | 2023-01-16 | 2023-11-03 | 广州辰创科技发展有限公司 | 一种装备保障维修维护管理方法及*** |
CN116483287B (zh) * | 2023-06-21 | 2024-02-06 | 宝德计算机***股份有限公司 | 一种互联网用户的数据安全存储方法及*** |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10134154A (ja) * | 1996-10-31 | 1998-05-22 | N T T Data Tsushin Kk | 複合カード及び複合カードのアクセスシステム |
US6205531B1 (en) * | 1998-07-02 | 2001-03-20 | Silicon Graphics Incorporated | Method and apparatus for virtual address translation |
US6321276B1 (en) * | 1998-08-04 | 2001-11-20 | Microsoft Corporation | Recoverable methods and systems for processing input/output requests including virtual memory addresses |
CN1532707A (zh) * | 2003-03-20 | 2004-09-29 | 中国科学院计算技术研究所 | 虚拟化共享式存储设备及方法 |
-
2005
- 2005-08-18 CN CNB2005100908332A patent/CN100426259C/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10134154A (ja) * | 1996-10-31 | 1998-05-22 | N T T Data Tsushin Kk | 複合カード及び複合カードのアクセスシステム |
US6205531B1 (en) * | 1998-07-02 | 2001-03-20 | Silicon Graphics Incorporated | Method and apparatus for virtual address translation |
US6321276B1 (en) * | 1998-08-04 | 2001-11-20 | Microsoft Corporation | Recoverable methods and systems for processing input/output requests including virtual memory addresses |
CN1532707A (zh) * | 2003-03-20 | 2004-09-29 | 中国科学院计算技术研究所 | 虚拟化共享式存储设备及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN1719422A (zh) | 2006-01-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100426259C (zh) | 一种存储器文件数据虚拟存取方法 | |
CN110678836B (zh) | 用于键值存储的持久性存储器 | |
US6587915B1 (en) | Flash memory having data blocks, spare blocks, a map block and a header block and a method for controlling the same | |
Chang et al. | Efficient management for large-scale flash-memory storage systems with resource conservation | |
CN102779096B (zh) | 一种基于页块面三维的闪存地址映射方法 | |
CN101382873B (zh) | 储存单元管理方法及*** | |
CN103186350B (zh) | 混合存储***及热点数据块的迁移方法 | |
CN103080910B (zh) | 存储*** | |
CN100565477C (zh) | 一种NAND Flash存储器的动态管理方法 | |
CN101169751B (zh) | 具有闪存设备的***及其数据恢复方法 | |
CN101241472B (zh) | 映射管理方法及*** | |
CN101980177B (zh) | 一种操作Flash的方法和装置 | |
CN103577339A (zh) | 一种数据存储方法及*** | |
CN109344090B (zh) | 数据中心中kvm虚拟机的虚拟硬盘***及数据中心 | |
CN100456264C (zh) | 一种磁盘空间管理方法及*** | |
CN101571869B (zh) | 一种智能卡的文件存储、读取方法及装置 | |
CN103207883A (zh) | 用于元数据持久存储的方法 | |
US7870122B2 (en) | Self-tuning index for flash-based databases | |
CN106326229B (zh) | 一种嵌入式***的文件存储方法和装置 | |
CN107239526A (zh) | 文件***实现方法、碎片整理方法、操作位置定位方法 | |
CN101986649B (zh) | 应用于电信行业计费***的共享数据中心 | |
CN107256196A (zh) | 基于闪存阵列的支持零拷贝的缓存***及方法 | |
CN101488153A (zh) | 嵌入式Linux下大容量闪存文件***的实现方法 | |
CN105718530A (zh) | 文件存储***及其文件存储控制方法 | |
CN115427941A (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 | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20081015 Termination date: 20120818 |