一种写存储器的实现方法技术

技术编号:2863029 阅读:131 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种写存储器的实现方法,该方法为:在内存中建立映射表,并将文件系统中描述文件存储位置的存储位置描述表信息映射到该映射表中;文件系统将需要写入存储器的数据保存到内存中,并在所述映射表中记录在存储器中为该数据分配的存储位置和在内存中的实际存储位置之间的对应关系;当文件系统接收到操作所述数据的请求时,根据该数据在存储器中的存储位置查询所述映射表得到数据在内存的实际存储位置,并在内存操作所述数据;以及至少在系统空闲或卸载文件系统时,根据所述存储位置描述表和映射表中对所述数据的存储位置描述,将保存在内存中所述数据写入存储器的对应位置并修改所述存储位置描述表。

【技术实现步骤摘要】

本专利技术涉及计算机及通信领域的信息存储技术,尤其涉及。
技术介绍
在计算机系统中,由文件系统对存储器中的数据进行管理。当需要对存储器中的数据进行读写操作时,由文件系统确定需要操作的存储位置,然后从存储器中读出数据或将数据写入存储器。闪存(FLASH)作一种非易失存储器,在计算机系统中被广泛地应用于存储数据。文件系统向FLASH写数据和从FLASH读数据的最小操作单位一般为512-528个字节(Bytes);由于FLASH的特性,文件系统在向FLASH写入数据时,如果欲写入位置已经存在数据,则需将该单元位置数据擦除后,方能写入,一般需要擦除16-32Kbytes。例如,文件系统需要向FLASH中已存在数据的第3扇区写入一个512字节的数据时,此时需要将该第1-32扇区的内容读入内存,在内存中将第3扇区的内容替换掉,并擦除1-32扇区的所有内容,然后再写回FLASH 1-32扇区的内容。由于文件系统在对FLASH中已存储数据的位置进行写操作时,需要进行读数据、擦除数据和写入数据各一次,因而存在以下缺点1、由于FLASH的擦除数据和写入数据速度较慢,因此,导致整个写操作的执行效率低。2、每次向FLASH写入数据时,要对FLASH进行多次操作,而对存储器的高频率的操作,导致存储器的使用寿命缩短。
技术实现思路
有鉴于此,本专利技术提供,以解决现有的文件系统每次执行写操作时多次对存储器操作而导致执行效率低和影响存储器使用寿命的问题。,包括如下步骤A、在内存中建立映射表,并将文件系统中描述文件存储位置的存储位置描述表信息映射到该映射表中;B、所述文件系统将需要写入存储器的数据保存到内存中,并在所述映射表中记录在存储器中为该数据分配的存储位置和在内存中的实际存储位置之间的对应关系;C、所述文件系统接收到操作所述数据的请求时,根据该数据在存储器中的存储位置查询所述映射表得到数据在内存的实际存储位置,并在内存操作所述数据;D、至少在系统空闲或卸载文件系统时,根据所述存储位置描述表和映射表中对所述数据的存储位置描述,将保存在内存中所述数据写入存储器的对应位置并修改所述存储位置描述表。所述步骤B包括如下步骤B1、文件系统在接收到向存储器写入数据的请求时在存储器中为该数据分配存储位置并记录在所述映射表中;B2、在内存中为所述数据分配实际存储位置并记录在所述映射表中,在该表中使数据在存储器的存储位置与在内存的实际存储位置形成对应关系;以及B3、将所述数据写入内存的实际存储位置。所述步骤C包括如下步骤C1、接收到从存储器读取数据的请求时查询映射表确定该数据在存储器的存储位置;C2、查询所述存储器的存储位置是否对应有数据在内存的实际存储位置,如果是,则从内存的该实际存储位置获取数据完成操作,否则,从存储器获取数据完成操作。步骤D中,当系统空闲时将能整除存储器最小擦写单位数据量的所述数据写入存储器未使用的数据区,修改所述存储位置描述表和映射表,以及释放相应的内存。步骤D中,当系统卸载文件系统或存储器时,将内存中所有的所述数据写入存储器,并在所述存储位置描述表中记录数据在存储器中的位置。本专利技术在文件系统执行写操作时先将数据暂存在内存中,并且后续对该数据的读写操作在内存中进行,在系统空闲或卸载文件系统时才将数据写入到存储器,避免了每次执行写操作都需要对存储器进行读、擦和写操作,减少了擦、写存储器的频率。因此,本专利技术不仅写操作的效率高,而且能够延长存储器的使用寿命。附图说明图1为FAT表映射到内存的示意图;图2为本专利技术的流程图;图3为内存映射表与FAT表中对应的存储位置关系示意图。具体实施例方式本实施例主要以文件分配表(File Allocation Table,FAT)文件系统对本专利技术进行说明,其中存储位置描述表对应FAT表。本专利技术所称数据可以是一个文件的全部数据,也可以是一个文件中的部分数据。计算机系统中的文件系统主要完成三项功能跟踪记录存储器上中被耗用的空间和自由空间,维护目录名和文件名,跟踪记录每一个文件的物理存储位置。FAT文件系统采用文件描述表(FDT)来记录文件的属性信息,如存储文件的起始位置、文件长度(大小)等;通过FAT表来记录文件的物理存储位置,FAT表是在FAT文件系统中用于磁盘数据(文件)索引和定位的一种链式表,表中记录存储各文件的簇号。簇(Cluster)是将某一线形范围的物理位置(地址)形成一个管理单位,如磁盘的最小单位是一个扇区,一个簇可以根据需要包含两个、四个甚至更多的扇区。FLASH的读写操作最小单位为一个页/扇区(Page/Sector),擦除的最小单位为一个块(Block),每块包含16-64或更多个扇区不等(视不同的存储器)。为了提高FAT文件系统执行写操作的效率,本专利技术在执行写操作时,先将数据暂存到内存而不直接对存储器进行操作,以提高执行效率和访问速度,在系统空闲或卸载文件系统时再将数据写回存储器。为了使数据在存储器的存储位置与在内存的存储位置保持对应关系,在每次装载(mount)存储器时,先获得FAT表所描述的最大的簇数量,并建立相应的内存映射表,参阅图1所示。建立内存映射表时先获知文件系统中的FAT表在存储器上的容量,即存储器上的总簇数;然后在内存中建立一个同FAT表所描述的簇数量相同的FAT内存映射表,该映射表描述每簇单位数据的包含下一个簇的簇号和地址,簇号的存储宽度与FAT表相同,地址的存储宽度包括但不限于8位、12位、16位、32位、64位,该地址为数据在内存的实际地址。当文件系统接收到写存储器请求时,根据数据量大小按现有的方法查询和在存储器中分配要写的簇,并在FAT映射表中记录这些簇;然后在内存中为数据分配存储空间,将数据写入内存并在FAT映射表中记录对应的内存地址,使为数据分配的簇号与数据在内存的地址间形成对应关系,即根据该簇号能获得数据在内存的地址。当文件系统响应后续的读、写操作时,首先查询FAT内存映射表,若发现要操作的簇对应有内存地址,则从内存的该位置读数据或重新在该位置写数据;若没有对应内存地址,对于读操作而言则根据簇号从存储器的读取数据,对于写操作而言则按上述方式将数据写到内存。结合图2说明向存储器写数据和后续读取该数据的过程在步骤10,文件系统接收到访问存储器的请求;在步骤20,文件系统确定是读还是写操作,如果是写操作进行步骤30,如果是读操行进行步骤50;在步骤30,文件系统按现有方式在存储器中为这些数据分配簇号,将这些簇号记录在FAT内存映射表中;在步骤40,根据数据量分配内存,将数据写入内存并记录在FAT内存映射表中;在步骤50,确定数据所在的簇号;在步骤60,根据步骤50确定的簇号查询FAT内存映射表,判断该簇号是否对应有内存地址(即判断该数据是否暂存在内存中),如果是则进行步骤70,否则进行步骤80;在步骤70,文件系统根据对应的内存地址从内存读取数据;在步骤80,文件系统根据簇号从存储器中读取数据。当系统空闲时,将能整除存储器最小擦写单位的数据量的内存数据区数据写入存储器未使用数据区,并调整FAT表及释放内存数据区写入后的数据。系统空闲主要是指系统休眠、待机或处理器资源使用较少的情况。当系统卸载(un-mount)文件系统/存储器时比较FAT表和FAT本文档来自技高网...

【技术保护点】
一种写存储器的实现方法,其特征在于包括如下步骤:    A、在内存中建立映射表,并将文件系统中描述文件存储位置的存储位置描述表信息映射到该映射表中;    B、所述文件系统将需要写入存储器的数据保存到内存中,并在所述映射表中记录在存储器中为该数据分配的存储位置和在内存中的实际存储位置之间的对应关系;    C、所述文件系统接收到操作所述数据的请求时,根据该数据在存储器中的存储位置查询所述映射表得到数据在内存的实际存储位置,并在内存操作所述数据;    D、至少在系统空闲或卸载文件系统时,根据所述存储位置描述表和映射表中对所述数据的存储位置描述,将保存在内存中所述数据写入存储器的对应位置并修改所述存储位置描述表。

【技术特征摘要】

【专利技术属性】
技术研发人员:谭帅
申请(专利权)人:北京中星微电子有限公司
类型:发明
国别省市:11[中国|北京]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1