CN113050878A - 一种开卡划分块的方法和装置 - Google Patents
一种开卡划分块的方法和装置 Download PDFInfo
- Publication number
- CN113050878A CN113050878A CN201911383569.XA CN201911383569A CN113050878A CN 113050878 A CN113050878 A CN 113050878A CN 201911383569 A CN201911383569 A CN 201911383569A CN 113050878 A CN113050878 A CN 113050878A
- Authority
- CN
- China
- Prior art keywords
- mapping table
- block
- physical block
- basic
- physical
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 55
- 238000013507 mapping Methods 0.000 claims abstract description 281
- 230000015654 memory Effects 0.000 claims abstract description 12
- 238000000638 solvent extraction Methods 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
Images
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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- 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
-
- 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/064—Management of blocks
-
- 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/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
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)
- Techniques For Improving Reliability Of Storages (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明一种开卡划分块的方法和装置,涉及非易失存储器领域,所述方法包括:在第一次上电时,将eMMC中除预留物理块以外的物理块划分为多个超级物理块并依次扫描;在超级物理块中各物理块均为好块的情况下,确定该超级物理块为空闲物理块;将超级物理块中坏块确定为坏物理块,将超级物理块中好块确定为基础物理块,并形成mapping信息,在基础映射表中记录的基础物理块的数量小于第二预设数量的情况下,将目标基础物理块的地址,以及目标空闲物理块的地址存储在配置文件;将配置文件存储在预留物理块中。本发明提出了一种全新的开卡划分物理块的方法,以超级物理块为单位,快速划分出空闲物理块、坏物理块以及基础物理块,提高了eMMC的开卡速率和工作效率。
Description
技术领域
本发明涉及非易失存储器领域,特别是一种开卡划分块的方法和装置。
背景技术
eMMC(Embedded Multi Media Card)为嵌入式多媒体卡,eMMC是MMC协会订立的,主要针对手机或平板电脑等电子产品的内嵌式存储器标准规格,eMMC在封装中集成了一个控制器,它提供标准接口并管理闪存,使得厂商能专注于产品开发的其他部分,并缩短向市场推出产品的时间。
目前对eMMC来说,尤其是对eMMC的产品固件(FW)来说,开卡第一次上电运行时间较长,这是因为目前开卡时划分物理块的过程比较繁琐,其会影响到eMMC的开卡速率和工作效率,导致eMMC的开卡速率和工作效率均较低,研发一种新的开卡时划分物理块的方法是急需解决的问题。
发明内容
鉴于上述问题,本发明提供一种全新的开卡划分块的方法和装置,提高了eMMC的开卡速率和工作效率。
本发明实施例提供了一种开卡划分块的方法,所述方法应用于eMMC,所述eMMC包括:系统映射表、基础映射表以及预留物理块,所述系统映射表包括:空闲映射表和坏块映射表,所述eMMC中至少封装有一个Nand flash;所述方法包括:
在第一次上电时,以第一预设数量为一组,将所述eMMC中除所述预留物理块以外的物理块划分为多个组,每一个组的物理块构成一个超级物理块;
依次扫描所有所述超级物理块;
在所述超级物理块中各物理块均为好块的情况下,确定该超级物理块为空闲物理块并将该超级物理块中各物理块的地址记录在所述空闲映射表中;
在所述超级物理块中至少一个物理块为坏块的情况下,将所述超级物理块中坏块确定为坏物理块并将该坏块的地址记录在所述坏块映射表中,将所述超级物理块中好块确定为基础物理块并将该好块的地址记录在所述基础映射表中,并形成mapping信息,所述mapping信息包括所有所述超级物理块中好块和坏块的信息;
在扫描完所有所述超级物理块且所述基础映射表中记录的基础物理块的数量小于第二预设数量的情况下,将所述mapping信息和所述基础映射表存储在目标基础物理块中,将所述系统映射表存储在目标空闲物理块中,所述目标基础物理块为所有基础物理块中任一基础物理块,所述目标空闲物理块为所有空闲物理块中任一空闲物理块;
将所述目标基础物理块的地址,以及所述目标空闲物理块的地址存储在配置文件配置文件;
将所述配置文件存储在所述预留物理块中。
可选地,在扫描完所有所述超级物理块且所述基础映射表中记录的基础物理块的数量小于第二预设数量的情况下,所述方法还包括:
在所述系统映射表中预留存储用户映射表和图映射表首地址的空间。
可选地,在第一次上电之前,所述方法还包括:
将所述系统映射表和所述基础映射表的结构体写入所述预留物理块中;
其中,所述结构体的内容包括:所述系统映射表和所述基础映射表中各个成员的结构体信息和结构体首节点的指针,所述系统映射表中各个成员包括:所述空闲映射表、所述坏块映射表、所述用户映射表以及所述图映射表;所述各个成员的结构体信息包括:所述各个映射表包含的物理块的数量,和所述各个映射表需要记录的内容,所述内容包括:所述各个映射表各自包含的物理块的地址、类型或者物理块中存储数据的类型,所述各个成员的结构体首节点的指针指向各个映射表的首地址。
可选地,将该超级物理块中各物理块的地址记录在所述空闲映射表中,包括:
基于所述空闲映射表的结构体的内容,将该超级物理块中各物理块的地址记录在所述空闲映射表中,并记录空闲物理块的擦除次数;
将该好块的地址记录在所述基础映射表中,包括:
基于所述基础映射表的结构体的内容,将该好块的地址记录在所述基础映射表中,并记录基础物理块的擦除次数和所述Nand Flash的序号。
可选地,在将所述配置文件存储在所述预留物理块中之后,所述方法还包括:
在第二次上电时,在所述预留物理块中查找所述配置文件;
根据所述配置文件中所述目标基础物理块的地址和所述目标空闲物理块的地址,分别从所述目标基础物理块中获取所述mapping信息和所述基础映射表,从所述目标空闲物理块中获取所述系统映射表;
在所述eMMC的内存中建立所述基础映射表和所述系统映射表;
根据对所述eMMC的使用信息,所述基础映射表基于所述结构体的内容存储对应信息;
根据对所述eMMC的使用信息,所述系统映射表基于所述结构体的内容存储对应信息。
可选地,在将所述配置文件存储在所述预留物理块中之后,所述方法还包括:
根据对所述eMMC的使用信息,从所述空闲物理块中拿取物理块存储用户数据,形成用户物理块,并基于所述结构体的内容,将用户物理块的地址记录在所述用户映射表中,第一个存储用户数据的用户物理块的地址即为所述用户映射表的首地址;
同时,从所述空闲物理块中拿取物理块存储逻辑地址和物理地址映射表,形成图物理块,并基于所述结构体的内容,将图物理块的地址记录在所述图映射表中,第一个存储逻辑地址和物理地址映射表的图物理块的地址即为所述图映射表的首地址。
本发明实施例还提供了一种开卡划分块的装置,所述装置应用于eMMC,所述eMMC包括:系统映射表、基础映射表以及预留物理块,所述系统映射表包括:空闲映射表和坏块映射表,所述eMMC中至少封装有一个Nand flash;所述装置包括:
分组模块,用于在第一次上电时,以第一预设数量为一组,将所述eMMC中除所述预留物理块以外的物理块划分为多个组,每一个组的物理块构成一个超级物理块;
扫描模块,用于依次扫描所有所述超级物理块;
确定空闲块和映射表模块,用于在所述超级物理块中各物理块均为好块的情况下,确定该超级物理块为空闲物理块空闲物理块并将该超级物理块中各物理块的地址记录在所述空闲映射表中;
确定坏块、基础块以及映射表模块,用于在所述超级物理块中至少一个物理块为坏块的情况下,将所述超级物理块中坏块确定为坏物理块并将该坏块的地址记录在所述坏块映射表中,将所述超级物理块中好块确定为基础物理块基础物理块并将该好块的地址记录在所述基础映射表中,并形成mapping信息,所述mapping信息包括所有所述超级物理块中好块和坏块的信息;
存储映射表模块,用于在扫描完所有所述超级物理块且所述基础映射表中记录的基础物理块的数量小于第二预设数量的情况下,将所述mapping信息和所述基础映射表存储在目标基础物理块中,将所述系统映射表存储在目标空闲物理块中,所述目标基础物理块为所有基础物理块中任一基础物理块,所述目标空闲物理块为所有空闲物理块中任一空闲物理块;
存储地址在配置文件模块,用于将所述目标基础物理块的地址,以及所述目标空闲物理块的地址存储在配置文件配置文件;
存储配置文件模块,用于将所述配置文件存储在所述预留物理块中。
可选地,所述装置还包括:
预留空间模块,用于在所述系统映射表中预留存储用户映射表用户映射表和图映射表图映射表首地址的空间。
可选地,所述装置还包括:
写入模块,用于将所述系统映射表和所述基础映射表的结构体写入所述预留物理块中;
其中,所述结构体的内容包括:所述系统映射表和所述基础映射表中各个成员的结构体信息和结构体首节点的指针,所述系统映射表中各个成员包括:所述空闲映射表、所述坏块映射表、所述用户映射表以及所述图映射表;所述各个成员的结构体信息包括:所述各个映射表包含的物理块的数量,和所述各个映射表需要记录的内容,所述内容包括:所述各个映射表各自包含的物理块的地址、类型或者物理块中存储数据的类型,所述各个成员的结构体首节点的指针指向各个映射表的首地址。
可选地,所述装置还包括:
查找模块,用于在第二次上电时,在所述预留物理块中查找所述配置文件;
获取映射表模块,用于根据所述配置文件中所述目标基础物理块的地址和所述目标空闲物理块的地址,分别从所述目标基础物理块中获取所述mapping信息和所述基础映射表,从所述目标空闲物理块中获取所述系统映射表;
建立映射表模块,用于在所述eMMC的内存中建立所述基础映射表和所述系统映射表;
基础映射表存储模块,用于根据对所述eMMC的使用信息,所述基础映射表基于所述结构体的内容存储对应信息;
系统映射表存储模块,用于根据对所述eMMC的使用信息,所述系统映射表基于所述结构体的内容存储对应信息。
可选地,所述装置还包括:
形成用户块和映射表模块,用于根据对所述eMMC的使用信息,从所述空闲物理块中拿取物理块存储用户数据,形成用户物理块,并基于所述结构体的内容,将用户物理块的地址记录在所述用户映射表中,第一个存储用户数据的用户物理块的地址即为所述用户映射表的首地址;
形成图块和映射表模块,用于从所述空闲物理块中拿取物理块存储逻辑地址和物理地址映射表,形成图物理块,并基于所述结构体的内容,将图物理块的地址记录在所述图映射表中,第一个存储逻辑地址和物理地址映射表的图物理块的地址即为所述图映射表的首地址。
采用本发明提供的一种开卡划分物理块的方法,在第一次上电时,以第一预设数量的物理块为一个超级物理块,扫描所有超级物理块以得到空闲物理块、坏物理块以及基础物理块,并将各自的地址记录在各自对应的映射表中,并在基础映射表中记录的基础物理块的数量小于第二预设数量的情况下,将mapping信息和基础映射表存储在目标基础物理块中,将系统映射表存储在目标空闲物理块中,之后将目标基础物理块的地址以及目标空闲物理块的地址存储在配置文件,最后将配置文件存储在预留物理块中,eMMC开卡完成。本发明提出了一种全新的开卡划分物理块的方法,先将物理块划分为多个超级物理块,再以超级物理块为单位,快速划分出空闲物理块、坏物理块以及基础物理块,提高了eMMC的开卡速率和工作效率。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1是本发明实施例一种开卡划分块的方法的流程图;
图2是本发明实施例一种开卡划分块的装置的框图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。应当理解,此处所描述的具体实施例仅用以解释本发明,仅仅是本发明一部分实施例,而不是全部的实施例,并不用于限定本发明。
参照图1,示出了本发明实施例一种开卡划分块的方法的流程图,该方法应用于eMMC,eMMC包括:系统映射表meta table、基础映射表basic table以及预留物理块block,meta table包括:空闲映射表free table和坏块映射表bad table,eMMC中至少封装有一个Nand flash;开卡划分块的具体方法可以包括如下步骤:
步骤101:在第一次上电时,以第一预设数量为一组,将eMMC中除预留物理块以外的物理块划分为多个组,每一个组的物理块构成一个超级物理块。
本发明实施例中,一般地,eMMC内部是以Nand Flash结构作为其存储单元,eMMC内部至少封装有一个Nand Flash,根据Nand Flash自身的特性,其以页(page)、块(block)为单位进行数据存储,一个物理块:block中包含多个page,具体的可以根据Nand Flash的容量大小来决定整个Nand Flash中有多少block,一个block中有多少page。
eMMC出厂时,会提前预留几个block,预留的block可以视为“坏块”,在开卡第一次上电,以及后续eMMC使用过程中,预留的block只负责存储重要的不可丢失的数据,例如:eMMC配置信息、固件(FW)信息等。
与传统Nand Flash一样,eMMC也使用映射表来管理block,而本发明针对全新提出的开卡划分块的方法,重新设计了映射表的形式,以便于管理block,关于映射表的具体描述下文对应处有详细描述,在此先不做赘述。本发明实施例的eMMC包括:系统映射表:metatable、基础映射表:basic table以及预留物理块block,其中,meta table包括:空闲映射表:free table和坏块映射表:bad table,free table对应记录free block的信息,所谓free block即为eMMC中空闲的、未被任何数据占用,可以被使用的block。
本发明实施例中,在eMMC开卡第一次上电时,以第一预设数量为一组,将eMMC中除预留block以外的block划分为多个组,每一个组的block构成一个超级物理块superblock,这样就可以将eMMC中的除预留block以外的所有block划分为多个super block。
作为一个示例:假设一个容量大小为16G的eMMC,其共有80个block,其中2个block为预留block,此eMMC开卡第一次上电时,以6个block为一组,将其余78个block划分为13组,那么就有13个super block,分别为:super block0、super block1……super block12;block以block1开始一直到block80,其中前两个block1和block2是预留block,那么superblock0就包括:block3、block4、block5、block6、block7、block8,其余的super block包括的block以此类推。
可选地,在eMMC第一次上电之前,管理block的映射表就已经写入预留block中。本发明实施例的映射表是以映射表结构体的形式写入预留block中,即,在开卡第一次上电之前,就将meta table和basic table的结构体写入预留block中。
其中,每个结构体的内容包括:meta table和basic table中各个成员的结构体信息和结构体首节点的指针。而meta table中各个成员包括:free table、bad table、usertable以及map table,user table和map table下文对应处有描述;basic table的成员只有一个basic table;各个成员的结构体信息包括:各个映射表包含的block的数量,和各个映射表需要记录的内容,即,free table、bad table、user table、map table以及basictable各自记录的block的数量,也即free block、bad block、user block、map block以及basic block的数量,user block、map block下文对应处有描述;需要记录的内容包括:各个映射表各自包含的block的地址、类型或者block中存储数据的类型;而各个成员的结构体首节点的指针指向各个映射表的首地址。
具体来说,本发明实施例中basic table的结构体具体如下:
typedef struct
{
uint8_t mBlockCount;
BASIC_BLOCK_S BlockTable[BASIC_BLOCK_MAX_COUNT];
}BASIC_TABLE_S;
其中,mBlockCount表示basic block的数量,BASIC_BLOCK_S表示每一个节点记录的信息,BASIC_BLOCK_MAX_COUNT表示了basic block最大的数量。
本发明实施例中BASIC_BLOCK_S的结构体指明其需要记录的信息,结构体具体如下:
typedef struct{
uint16_t mChipIdx:2;
uint16_t mBlockAddr:12;
uint16_t mReserved:2;
uint16_t mEraseCount;
}BASIC_BLOCK_S;
其中,mChipIdx表示Nand flash的序号,2表示其占用两个位数来存储,假若eMMC中封装有两个或者两个以上的Nand Flash,那么这些Nand Flash就需要有序号,指明basicblock具体位于哪一个Nand Flash中;mBlockAddr表示basic block的地址,12表示其占用十二个位数来存储basic block的地址;mReserved表示保留内容,用户可以自行定义其他需要记录的内容,2表示其占用两个位数来存储该保留内容;mEraseCount表示basic block的擦除次数。
本发明实施例中meta table被设计成链表的形式,meta table的结构体具体如下:
typedef struct
{
META_TABLE_INFO_S mBlockCount;
SUPER_BLOCK_NODE_S*pFreeBlockList;
SUPER_BLOCK_NODE_S*pUserBlockList;
SUPER_BLOCK_NODE_S*pMapBlockList;
SUPER_BLOCK_NODE_S*pBadBlockList;
}META_TABLE_S;
META_TABLE_S中包括:每一个成员的结构体的首节点的指针和指向每一个成员记录的各自对应的block的数量的结构体表:META_TABLE_INFO_S,指针指向每一个成员的首地址。其中,pFreeBlockList指向free table的首地址;pUserBlockList指向user table的首地址;pMapBlockList指向map table的首地址;pBadBlockList指向bad table的首地址。
本发明实施例中META_TABLE_INFO_S的结构体具体如下:
typedef struct
{
uint16_t mFreeBlockCount;
uint16_t mUserBlockCount;
uint16_t mMapBlockCount;
uint16_t mBadBlockCount;
}META_TABLE_INFO_S;
该结构体包括:mFreeBlockCount表示free block的数量;mUserBlockCount表示user block的数量;mMapBlockCount表示map block的数量;mBadBlockCount表示badblock的数量。
本发明实施例中每一个映射表需要记录的内容的结构体:SUPER_BLOCK_NODE_S,其结构体具体如下:
typedef struct{
uint16_t mBlockAddr:12;
uint16_t mBlockType:4;
uint16_t mBlockValue;
uint16_t mNextAddr;
}SUPER_BLOCK_NODE_S;
其包括:mBlockAddr表示每一个映射表对应的block的地址,12表示该地址占用十二个位数来存储;mBlockType表示block的类型,4表示该内容占用四个位数;mBlockValue表示block的用途;mNextAddr表示下一个block的地址。
例如:free table具体记录free block的地址(mBlockAddr),记录free block中block的类型(mBlockType),是SLC型block,或者是MLC型block,或者是TLC型block,记录free block的擦除次数(mBlockValue),并且free table中记录的free block是根据擦除次数由大到小排列的,下一个free block地址的地址(mNextAddr),因为free table是类似于链表的形式,所以找到第一个free block之后,根据mNextAddr就可以找到下一个freeblock。
user table具体记录user block的地址(mBlockAddr),记录user block中block的类型(mBlockType),是SLC型block,或者是MLC型block,或者是TLC型block,记录userblock的有效节点数量(mBlockValue),该有效节点数量是指:写入的有效数据的userblock的数量,下一个user block地址的地址(mNextAddr),其含义与free table中的mNextAddr含义一样。
map table具体记录map block的地址(mBlockAddr),记录map block中block的类型(mBlockType),是SLC型block,或者是MLC型block,或者是TLC型block,记录map block的block中存储的是什么类型的表(mBlockValue),一般情况下,map block是用来存储4K的逻辑地址和物理地址的映射表;下一个map block地址的地址(mNextAddr),其含义与freetable中的mNextAddr含义一样。
bad table具体记录bad block的地址(mBlockAddr),记录bad block中block的类型(mBlockType),是SLC型block,或者是MLC型block,或者是TLC型block,一般情况下,badblock因为是损坏的,就什么也存储不了,也不能进行任何操作,所以不需要记录mBlockValue;下一个bad block地址的地址(mNextAddr),其含义与free table中的mNextAddr含义一样。
通过上述映射表的结构体,就可以在划分块时,按照其内容,进行对应的操作。
步骤102:依次扫描所有超级物理块。
本发明实施例中,在将eMMC中除预留block之外的block划分为super block之后,依次扫描所有的super block,扫描的目的是检测eMMC中除预留block之外的block中哪些是好块(可以正常工作的block),哪些是坏块(不能正常工作的block)。
步骤103:在超级物理块中各物理块均为好块的情况下,确定该超级物理块为空闲物理块并将该超级物理块中各物理块的地址记录在空闲映射表中。
本发明实施例中,在对所有super block扫描的过程中,假若该super block中的所有block均是好块,那么确定该super block为空闲物理块:free block,同时依据freetable需要记录的内容,在free table中记录free block的地址,free block的类型,这些free block的擦除次数。在全部super block扫描完成后,还需记录free block的数量。
沿用上述示例:假若扫描过程中,super block0中的block3、block4、block5、block6、block7、block8均为好块,那么就将它们的地址:3、4、5、6、7、8记录在free table中,并且记录其为SLC型block,它们的擦除次数,被擦除过几次,就记录几,当然可以理解的是,开卡第一次上电时,eMMC中所有的block都是未被擦除过的,所以次数均是0。其余superblock依次类推,假若全部扫描完后,只有super block10和super block12中的block不全是好块,那么就有66个free block。
步骤104:在超级物理块中至少一个物理块为坏块的情况下,将超级物理块中坏块确定为坏物理块并将该坏块的地址记录在坏块映射表中,将超级物理块中好块确定为基础物理块并将该好块的地址记录在基础映射表中,并形成mapping信息,mapping信息包括所有超级物理块中好块和坏块的信息。
本发明实施例中,在对所有super block扫描的过程中,假若该super block中的有的block均是好块,有的block是坏块,只要有一个block是坏块,那么确定该坏块为坏物理块:bad block,同时依据bad table需要记录的内容,在bad table中记录bad block的地址,bad block的类型;确定好块为基础物理块:basic block,同时依据basic table需要记录的内容,在basic table中记录basic block的地址,basic block的类型,这些basicblock的擦除次数,这些basic block位于哪个Nand flash。依据上述信息形成一个mapping信息,该mapping信息包括所有super block中好块和坏块的信息。
沿用上述示例:假若扫描过程中,super block10中的block63为坏块,block64、block65、block66、block67、block68均为好块,那么就将block63的地址:63记录在badtable中;将好块的地址:64、65、66、67、68记录在basic table中,并且记录其为MLC型block,它们的擦除次数(mEraseCount),这些basic block位于哪个Nand flash。依次类推假若super block12中的block75、block77和block79为坏块,block76、block78和block80为好块,那么就将block75、block77和block79的地址:75、77、79记录在bad table中;将好块的地址:76、78、80记录在basic table中,并且记录其为MLC型block,它们的擦除次数,这些basic block位于哪个Nand flash。全部super block扫描完成后,会形成一个mapping信息,该mapping信息就是所有需要生成的表,该mapping信息中包括:super block10中block63,和super block12中的block75、block77和block79为坏块;super block10中block64、block65、block66、block67、block68,和super block12中的block76、block78和block80为basic block,当然可以理解的是该mapping信息中还包括其他需要生成的表。
步骤105:在扫描完所有超级物理块且基础映射表中记录的基础物理块的数量小于第二预设数量的情况下,将mapping信息和基础映射表存储在目标基础物理块中,将系统映射表存储在目标空闲物理块中,目标基础物理块为所有基础物理块中任一基础物理块,目标空闲物理块为所有空闲物理块中任一空闲物理块。
本发明实施例中,在扫描完所有super block之后,且basic table中记录的basicblock的数量小于第二预设数量的情况下,可以认为此eMMC开卡成功。之后将mapping信息和basic table存储在目标basic block中,将meta table存储在目标free block中,目标basic block为所有basic block中任一basic block,目标free block为所有free block中任一free block。
之所以要求basic table中记录的basic block的数量小于第二预设数量,是因为假若basic block的数量过多,那么free block的数量就越少,在用户使用eMMC的过程中,用户的数据是由user block来存储的,而user block是从free block中获得的,userblock随着eMMC的使用占有的容量是越来越大。用户数据需要根据用户的使用,user block可能需要进行多次的写入、擦除、修改操作等,而为了保证一些关键的、支撑整个eMMC正常运行的数据不被影响到,就需要类似basic block的存在,来保证这些数据不会被用户数据多次的写入、擦除、修改操作等影响到。一个eMMC必须要满足足够数量的free block,才可以满足用户的使用需求,因此假若basic block的数量大于预设数量的话,那么就认为此eMMC开卡失败,不能供用户使用。
步骤106:将目标基础物理块的地址,以及目标空闲物理块的地址存储在配置文件。
本发明实施例中,在将mapping信息和basic table存储在目标basic block中,将meta table存储在目标free block中后,将目标basic block的地址,以及目标free block的地址存储在配置文件:config,这样方便以后查找到mapping信息、basic table和metatable。
步骤107:将配置文件存储在预留物理块中。
本发明实施例中,开卡最后一步是将config存储在预留block中,因为预留的block不会参与开卡时的划分块,也不会参与后续使用过程的任何操作,所以一般情况下,config不会被用户擦除,也不会被用户修改。
沿用上述示例:假若扫描完super block0~super block12后,mapping信息包括:super block10中block63,和super block12中的block75、block77和block79为坏块;super block10中block64、block65、block66、block67、block68,和super block12中的block76、block78和block80为basic block,那么使用block64、block65、block66、block67、block68、block76、block78和block80中任一一个basic block存储mapping信息和basic table,假设使用block76存储,那么目标basic block就为block76;使用任一一个free block来存储meta table,假设使用block3存储,那么目标free block就为block3,将block3和block76的地址:3、76存储在config中,最后将config存储在预留block1或者block2中。block3也不再作为用户可以存储数据的user block使用。
可选地,在扫描完所有super block且basic table中记录的basic block的数量小于第二预设数量的情况下,还需要在meta table中预留存储user table和map table首地址的空间。一般情况下,随着用户对eMMC的使用,根据对eMMC的使用信息,需要从freeblock中拿取block存储用户数据,从而形成user block,并基于结构体的内容,将userblock的地址记录在user table中,同时记录user block的类型,user block的有效节点数量,其中,第一个存储用户数据的user block的地址即为user table的首地址;
另外,随着用户对eMMC的使用,根据对eMMC的使用信息,也需要从free block中拿取block存储逻辑地址和物理地址的映射表,从而形成map block,并基于结构体的内容,将map block的地址记录在map table中,同时记录map block的类型,记录map block中存储的是什么类型的表,一般而言,map block中可以存储包括但不限于逻辑地址和物理地址的映射表,其中,第一个存储逻辑地址和物理地址映射表的map block的地址即为map table的首地址。
可选地,在将config存储在预留block中之后,可以认为此eMMC开卡成功,并且开卡结束,假若没有用户使用,eMMC直接下电,那么eMMC中暂时没有user table、map table、user block以及map block;假若开卡成功后,eMMC不下电,继续使用eMMC,用户开始向eMMC中写入数据,则eMMC中将出现user table、map table、user block以及map block,之后依然按照上述方法,将config存储在预留block中。无论上述哪种情况,在eMMC下电后第二次上电时,eMMC的使用包括以下步骤:
步骤s1:在第二次上电时,在预留block中查找config;
步骤s2:根据config中目标basic block的地址和目标free block的地址,分别从目标basic block中获取mapping信息和basic table,从目标free block中获取metatable;
步骤s3:在eMMC的内存中建立basic table和meta table;
步骤s4:根据对eMMC的使用信息,basic table基于结构体的内容存储对应信息;
步骤s5:根据对eMMC的使用信息,meta table基于结构体的内容存储对应信息。
本发明实施例中,在第二次上电时,首先通过BootLoader在预留的block中找到config,之后根据config中存储的目标basic block的地址和目标free block的地址,分别从目标basic block中获取mapping信息和basic table,从目标free block中获取metatable,获取了basic table和meta table之后,在eMMC的内存中建立basic table和metatable,之后,随着用户对eMMC的使用,basic table基于结构体的内容记录并存储对应的信息,得到新的basic table;meta table基于结构体的内容记录并存储对应的信息,得到新的meta table;在该次上电使用结束前,再按照上述的方法,将config存储在预留block中,之后eMMC下电结束使用。第三次再次上电以及后续使用过程与第二次的一样,不再赘述。
沿用上述示例:第二次上电时,eMMC通过BootLoader在预留block1中查到config,之后根据config中存储的目标basic block的地址:76找到block76,根据config中存储的目标free block的地址:3找到block3。从block76中获取mapping信息和basic table,从block3中获取meta table,在eMMC的内存中建立basic table和meta table。
之后随着用户的使用,从free block中拿取block存储用户数据,形成userblock,同时user table根据结构体的内容记录对应的信息;从free block中拿取block存储逻辑地址和物理地址的映射表,或者其他类型的表,形成map block,同时map table根据结构体的内容记录对应的信息。使用完成后,再次将新的basic table和meta table分别存储于block76和block3中,依然将两者的地址:76、3存储于config,config依然存储在block1中,以待下一次上电使用。
需要说明的是,上述数据是为了使得实施例更加清晰易懂而例举的简单实施例,并不代表所有非易失存储器的指标或者数据类型等。
参照图2,示出了本发明实施例一种开卡划分块的装置的框图,该装置应用于eMMC,eMMC包括:系统映射表meta table、基础映射表basic table以及预留物理块block,meta table包括:空闲映射表free table和坏块映射表bad table,eMMC中至少封装一个Nand Flash;开卡划分块的装置包括:
分组模块310,用于在第一次上电时,以第一预设数量为一组,将eMMC中除预留block以外的block划分为多个组,每一个组的block构成一个超级物理块super block;
扫描模块320,用于依次扫描所有super block;
确定空闲块和映射表模块330,用于在super block中各block均为好块的情况下,确定该super block为空闲物理块free block并将该super block中各block的地址记录在free table中;
确定坏块、基础块以及映射表模块340,用于在super block中至少一个block为坏块的情况下,将super block中坏块确定为坏物理块bad block并将该坏块的地址记录在bad table中,将super block中好块确定为基础物理块basic block并将该好块的地址记录在basic table中,并形成mapping信息,mapping信息包括所有super block中好块和坏块的信息;
存储映射表模块350,用于在扫描完所有super block且basic table中记录的basic block的数量小于第二预设数量的情况下,将mapping信息和basic table存储在目标basic block中,将meta table存储在目标free block中,目标basic block为所有basicblock中任一basic block,目标free block为所有free block中任一free block;
存储地址在配置文件模块360,用于将目标basic block的地址,以及目标freeblock的地址存储在配置文件config;
存储配置文件模块370,用于将config存储在预留block中。
可选地,开卡划分块的装置还包括:
预留空间模块,用于在meta table中预留存储用户映射表user table和图映射表map table首地址的空间。
可选地,开卡划分块的装置还包括:
写入模块,用于将meta table和basic table的结构体写入预留block中;
其中,结构体的内容包括:meta table和basic table中各个成员的结构体信息和结构体首节点的指针,meta table中各个成员包括:free table、bad table、user table以及map table;各个成员的结构体信息包括:各个映射表包含的block的数量,和各个映射表需要记录的内容,内容包括:各个映射表各自包含的block的地址、类型或者block中存储数据的类型,各个成员的结构体首节点的指针指向各个映射表的首地址。
可选地,确定空闲块和映射表模块包括:
空闲映射表结构体子模块,用于基于free table的结构体的内容,将该superblock中各block的地址记录在free table中,并记录free block的擦除次数;
确定坏块、基础块以及映射表模块包括:
基础映射表结构体子模块,用于基于basic table的结构体的内容,将该好块的地址记录在basic table中,并记录basic block的擦除次数和Nand Flash的序号。
可选地,开卡划分块的装置还包括:
查找模块,用于在第二次上电时,在预留block中查找config;
获取映射表模块,用于根据config中目标basic block的地址和目标free block的地址,分别从目标basic block中获取mapping信息和basic table,从目标free block中获取meta table;
建立映射表模块,用于在eMMC的内存中建立basic table和meta table;
基础映射表存储模块,用于根据对eMMC的使用信息,basic table基于结构体的内容存储对应信息;
系统映射表存储模块,用于根据对eMMC的使用信息,meta table基于结构体的内容存储对应信息。
可选地,开卡划分块的装置还包括:
形成用户块和映射表模块,用于根据对eMMC的使用信息,从free block中拿取block存储用户数据,形成user block,并基于结构体的内容,将user block的地址记录在user table中,第一个存储用户数据的user block的地址即为user table的首地址;
形成map块和映射表模块,用于从free block中拿取block存储逻辑地址和物理地址映射表,形成map block,并基于结构体的内容,将map block的地址记录在map table中,第一个存储逻辑地址和物理地址映射表的map block的地址即为map table的首地址。
通过上述实施例,本发明在第一次上电之前,将meta table和basic table的结构体写入预留block中,在第一次上电时,以第一预设数量的block为一个super block,扫描所有super block以得到free block、bad block以及basic block,并将各自的地址记录在各自对应的table中,并在basic table中记录的basic block的数量小于第二预设数量的情况下,将mapping信息和basic table存储在目标basic block中,将meta table存储在目标free block中,同时在meta table中预留存储user table和map table首地址的空间,之后将目标basic block的地址以及目标free block的地址存储在配置文件config,最后将config存储在预留block中,eMMC开卡完成。本发明提出了一种全新的开卡划分物理块的方法,先将block划分为多个super block,再以super block为单位,快速划分出free block、bad block以及basic block,提高了eMMC的开卡速率和工作效率。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本发明所提供的一种开卡划分块的方法和装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种开卡划分块的方法,其特征在于,所述方法应用于eMMC,所述eMMC包括:系统映射表、基础映射表以及预留物理块,所述系统映射表包括:空闲映射表和坏块映射表,所述eMMC中至少封装有一个Nand flash;所述方法包括:
在第一次上电时,以第一预设数量为一组,将所述eMMC中除所述预留物理块以外的物理块划分为多个组,每一个组的物理块构成一个超级物理块;
依次扫描所有所述超级物理块;
在所述超级物理块中各物理块均为好块的情况下,确定该超级物理块为空闲物理块并将该超级物理块中各物理块的地址记录在所述空闲映射表中;
在所述超级物理块中至少一个物理块为坏块的情况下,将所述超级物理块中坏块确定为坏物理块并将该坏块的地址记录在所述坏块映射表中,将所述超级物理块中好块确定为基础物理块并将该好块的地址记录在所述基础映射表中,并形成mapping信息,所述mapping信息包括所有所述超级物理块中好块和坏块的信息;
在扫描完所有所述超级物理块且所述基础映射表中记录的基础物理块的数量小于第二预设数量的情况下,将所述mapping信息和所述基础映射表存储在目标基础物理块中,将所述系统映射表存储在目标空闲物理块中,所述目标基础物理块为所有基础物理块中任一基础物理块,所述目标空闲物理块为所有空闲物理块中任一空闲物理块;
将所述目标基础物理块的地址,以及所述目标空闲物理块的地址存储在配置文件配置文件;
将所述配置文件存储在所述预留物理块中。
2.根据权利要求1所述的方法,其特征在于,在扫描完所有所述超级物理块且所述基础映射表中记录的基础物理块的数量小于第二预设数量的情况下,所述方法还包括:
在所述系统映射表中预留存储用户映射表和图映射表首地址的空间。
3.根据权利要求2所述的方法,其特征在于,在第一次上电之前,所述方法还包括:
将所述系统映射表和所述基础映射表的结构体写入所述预留物理块中;
其中,所述结构体的内容包括:所述系统映射表和所述基础映射表中各个成员的结构体信息和结构体首节点的指针,所述系统映射表中各个成员包括:所述空闲映射表、所述坏块映射表、所述用户映射表以及所述图映射表;所述各个成员的结构体信息包括:所述各个映射表包含的物理块的数量,和所述各个映射表需要记录的内容,所述内容包括:所述各个映射表各自包含的物理块的地址、类型或者物理块中存储数据的类型,所述各个成员的结构体首节点的指针指向各个映射表的首地址。
4.根据权利要求3所述的方法,其特征在于,将该超级物理块中各物理块的地址记录在所述空闲映射表中,包括:
基于所述空闲映射表的结构体的内容,将该超级物理块中各物理块的地址记录在所述空闲映射表中,并记录空闲物理块的擦除次数;
将该好块的地址记录在所述基础映射表中,包括:
基于所述基础映射表的结构体的内容,将该好块的地址记录在所述基础映射表中,并记录基础物理块的擦除次数和所述Nand Flash的序号。
5.根据权利要求3所述的方法,其特征在于,在将所述配置文件存储在所述预留物理块中之后,所述方法还包括:
在第二次上电时,在所述预留物理块中查找所述配置文件;
根据所述配置文件中所述目标基础物理块的地址和所述目标空闲物理块的地址,分别从所述目标基础物理块中获取所述mapping信息和所述基础映射表,从所述目标空闲物理块中获取所述系统映射表;
在所述eMMC的内存中建立所述基础映射表和所述系统映射表;
根据对所述eMMC的使用信息,所述基础映射表基于所述结构体的内容存储对应信息;
根据对所述eMMC的使用信息,所述系统映射表基于所述结构体的内容存储对应信息。
6.根据权利要求3所述的方法,其特征在于,在将所述配置文件存储在所述预留物理块中之后,所述方法还包括:
根据对所述eMMC的使用信息,从所述空闲物理块中拿取物理块存储用户数据,形成用户物理块,并基于所述结构体的内容,将用户物理块的地址记录在所述用户映射表中,第一个存储用户数据的用户物理块的地址即为所述用户映射表的首地址;
同时,从所述空闲物理块中拿取物理块存储逻辑地址和物理地址映射表,形成图物理块,并基于所述结构体的内容,将图物理块的地址记录在所述图映射表中,第一个存储逻辑地址和物理地址映射表的图物理块的地址即为所述图映射表的首地址。
7.一种开卡划分块的装置,其特征在于,所述装置应用于eMMC,所述eMMC包括:系统映射表、基础映射表以及预留物理块,所述系统映射表包括:空闲映射表和坏块映射表,所述eMMC中至少封装有一个Nand flash;所述装置包括:
分组模块,用于在第一次上电时,以第一预设数量为一组,将所述eMMC中除所述预留物理块以外的物理块划分为多个组,每一个组的物理块构成一个超级物理块;
扫描模块,用于依次扫描所有所述超级物理块;
确定空闲块和映射表模块,用于在所述超级物理块中各物理块均为好块的情况下,确定该超级物理块为空闲物理块空闲物理块并将该超级物理块中各物理块的地址记录在所述空闲映射表中;
确定坏块、基础块以及映射表模块,用于在所述超级物理块中至少一个物理块为坏块的情况下,将所述超级物理块中坏块确定为坏物理块并将该坏块的地址记录在所述坏块映射表中,将所述超级物理块中好块确定为基础物理块基础物理块并将该好块的地址记录在所述基础映射表中,并形成mapping信息,所述mapping信息包括所有所述超级物理块中好块和坏块的信息;
存储映射表模块,用于在扫描完所有所述超级物理块且所述基础映射表中记录的基础物理块的数量小于第二预设数量的情况下,将所述mapping信息和所述基础映射表存储在目标基础物理块中,将所述系统映射表存储在目标空闲物理块中,所述目标基础物理块为所有基础物理块中任一基础物理块,所述目标空闲物理块为所有空闲物理块中任一空闲物理块;
存储地址在配置文件模块,用于将所述目标基础物理块的地址,以及所述目标空闲物理块的地址存储在配置文件配置文件;
存储配置文件模块,用于将所述配置文件存储在所述预留物理块中。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括:
预留空间模块,用于在所述系统映射表中预留存储用户映射表用户映射表和图映射表图映射表首地址的空间。
9.根据权利要求8所述的装置,其特征在于,所述装置还包括:
写入模块,用于将所述系统映射表和所述基础映射表的结构体写入所述预留物理块中;
其中,所述结构体的内容包括:所述系统映射表和所述基础映射表中各个成员的结构体信息和结构体首节点的指针,所述系统映射表中各个成员包括:所述空闲映射表、所述坏块映射表、所述用户映射表以及所述图映射表;所述各个成员的结构体信息包括:所述各个映射表包含的物理块的数量,和所述各个映射表需要记录的内容,所述内容包括:所述各个映射表各自包含的物理块的地址、类型或者物理块中存储数据的类型,所述各个成员的结构体首节点的指针指向各个映射表的首地址。
10.根据权利要求8所述的装置,其特征在于,所述装置还包括:
查找模块,用于在第二次上电时,在所述预留物理块中查找所述配置文件;
获取映射表模块,用于根据所述配置文件中所述目标基础物理块的地址和所述目标空闲物理块的地址,分别从所述目标基础物理块中获取所述mapping信息和所述基础映射表,从所述目标空闲物理块中获取所述系统映射表;
建立映射表模块,用于在所述eMMC的内存中建立所述基础映射表和所述系统映射表;
基础映射表存储模块,用于根据对所述eMMC的使用信息,所述基础映射表基于所述结构体的内容存储对应信息;
系统映射表存储模块,用于根据对所述eMMC的使用信息,所述系统映射表基于所述结构体的内容存储对应信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911383569.XA CN113050878A (zh) | 2019-12-27 | 2019-12-27 | 一种开卡划分块的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911383569.XA CN113050878A (zh) | 2019-12-27 | 2019-12-27 | 一种开卡划分块的方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113050878A true CN113050878A (zh) | 2021-06-29 |
Family
ID=76507196
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911383569.XA Pending CN113050878A (zh) | 2019-12-27 | 2019-12-27 | 一种开卡划分块的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113050878A (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102902626A (zh) * | 2011-07-27 | 2013-01-30 | 群联电子股份有限公司 | 区块管理方法、存储器控制器与存储器储存装置 |
US20140365710A1 (en) * | 2013-06-11 | 2014-12-11 | Silicon Motion, Inc. | Data storage apparatus and management method thereof |
CN104778127A (zh) * | 2015-03-25 | 2015-07-15 | 合肥格易集成电路有限公司 | 一种nand flash写数据的方法和装置 |
WO2016171271A1 (ja) * | 2015-04-22 | 2016-10-27 | 株式会社日立製作所 | 秘匿化データベースシステム及び秘匿化データ管理方法 |
CN108255540A (zh) * | 2017-12-27 | 2018-07-06 | 北京兆易创新科技股份有限公司 | 一种Nand flash元件及其载入控制方法和装置 |
CN108345430A (zh) * | 2017-12-27 | 2018-07-31 | 北京兆易创新科技股份有限公司 | 一种Nand flash元件及其运行控制方法和装置 |
-
2019
- 2019-12-27 CN CN201911383569.XA patent/CN113050878A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102902626A (zh) * | 2011-07-27 | 2013-01-30 | 群联电子股份有限公司 | 区块管理方法、存储器控制器与存储器储存装置 |
US20140365710A1 (en) * | 2013-06-11 | 2014-12-11 | Silicon Motion, Inc. | Data storage apparatus and management method thereof |
CN104778127A (zh) * | 2015-03-25 | 2015-07-15 | 合肥格易集成电路有限公司 | 一种nand flash写数据的方法和装置 |
WO2016171271A1 (ja) * | 2015-04-22 | 2016-10-27 | 株式会社日立製作所 | 秘匿化データベースシステム及び秘匿化データ管理方法 |
CN108255540A (zh) * | 2017-12-27 | 2018-07-06 | 北京兆易创新科技股份有限公司 | 一种Nand flash元件及其载入控制方法和装置 |
CN108345430A (zh) * | 2017-12-27 | 2018-07-31 | 北京兆易创新科技股份有限公司 | 一种Nand flash元件及其运行控制方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7962687B2 (en) | Flash memory allocation for improved performance and endurance | |
CN101354681B (zh) | 存储器系统、非易失性存储器的磨损均衡方法及装置 | |
US7395384B2 (en) | Method and apparatus for maintaining data on non-volatile memory systems | |
US8607016B2 (en) | FAT analysis for optimized sequential cluster management | |
US9747202B1 (en) | Storage module and method for identifying hot and cold data | |
US9116791B2 (en) | Method for flash-memory management | |
US7558906B2 (en) | Methods of managing blocks in nonvolatile memory | |
US7752412B2 (en) | Methods of managing file allocation table information | |
US7681008B2 (en) | Systems for managing file allocation table information | |
EP1550952A3 (en) | Address mapping method and mapping information managing method for flash memory, and flash memory using the same | |
US20080126684A1 (en) | Caching method for nand flash translation layer | |
US20070081401A1 (en) | Apparatus for controlling flash memory and method thereof | |
KR100608602B1 (ko) | 플래시 메모리, 이를 위한 사상 제어 장치 및 방법 | |
KR20080033464A (ko) | 블록 관리를 가지는 비휘발성 메모리 | |
KR100854032B1 (ko) | 메모리 시스템 및 그것의 데이터 저장 방법 | |
US20120246394A1 (en) | Flash Memory Device and Data Writing Method for a Flash Memory | |
CN107391030B (zh) | 数据存储方法、装置、计算机可读存储介质以及计算机设备 | |
US20090319721A1 (en) | Flash memory apparatus and method for operating the same | |
WO2019160727A1 (en) | Append only streams for storing data on a solid state device | |
US20080209161A1 (en) | Storage device and method of mapping a nonvolatile memory based on a map history | |
US4027288A (en) | Self-managing variable field storage system for handling nested data structures | |
US20070005929A1 (en) | Method, system, and article of manufacture for sector mapping in a flash device | |
US7500081B2 (en) | Power-up implementation for block-alterable memory with zero-second erase time | |
CN107203341A (zh) | 基于闪存的数据存储方法、装置以及闪存芯片 | |
CN111913890B (zh) | 一种基于安全模组的非易失存储器随机化读写方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Address after: Room 101, Floor 1-5, Building 8, Yard 9, Fenghao East Road, Haidian District, Beijing 100094 Applicant after: Zhaoyi Innovation Technology Group Co.,Ltd. Applicant after: SHANGHAI GEYI ELECTRONIC Co.,Ltd. Address before: 100083 12 Floors, Block A, Tiangong Building, Science and Technology University, 30 College Road, Haidian District, Beijing Applicant before: GIGADEVICE SEMICONDUCTOR(BEIJING) Inc. Applicant before: SHANGHAI GEYI ELECTRONIC Co.,Ltd. |
|
CB02 | Change of applicant information |