CN105630410A - 使用非易失随机读写存储芯片动态管理文件存储区的方法 - Google Patents
使用非易失随机读写存储芯片动态管理文件存储区的方法 Download PDFInfo
- Publication number
- CN105630410A CN105630410A CN201510881981.XA CN201510881981A CN105630410A CN 105630410 A CN105630410 A CN 105630410A CN 201510881981 A CN201510881981 A CN 201510881981A CN 105630410 A CN105630410 A CN 105630410A
- Authority
- CN
- China
- Prior art keywords
- subpool
- memory block
- file
- memory
- block
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0643—Management of files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
- G06F3/0607—Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种使用非易失随机读写存储芯片动态管理文件存储区的方法,文件存储区由N个地址连续并且相连接的子存储区组成,第i个子存储区需要动态调整时,征用第i+1个子存储区中与第i个子存储区相邻的连续多个存储块,或者征用第i-1个子存储区中与第i个子存储区相邻的连续多个存储块。本发明还提供一种利用MRAM存储小文件的存储结构。本发明提供的动态管理存储区的方法以及利用MRAM存储小文件的存储结构,相邻的子存储区采用动态管理的方法进行管理,当一个子存储区的块用完或空闲存储块的数量少于设定值时,征用相邻的子存储区的存储空间,根据应用环境能够动态调整子存储区的存储块的数量,从而能够提高存储空间的利用率。
Description
技术领域
本发明涉及存储领域,尤其涉及一种使用非易失随机读写存储芯片动态管理存储区的方法及利用MRAM存储小文件的存储结构。
背景技术
现在计算机、智能手机、平板电脑中,用户数据、文件被存在硬盘,或者NAND闪存芯片中以及由NAND闪存组成的固态硬盘里。NAND和固态硬盘取代传统的机械硬盘又是一个产业发展的大趋势。
硬盘和固态硬盘内的NAND闪存都是整块读写的块设备(blockdevice),最小可读取的单元叫页(page),最小可擦除的单元叫块(block),一个块往往由很多页组成,块擦除后里面的页可以进行单独的写入操作。
NAND闪存的一个问题是NAND具有有限的寿命。里面的每一个页经过一定次数的擦写以后,就会永久失效不能继续使用。目前的产业发展趋势是NAND的容量和数据密度增长非常快,但却是以降低寿命为代价。可擦写次数从最初的10万次降低到目前的3000次左右。
如图1所示,手机与计算机的文件操作方式如下:
(1)应用软件向操作系统发出打开、关闭、读、写文件指令;
(2)操作系统中的文件系统部分把读、写文件的指令转化为读、写存储块的指令;
(3)NAND驱动与管理软件接受读写存储块区的指令,进行缓存、写均衡等优化,向芯片发出读page,写block等指令。
在手机中,NAND驱动与管理软件通常作为与操作系统紧密相关的软件模块,在主机芯片上运行;在计算机中,NAND驱动与管理软件通常在固态硬盘的主控芯片上运行。
文件系统是操作系统软件中的一个重要部分,负责解决文件的存储问题。它会把文件划分成一个个的块,一般每一个块和NAND闪存中的一个页对应。每当一个新文件创建,文件系统会分配给它一个块,当一个块写满后,再分配一个新的块。由于系统中很多文件都在增长,一个文件中的不同的块常常地址不连续,这就是文件的碎片化。并且,一个文件删除后,释放出的空闲块会被新的文件占用。所以,随着产品的使用,文件的碎片化会越来越严重。
随着当代技术的发展,NAND闪存的密度越来越大。于此同时,页和块的尺寸也变得越来越大。页从几年前的512字节(byte)变成了今天的16Kbyte;块从几年前的16Kbyte变成了今天的8192Kbyte。
而一个计算机系统中相当数量的文件是小文件,从10-20字节,到几百个字节。小文件中最典型的例子就是文件夹目录。在大部分文件系统中,目录也是作为一个单独的文件存储的。大部分目录文件都很小,而且被修改的几率非常高。不适合存储在blockdevice里。
计算机文件系统中文件的最小存储单元,一般和NAND的页一样大。因此NAND越来越不适于存储这样的小文件。为存储一个20字节的文件,要占用16Kbyte的空间,存储空间的利用率非常低。为修改这样一个20字节的小文件,甚至可能要对8192Kbyte的数据进行擦除重写,极大地加重了系统的负担。
一种方法是利用MRAM保存小文件,MRAM是一种新的内存和存储技术,可以像RAM一样快速随机读写,还可以像NAND闪存一样在断电后永久保留数据。不像NAND,MRAM可以无限多次地擦写。但预计未来相当长一段时间内,MRAM的容量比NAND低,成本比NAND高。
MRAM中设置小文件存储区,用于保存小文件,把小文件存储区分成多个存储区,每个存储区由同样大小的块组成,多个存储区的块的容量依次增大。
这种方法存储小文件采用的块的容量,小于块存储设备的块的容量,因而能够提高存储空间的利用率。在修改文件时,首先需要擦除的块较小,能够降低系统的负担;其次修改操作是在MRAM中完成,而不是在硬盘或NAND中完成,在MRAM中操作要比在硬盘或NAND中快得多,整个系统的性能会因此提升。另外减少了对NAND的写入,延长了系统寿命。
但这种方法也存在不足之处,每个存储区的总块数是固定的,缺乏灵活性。
发明内容
有鉴于现有技术的上述缺陷,本发明所要解决的技术问题是提供一种使用非易失随机读写存储芯片动态管理文件存储区的方法,当一个子存储区的存储块用完或空闲存储块的数量少于设定值时,征用相邻的子存储区的存储空间,根据应用环境能够动态调整子存储区中存储块的数量,从而能够提高存储空间的利用率。
本发明提供一种使用非易失随机读写存储芯片动态管理文件存储区的方法,非易失随机读写存储芯片包括文件存储区、文件目录区以及管理区,文件存储区由N个地址连续并且相连接的子存储区组成,每个子存储区由相同大小的存储块组成,文件目录区记录每个文件对应的子存储区以及子存储区中的存储块信息,管理区存储子存储区的信息;第i+1个子存储区与第i个子存储区的存储块的容量的比为不等于1的整数比,其中i为子存储区序号,1≤i≤N,动态管理文件存储区的方法包括以下步骤:
(1)第i个子存储区需要动态调整时,征用第i+1个子存储区中与第i个子存储区相邻的连续多个存储块,条件是第i+1个子存储区存在,或者征用第i-1个子存储区中与第i个子存储区相邻的连续多个存储块,条件是第i-1个子存储区存在;
(2)当征用第i+1个子存储区中的存储块时,如果第i+1个子存储区与第i个子存储区的存储块的容量的比为m:n,其中m、n为整数,m≠n,检查m*k个存储块中的每一个存储块,其中k为整数,如果存储块中已存储数据,将数据移至第i+1个子存储区中m*k个存储块之外的空闲存储块中;同时更新文件目录区中的相应文件对应的子存储区以及子存储区中的存储块信息;更新管理区中相应的子存储区的信息,第i+1个子存储区的m*k个存储块,作为第i个子存储区中的n*k个存储块使用;
(3)当征用第i-1个子存储区中的存储块时,如果第i-1个子存储区与第i个子存储区的存储块的容量的比为g:h,其中g、h为整数,g≠h,检查所述g*l个存储块中的每一个存储块,其中l为整数,如果存储块中已存储数据,将数据移至所述第i-1个子存储区中所述g*l个存储块之外的空闲存储块中;同时更新所述文件目录区中的相应文件对应的子存储区以及子存储区中的存储块信息;更新所述管理区中相应的子存储区的信息,所述第i-1个子存储区的所述g*l个存储块,作为所述第i个子存储区中的h*l个存储块使用。
动态调整子存储区的存储块的数量,可以灵活地调整各个子存储区的空间,使得在任何应用环境下,都可以得到最优的配置,提高存储效率。
进一步地,步骤(2)检查m*k个存储块中的每一个存储块,如果存储块中已存储数据,将数据移至第i+1个子存储区中m*k个存储块之外的空闲存储块中的方法包括以下步骤:
(21)等待存储块中的数据对应的文件读写操作完成后,锁定文件;
(22)将存储块中的数据拷贝到第i+1个子存储区中m*k存储块之外的一个空闲存储块中;
(23)更新文件目录区中文件对应的子存储区以及子存储区中的存储块信息;
(24)解锁文件。
进一步地,步骤(3)检查g*l个存储块中的每一个存储块,如果存储块中已存储数据,将数据移至第i-1个子存储区中g*l个存储块之外的空闲存储块中的方法包括以下步骤:
(31)等待存储块中的数据对应的文件读写操作完成后,锁定文件;
(32)将存储块中的数据拷贝到第i-1个子存储区中g*l存储块之外的一个空闲存储块中;
(33)更新文件目录区中文件对应的子存储区以及子存储区中的存储块信息;
(34)解锁文件。
进一步地,步骤(1)中第i个子存储区需要动态调整的条件为:第i个子存储区中的空闲存储块的数量少于设定值。
本发明还提供一种利用MRAM存储小文件的存储结构,包括块存储设备与MRAM,MRAM包括文件存储区、文件目录区以及管理区,文件存储区用于存储小文件,文件存储区由N个地址连续并且相连接的子存储区组成,每个子存储区由相同大小的存储块组成,文件目录区记录每个文件对应的子存储区以及子存储区中的存储块信息,管理区存储子存储区的信息;文件存储区中相邻的子存储区采用上述使用非易失随机读写存储芯片动态管理文件存储区的方法进行管理。
这里小文件是指文件大小小于或等于块存储设备的一个页的文件。本发明中,采用MRAM协同NAND闪存或者硬盘等块设备一起存储文件,利用成本更低的块设备存储大文件,利用能够随机读写的MRAM存储小文件。
进一步地,存储结构和块存储设备一起用于存储文件,子存储区的最大的存储块的容量,小于或等于块存储设备的存储块的容量。
进一步地,创建文件时在合适的子存储区中选择一个空闲存储块分配给文件,合适的子存储区是指子存储区的存储块是能够容纳文件的最小的存储块。
进一步地,创建文件时在文件存储区中找不到合适的子存储区,将文件交给下一级软件处理。
由下一级软件决定存入缓存、直接写入块存储设备,或做其他处理。本发明的软件涉及对计算机文件系统的修改,如图1所示,文件系统的下一级软件是指NAND管理软件。由于有可能存在缓存机制。所以交给下一级软件处理不一定马上写回到NAND中,也可能留在MRAM的写缓存中。
进一步地,文件修改后,如果文件的大小大于对应的子存储区的存储块的容量,在下一个子存储区中选择一个空闲存储块分配给文件,并释放对应的子存储区的存储块,如果所有后面的子存储区中都找不到空闲存储块,将文件交给下一级软件处理。
进一步地,文件修改后,如果文件的大小小于或等于对应的子存储区的上一个子存储区的存储块的容量,在上一个子存储区中选择一个空闲存储块分配给文件,并释放对应的子存储区的存储块。
在修改文件时,首先需要擦除的存储块较小,能够降低系统的负担;其次修改操作是在MRAM中完成,而不是在硬盘或NAND中完成,在MRAM中操作要比在硬盘或NAND中快得多,整个系统的性能会因此提升。另外减少了对块存储设备的写入,延长了系统寿命。
进一步地,文件存储区还用于存储大文件的尾页。这里大文件是指文件大小大于或等于块存储设备的一个页的文件,通常需要占用很多页的文件。有些大文件,例如日志文件,修改发生在大文件的尾页,使用MRAM中的文件存储区存储大文件的尾页,修改操作是在MRAM中完成,而不是在块存储设备中完成,进一步减少了对块存储设备的写入,延长了系统寿命。
与现有技术相比,本发明提供的使用非易失随机读写存储芯片动态管理文件存储区的方法以及利用MRAM存储小文件的存储结构,具有以下有益效果:
(1)存储小文件采用的存储块的容量小于块存储设备的块的容量,因而能够提高存储空间的利用率;
(2)相邻的子存储区采用上述使用非易失随机读写存储芯片动态管理文件存储区的方法进行管理,当一个子存储区的存储块用完或空闲存储块的数量少于设定值时,征用相邻的子存储区的存储空间,根据应用环境能够动态调整子存储区的存储块的数量,从而能够提高存储空间的利用率;
(3)在修改文件时,首先需要擦除的块较小,能够降低系统的负担;其次修改操作是在MRAM中完成,而不是在块存储设备中完成,在MRAM中操作要比在块存储设备中快得多,整个系统的性能会因此提升;
(4)文件存储区还用于存储大文件的尾页,进一步减少了对块存储设备的写入,延长了系统寿命。
以下将结合附图对本发明的构思、具体结构及产生的技术效果作进一步说明,以充分地了解本发明的目的、特征和效果。
附图说明
图1是现有技术中文件操作流程图;
图2是本发明的一个实施例的利用MRAM存储小文件的存储结构的示意图;
图3是本发明的另一个实施例的利用MRAM存储小文件的存储结构的示意图。
具体实施方式
如图2所示,本发明的一个实施例的利用MRAM存储小文件的存储结构,包括MRAM与块存储设备,块存储设备为手机中的NAND闪存或计算机中的硬盘、固态硬盘(SSD)。
MRAM通过DDRDRAM接口与手机的主控芯片或计算机的CPU连接。
以下涉及对操作系统软件中文件系统的修改:
利用MRAM存储小文件的存储结构,包括块存储设备与MRAM,MRAM包括文件存储区、文件目录区以及管理区,文件存储区用于存储小文件,文件存储区由N个地址连续并且相连接的子存储区组成,每个子存储区由相同大小的存储块组成,文件目录区记录每个文件对应的子存储区以及子存储区中的存储块信息,管理区存储子存储区的信息;第i+1个子存储区与第i个子存储区的存储块的容量的比为不等于1的整数比,其中i为子存储区序号,1≤i≤N。
小文件是文件大小可以从10-20byte到几百个字节。具体文件大小为多少字节属于小文件,可根据不同的情况设定。设置不同存储块容量的子存储区,能够将不同大小的文件存储在不同存储块容量的子存储区,进一步提高的存储空间的利用率,降低系统的负担。
本实施例中,文件存储区划分成N个子存储区,每个子存储区由相同大小的存储块组成,第1个子存储区的存储块的容量最小,第2个子存储区的存储块的容量是第1个子存储区的2倍,第3个子存储区的存储块的容量是第2个存储区的2倍,以此类推,第N个子存储区由容量最大的存储块组成,最大存储块的容量应当小于或等于一个NAND页。
也就是m>n,m:n=2:1,本实施例中,子存储区的存储块的容量由小到大,第i+1个子存储区与第i个子存储区的存储块的容量的比为m:n,m:n为相同的值2:1。
如果m<n,第1个子存储区由容量最大的存储块组成,也就是子存储区的存储块的容量由大到小。当然子存储区的存储块的容量也可以不是由小到大或由大到小。
存储块的容量最小的子存储区,存储块容量选择128byte或者256byte比较合适,开始的几个子存储区,下一个存储区的存储块的容量应该是当前一子存储区的存储块的容量的2倍;存储块容量比较大时,例如超过4K时,下一个子存储区的块容量可以增加50%,也就是,第i+1个子存储区与第i个子存储区的存储块的容量的比为m:n,m:n为不同的值。
本实施例中,存储块的容量最小的子存储区,存储块的容量选择128byte或者256byte;存储块的容量最大的子存储区,选择为一个NAND页的一半,即如果NAND页为16K,最大存储块的容量应为8K。
本实施例中,相邻的子存储区采用动态管理的方法,而不像现有技术中每个存储区的存储块的数量是固定的。
第i+1个子存储区与第i个子存储区的存储块的容量的比为m:n,动态管理文件存储区的方法包括以下步骤:
(1)第i个子存储区需要动态调整时,征用第i+1个子存储区中与第i个子存储区相邻的连续多个存储块,条件是第i+1个子存储区存在,或者征用第i-1个子存储区中与第i个子存储区相邻的连续多个存储块,条件是第i-1个子存储区存在;
(2)当征用第i+1个子存储区中的存储块时,如果第i+1个子存储区与第i个子存储区的存储块的容量的比为m:n,其中m、n为整数,m≠n,检查m*k个存储块中的每一个存储块,其中k为整数,如果存储块中已存储数据,将数据移至第i+1个子存储区中m*k个存储块之外的空闲存储块中;同时更新文件目录区中的相应文件对应的子存储区以及子存储区中的存储块信息;更新管理区中相应的子存储区的信息,第i+1个子存储区的m*k个存储块,作为第i个子存储区中的n*k个存储块使用;
(3)当征用第i-1个子存储区中的存储块时,如果第i-1个子存储区与第i个子存储区的存储块的容量的比为g:h,其中g、h为整数,g≠h,检查所述g*l个存储块中的每一个存储块,其中l为整数,如果存储块中已存储数据,将数据移至所述第i-1个子存储区中所述g*l个存储块之外的空闲存储块中;同时更新所述文件目录区中的相应文件对应的子存储区以及子存储区中的存储块信息;更新所述管理区中相应的子存储区的信息,所述第i-1个子存储区的所述g*l个存储块,作为所述第i个子存储区中的h*l个存储块使用。
动态调整子存储区的存储块的数量,可以灵活地调整各个子存储区的空间,使得在任何应用环境下,都可以得到最优的配置,提高存储效率。
第i个子存储区的尾部与第i+1个子存储区的头部相邻,m*k个存储块中的第一个存储块为第i+1个子存储区的头部对应的存储块。
第i个子存储区的头部与第i-1个子存储区的尾部相邻,m*k个存储块中的最后一个存储块为第i-1个子存储区的尾部对应的存储块。
步骤(2)检查m*k个存储块中的每一个存储块,如果存储块中已存储数据,将数据移至第i+1个子存储区中m*k个存储块之外的空闲存储块中的方法包括以下步骤:
(21)等待存储块中的数据对应的文件读写操作完成后,锁定文件;
(22)将存储块中的数据拷贝到第i+1个子存储区中m*k存储块之外的一个空闲存储块中;
(23)更新文件目录区中文件对应的子存储区以及子存储区中的存储块信息;
(24)解锁文件。
步骤(21)中锁定文件,目的是暂时禁止文件读写,以保证数据移动过程中数据的完整性。
步骤(3)检查g*l个存储块中的每一个存储块,如果存储块中已存储数据,将数据移至第i-1个子存储区中g*l个存储块之外的空闲存储块中的方法包括以下步骤:
(31)等待存储块中的数据对应的文件读写操作完成后,锁定文件;
(32)将存储块中的数据拷贝到第i-1个子存储区中g*l存储块之外的一个空闲存储块中;
(33)更新文件目录区中文件对应的子存储区以及子存储区中的存储块信息;
(34)解锁文件。
步骤(1)中第i个子存储区需要动态调整的条件为:第i个子存储区中的空闲存储块的数量少于设定值。
文件存储区中最大的块的容量等于容量设定值。
存储结构和块存储设备一起用于存储文件,子存储区的最大的存储块的容量,小于或等于块存储设备的存储块的容量。
本实施例中,如果最大存储块的容量为8K,也就是等于容量设定值,文件大小小于8K的文件会作为小文件存储在MRAM的文件存储区,而文件大小大于或等于8K的文件会存储在块存储设备中,例如手机中的NAND或计算机中的固态硬盘(SSD)的NAND芯片中。
MRAM中包括文件目录区,既可以提高整个文件系统的性能,又可以提高存储效率,还可以支持动态的移动文件存储。
如果把文件系统中大部分目录存在MRAM的文件存储区中。文件存储区的大小应该是硬盘/固态硬盘的千分之一左右,能够极大提高了存储空间的利用率。
创建文件的处理过程如下:
(1)根据第一次写入的数据,在合适的子存储区中选择一个空闲存储块分配给文件,合适的子存储区是指子存储区的存储块是能够容纳文件的最小的存储块;
(2)如果在合适的子存储区中未找到空闲块,在下一个子存储区中寻找;如果最合适的子存储区中找不到空闲存储块,就在下一个子存储区中寻找;如果下一个子存储区中还找不到,再到下一个子存储区中寻找,如果在文件存储区找不到合适的子存储区,将文件写入块存储设备;如果找到空闲存储块,将空闲存储块分配给该文件,并释放对应的子存储区的存储块。
文件修改后文件的大小大于对应的子存储区的存储块的容量的处理过程如下:
(1)如果文件的大小大于对应的子存储区的存储块的容量,在下一个子存储区中选择一个空闲存储块分配给文件,并释放对应的子存储区的存储块;
(2)如果在下一个子存储区中未找到空闲存储块,再到下一个子存储区寻找,如果在文件存储区找不到合适的子存储区,将修改后的文件写入块存储设备;如果找到空闲存储块,将空闲存储块分配给该文件,并释放对应的子存储区的存储块。
文件修改后文件的大小小于或等于对应的子存储区的存储块的容量的处理过程如下:
(1)如果文件的大小小于或等于对应的子存储区的上一个子存储区的存储块的容量,在上一个子存储区中选择一个空闲存储块分配给文件,并释放对应的子存储区的存储块。
如图3所示,本发明的另一个实施例的利用MRAM存储小文件的存储结构,包括MRAM与块存储设备,块存储设备为计算机中的固态硬盘(SSD),MRAM集成在固态硬盘中,划分出一块让计算机CPU直接读写。
文件存储区还用于存储大文件的尾页,即最后一个未写满的页。
本发明提供的使用非易失随机读写存储芯片动态管理文件存储区的方法以及利用MRAM存储小文件的存储结构,存储小文件采用的存储块的容量小于块存储设备的块的容量,因而能够提高存储空间的利用率;相邻的子存储区采用上述使用非易失随机读写存储芯片动态管理文件存储区的方法进行管理,当一个子存储区的存储块用完或空闲存储块的数量少于设定值时,征用相邻的子存储区的存储空间,根据应用环境能够动态调整子存储区的存储块的数量,从而能够提高存储空间的利用率;在修改文件时,首先需要擦除的存储块较小,能够降低系统的负担;其次修改操作是在MRAM中完成,而不是在块存储设备中完成,在MRAM中操作要比在块存储设备中快得多,整个系统的性能会因此提升;文件存储区还用于存储大文件的尾页,进一步减少了对块存储设备的写入,延长了系统寿命。
以上详细描述了本发明的较佳具体实施例。应当理解,本领域的普通技术人员无需创造性劳动就可以根据本发明的构思做出诸多修改和变化。因此,凡本技术领域中技术人员依本发明的构思在现有技术的基础上通过逻辑分析、推理或者有限的实验可以得到的技术方案,皆应在由权利要求书所确定的保护范围内。
Claims (11)
1.一种使用非易失随机读写存储芯片动态管理文件存储区的方法,其特征在于,非易失随机读写存储芯片包括文件存储区、文件目录区以及管理区,所述文件存储区由N个地址连续并且相连接的子存储区组成,每个子存储区由相同大小的存储块组成,所述文件目录区记录每个文件对应的子存储区以及子存储区中的存储块信息,所述管理区存储子存储区的信息;第i+1个子存储区与第i个子存储区的存储块的容量的比为不等于1的整数比,其中i为子存储区序号,1≤i≤N,所述动态管理文件存储区的方法包括以下步骤:
(1)第i个子存储区需要动态调整时,征用第i+1个子存储区中与所述第i个子存储区相邻的连续多个存储块,条件是第i+1个子存储区存在,或者征用第i-1个子存储区中与所述第i个子存储区相邻的连续多个存储块,条件是第i-1个子存储区存在;
(2)当征用第i+1个子存储区中的存储块时,如果第i+1个子存储区与第i个子存储区的存储块的容量的比为m:n,其中m、n为整数,m≠n,检查所述m*k个存储块中的每一个存储块,其中k为整数,如果存储块中已存储数据,将数据移至所述第i+1个子存储区中所述m*k个存储块之外的空闲存储块中;同时更新所述文件目录区中的相应文件对应的子存储区以及子存储区中的存储块信息;更新所述管理区中相应的子存储区的信息,所述第i+1个子存储区的所述m*k个存储块,作为所述第i个子存储区中的n*k个存储块使用;
(3)当征用第i-1个子存储区中的存储块时,如果第i-1个子存储区与第i个子存储区的存储块的容量的比为g:h,其中g、h为整数,g≠h,检查所述g*l个存储块中的每一个存储块,其中l为整数,如果存储块中已存储数据,将数据移至所述第i-1个子存储区中所述g*l个存储块之外的空闲存储块中;同时更新所述文件目录区中的相应文件对应的子存储区以及子存储区中的存储块信息;更新所述管理区中相应的子存储区的信息,所述第i-1个子存储区的所述g*l个存储块,作为所述第i个子存储区中的h*l个存储块使用。
2.如权利要求1所述的使用非易失随机读写存储芯片动态管理文件存储区的方法,其特征在于,步骤(2)检查所述m*k个存储块中的每一个存储块,如果存储块中已存储数据,将数据移至所述第i+1个子存储区中所述m*k个存储块之外的空闲存储块中的方法包括以下步骤:
(21)等待所述存储块中的数据对应的文件读写操作完成后,锁定所述文件;
(22)将所述存储块中的数据拷贝到所述第i+1个子存储区中所述m*k存储块之外的一个空闲存储块中;
(23)更新所述文件目录区中所述文件对应的子存储区以及子存储区中的存储块信息;
(24)解锁所述文件。
3.如权利要求1所述的使用非易失随机读写存储芯片动态管理文件存储区的方法,其特征在于,步骤(3)检查所述g*l个存储块中的每一个存储块,如果存储块中已存储数据,将数据移至所述第i-1个子存储区中所述g*l个存储块之外的空闲存储块中的方法包括以下步骤:
(31)等待所述存储块中的数据对应的文件读写操作完成后,锁定所述文件;
(32)将所述存储块中的数据拷贝到所述第i-1个子存储区中所述g*l存储块之外的一个空闲存储块中;
(33)更新所述文件目录区中所述文件对应的子存储区以及子存储区中的存储块信息;
(34)解锁所述文件。
4.如权利要求1所述的使用非易失随机读写存储芯片动态管理文件存储区的方法,其特征在于,步骤(1)中所述第i个子存储区需要动态调整的条件为:所述第i个子存储区中的空闲存储块的数量少于设定值。
5.一种利用MRAM存储小文件的存储结构,包括块存储设备与MRAM,其特征在于,所述MRAM包括文件存储区、文件目录区以及管理区,所述文件存储区用于存储小文件,所述文件存储区由N个地址连续并且相连接的子存储区组成,每个子存储区由相同大小的存储块组成,所述文件目录区记录每个文件对应的子存储区以及子存储区中的存储块信息,所述管理区存储子存储区的信息;所述文件存储区中相邻的子存储区采用权利要求1-4任一项所述的使用非易失随机读写存储芯片动态管理文件存储区的方法进行管理。
6.如权利要求5所述的利用MRAM存储小文件的存储结构,其特征在于,所述存储结构和块存储设备一起用于存储文件,所述子存储区的最大的存储块的容量,小于或等于所述块存储设备的存储块的容量。
7.如权利要求5所述的利用MRAM存储小文件的存储结构,其特征在于,创建文件时在合适的子存储区中选择一个空闲存储块分配给所述文件,所述合适的子存储区是指所述子存储区的存储块是能够容纳所述文件的最小的存储块。
8.如权利要求7所述的利用MRAM存储小文件的存储结构,其特征在于,创建文件时在所述文件存储区中找不到合适的子存储区,将所述文件交给下一级软件处理。
9.如权利要求5所述的利用MRAM存储小文件的存储结构,其特征在于,文件修改后,如果所述文件的大小大于对应的子存储区的存储块的容量,在下一个子存储区中选择一个空闲存储块分配给所述文件,并释放所述对应的子存储区的存储块,如果所有后面的子存储区中都找不到空闲存储块,将所述文件交给下一级软件处理。
10.如权利要求5所述的利用MRAM存储小文件的存储结构,其特征在于,文件修改后,如果所述文件的大小小于或等于对应的子存储区的上一个子存储区的存储块的容量,在所述上一个子存储区中选择一个空闲存储块分配给所述文件,并释放所述对应的子存储区的存储块。
11.如权利要求5所述的利用MRAM存储小文件的存储结构,其特征在于,所述文件存储区还用于存储大文件的尾页。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510881981.XA CN105630410B (zh) | 2015-12-03 | 2015-12-03 | 使用非易失随机读写存储芯片动态管理文件存储区的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510881981.XA CN105630410B (zh) | 2015-12-03 | 2015-12-03 | 使用非易失随机读写存储芯片动态管理文件存储区的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105630410A true CN105630410A (zh) | 2016-06-01 |
CN105630410B CN105630410B (zh) | 2018-08-07 |
Family
ID=56045408
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510881981.XA Active CN105630410B (zh) | 2015-12-03 | 2015-12-03 | 使用非易失随机读写存储芯片动态管理文件存储区的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105630410B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109086002A (zh) * | 2018-06-28 | 2018-12-25 | 平安科技(深圳)有限公司 | 存储对象的空间管理方法、装置、计算机装置及存储介质 |
CN109254857A (zh) * | 2018-08-30 | 2019-01-22 | 百度在线网络技术(北京)有限公司 | 一种共享内存的调整方法、装置、设备和介质 |
CN113359678A (zh) * | 2021-06-25 | 2021-09-07 | 潍柴动力股份有限公司 | 一种发动机数据的刷写装置 |
CN117931095A (zh) * | 2024-03-21 | 2024-04-26 | 腾讯科技(深圳)有限公司 | 地图数据存储方法、装置、电子设备和存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070226447A1 (en) * | 2006-03-23 | 2007-09-27 | Hitachi, Ltd. | Storage system, storage extent release method and storage apparatus |
CN104007939A (zh) * | 2014-06-23 | 2014-08-27 | 深圳供电局有限公司 | 用于小文件频繁写入的嵌入式fat文件系统及方法 |
CN104616688A (zh) * | 2015-03-05 | 2015-05-13 | 上海磁宇信息科技有限公司 | 一种集成mram的固态硬盘控制芯片及固态硬盘 |
-
2015
- 2015-12-03 CN CN201510881981.XA patent/CN105630410B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070226447A1 (en) * | 2006-03-23 | 2007-09-27 | Hitachi, Ltd. | Storage system, storage extent release method and storage apparatus |
CN104007939A (zh) * | 2014-06-23 | 2014-08-27 | 深圳供电局有限公司 | 用于小文件频繁写入的嵌入式fat文件系统及方法 |
CN104616688A (zh) * | 2015-03-05 | 2015-05-13 | 上海磁宇信息科技有限公司 | 一种集成mram的固态硬盘控制芯片及固态硬盘 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109086002A (zh) * | 2018-06-28 | 2018-12-25 | 平安科技(深圳)有限公司 | 存储对象的空间管理方法、装置、计算机装置及存储介质 |
CN109254857A (zh) * | 2018-08-30 | 2019-01-22 | 百度在线网络技术(北京)有限公司 | 一种共享内存的调整方法、装置、设备和介质 |
CN113359678A (zh) * | 2021-06-25 | 2021-09-07 | 潍柴动力股份有限公司 | 一种发动机数据的刷写装置 |
CN117931095A (zh) * | 2024-03-21 | 2024-04-26 | 腾讯科技(深圳)有限公司 | 地图数据存储方法、装置、电子设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN105630410B (zh) | 2018-08-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8364931B2 (en) | Memory system and mapping methods using a random write page mapping table | |
US9727570B2 (en) | Mount-time unmapping of unused logical addresses in non-volatile memory systems | |
US7562202B2 (en) | Systems, methods, computer readable medium and apparatus for memory management using NVRAM | |
KR100484147B1 (ko) | 플래시 메모리 관리 방법 | |
US7814265B2 (en) | Single sector write operation in flash memory | |
KR100874702B1 (ko) | 플래시 메모리 파일 시스템을 효율적으로 관리하기 위한장치 드라이버 및 방법 | |
KR100885181B1 (ko) | 그룹 맵핑 동작을 수행하는 메모리 시스템 및 그것의어드레스 맵핑 방법 | |
KR20210108107A (ko) | 메모리 시스템 및 그것의 동작방법 | |
US8417872B2 (en) | Write and merge methods in memory card systems for reducing the number of page copies | |
CN103838853B (zh) | 一种基于不同存储介质的混合文件系统 | |
KR20130096881A (ko) | 플래시 메모리 장치 | |
JP4682261B2 (ja) | 不揮発性メモリおよびクラスベースの更新ブロック置換規則のための方法 | |
CN105718530A (zh) | 文件存储系统及其文件存储控制方法 | |
US8429339B2 (en) | Storage device utilizing free pages in compressed blocks | |
CN111522507B (zh) | 一种低延迟的文件系统地址空间管理方法、系统及介质 | |
KR101403922B1 (ko) | 접근 빈도에 따라 데이터를 할당하는 저장장치 및 저장방법 | |
US11150819B2 (en) | Controller for allocating memory blocks, operation method of the controller, and memory system including the controller | |
US20100318726A1 (en) | Memory system and memory system managing method | |
CN105630410A (zh) | 使用非易失随机读写存储芯片动态管理文件存储区的方法 | |
Kwon et al. | An efficient and advanced space-management technique for flash memory using reallocation blocks | |
CN105630697A (zh) | 一种利用mram存储小文件的存储结构 | |
CN105630406A (zh) | 利用mram作为编辑缓存区的存储系统及编辑缓存方法 | |
KR20100022811A (ko) | 플래시메모리 저장장치 및 그에 따른 관리 방법 | |
JP6254986B2 (ja) | 情報処理装置、アクセスコントローラ、および情報処理方法 | |
US11429519B2 (en) | System and method for facilitating reduction of latency and mitigation of write amplification in a multi-tenancy storage drive |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |