CN107229419B - 基于三维闪存的数据写入方法及装置 - Google Patents

基于三维闪存的数据写入方法及装置 Download PDF

Info

Publication number
CN107229419B
CN107229419B CN201710367651.8A CN201710367651A CN107229419B CN 107229419 B CN107229419 B CN 107229419B CN 201710367651 A CN201710367651 A CN 201710367651A CN 107229419 B CN107229419 B CN 107229419B
Authority
CN
China
Prior art keywords
physical page
data
linked list
physical
writing
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
CN201710367651.8A
Other languages
English (en)
Other versions
CN107229419A (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 University
Original Assignee
Shenzhen University
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 University filed Critical Shenzhen University
Priority to CN201710367651.8A priority Critical patent/CN107229419B/zh
Publication of CN107229419A publication Critical patent/CN107229419A/zh
Application granted granted Critical
Publication of CN107229419B publication Critical patent/CN107229419B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]

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)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本发明公开了一种基于三维闪存的数据写入方法,该方法包括:创建若干链表,并基于系统默认数据确定物理页优劣的时间标准;根据所述物理页优劣的时间标准对所述若干链表进行数据初始化操作;判断待写入数据的数据属性;基于所述数据属性、数据初始化操作后的若干链表及预置写操作规则将所述待写入数据写入相应的物理页中,本发明还公开了一种基于三维闪存的数据写入装置,解决了三维闪存制程变异导致的电子分布不均匀的问题,从而保证存储在闪存中的数据的完整性和可靠性。

Description

基于三维闪存的数据写入方法及装置
技术领域
本发明涉及三维闪存技术领域,尤其涉及一种基于三维闪存的数据写入方法及装置。
背景技术
三维闪存是一种新的内存技术,它有更大的容量、更少的编程干扰和更低的访问延迟,但是,因三维闪存技术采用电荷捕获机制,存在着制程变异的问题,制程变异将导致电子分布不均匀,这对存储在闪存中的数据的完整性和可靠性会构成威胁。
发明内容
本发明的主要目的在于提供一种基于三维闪存的数据写入方法及装置,旨在解决现有技术中存在的因三维闪存技术的制程变异问题导致电子分布不均匀,对存储在闪存中的数据的完整性和可靠性会构成威胁的技术问题。
为实现上述目的,本发明第一方面提供一种基于三维闪存的数据写入方法,所述方法包括:
创建若干链表,并基于系统默认数据确定物理页优劣的时间标准;
根据所述时间标准对所述若干链表进行数据初始化操作;
判断待写入数据的数据属性;
基于所述数据属性、数据初始化操作后的若干链表及预置写操作规则将所述待写入数据写入相应的物理页中。
为实现上述目的,本发明第二方面提供一种基于三维闪存的数据写入装置,所述装置包括:
确定模块,用于创建若干链表,并基于系统默认数据确定物理页优劣的时间标准;
初始化模块,用于根据所述时间标准对所述若干链表进行数据初始化操作;
判断模块,用于判断待写入数据的数据属性;
写入模块,用于基于所述数据属性、数据初始化操作后的若干链表及预置写操作规则将所述待写入数据写入相应的物理页中。
本发明提供一种基于三维闪存的数据写入方法,通过创建若干链表,并基于系统默认数据确定物理页优劣的时间标准,根据所述时间标准对所述若干链表进行数据初始化操作,判断待写入数据的数据属性,基于所述数据属性、数据初始化操作后的若干链表及预置写操作规则将所述待写入数据写入相应的物理页中。与现有技术相比,本发明实施例通过确定物理页优劣的时间标准,避免全局探测,减少确定物理页优劣的情况的时间,通过判断待写入数据的数据属性,从而将不同属性的待写入数据写入合适的物理页中,解决了三维闪存制程变异导致的电子分布不均匀的问题,从而保证存储在闪存中的数据的完整性和可靠性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明第一实施例提供的一种基于三维闪存的数据写入方法的流程示意图;
图2为图1所示实施例中的步骤S101的细化步骤的流程示意图;
图3为图1所示实施例中的步骤S102的细化步骤的流程示意图;
图4为图1所示实施例中的步骤S104的细化步骤的流程示意图;
图5为图1所示实施例中的步骤S104的另一细化步骤的流程示意图;
图6为本发明第二实施例提供的一种基于三维闪存的数据写入装置的功能模块示意图;
图7为图6所示实施例中的确定模块601的细化功能模块示意图;
图8为图6所示实施例中的初始化模块602的细化功能模块示意图;
图9为图6所示实施例中的写入模块604的细化功能模块示意图;
图10为图6所示实施例中的写入模块604的另一细化功能模块示意图。
具体实施方式
为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而非全部实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。
请参阅图1,图1为本发明第一实施例提供的一种基于三维闪存的数据写入方法的流程示意图,包括:
步骤S101、创建若干链表,并基于系统默认数据确定物理页优劣的时间标准;
在本发明实施例中,当系统发起写请求时,系统先检测是否已创建了若干链表,若没有创建若干链表,则系统创建若干链表,并基于系统默认数据确定物理页优劣的时间标准,若检测到已创建了若干链表,则表示链表已经完成了数据初始化的操作,则响应上述写请求。
优选地,若干链表为4个链表。
进一步地,请参阅图2,图2为图1中的步骤S101的细化步骤的流程示意图,包括:
步骤S201、向第1个物理块的第1个物理页发出写请求,并记录将系统默认数据写入第1个物理块的第1个物理页时所需要的写入时间段为t1;
步骤S202、向第i个物理块的第1个物理页发出写请求,并记录将系统默认数据写入第i个物理块的第1个物理页时所需要的写入时间段为t2,其中,i的初始值为2,且为正整数;
步骤S203、计算t1与t2的差值的绝对值是否大于或等于m*t1,其中,m为正数;
步骤S204、若大于或等于m*t1,则确定时间标准为n*(t1+t2),其中,n为正数;
步骤S205、若小于m*t1,则令i=i+1,返回执行向第i个物理块的第1个物理页发出写请求,并记录将系统默认数据写入第i个物理块的第1个物理页时所需要的写入时间段为t2的步骤。
在本发明实施例中,系统设置变量i,系统首先向第1个物理块的第1个物理页发出写请求,并记录将系统默认数据写入第1个物理块的第1个物理页时所需要的写入时间段为t1,然后向第i个物理块的第1个物理页发出写请求,并记录将系统默认数据写入第i个物理块的第1个物理页时所需要的写入时间段为t2,其中,i的初始值为2,且为正整数,计算t1与t2的差值的绝对值是否大于或等于m*t1,若大于或等于m*t1,则确定时间标准为n*(t1+t2),若小于m*t1,则令i=i+1,返回执行步骤S202。例如,系统首先向第1个物理块的第1个物理页发出写请求,并记录将系统默认数据写入第1个物理块的第1个物理页时所需要的写入时间段为t1,然后向第2个物理块的第1个物理页发出写请求,并记录将系统默认数据写入第2个物理块的第1个物理页时所需要的写入时间段为t2,计算t1与t2的差值的绝对值是否大于或等于m*t1,若大于或等于m*t1,则确定时间标准为n*(t1+t2),若小于m*t1,则返回执行步骤S202,系统向第3个物理块的第1个物理页发出写请求,并记录将系统默认数据写入第3个物理块的第1个物理页时所需要的写入时间段为t2,计算t1与t2的差值的绝对值是否大于或等于m*t1,直到t1与t2的差值的绝对值大于或等于m*t1,则确定时间标准。
其中,m和n为预置的参数,可以根据实际情况进行修改。
优选地,m为0.3,n为0.5。
步骤S102、根据时间标准对若干链表进行数据初始化操作;
进一步地,请参阅图3,图3为步骤S102的细化步骤的流程示意图,包括:
步骤S301、向第k个物理块的第1个物理页发出写操作执行请求,并记录将系统默认数据写入第k个物理块的第1个物理页时所需要的写入时间段为t3,其中,k的初始值为1,且为正整数;
步骤S302、判断t3是否小于或等于时间标准;
步骤S303、若小于或等于时间标准,则将第k个物理块的第1个物理页的物理页地址存放入第一链表中,将同位线上的物理页的物理页地址存放入第二链表中,其中,第一链表用于存放好的物理页的物理页地址,第二链表用于存放相对好的物理页的物理页地址;
步骤S304、若大于时间标准,则将第k个物理块的第1个物理页的物理页地址存放入第四链表中,将同位线上的物理页的物理页地址存放入第三链表中,其中,第三链表用于存放相对差的物理页的物理页地址,第四链表用于存放差的物理页的物理页地址;
步骤S305、判断k+1是否大于预置阈值;
步骤S306、若小于或等于预置阈值,则令k=k+1,返回执行向第k个物理块的第1个物理页发出写操作执行请求,并记录将系统默认数据写入第k个物理块的第1个物理页时所需要的写入时间段为t3的步骤;
步骤S307、若大于预置阈值,则完成数据初始化操作。
在本发明实施例中,系统设置变量k,k的初始值为1,且为正整数,系统首先向第1个物理块的第1个物理页发出写操作执行请求,并记录将系统默认数据写入第1个物理块的第1个物理页时所需要的写入时间段为t3,判断t3是否小于或等于时间标准,若小于或等于时间标准,则将第1个物理块的第1个物理页的物理页地址存放入第一链表中,将同位线上的物理页的物理页地址存放入第二链表中,若大于时间标准,则将第1个物理块的第1个物理页的物理页地址存放入第四链表中,将同位线上的物理页的物理页地址存放入第三链表中,判断k+1是否大于预置阈值,若小于或等于预置阈值,则令k=k+1,返回执行步骤S301,若大于预置阈值,则完成数据初始化操作。例如,系统首先向第1个物理块的第1个物理页发出写操作执行请求,并记录将系统默认数据写入第1个物理块的第1个物理页时所需要的写入时间段为t3,判断t3是否小于或等于时间标准,若小于或等于时间标准,则将第1个物理块的第1个物理页的物理页地址存放入第一链表中,将同位线上的物理页的物理页地址存放入第二链表中,若大于时间标准,则将第1个物理块的第1个物理页的物理页地址存放入第四链表中,将同位线上的物理页的物理页地址存放入第三链表中,判断2是否大于预置阈值,若小于或等于预置阈值,则令k=k+1,返回执行步骤S301,向第2个物理块的第1个物理页发出写操作执行请求,并记录将系统默认数据写入第2个物理块的第1个物理页时所需要的写入时间段为t3,直到k+1大于预置阈值,则结束上述流程。
其中,预置阈值可根据实际情况进行设置,优选为10。
其中,第一链表用于存放好的物理页的物理页地址,第二链表用于存放相对好的物理页的物理页地址,第三链表用于存放相对差的物理页的物理页地址,第四链表用于存放差的物理页的物理页地址。
步骤S103、判断待写入数据的数据属性;
在本发明实施例中,数据属性分为两种,一种是重要数据,一种是非重要数据,重要数据是指操作系统元数据,重要数据包含特异性的数据、排他性的数据,频繁访问的数据以及频繁更新的数据等,除此之外的其他数据都为非重要数据。
步骤S104、基于数据属性、数据初始化操作后的若干链表及预置写操作规则将待写入数据写入相应的物理页中。
进一步地,请参阅图4,为图1所示的步骤S104的细化步骤流程示意图,包括:
步骤S401、若数据属性为重要数据,则依次判断第一链表、第二链表、第三链表、第四链表是否为空,并从第一个不为空的链表中取出存放的物理页地址;
步骤S402、将待写入数据写入取出的物理页地址所对应的物理页中,并从第一个不为空的链表中删除与取出的物理页地址相对应的节点数据。
在本发明实施例中,如果是重要数据,那么应该将该重要数据存放在好的物理页中,具体操作为,按照顺序依次判断第一链表、第二链表、第三链表、第四链表是否为空,并从第一个不为空的链表中取出存放的物理页地址,将待写入数据写入取出的物理页地址所对应的物理页中,并从第一个不为空的链表中删除与取出的物理页地址相对应的节点数据。例如,如果是重要数据,首先判断第一链表是否为空,若第一链表不为空则表示第一链表中有物理页地址,则从第一链表中取出存放的物理页地址,若第一链表为空则表示第一链表中没有物理页地址,判断第二链表是否为空,若第二链表不为空,则从第二链表中取出存放的物理页地址,若第二链表为空,则判断第三链表是否为空,若第三链表为空,则判断第四链表是否为空,若第四链表为空,则返回执行步骤S102,重新对链表进行数据初始化操作。
进一步地,请参阅图5,为图1所示的步骤S104的另一细化步骤流程示意图,包括:
步骤S501、若数据属性为非重要数据,则依次判断第三链表、第四链表、第二链表、第一链表是否为空,并从第一个不为空的链表中取出存放的物理页地址;
步骤S502、将待写入数据写入取出的物理页地址所对应的物理页中,并从第一个不为空的链表中删除与取出的物理页地址相对应的节点数据。
在本发明实施例中,如果是非重要数据,那么应该将该非重要数据存放在相对差的物理页中,具体操作为,按照顺序依次判断第三链表、第四链表、第二链表、第一链表是否为空,并从第一个不为空的链表中取出存放的物理页地址,将待写入数据写入取出的物理页地址所对应的物理页中,并从第一个不为空的链表中删除与取出的物理页地址相对应的节点数据。例如,如果是非重要数据,首先判断第三链表是否为空,若第三链表不为空则表示第三链表中有物理页地址,则从第三链表中取出存放的物理页地址,若第三链表为空则表示第三链表中没有物理页地址,判断第四链表是否为空,若第四链表不为空,则从第四链表中取出存放的物理页地址,若第四链表为空,则判断第二链表是否为空,若第二链表为空,则判断第一链表是否为空,若第一链表为空,则返回执行步骤S102,重新对链表进行数据初始化操作。
在本发明实施例中,通过创建若干链表,并基于系统默认数据确定物理页优劣的时间标准,根据时间标准对若干链表进行数据初始化操作,判断待写入数据的数据属性,基于数据属性、数据初始化操作后的若干链表及预置写操作规则将待写入数据写入相应的物理页中。与现有技术相比,本发明实施例通过确定物理页优劣的时间标准,避免全局探测,减少确定物理页优劣的情况的时间,通过判断待写入数据的数据属性,从而将不同属性的待写入数据写入合适的物理页中,解决了三维闪存制程变异导致的电子分布不均匀的问题,从而保证存储在闪存中的数据的完整性和可靠性。
请参阅图6,图6为本发明第二实施例提供的一种基于三维闪存的数据写入装置的功能模块示意图,包括:
确定模块601,用于创建若干链表,并基于系统默认数据确定物理页优劣的时间标准;
在本发明实施例中,当系统发起写请求时,系统先检测是否已创建了若干链表,若没有创建若干链表,则确定模块601创建若干链表,并基于系统默认数据确定物理页优劣的时间标准,若检测到已创建了若干链表,则表示链表已经完成了数据初始化的操作,则响应上述写请求。
优选地,若干链表为4个链表。
进一步地,请参阅图7,图7为图6所示实施例中的确定模块601的细化功能模块示意图,包括:
第一记录单元701,用于向第1个物理块的第1个物理页发出写请求,并记录将系统默认数据写入第1个物理块的第1个物理页时所需要的写入时间段为t1;
第二记录单元702,用于向第i个物理块的第1个物理页发出写请求,并记录将系统默认数据写入第i个物理块的第1个物理页时所需要的写入时间段为t2,其中,i的初始值为2,且为正整数;
计算单元703,用于计算t1与t2的差值的绝对值是否大于或等于m*t1,其中,m为正数;
确定单元704,用于若大于或等于m*t1,则确定时间标准为n*(t1+t2),其中,n为正数;
第一返回单元705,用于若小于m*t1,则令i=i+1,返回执行向第i个物理块的第1个物理页发出写请求,并记录将系统默认数据写入第i个物理块的第1个物理页时所需要的写入时间段为t2的步骤。
在本发明实施例中,系统设置变量i,第一记录单元701首先向第1个物理块的第1个物理页发出写请求,并记录将系统默认数据写入第1个物理块的第1个物理页时所需要的写入时间段为t1,然后第二记录单元702向第i个物理块的第1个物理页发出写请求,并记录将系统默认数据写入第i个物理块的第1个物理页时所需要的写入时间段为t2,其中,i的初始值为2,且为正整数,计算单元703计算t1与t2的差值的绝对值是否大于或等于m*t1,若大于或等于m*t1,则确定单元704确定时间标准为n*(t1+t2),若小于m*t1,则令i=i+1,第一返回单元705返回执行步骤S202。例如,系统首先向第1个物理块的第1个物理页发出写请求,并记录将系统默认数据写入第1个物理块的第1个物理页时所需要的写入时间段为t1,然后向第2个物理块的第1个物理页发出写请求,并记录将系统默认数据写入第2个物理块的第1个物理页时所需要的写入时间段为t2,计算t1与t2的差值的绝对值是否大于或等于m*t1,若大于或等于m*t1,则确定时间标准为n*(t1+t2),若小于m*t1,则返回执行步骤S202,系统向第3个物理块的第1个物理页发出写请求,并记录将系统默认数据写入第3个物理块的第1个物理页时所需要的写入时间段为t2,计算t1与t2的差值的绝对值是否大于或等于m*t1,直到t1与t2的差值的绝对值大于或等于m*t1,则确定时间标准。
其中,m和n为预置的参数,可以根据实际情况进行修改。
优选地,m为0.3,n为0.5。
初始化模块602,用于根据时间标准对若干链表进行数据初始化操作;
进一步地,请参阅图8,图8为图6所示实施例中的初始化模块602的细化功能模块示意图,包括:
第三记录单元801,用于向第k个物理块的第1个物理页发出写操作执行请求,并记录将系统默认数据写入第k个物理块的第1个物理页时所需要的写入时间段为t3,其中,k的初始值为1,且为正整数;
第一判断单元802,用于判断t3是否小于或等于时间标准;
第一存放单元803,用于若小于或等于时间标准,则将第k个物理块的第1个物理页的物理页地址存放入第一链表中,将同位线上的物理页的物理页地址存放入第二链表中,其中,第一链表用于存放好的物理页的物理页地址,第二链表用于存放相对好的物理页的物理页地址;
第二存放单元804,用于若大于时间标准,则将第k个物理块的第1个物理页的物理页地址存放入第四链表中,将同位线上的物理页的物理页地址存放入第三链表中,其中,第三链表用于存放相对差的物理页的物理页地址,第四链表用于存放差的物理页的物理页地址;
第二判断单元805,用于判断k+1是否大于预置阈值;
第二返回单元806,用于若小于或等于预置阈值,则令k=k+1,返回执行向第k个物理块的第1个物理页发出写操作执行请求,并记录将系统默认数据写入第k个物理块的第1个物理页时所需要的写入时间段为t3的步骤;
完成单元807,用于若大于预置阈值,则完成数据初始化操作。
在本发明实施例中,系统设置变量k,k的初始值为1,且为正整数,第三记录单元801首先向第1个物理块的第1个物理页发出写操作执行请求,并记录将系统默认数据写入第1个物理块的第1个物理页时所需要的写入时间段为t3,第一判断单元802判断t3是否小于或等于时间标准,若小于或等于时间标准,则第一存放单元803将第1个物理块的第1个物理页的物理页地址存放入第一链表中,将同位线上的物理页的物理页地址存放入第二链表中,若大于时间标准,则第二存放单元804将第1个物理块的第1个物理页的物理页地址存放入第四链表中,将同位线上的物理页的物理页地址存放入第三链表中,第二判断单元805判断k+1是否大于预置阈值,若小于或等于预置阈值,则令k=k+1,第二返回单元806返回执行步骤S301,若大于预置阈值,则完成数据初始化操作。例如,系统首先向第1个物理块的第1个物理页发出写操作执行请求,并记录将系统默认数据写入第1个物理块的第1个物理页时所需要的写入时间段为t3,判断t3是否小于或等于时间标准,若小于或等于时间标准,则将第1个物理块的第1个物理页的物理页地址存放入第一链表中,将同位线上的物理页的物理页地址存放入第二链表中,若大于时间标准,则将第1个物理块的第1个物理页的物理页地址存放入第四链表中,将同位线上的物理页的物理页地址存放入第三链表中,判断2是否大于预置阈值,若小于或等于预置阈值,则令k=k+1,返回执行步骤S301,向第2个物理块的第1个物理页发出写操作执行请求,并记录将系统默认数据写入第2个物理块的第1个物理页时所需要的写入时间段为t3,直到k+1大于预置阈值,则结束上述流程。
其中,预置阈值可根据实际情况进行设置,优选为10。
判断模块603,用于判断待写入数据的数据属性;
在本发明实施例中,数据属性分为两种,一种是重要数据,一种是非重要数据,重要数据是指操作系统元数据,重要数据包含特异性的数据、排他性的数据,频繁访问的数据以及频繁更新的数据等,除此之外的其他数据都为非重要数据。
写入模块604,用于基于数据属性、数据初始化操作后的若干链表及预置写操作规则将待写入数据写入相应的物理页中。
进一步地,请参阅图9,图9为图6所示实施例中的写入模块604的细化功能模块示意图,包括:
第三判断单元901,用于若数据属性为重要数据,则依次判断第一链表、第二链表、第三链表、第四链表是否为空,并从第一个不为空的链表中取出存放的物理页地址;
第一删除单元902,用于将待写入数据写入取出的物理页地址所对应的物理页中,并从第一个不为空的链表中删除与取出的物理页地址相对应的节点数据。
在本发明实施例中,如果是重要数据,那么应该将该重要数据存放在好的物理页中,具体操作为,第三判断单元901按照顺序依次判断第一链表、第二链表、第三链表、第四链表是否为空,并从第一个不为空的链表中取出存放的物理页地址,将待写入数据写入取出的物理页地址所对应的物理页中,第一删除单元902从第一个不为空的链表中删除与取出的物理页地址相对应的节点数据。例如,如果是重要数据,首先判断第一链表是否为空,若第一链表不为空则表示第一链表中有物理页地址,则从第一链表中取出存放的物理页地址,若第一链表为空则表示第一链表中没有物理页地址,判断第二链表是否为空,若第二链表不为空,则从第二链表中取出存放的物理页地址,若第二链表为空,则判断第三链表是否为空,若第三链表为空,则判断第四链表是否为空,若第四链表为空,则返回执行步骤S102,重新对链表进行数据初始化操作。
进一步地,请参阅图10,为图6所示实施例中的写入模块604的另一细化功能模块示意图,包括:
第四判断单元1001,用于若数据属性为非重要数据,则依次判断第三链表、第四链表、第二链表、第一链表是否为空,并从第一个不为空的链表中取出存放的物理页地址;
第二删除单元1002,用于将待写入数据写入取出的物理页地址所对应的物理页中,并从第一个不为空的链表中删除与取出的物理页地址相对应的节点数据。
在本发明实施例中,如果是非重要数据,那么应该将该非重要数据存放在相对差的物理页中,具体操作为,第四判断单元1001按照顺序依次判断第三链表、第四链表、第二链表、第一链表是否为空,并从第一个不为空的链表中取出存放的物理页地址,将待写入数据写入取出的物理页地址所对应的物理页中,第二删除单元1002从第一个不为空的链表中删除与取出的物理页地址相对应的节点数据。例如,如果是非重要数据,首先判断第三链表是否为空,若第三链表不为空则表示第三链表中有物理页地址,则从第三链表中取出存放的物理页地址,若第三链表为空则表示第三链表中没有物理页地址,判断第四链表是否为空,若第四链表不为空,则从第四链表中取出存放的物理页地址,若第四链表为空,则判断第二链表是否为空,若第二链表为空,则判断第一链表是否为空,若第一链表为空,则返回执行步骤S102,重新对链表进行数据初始化操作。
在本发明实施例中,与现有技术相比,本发明实施例通过确定模块601确定物理页优劣的时间标准,避免全局探测,减少确定物理页优劣的情况的时间,通过判断模块603判断待写入数据的数据属性,从而将不同属性的待写入数据写入合适的物理页中,解决了三维闪存制程变异导致的电子分布不均匀的问题,从而保证存储在闪存中的数据的完整性和可靠性。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本发明所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
以上为对本发明所提供的一种基于三维闪存的数据写入方法及装置的描述,对于本领域的技术人员,依据本发明实施例的思想,在具体实施方式及应用范围上均会有改变之处,综上,本说明书内容不应理解为对本发明的限制。

Claims (8)

1.一种基于三维闪存的数据写入方法,其特征在于,所述方法包括:
创建若干链表,并基于系统默认数据确定物理页优劣的时间标准;
根据所述时间标准对所述若干链表进行数据初始化操作;
判断待写入数据的数据属性;
基于所述数据属性、数据初始化操作后的若干链表及预置写操作规则将所述待写入数据写入相应的物理页中;其中,所述基于系统的默认数据确定物理页优劣的时间标准的步骤包括:
向第1个物理块的第1个物理页发出写请求,并记录将所述系统默认数据写入所述第1个物理块的第1个物理页时所需要的写入时间段为t1;
向第i个物理块的第1个物理页发出写请求,并记录将所述系统默认数据写入所述第i个物理块的第1个物理页时所需要的写入时间段为t2,其中,i的初始值为2,且为正整数;
计算t1与t2的差值的绝对值是否大于或等于m*t1,其中,m为正数;
若大于或等于m*t1,则确定所述时间标准为n*(t1+t2),其中,n为正数;
若小于m*t1,则令i=i+1,返回执行所述向第i个物理块的第1个物理页发出写请求,并记录将所述系统默认数据写入所述第i个物理块的第1个物理页时所需要的写入时间段为t2的步骤。
2.根据权利要求1所述的方法,其特征在于,所述根据所述时间标准对所述若干链表进行数据初始化操作的步骤包括:
向第k个物理块的第1个物理页发出写操作执行请求,并记录将所述系统默认数据写入所述第k个物理块的第1个物理页时所需要的写入时间段为t3,其中,k的初始值为1,且为正整数;
判断t3是否小于或等于所述时间标准;
若小于或等于所述时间标准,则将所述第k个物理块的第1个物理页的物理页地址存放入第一链表中,将同位线上的物理页的物理页地址存放入第二链表中,其中,所述第一链表用于存放好的物理页的物理页地址,所述第二链表用于存放相对好的物理页的物理页地址;
若大于所述时间标准,则将所述第k个物理块的第1个物理页的物理页地址存放入第四链表中,将同位线上的物理页的物理页地址存放入第三链表中,其中,所述第三链表用于存放相对差的物理页的物理页地址,所述第四链表用于存放差的物理页的物理页地址;
判断k+1是否大于预置阈值;
若小于或等于所述预置阈值,则令k=k+1,返回执行所述向第k个物理块的第1个物理页发出写操作执行请求,并记录将所述系统默认数据写入所述第k个物理块的第1个物理页时所需要的写入时间段为t3的步骤;
若大于所述预置阈值,则完成所述数据初始化操作。
3.根据权利要求2所述的方法,其特征在于,所述基于所述数据属性、数据初始化操作后的若干链表及预置写操作规则将所述待写入数据写入相应的物理页中的步骤包括:
若所述数据属性为重要数据,则依次判断所述第一链表、所述第二链表、所述第三链表、所述第四链表是否为空,并从第一个不为空的链表中取出存放的物理页地址;
将所述待写入数据写入取出的物理页地址所对应的物理页中,并从所述第一个不为空的链表中删除与所述取出的物理页地址相对应的节点数据。
4.根据权利要求2所述的方法,其特征在于,所述基于所述数据属性、数据初始化操作后的若干链表及预置写操作规则将所述待写入数据写入相应的物理页中的步骤包括:
若所述数据属性为非重要数据,则依次判断所述第三链表、所述第四链表、所述第二链表、所述第一链表是否为空,并从第一个不为空的链表中取出存放的物理页地址;
将所述待写入数据写入取出的物理页地址所对应的物理页中,并从所述第一个不为空的链表中删除与所述取出的物理页地址相对应的节点数据。
5.一种基于三维闪存的数据写入装置,其特征在于,所述装置包括:
确定模块,用于创建若干链表,并基于系统默认数据确定物理页优劣的时间标准;
初始化模块,用于根据所述时间标准对所述若干链表进行数据初始化操作;
判断模块,用于判断待写入数据的数据属性;
写入模块,用于基于所述数据属性、数据初始化操作后的若干链表及预置写操作规则将所述待写入数据写入相应的物理页中;
其中,所述确定模块包括:
第一记录单元,用于向第1个物理块的第1个物理页发出写请求,并记录将所述系统默认数据写入所述第1个物理块的第1个物理页时所需要的写入时间段为t1;
第二记录单元,用于向第i个物理块的第1个物理页发出写请求,并记录将所述系统默认数据写入所述第i个物理块的第1个物理页时所需要的写入时间段为t2,其中,i的初始值为2,且为正整数;
计算单元,用于计算t1与t2的差值的绝对值是否大于或等于m*t1,其中,m为正数;
确定单元,用于若大于或等于m*t1,则确定所述时间标准为n*(t1+t2),其中,n为正数;
第一返回单元,用于若小于m*t1,则令i=i+1,返回执行所述向第i个物理块的第1个物理页发出写请求,并记录将所述系统默认数据写入所述第i个物理块的第1个物理页时所需要的写入时间段为t2的步骤。
6.根据权利要求5所述的装置,其特征在于,所述初始化模块包括:
第三记录单元,用于向第k个物理块的第1个物理页发出写操作执行请求,并记录将所述系统默认数据写入所述第k个物理块的第1个物理页时所需要的写入时间段为t3,其中,k的初始值为1,且为正整数;
第一判断单元,用于判断t3是否小于或等于所述时间标准;
第一存放单元,用于若小于或等于所述时间标准,则将所述第k个物理块的第1个物理页的物理页地址存放入第一链表中,将同位线上的物理页的物理页地址存放入第二链表中,其中,所述第一链表用于存放好的物理页的物理页地址,所述第二链表用于存放相对好的物理页的物理页地址;
第二存放单元,用于若大于所述时间标准,则将所述第k个物理块的第1个物理页的物理页地址存放入第四链表中,将同位线上的物理页的物理页地址存放入第三链表中,其中,所述第三链表用于存放相对差的物理页的物理页地址,所述第四链表用于存放差的物理页的物理页地址;
第二判断单元,用于判断k+1是否大于预置阈值;
第二返回单元,用于若小于或等于所述预置阈值,则令k=k+1,返回执行所述向第k个物理块的第1个物理页发出写操作执行请求,并记录将所述系统默认数据写入所述第k个物理块的第1个物理页时所需要的写入时间段为t3的步骤;
完成单元,用于若大于所述预置阈值,则完成所述数据初始化操作。
7.根据权利要求6所述的装置,其特征在于,所述写入模块包括:
第三判断单元,用于若所述数据属性为重要数据,则依次判断所述第一链表、所述第二链表、所述第三链表、所述第四链表是否为空,并从第一个不为空的链表中取出存放的物理页地址;
第一删除单元,用于将所述待写入数据写入取出的物理页地址所对应的物理页中,并从所述第一个不为空的链表中删除与所述取出的物理页地址相对应的节点数据。
8.根据权利要求6所述的装置,其特征在于,所述写入模块还包括:
第四判断单元,用于若所述数据属性为非重要数据,则依次判断所述第三链表、所述第四链表、所述第二链表、所述第一链表是否为空,并从第一个不为空的链表中取出存放的物理页地址;
第二删除单元,用于将所述待写入数据写入取出的物理页地址所对应的物理页中,并从所述第一个不为空的链表中删除与所述取出的物理页地址相对应的节点数据。
CN201710367651.8A 2017-05-23 2017-05-23 基于三维闪存的数据写入方法及装置 Active CN107229419B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710367651.8A CN107229419B (zh) 2017-05-23 2017-05-23 基于三维闪存的数据写入方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710367651.8A CN107229419B (zh) 2017-05-23 2017-05-23 基于三维闪存的数据写入方法及装置

Publications (2)

Publication Number Publication Date
CN107229419A CN107229419A (zh) 2017-10-03
CN107229419B true CN107229419B (zh) 2020-05-12

Family

ID=59933800

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710367651.8A Active CN107229419B (zh) 2017-05-23 2017-05-23 基于三维闪存的数据写入方法及装置

Country Status (1)

Country Link
CN (1) CN107229419B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103514104A (zh) * 2012-06-27 2014-01-15 安凯(广州)微电子技术有限公司 读取数据方法以及数据写入方法
CN105242871A (zh) * 2014-06-06 2016-01-13 华为技术有限公司 一种数据写入方法及装置
CN106155919A (zh) * 2016-07-26 2016-11-23 深圳市瑞耐斯技术有限公司 一种3d闪存的控制方法及控制系统
CN106484629A (zh) * 2016-10-18 2017-03-08 深圳大学 一种感知制程变异的三维闪存读写控制方法及其系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8447919B1 (en) * 2009-08-20 2013-05-21 Sk Hynix Memory Solutions Inc. Measure of health for writing to locations in flash

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103514104A (zh) * 2012-06-27 2014-01-15 安凯(广州)微电子技术有限公司 读取数据方法以及数据写入方法
CN105242871A (zh) * 2014-06-06 2016-01-13 华为技术有限公司 一种数据写入方法及装置
CN106155919A (zh) * 2016-07-26 2016-11-23 深圳市瑞耐斯技术有限公司 一种3d闪存的控制方法及控制系统
CN106484629A (zh) * 2016-10-18 2017-03-08 深圳大学 一种感知制程变异的三维闪存读写控制方法及其系统

Also Published As

Publication number Publication date
CN107229419A (zh) 2017-10-03

Similar Documents

Publication Publication Date Title
US11853549B2 (en) Index storage in shingled magnetic recording (SMR) storage system with non-shingled region
CN106776368B (zh) 一种数据读取时的缓存管理方法、装置及系统
CN111737265B (zh) 区块数据访问方法、区块数据存储方法及装置
CN113806300B (zh) 数据存储方法、系统、装置、设备及存储介质
CN111880734A (zh) 一种数据处理方法、系统、电子设备及存储介质
CN103942009A (zh) 扩展终端中存储器的设备和方法
CN110504002B (zh) 一种硬盘数据一致性测试方法与装置
CN107544863B (zh) 一种数据存储方法及装置
CN107229419B (zh) 基于三维闪存的数据写入方法及装置
CN106254806B (zh) 一种录像数据保护方法和装置
CN105264608A (zh) 存储数据的方法、内存控制器和中央处理器
CN110658993A (zh) 一种快照回滚方法、装置、设备及存储介质
CN112882659B (zh) 一种信息获得方法、装置、电子设备及存储介质
CN111367710A (zh) 一种eMMC问题还原方法和装置
CN111767339B (zh) 一种数据同步方法、装置、电子设备及存储介质
CN108959517B (zh) 文件管理方法、装置及电子设备
CN107436918B (zh) 数据库实现方法、装置和设备
CN111581127A (zh) 映射关系处理方法及装置
CN111435285B (zh) 存储卷写数据方法、装置、电子设备及机器可读存储介质
CN113986134B (zh) 存储数据的方法、读取数据的方法和装置
CN111367462B (zh) 一种数据处理方法及装置
CN112416262B (zh) 一种固态硬盘中数据预读方法、存储介质和电子装置
CN111625192B (zh) 一种元数据对象访问方法、装置、设备以及介质
CN109753228B (zh) 快照删除方法、装置及系统
CN105843807A (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
GR01 Patent grant
GR01 Patent grant