CN106528446B - 闪存数据的控制方法及控制系统 - Google Patents

闪存数据的控制方法及控制系统 Download PDF

Info

Publication number
CN106528446B
CN106528446B CN201611020229.7A CN201611020229A CN106528446B CN 106528446 B CN106528446 B CN 106528446B CN 201611020229 A CN201611020229 A CN 201611020229A CN 106528446 B CN106528446 B CN 106528446B
Authority
CN
China
Prior art keywords
physical
page
block number
data
physical 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.)
Active
Application number
CN201611020229.7A
Other languages
English (en)
Other versions
CN106528446A (zh
Inventor
席爱民
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Vast Information Technology Co Ltd
Original Assignee
Shenzhen Vast Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shenzhen Vast Information Technology Co Ltd filed Critical Shenzhen Vast Information Technology Co Ltd
Priority to CN201611020229.7A priority Critical patent/CN106528446B/zh
Publication of CN106528446A publication Critical patent/CN106528446A/zh
Application granted granted Critical
Publication of CN106528446B publication Critical patent/CN106528446B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0646Configuration or reconfiguration
    • G06F12/0653Configuration or reconfiguration with centralised address assignment

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本发明提供一种闪存数据的控制方法和控制系统,所述控制方法包括以下步骤:根据读/写数据的逻辑页号得到逻辑块号和块内页偏移号;根据所述逻辑块号和预设的第一映射表确定是否存在对应的第一物理块号,如果否,查找空白物理块进行数据写入或结束读取操作;如果是,顺次读取所述第一物理块号的物理页表格以确定所述第一物理块号中是否存在块内页偏移号对应物理页,如果是,在对应物理页进行数据的写入或读出;如果否,根据第一物理块号和预设的第二映射表确定是否存在对应的第二物理块号,如果是,顺次读取所述第二物理块号的物理页表格以确定所述第二物理块号中是否存在块内页偏移号对应物理页。

Description

闪存数据的控制方法及控制系统
技术领域
本发明涉及存储技术领域,尤其涉及一种闪存数据的控制方法及控制系统。
背景技术
SSD(Solid State Disk)泛指使用NAND闪存(Flash)组成的固态硬盘,其特别之处在于没有机械结构,利用传统的NAND Flash特性,以区块写入和擦除的方式作读写的功能,因此在读写的效率上非常依赖读写技术上的设计。SSD与目前的传统硬盘相比较,具有低耗电、耐震、稳定性高、耐低温等优点。SSD上由于数据是存放在半导体内存上,能够在低于一毫秒的时间内对任意位置的存储单元完成I/O(输入/输出)操作,因此在对许多应用程序来说最为关键的I/O性能指标IOps(即每秒多少次IO动作)上,SSD可以达到普通机械硬盘的50~800倍。
SSD的优势主要体现在两个方面:响应时间短和读写效率高;同时SSD以固态芯片作为存储介质,其工作抗震能力达到15G(10~1000Hz),是传统硬盘的15倍,抗冲击能力达到1500G(0.5ms),是传统硬盘的27倍,高效地提升了SSD的稳定性。
近年来,3D NAND闪存存储系统采用了特定的闪存文件系统来管理闪存设备。基于日志结构的闪存文件系统,包括JFFS2和YAFFS,是目前广泛使用的典型闪存文件系统。修改这两个典型闪存文件系统,可以有效延长闪存使用寿命、改善随机读写性能、以及减少垃圾回收操作的额外系统开销。然而,目前已有的闪存文件系统都是针对二维平面闪存,并没有考虑到新型3D NAND闪存在生产工艺、系统结构、访存机制等方面所带来的新变化,导致3DNAND闪存的存储空间利用率低,特别是当同个逻辑地址不断地更新时,即所对应的物理页的内容不断更新,3D NAND闪存必须不断地选取空白物理块,在对应的物理页写入数据。然而,在已使用的物理块中只有相应的物理页使用,其他物理页没有被使用,造成存储空间的浪费。
发明内容
本发明旨在解决现有技术中闪存的存储空间利用率低且存储空间的浪费技术问题,提供一种可以有效地利用存储空间减少空间浪费以及可以减少物理块的擦除次数,减少垃圾回收的次数的闪存数据的控制方法及控制系统。
本发明的实施例提供一种闪存数据的控制方法,所述控制方法包括以下步骤:
在进行数据的读/写操作时,根据读/写数据的逻辑页号得到逻辑块号和块内页偏移号;
根据所述逻辑块号和第一预设映射表确定是否存在对应的第一物理块号,如果否,查找空白物理块进行数据写入或结束读取操作;
如果是,顺次读取所述第一物理块号的物理页表格以确定所述第一物理块号中是否存在块内页偏移号对应物理页,如果是,在对应物理页进行数据的写入或读出;
如果否,根据第一物理块号和第二预设映射表确定是否存在对应的第二物理块号,如果否,进入查找空白物理块进行数据写入或结束读取操作;
如果是,顺次读取所述第二物理块号的物理页表格以确定所述第二物理块号中是否存在块内页偏移号对应物理页,如果是,进入在对应物理页进行数据的写入或读出的步骤,如果否,进入查找空白物理块进行数据写入或结束读取操作的步骤。
本发明的实施例还提供了一种闪存数据的控制系统,所述控制系统包括生成模块,第一映射关系确定模块,写入操作模块,读取结束模块,第一物理页表格读取模块,写入查找分配模块,数据读取模块,第二映射关系确定模块和第二物理页表格读取模块;
生成模块,用于在进行数据的读/写操作时,根据读/写数据的逻辑页号得到逻辑块号和块内页偏移号;
第一映射关系确定模块,用于根据所述逻辑块号和第一预设映射表确定是否存在对应的第一物理块号,如果是,进入第一物理页表格读取模块,如果否,在进行写操作时,进入写入操作模块,在进行读操作时,进入读取结束模块;
写入操作模块,用于查找空白物理块进行数据写入;
读取结束模块,用于结束读取操作;
第一物理页表格读取模块,用于顺次读取所述第一物理块号的物理页表格以确定所述第一物理块号中是否存在块内页偏移号对应物理页,如果是,在进行写操作时,进入写入查找分配模块,在进行读操作时,进入数据读取模块;如果否,进入第二映射关系确定模块;
写入查找分配模块,用于在对应物理页进行数据的写入;
数据读取模块,用于在对应物理页进行数据的读取;
第二映射关系确定模块,用于根据第一物理块号和第二预设映射表确定是否存在对应的第二物理块号,如果否,在进行写操作时,进入写入操作模块,在进行读操作时,进入读取结束模块,如果是,进入第二物理页表格读取模块;
第二物理页表格读取模块,用于顺次读取所述第二物理块号的物理页表格以确定所述第二物理块号中是否存在块内页偏移号对应物理页,如果是,在进行写操作时,进入写入查找分配模块,在进行读操作时,进入数据读取模块,如果否,在进行写操作时,进入写入操作模块,在进行读操作时,进入读取结束模块。
本发明的技术方案与现有技术相比,有益效果在于:通过第一预设映射表用于记录逻辑块号与第一物理块号的映射关系,第二预设映射表,用于记录第一物理块号和第二物理块号的映射关系,可以有效地利用存储空间,减少空间浪费。同时可以减少物理块的擦除次数,减少垃圾回收的次数。
附图说明
图1是一种虚拟单元链表的结构示意图;
图2是本发明一种虚拟单元链表的结构示意图;
图3是本发明闪存数据的控制方法在写操作时一个实施例的流程图;
图4是本发明闪存数据的控制方法在读操作时一个实施例的流程图;
图5是本发明闪存数据的控制系统一个实施例的结构示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
由于在3D NAND闪存管理中有第一映射表(EUNtable),第二映射表(ReplUnitTable)和虚拟单元链表(Virtual Unit Chain)三个参数,其中虚拟单元链表由第一映射表和第二映射表组成。
EUNtable用于记录逻辑地址映射到物理地址的表格,存储每个物理块所属的物理块链的起始物理地址。其中,索引项为逻辑地址,数据项为物理地址。通过第一映射表找到该虚拟单元对应的物理块所属的物理块链的起始物理地址。ReplUnitTable用于记录一个物理地址映射到另一物理地址的p表格,存储每个在物理块链中的物理块其之后的物理块的物理地址以维持虚拟单元链表的结构。其中,索引项为当前物理块的物理地址,数据项为映射在当前物理块之后的物理块的物理地址。也就是说EUNtable中记录逻辑块号与第一物理块号的映射关系,ReplUnitTable用于记录第一物理块号和第二物理块号的映射关系。当根据EUNtable中映射关系查找到的的物理块无法写入数据,需要重新找空白物理块写入数据时,此时将EUNtable中的物理块与找到的空白物理块的映射关系写入ReplUnitTable表格中。
如图1所示为一种虚拟单元链表的结构,如图1所示,每个物理块表格用于记录该物理块中每个物理页的使用状态,Free状态表示该物理页没有被使用,Used状态表示该物理页已写进数据。比如Block5表格包括8个物理页项,其中第一项、第五项和第八项的状态为Free则表示第一项、第五项和第八项的物理页可以写入数据,剩余项的状态Used则表示剩余项的物理页不可以使用。Block9表格也是包括8个物理页项,其中第一项、第三项、第五项、第六项和第八项的状态为Free,剩余项的状态Used。另外,表格的序号为0-n-1,其中n为物理块所拥有的物理页总数。
根据图1中的虚拟单元链表进行写操作时,首先查看EUNtable中逻辑地址是否有对应的物理地址,如果没有相对应的物理地址,寻找空白物理块,将数据写入空白物理块的相应物理页中,然后将空白物理块号数写入EUNtable中逻辑地址对应的物理地址中,同时将空白物理块的相应的物理页状态改为Used;如果有相对应的物理地址,查看物理地址的相应物理页状态是否为Used,如果是Used的状态,重新寻找空白物理块,将数据写入空白物理块的相应物理页中,同时将空白物理块的相应的物理页状态改为Used。另外EUNtable中逻辑地址对应的物理地址指向ReplUnitTable中空白物理块的块号;如果不是Used的状态,将数据写入该物理块所对应的物理页,同时将该物理块的物理页的状态改为Used的状态。通过虚拟单元链表中ReplUnitTable的记录方式,会导致3D NAND闪存的存储空间利用率低,当同个逻辑地址不断地更新时,即所对应的物理页的内容不断更新,3D NAND必须不断地选取空白物理块,在对应的物理页写入数据。然而,在已使用的物理块中只有相应的物理页使用,其他物理页没有被使用,造成存储空间的浪费。
具体的,本发明一个实施例闪存数据的控制方法采用如图2所示的虚拟单元链表,所述控制方法包括以下步骤:
在进行数据的读/写操作时,根据读/写数据的逻辑页号得到逻辑块号和块内页偏移号;
根据所述逻辑块号和第一预设映射表确定是否存在对应的第一物理块号,如果否,查找空白物理块进行数据写入或结束读取操作;
如果是,顺次读取所述第一物理块号的物理页表格以确定所述第一物理块号中是否存在块内页偏移号对应物理页,如果是,进行数据的写入或读出;
如果否,根据第一物理块号和第二预设映射表确定是否存在对应的第二物理块号,如果否,进入查找空白物理块进行数据写入或结束读取操作;
如果是,顺次读取所述第二物理块号的物理页表格以确定所述第二物理块号中是否存在块内页偏移号对应物理页,如果是,进行数据的写入或读出,如果否,进入查找空白物理块进行数据写入或结束读取操作的步骤。
具体的,如图2所示为一种虚拟单元链表的结构,如图2所示,每个物理块表格用于记录该物理块中每个物理页的存储数据或状态,N表示该物理页没有被使用,数字表示该物理页已写进数据并记录写入数据的块内页偏移号即数据的实际物理页码。比如Block5表格包括8个物理页项,每个物理页项均标记为数字,也就是说每个物理页已写进数据并记录对应的写入数据的块内页偏移号。Block9表格也是包括8个物理页项,其中第一个物理页项标记为数字,剩余项的标记为空白标记N,也就是说剩余的物理页为空白的物理页。另外,表格的序号为0-n-1,其中n为物理块所拥有的物理页总数。
在具体实施中,图3是本发明一个实施例闪存数据的控制方法在写操作时的流程图,所述控制方法包括以下步骤:
步骤S301,根据待写入数据的逻辑页号得到逻辑块号和块内页偏移号;
步骤S302,根据所述逻辑块号和第一预设映射表确定是否存在对应的第一物理块号,如果否,进入步骤S303,如果是,进入步骤S304;
步骤S303,查找空白物理块进行数据写入;
步骤S304,顺次读取所述第一物理块号的物理页表格以确定所述第一物理块号中是否存在块内页偏移号对应物理页,如果否,进入步骤S306,如果是,进入步骤S305;
步骤S305,在对应物理页进行数据的写入;
步骤S306,根据第一物理块号和第二预设映射表确定是否存在对应的第二物理块号,如果否,进入步骤S303,如果是,进入步骤S307;
步骤S307,顺次读取所述第二物理块号的物理页表格以确定所述第二物理块号中是否存在块内页偏移号对应物理页,如果否,进入步骤S303,如果是,进入步骤S305。
在具体实施中,如图3所示,在步骤S304之后还包括:
步骤S3041,顺次读取所述第一物理块号的物理页表格中每个物理页项目的内容以确定所述第一物理块号中的每个物理页是否均已存储数据,如果是,进入步骤S306,如果否,进入步骤S3042,
步骤S3042,在第一物理块号的空白物理页中进行数据写入。
在具体实施中,如图3所示,在步骤S307之后还包括:
步骤S3071,顺次读取所述第二物理块号的物理页表格中每个物理页项目的内容以确定所述第二物理块号中的每个物理页是否均已存储数据,如果是,步骤S303,如果否,进入步骤S3072;
步骤S3072,在第二物理块号的空白物理页中进行数据写入。
在具体实施中,在进行数据的写操作时,查找空白物理块进行数据写入的步骤,具体为:
将数据写入空白物理块的第0物理页中。
在将数据写入空白物理块的第0物理页中的步骤之后,还包括:
在第0物理页的物理页项中记录写入数据的块内页偏移号。也就是说在虚拟单元链表ReplUnitTable中或者EUNtable中的每个物理块表格的物理页项中显示第二物理块或第二物理块中写入数据的情况,第一物理块表格中或第二物理块表格中第i格的数据为j物理页的数据,j表示的是逻辑地址所对应的物理页号Page_Numer,物理页号Page_Numer也就是块内页偏移号。那么当同个逻辑地址所对应的数据不断地更新时,即所对应的物理页的内容不断更新,3D NAND不需要不断地选取空白物理块,在对应的物理页写入数据。只要根据逻辑地址确定对应的物理地址所对应的物理块是否存在空白物理页面,如果对应的物理块已经全部写满数据,才会查找空白的物理块进行数据存储,从而不会造成存储空间的浪费,从而可以有效地利用存储空间,减少空间浪费。同时可以减少物理块的擦除次数,减少垃圾回收的次数。
在具体实施中,在步骤S303之后,还包括以下步骤:
对空白物理块的物理块号进行定义;
对第一预设映射表或者第二预设映射表进行修改。
也就是说,修改第一预设映射表中逻辑地址与第一物理块地址的映射关系或者修改第二预设映射表中第一物理块地址与第二物理块的映射关系。
在具体实施中,图4是本发明一个实施例闪存数据的控制方法在写操作时的流程图,所述控制方法包括以下步骤:
步骤S401,根据待读取数据的逻辑页号得到逻辑块号和块内页偏移号;
步骤S402,根据所述逻辑块号和第一预设映射表确定是否存在对应的第一物理块号,如果否,进入步骤S403,如果是,进入步骤S404;
步骤S403,数据读取结束;
步骤S404,顺次读取所述第一物理块号的物理页表格以确定所述第一物理块号中是否存在块内页偏移号对应物理页,如果否,进入步骤S406,如果是,进入步骤S405;
步骤S405,在对应物理页进行数据的读取;
步骤S406,根据第一物理块号和第二预设映射表确定是否存在对应的第二物理块号,如果否,进入步骤S403,如果是,进入步骤S407;
步骤S407,顺次读取所述第二物理块号的物理页表格以确定所述第二物理块号中是否存在块内页偏移号对应物理页,如果否,进入步骤S403,如果是,进入步骤S405。
也就是说,在读取数据时,首先读取EUNtable中逻辑地址到物理地址的映射关系,如果EUNtable表格中没有对应的物理地址即没有对应的第一物理块号,这说明数据读取失败;如果EUNtable表格中有对应第一物理块号,读取第一物理块号,直接读取有对应第一物理块号是否有块内页偏移号,如果有,进行数据读取,如果没有,读取ReplUnitTable表格中是否有第一物理块号对应的第二物理块号,如果没有,则读取失败,如果有,将第二物理块号的物理块从后往前扫描,最先出现块内页偏移号所在的物理页号与物理块号所组成的物理地址就是数据所在的地方,读取即可。当然也可以当EUNtable中出现的第一物理块号与ReplUnitTable表格中第一物理块号所对应的第二物理块号中均存在块内页偏移号对应的物理页,EUNtable中出现的第一物理块号与ReplUnitTable表格中第一物理块号所对应的第二物理块号进行倒序排列,然后扫描物理块,先出现块内页偏移号所在的物理页号与物理块号所组成的物理地址就是数据所在的地方,读取即可。
在具体实施中,如图5所示,本发明还提供一种闪存数据的控制系统,所述控制系统包括:生成模块51,第一映射关系确定模块52,写入操作模块53,读取结束模块54,第一物理页表格读取模块55,写入查找分配模块56,数据读取模块57,第二映射关系确定模块58和第二物理页表格读取模块59;
生成模块51,用于在进行数据的读/写操作时,根据读/写数据的逻辑页号得到逻辑块号和块内页偏移号;
第一映射关系确定模块52,用于根据所述逻辑块号和第一预设映射表确定是否存在对应的第一物理块号,如果是,进入第一物理页表格读取模块55,如果否,在进行写操作时,进入写入操作模块53,在进行读操作时,进入读取结束模块54;
写入操作模块53,用于查找空白物理块进行数据写入;
读取结束模块54,用于结束读取操作;
第一物理页表格读取模块55,用于顺次读取所述第一物理块号的物理页表格以确定所述第一物理块号中是否存在块内页偏移号对应物理页,如果是,在进行写操作时,进入写入查找分配模块56,在进行读操作时,进入数据读取模块57;如果否,进入第二映射关系确定模块58;
写入查找分配模块56,用于在对应物理页进行数据的写入;
数据读取模块57,用于在对应物理页进行数据的读取;
第二映射关系确定模块58,用于根据第一物理块号和第二预设映射表确定是否存在对应的第二物理块号,如果否,在进行写操作时,进入写入操作模块53,在进行读操作时,进入读取结束模块54,如果是,进入第二物理页表格读取模块59;
第二物理页表格读取模块59,用于顺次读取所述第二物理块号的物理页表格以确定所述第二物理块号中是否存在块内页偏移号对应物理页,如果是,在进行写操作时,进入写入查找分配模块56,在进行读操作时,进入数据读取模块57,如果否,在进行写操作时,进入写入操作模块53,在进行读操作时,进入读取结束模块54。
在具体实施中,所述第一预设映射表用于记录逻辑块号与第一物理块号的映射关系并包括第一物理块号的表格,第一物理块号的表格中包括第一物理块号的每个物理页对应的物理页项,第二预设映射表,用于记录第一物理块号和第二物理块号的映射关系并包括第二物理块号的表格,第二物理块号的表格中包括第二物理块号的每个物理页对应的物理页项,其中每个物理页项保存数据的的实际物理页码或者空白标记。
具体的,如图2所示为一种虚拟单元链表的结构,如图2所示,每个物理块表格用于记录该物理块中每个物理页的存储数据或状态,N表示该物理页没有被使用,数字表示该物理页已写进数据并记录写入数据的块内页偏移号即数据的实际物理页码。比如Block5表格包括8个物理页项,每个物理页项均标记为数字,也就是说每个物理页已写进数据并记录对应的写入数据的块内页偏移号。Block9表格也是包括8个物理页项,其中第一个物理页项标记为数字,剩余项的标记为空白标记N,也就是说剩余的物理页为空白的物理页。另外,表格的序号为0-n-1,其中n为物理块所拥有的物理页总数。
在具体实施中,写入操作模块53包括数据写入单元和物理页码记录单元;
数据写入单元用于将数据写入空白物理块的第0物理页中。
物理页码记录单元用于在在第0物理页的物理页项中记录写入数据的块内页偏移号。也就是说在虚拟单元链表ReplUnitTable中或者EUNtable中的每个物理块表格的物理页项中显示第二物理块或第二物理块中写入数据的情况,第一物理块表格中或第二物理块表格中第i格的数据为j物理页的数据,j表示的是逻辑地址所对应的物理页号Page_Numer,物理页号Page_Numer也就是块内页偏移号。那么当同个逻辑地址所对应的数据不断地更新时,即所对应的物理页的内容不断更新,3D NAND不需要不断地选取空白物理块,在对应的物理页写入数据。只要根据逻辑地址确定对应的物理地址所对应的物理块是否存在空白物理页面,如果对应的物理块已经全部写满数据,才会查找空白的物理块进行数据存储,从而不会造成存储空间的浪费,从而可以有效地利用存储空间,减少空间浪费。同时可以减少物理块的擦除次数,减少垃圾回收的次数。
本发明的3SSD中3D NAND闪存数据的控制方法和控制系统,通过第一预设映射表用于记录逻辑块号与第一物理块号的映射关系,第二预设映射表,用于记录第一物理块号和第二物理块号的映射关系,可以有效地利用存储空间,减少空间浪费。同时可以减少物理块的擦除次数,减少垃圾回收的次数。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。

Claims (10)

1.一种闪存数据的控制方法,其特征在于:所述控制方法包括以下步骤:
在进行数据的读/写操作时,根据读/写数据的逻辑页号得到逻辑块号和块内页偏移号;
根据所述逻辑块号和第一预设映射表确定是否存在对应的第一物理块号,如果否,查找空白物理块进行数据写入或结束读取操作;
如果是,顺次读取所述第一物理块号的物理页表格以确定所述第一物理块号中是否存在块内页偏移号对应物理页;
如果所述第一物理块号中存在块内页偏移号对应物理页,在对应物理页进行数据的写入或读出;
如果所述第一物理块号中不存在块内页偏移号对应物理页,根据第一物理块号和第二预设映射表确定是否存在对应的第二物理块号;
如果第一物理块号和第二预设映射表确定不存在对应的第二物理块号,进入查找空白物理块进行数据写入或结束读取操作;
如果第一物理块号和第二预设映射表确定存在对应的第二物理块号,顺次读取所述第二物理块号的物理页表格以确定所述第二物理块号中是否存在块内页偏移号对应物理页;
如果所述第二物理块号中存在块内页偏移号对应物理页,进入在对应物理页进行数据的写入或读出的步骤,如果否,进入查找空白物理块进行数据写入或结束读取操作的步骤。
2.根据权利要求1所述的控制方法,其特征在于:在进行数据的写操作时,第一物理块号中不存在块内页偏移号对应物理页之后,还包括:
顺次读取所述第一物理块号的物理页表格中每个物理页项目的内容以确定所述第一物理块号中的每个物理页是否均已存储数据;
如果是,进入根据第一物理块号和第二预设映射表确定是否存在对应的第二物理块号的步骤;
如果否,在第一物理块号的空白物理页中进行数据写入。
3.根据权利要求1所述的控制方法,其特征在于:在进行数据的写操作时,第二物理块号中不存在块内页偏移号对应物理页之后,还包括:
顺次读取所述第二物理块号的物理页表格中每个物理页项目的内容以确定所述第二物理块号中的每个物理页是否均已存储数据;
如果是,进入查找空白物理块进行数据写入的步骤;
如果否,在第二物理块号的空白物理页中进行数据写入。
4.根据权利要求1所述的控制方法,其特征在于:第一预设映射表用于记录逻辑块号与第一物理块号的映射关系并包括第一物理块号的表格,第一物理块号的表格中包括第一物理块号的每个物理页对应的物理页项,第二预设映射表,用于记录第一物理块号和第二物理块号的映射关系并包括第二物理块号的表格,第二物理块号的表格中包括第二物理块号的每个物理页对应的物理页项,其中每个物理页项保存数据的的实际物理页码或者空白标记。
5.根据权利要求4所述的控制方法,其特征在于:在进行数据的写操作时,查找空白物理块进行数据写入的步骤,具体为:
将数据写入空白物理块的第0物理页中。
6.根据权利要求5所述的控制方法,其特征在于:在将数据写入空白物理块的第0物理页中的步骤之后,还包括:
在第0物理页的物理页项中记录写入数据的块内页偏移号。
7.根据权利要求4所述的控制方法,其特征在于:在查找空白物理块进行数据写入的步骤,还包括:
对空白物理块的物理块号进行定义;
对第一预设映射表或者第二预设映射表进行修改。
8.一种闪存数据的控制系统,其特征在于:所述控制系统包括:生成模块,第一映射关系确定模块,写入操作模块,读取结束模块,第一物理页表格读取模块,写入查找分配模块,数据读取模块,第二映射关系确定模块和第二物理页表格读取模块;
生成模块,用于在进行数据的读/写操作时,根据读/写数据的逻辑页号得到逻辑块号和块内页偏移号;
第一映射关系确定模块,用于根据所述逻辑块号和第一预设映射表确定是否存在对应的第一物理块号,如果是,进入第一物理页表格读取模块,如果否,在进行写操作时,进入写入操作模块,在进行读操作时,进入读取结束模块;
写入操作模块,用于查找空白物理块进行数据写入;
读取结束模块,用于结束读取操作;
第一物理页表格读取模块,用于顺次读取所述第一物理块号的物理页表格以确定所述第一物理块号中是否存在块内页偏移号对应物理页,如果是,在进行写操作时,进入写入查找分配模块,在进行读操作时,进入数据读取模块;如果否,进入第二映射关系确定模块;
写入查找分配模块,用于在对应物理页进行数据的写入;
数据读取模块,用于在对应物理页进行数据的读取;
第二映射关系确定模块,用于根据第一物理块号和第二预设映射表确定是否存在对应的第二物理块号,如果否,在进行写操作时,进入写入操作模块,在进行读操作时,进入读取结束模块,如果是,进入第二物理页表格读取模块;
第二物理页表格读取模块,用于顺次读取所述第二物理块号的物理页表格以确定所述第二物理块号中是否存在块内页偏移号对应物理页,如果是,在进行写操作时,进入写入查找分配模块,在进行读操作时,进入数据读取模块,如果否,在进行写操作时,进入写入操作模块,在进行读操作时,进入读取结束模块。
9.如权利要求8所述控制系统,其特征在于:所述第一预设映射表用于记录逻辑块号与第一物理块号的映射关系并包括第一物理块号的表格,第一物理块号的表格中包括第一物理块号的每个物理页对应的物理页项,第二预设映射表,用于记录第一物理块号和第二物理块号的映射关系并包括第二物理块号的表格,第二物理块号的表格中包括第二物理块号的每个物理页对应的物理页项,其中每个物理页项保存数据的的实际物理页码或者空白标记。
10.如权利要求9所述控制系统,其特征在于:写入操作模块包括数据写入单元和物理页码记录单元;
数据写入单元用于将数据写入空白物理块的第0物理页中;
物理页码记录单元用于在在第0物理页的物理页项中记录写入数据的块内页偏移号。
CN201611020229.7A 2016-11-17 2016-11-17 闪存数据的控制方法及控制系统 Active CN106528446B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201611020229.7A CN106528446B (zh) 2016-11-17 2016-11-17 闪存数据的控制方法及控制系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611020229.7A CN106528446B (zh) 2016-11-17 2016-11-17 闪存数据的控制方法及控制系统

Publications (2)

Publication Number Publication Date
CN106528446A CN106528446A (zh) 2017-03-22
CN106528446B true CN106528446B (zh) 2019-08-23

Family

ID=58352806

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611020229.7A Active CN106528446B (zh) 2016-11-17 2016-11-17 闪存数据的控制方法及控制系统

Country Status (1)

Country Link
CN (1) CN106528446B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112015341B (zh) * 2020-08-26 2024-03-22 合肥康芯威存储技术有限公司 一种数据存储方法、存储系统及存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101329656A (zh) * 2008-05-06 2008-12-24 无锡紫芯集成电路系统有限公司 一种Nand-Flash存储系统的管理方法
CN102779096A (zh) * 2012-07-11 2012-11-14 山东华芯半导体有限公司 一种基于页块面三维的闪存地址映射方法
CN103514104A (zh) * 2012-06-27 2014-01-15 安凯(广州)微电子技术有限公司 读取数据方法以及数据写入方法
CN104916322A (zh) * 2015-06-25 2015-09-16 武汉新芯集成电路制造有限公司 一种三维闪存存储器写入数据的方法
TW201616363A (zh) * 2014-10-31 2016-05-01 慧榮科技股份有限公司 資料儲存裝置以及快閃記憶體控制方法
CN105677578A (zh) * 2016-01-08 2016-06-15 深圳大学 一种3d闪存的控制方法及控制系统
CN106021123A (zh) * 2016-05-09 2016-10-12 深圳大学 一种3d闪存物理块的选取方法及选取系统

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101329656A (zh) * 2008-05-06 2008-12-24 无锡紫芯集成电路系统有限公司 一种Nand-Flash存储系统的管理方法
CN103514104A (zh) * 2012-06-27 2014-01-15 安凯(广州)微电子技术有限公司 读取数据方法以及数据写入方法
CN102779096A (zh) * 2012-07-11 2012-11-14 山东华芯半导体有限公司 一种基于页块面三维的闪存地址映射方法
TW201616363A (zh) * 2014-10-31 2016-05-01 慧榮科技股份有限公司 資料儲存裝置以及快閃記憶體控制方法
CN104916322A (zh) * 2015-06-25 2015-09-16 武汉新芯集成电路制造有限公司 一种三维闪存存储器写入数据的方法
CN105677578A (zh) * 2016-01-08 2016-06-15 深圳大学 一种3d闪存的控制方法及控制系统
CN106021123A (zh) * 2016-05-09 2016-10-12 深圳大学 一种3d闪存物理块的选取方法及选取系统

Also Published As

Publication number Publication date
CN106528446A (zh) 2017-03-22

Similar Documents

Publication Publication Date Title
CN103019958B (zh) 使用数据属性来管理固态存储器里的数据的方法
CN107066393A (zh) 提高地址映射表中映射信息密度的方法
CN102981963B (zh) 一种固态盘的闪存转换层的实现方法
CN102819496B (zh) 闪存ftl的地址转换方法
CN102779096B (zh) 一种基于页块面三维的闪存地址映射方法
CN107368436B (zh) 一种联合地址映射表的闪存冷热数据分离存储方法
CN105718206B (zh) 能够感知raid的闪存转换层及其实现方法
CN106548789A (zh) 用于操作叠瓦式磁记录设备的方法和装置
CN101819509A (zh) 一种固态硬盘读写方法
CN109582593A (zh) 一种基于计算的ftl地址映射方法及数据读、写方法
CN104598386B (zh) 通过追踪和利用二级映射索引重复利用固态驱动器块
CN103176916A (zh) 闪存及闪存的地址转换方法
CN107832013A (zh) 一种管理固态硬盘映射表的方法
CN106354658B (zh) 一种降低混合映射算法中映射表内存资源占用的方法
CN106598493A (zh) 一种固态硬盘地址映射表管理方法
CN102214143A (zh) 一种多层单元闪存的管理方法、装置及存储设备
CN106933516A (zh) 一种混合介质的存储系统的存储控制方法及装置
CN109388341A (zh) 一种基于Device Mapper的系统存储优化方法
CN107506311B (zh) 一种固态硬盘的ftl表的刷写方法及装置
CN102520885B (zh) 一种混合硬盘的数据管理系统
KR101438667B1 (ko) 비휘발성 램 기반의 b+ 트리 데이터베이스화 방법
CN104166627B (zh) 一种基于单片机的nand‑flash写操作方法
CN101819821B (zh) 一种固态硬盘动态损耗均衡方法
CN103019963B (zh) 一种高速缓存的映射方法及存储设备
CN102323907A (zh) 嵌入式arm处理器对nandflash数据存储和删除方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CP03 Change of name, title or address

Address after: Room 513, building B, area 5, honghualing Industrial Zone, Taoyuan Street, Nanshan District, Shenzhen City, Guangdong Province

Patentee after: Shenzhen congenitally magnanimity Technology Co., Ltd

Address before: 518055, Guangdong, Shenzhen, Nanshan District, Taoyuan street, Tian Lao industrial A District 21, building 3 East

Patentee before: SHENZHEN SUNWORLD INFORMATION TECHNOLOGY Co.,Ltd.

CP03 Change of name, title or address