[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

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

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

Info

Publication number
WO2018214013A1
WO2018214013A1 PCT/CN2017/085460 CN2017085460W WO2018214013A1 WO 2018214013 A1 WO2018214013 A1 WO 2018214013A1 CN 2017085460 W CN2017085460 W CN 2017085460W WO 2018214013 A1 WO2018214013 A1 WO 2018214013A1
Authority
WO
WIPO (PCT)
Prior art keywords
physical page
data
linked list
physical
write
Prior art date
Application number
PCT/CN2017/085460
Other languages
English (en)
French (fr)
Inventor
王毅
林观泉
谢婧雯
陈炜轩
毛睿
Original Assignee
深圳大学
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 深圳大学 filed Critical 深圳大学
Priority to PCT/CN2017/085460 priority Critical patent/WO2018214013A1/zh
Publication of WO2018214013A1 publication Critical patent/WO2018214013A1/zh

Links

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

Definitions

  • the present invention relates to the field of three-dimensional flash memory technologies, and in particular, to a data writing method and apparatus based on three-dimensional flash memory.
  • 3D flash memory is a new memory technology, which has more capacity, less programming interference and lower access latency.
  • charge trapping mechanism in 3D flash technology, there is a problem of process variation, and process variation will This results in uneven distribution of electrons, which poses a threat to the integrity and reliability of the data stored in flash memory.
  • the main object of the present invention is to provide a data writing method and device based on three-dimensional flash memory
  • the invention aims to solve the technical problem that the prior art has a process variation caused by the three-dimensional flash memory technology, resulting in uneven distribution of electrons, which poses a threat to the integrity and reliability of data stored in the flash memory.
  • a first aspect of the present invention provides a data writing method based on a three-dimensional flash memory, the method comprising:
  • a second aspect of the present invention provides a data writing device based on a three-dimensional flash memory, the device comprising:
  • An initialization module configured to perform data initialization operations on the plurality of linked lists according to the time standard
  • a determining module configured to determine a data attribute of the data to be written
  • a writing module configured to write the to-be-written data into a corresponding physical page based on the data attribute, a number of linked lists after the data initializing operation, and a preset write operation rule.
  • the present invention provides a data writing method based on a three-dimensional flash memory.
  • the data initialization operation is performed on the plurality of linked lists according to the time standard, and the data is determined.
  • the data attribute of the write data is written into the corresponding physical page based on the data attribute, a number of linked lists after the data initialization operation, and a preset write operation rule.
  • the embodiment of the present invention avoids the global detection by determining the time standard of the physical page, reduces the time for determining the quality of the physical page, and determines the data attribute of the data to be written, thereby different attributes.
  • the data to be written is written into the appropriate physical page. The problem of uneven distribution of electrons caused by variation of the three-dimensional flash process is solved, thereby ensuring the integrity and reliability of data stored in the flash memory.
  • FIG. 1 is a schematic flowchart diagram of a data writing method based on a three-dimensional flash memory according to a first embodiment of the present invention
  • step S101 in the embodiment shown in FIG. 1;
  • step S102 in the embodiment shown in FIG. 1;
  • step S104 is a schematic flow chart of the refinement step of step S104 in the embodiment shown in FIG. 1;
  • FIG. 5 is a schematic flowchart of another refinement step of step S104 in the embodiment shown in FIG. 1;
  • FIG. 6 is a schematic diagram of functional modules of a data writing device based on a three-dimensional flash memory according to a second embodiment of the present invention.
  • FIG. 7 is a schematic diagram of a refinement function module of the determining module 601 in the embodiment shown in FIG. 6;
  • FIG. 8 is a schematic diagram of a refinement function module of the initialization module 602 in the embodiment shown in FIG. 6;
  • FIG. 9 is a schematic diagram of a refinement function module of the write module 604 in the embodiment shown in FIG. 6;
  • FIG. 10 is a schematic diagram of another refinement function module of the write module 604 in the embodiment shown in FIG. 6.
  • FIG. 1 is a schematic flowchart of a method for writing data based on a three-dimensional flash memory according to a first embodiment of the present invention, including:
  • Step S101 Create a number of linked lists, and determine a time standard of the physical page based on the system default data;
  • the system when the system initiates a write request, the system first detects whether several linked lists have been created. If no linked list is created, the system creates a number of linked lists, and determines the time standard of the physical page based on the system default data. If it detects that several linked lists have been created, it indicates that the linked list has completed the data initialization operation, and then responds to the above. Write a request.
  • linked lists are 4 linked lists.
  • FIG. 2 is a schematic flowchart of the refinement step of step S101 in FIG. 1 , including:
  • Step S201 issuing a write request to the first physical page of the first physical block, and recording a write time period required to write the system default data to the first physical page of the first physical block is t1;
  • Step S202 issuing a write request to the first physical page of the i-th physical block, and recording a write time period required to write the system default data to the first physical page of the i-th physical block is t2, wherein , the initial value of i is 2, and is a positive integer;
  • Step S203 calculating whether the absolute value of the difference between t1 and t2 is greater than or equal to m*t1, where m is a positive number;
  • Step S204 If greater than or equal to m*t1, determine that the time criterion is n*(t1+t2), where n is a positive number;
  • the required writing period of one physical page is the step of t2.
  • the system sets the variable i, and the system first issues a write request to the first physical page of the first physical block, and records the system default data when writing the first physical page of the first physical block.
  • the required write period is t1
  • a write request is issued to the first physical page of the i-th physical block, and the required data is written to the first physical page of the i-th physical block.
  • the writing time period is t2, where the initial value of i is 2, and is a positive integer, and whether the absolute value of the difference between t1 and t2 is greater than or equal to m*t1, and if greater than or equal to m*t1, the time is determined.
  • the standard is n*(t1+t2).
  • the system first issues a write request to the first physical page of the first physical block, and records the write time period required to write the system default data to the first physical page of the first physical block as t1. Then, a write request is issued to the first physical page of the second physical block, and the write time period required to write the system default data to the first physical page of the second physical block is t2, and t1 is calculated.
  • the time standard is determined to be n*(t1+t2), and if it is less than m*t1, the process returns to step S202, and the system proceeds to
  • the first physical page of the third physical block issues a write request, and records the write time period required to write the system default data to the first physical page of the third physical block as t2, and calculates the t1 and t2 Whether the absolute value of the difference is greater than or equal to m*t1 until the absolute value of the difference between t1 and t2 is greater than or equal to m*t1, then the time criterion is determined.
  • m and n are preset parameters, which can be modified according to actual conditions.
  • m is 0.3 and n is 0.5.
  • Step S102 Perform data initialization operations on a plurality of linked lists according to a time standard.
  • FIG. 3 is a schematic flowchart of the refinement step of step S102, including:
  • Step S301 issuing a write operation execution request to the first physical page of the kth physical block, and recording a write time period required to write the system default data to the first physical page of the kth physical block is t3
  • k has an initial value of 1 and is a positive integer
  • Step S302 determining whether t3 is less than or equal to a time standard
  • Step S303 If less than or equal to the time standard, store the physical page address of the first physical page of the kth physical block into the first linked list, and store the physical page address of the physical page on the co-located line into the second linked list.
  • the first linked list is used to store the physical page address of the good physical page
  • the second linked list is used to store the physical page address of the relatively good physical page
  • Step S304 if greater than the time standard, store the physical page address of the first physical page of the kth physical block into the fourth linked list, and store the physical page address of the physical page on the co-located line into the third linked list.
  • the third linked list is used to store the physical page address of the relatively poor physical page
  • the fourth linked list is used to store the physical page address of the poor physical page;
  • Step S305 determining whether k+1 is greater than a preset threshold
  • the first physical page of the physical block requires a write time period of t3;
  • Step S307 If it is greater than a preset threshold, the data initialization operation is completed.
  • the initial value of the system setting variable k, k is 1, and is a positive integer.
  • the system first issues a write operation execution request to the first physical page of the first physical block, and records the system default data.
  • the write time period required to write the first physical page of the first physical block is t3, and it is judged whether t3 is less than or equal to the time standard. If it is less than or equal to the time standard, the first physical block is 1st.
  • the physical page address of the physical page is stored in the first linked list, and the physical page address of the physical page on the parity line is stored in the second linked list. If it is greater than the time standard, the first physical page of the first physical block is placed.
  • T3 determining whether t3 is less than or equal to the time standard, and if less than or equal to the time standard, storing the physical page address of the first physical page of the first physical block into the first linked list, and the physical page of the same bit line
  • the operation execution request and recording the write time period required to write the system default data to the first physical page of the second physical block is t3, and until k+1 is greater than the preset threshold, the above flow is ended.
  • the preset threshold may be set according to actual conditions, and is preferably 10.
  • the first linked list is used to store the physical page address of the physical page
  • the second linked list is used to store the physical page address of the relatively good physical page
  • the third linked list is used to store the physical page address of the relatively poor physical page.
  • a four-linked list is used to store the physical page address of a poor physical page.
  • Step S103 determining data attributes of data to be written
  • the important data refers to operating system metadata
  • the important data includes specific data, exclusive data, frequently accessed data, and frequently updated data. Other data besides this is non-critical data.
  • Step S104 Write the data to be written into the corresponding physical page based on the data attribute, the data list after the data initialization operation, and the preset write operation rule.
  • FIG. 4 is a schematic flowchart of the refinement step of step S104 shown in FIG. 1 , including:
  • Step S401 if the data attribute is important data, sequentially determining whether the first linked list, the second linked list, the third linked list, and the fourth linked list are empty, and taking out the stored physical page address from the first non-empty linked list;
  • Step S402 writing the data to be written into the physical page corresponding to the extracted physical page address, and deleting the node data corresponding to the extracted physical page address from the first non-empty linked list.
  • the important data should be stored in a good physical page.
  • the specific operation is to sequentially determine whether the first linked list, the second linked list, the third linked list, and the fourth linked list are sequentially Empty, and take the stored physical page address from the first non-empty linked list, write the data to be written to the physical page corresponding to the physical page address to be fetched, and from the first non-empty linked list
  • the node data corresponding to the extracted physical page address is deleted. For example, if it is important data, first determine whether the first linked list is empty.
  • the first linked list is not empty, it means that there is a physical page address in the first linked list, and the physical page address stored in the first linked list is taken out, if the first If the linked list is empty, it means that there is no physical page address in the first linked list, and it is determined whether the second linked list is empty. If the second linked list is not empty, the stored physical page address is taken out from the second linked list, and if the second linked list is empty, Then, it is determined whether the third linked list is empty. If the third linked list is empty, it is determined whether the fourth linked list is empty. If the fourth linked list is empty, the process returns to step S102 to perform data initialization operation on the linked list.
  • FIG. 5 is a schematic flowchart of another refinement step of step S104 shown in FIG. 1 , including:
  • Step S501 If the data attribute is non-important data, determine whether the third linked list, the fourth linked list, the second linked list, and the first linked list are empty, and take out the stored physical page address from the first non-empty linked list. ;
  • Step S502 writing the data to be written into the physical page corresponding to the physical page address to be fetched, and deleting the node data corresponding to the extracted physical page address from the first non-empty linked list.
  • the non-essential data should be stored in a relatively poor physical page, and the specific operation is: sequentially determining the third linked list, the fourth linked list, the second linked list, and the first Whether the linked list is empty, and the physical page address is taken out from the first non-empty linked list, and the data to be written is written into the physical page corresponding to the extracted physical page address, and the first one is not empty.
  • the node data corresponding to the extracted physical page address is deleted in the linked list. For example, if it is non-essential data, first determine whether the third linked list is empty.
  • the third linked list is not empty, it means that there is a physical page address in the third linked list, and the stored physical page address is taken from the third linked list, if the third If the linked list is empty, it means that there is no physical page address in the third linked list, and it is determined whether the fourth linked list is empty. If the fourth linked list is not empty, the stored physical page address is taken out from the fourth linked list, and if the fourth linked list is empty, Then, it is determined whether the second linked list is empty. If the second linked list is empty, it is determined whether the first linked list is empty. If the first linked list is empty, the process returns to step S102 to perform data initialization operation on the linked list.
  • a plurality of linked lists are created, and time standards of physical pages are determined based on system default data, data initialization operations are performed on a plurality of linked lists according to a time standard, and data attributes of data to be written are determined, based on data attributes, A number of linked lists and preset write operation rules after the data initialization operation write the data to be written into the corresponding physical page.
  • the embodiment of the present invention avoids the global detection by determining the time standard of the physical page, reduces the time for determining the quality of the physical page, and determines the data attribute of the data to be written, thereby different attributes.
  • the data to be written is written into the appropriate physical page. The problem of uneven distribution of electrons caused by variation of the three-dimensional flash process is solved, thereby ensuring the integrity and reliability of data stored in the flash memory.
  • FIG. 6 is a schematic diagram of functional modules of a data writing device based on a three-dimensional flash memory according to a second embodiment of the present invention, including:
  • a determining module 601 configured to create a number of linked lists, and determine a time standard of the physical page based on system default data
  • the system when the system initiates a write request, the system first detects whether several linked lists have been created. If the linked list is not created, the determining module 601 creates a number of linked lists, and determines the time standard of the physical page based on the system default data. If it detects that several linked lists have been created, it indicates that the linked list has completed the data initialization operation. Respond to the above write request.
  • linked lists are 4 linked lists.
  • FIG. 7 is a schematic diagram of the refinement function module of the determining module 601 in the embodiment shown in FIG.
  • the first recording unit 701 is configured to issue a write request to the first physical page of the first physical block, and record a write time required to write the system default data to the first physical page of the first physical block.
  • the segment is t1;
  • the second recording unit 702 is configured to issue a write request to the first physical page of the i-th physical block, and record a write time required to write the system default data to the first physical page of the i-th physical block.
  • the segment is t2, where the initial value of i is 2 and is a positive integer;
  • the calculating unit 703 is configured to calculate whether an absolute value of the difference between t1 and t2 is greater than or equal to m*t1, where m is a positive number;
  • the determining unit 704 is configured to determine that the time standard is n*(t1+t2) if greater than or equal to m*t1, where n is a positive number;
  • the first physical page of a physical block requires a write time period of t2.
  • the system sets the variable i
  • the first recording unit 701 first issues a write request to the first physical page of the first physical block, and records the first data write of the system default data to the first physical block.
  • the write time period required for each physical page is t1
  • the second recording unit 702 issues a write request to the first physical page of the i-th physical block, and records the system default data written to the i-th physical block.
  • the write period required for the first physical page is t2, where the initial value of i is 2 and is a positive integer
  • the calculation unit 703 calculates whether the absolute value of the difference between t1 and t2 is greater than or equal to m*t1.
  • the system first issues a write request to the first physical page of the first physical block, and records the write time period required to write the system default data to the first physical page of the first physical block as t1. Then, a write request is issued to the first physical page of the second physical block, and the write time period required to write the system default data to the first physical page of the second physical block is t2, and t1 is calculated.
  • the time standard is determined to be n*(t1+t2), and if it is less than m*t1, the process returns to step S202, and the system proceeds to
  • the first physical page of the third physical block issues a write request, and records the write time period required to write the system default data to the first physical page of the third physical block as t2, and calculates the t1 and t2 Whether the absolute value of the difference is greater than or equal to m*t1 until the absolute value of the difference between t1 and t2 is greater than or equal to m*t1, then the time criterion is determined.
  • m and n are preset parameters, which can be modified according to actual conditions.
  • m is 0.3 and n is 0.5.
  • An initialization module 602 configured to perform data initialization operations on a plurality of linked lists according to a time standard
  • FIG. 8 is a schematic diagram of a refinement function module of the initialization module 602 in the embodiment shown in FIG.
  • the third recording unit 801 is configured to issue a write operation execution request to the first physical page of the kth physical block, and record a write required to write the system default data to the first physical page of the kth physical block.
  • the entry time period is t3, where the initial value of k is 1, and is a positive integer;
  • the first determining unit 802 is configured to determine whether t3 is less than or equal to a time standard
  • the first storage unit 803 is configured to: if less than or equal to the time standard, store the physical page address of the first physical page of the kth physical block into the first linked list, and the physical page address of the physical page on the parity line Stored in the second linked list, wherein the first linked list is used to store the physical page address of the good physical page, and the second linked list is used to store the physical page address of the relatively good physical page;
  • the second storage unit 804 is configured to store the physical page address of the first physical page of the kth physical block into the fourth linked list if the time standard is greater than the time standard, and store the physical page address of the physical page on the same bit line.
  • the third linked list wherein the third linked list is used to store a physical page address of a relatively poor physical page, and the fourth linked list is used to store a physical page address of a poor physical page;
  • the second determining unit 805 is configured to determine whether k+1 is greater than a preset threshold
  • the step of writing the required time period of t3 when writing the first physical page of the kth physical block is t3;
  • the completion unit 807 is configured to complete the data initialization operation if it is greater than the preset threshold.
  • the initial value of the system setting variable k, k is 1, and is a positive integer
  • the third recording unit 801 first issues a write operation execution request to the first physical page of the first physical block, and records
  • the writing period required to write the system default data to the first physical page of the first physical block is t3, and the first determining unit 802 determines whether t3 is less than or equal to the time standard, and if less than or equal to the time standard,
  • the first storage unit 803 stores the physical page address of the first physical page of the first physical block into the first linked list, and stores the physical page address of the physical page on the co-located line into the second linked list, if greater than the time standard
  • the second storage unit 804 stores the physical page address of the first physical page of the first physical block into the fourth linked list, and stores the physical page address of the physical page on the co-located line into the third linked list, and second The determining unit 805 determines whether k+1 is greater than a preset threshold.
  • the second returning unit 806 returns to step S301, and if it is greater than the preset threshold, the data initializing operation is completed.
  • the system first issues a write operation execution request to the first physical page of the first physical block, and records the write time period required to write the system default data to the first physical page of the first physical block. T3, determining whether t3 is less than or equal to the time standard, and if less than or equal to the time standard, storing the physical page address of the first physical page of the first physical block into the first linked list, and the physical page of the same bit line The physical page address is stored in the second linked list.
  • the operation execution request and recording the write time period required to write the system default data to the first physical page of the second physical block is t3, and until k+1 is greater than the preset threshold, the above flow is ended.
  • the preset threshold may be set according to actual conditions, and is preferably 10.
  • a determining module 603, configured to determine a data attribute of the data to be written
  • the important data refers to operating system metadata
  • the important data includes specific data, exclusive data, frequently accessed data, and frequently updated data. Other data besides this is non-critical data.
  • the writing module 604 is configured to write the data to be written into the corresponding physical page based on the data attribute, the data list after the data initialization operation, and the preset write operation rule.
  • FIG. 9 is a schematic diagram of the refinement function module of the writing module 604 in the embodiment shown in FIG.
  • the third determining unit 901 is configured to determine, if the data attribute is important data, whether the first linked list, the second linked list, the third linked list, and the fourth linked list are empty, and is taken out from the first non-empty linked list. Physical page address;
  • the first deleting unit 902 is configured to write the data to be written into the physical page corresponding to the extracted physical page address, and delete the node data corresponding to the extracted physical page address from the first non-empty linked list. .
  • the third determining unit 901 sequentially determines the first linked list, the second linked list, and the third linked list in order. Whether the fourth linked list is empty, and the stored physical page address is taken out from the first non-empty linked list, and the to-be-written data is written into the physical page corresponding to the extracted physical page address, and the first deleting unit 902 The node data corresponding to the extracted physical page address is deleted from the first non-empty linked list. For example, if it is important data, first determine whether the first linked list is empty.
  • the first linked list is not empty, it means that there is a physical page address in the first linked list, and the physical page address stored in the first linked list is taken out, if the first If the linked list is empty, it means that there is no physical page address in the first linked list, and it is determined whether the second linked list is empty. If the second linked list is not empty, the stored physical page address is taken out from the second linked list, and if the second linked list is empty, Then, it is determined whether the third linked list is empty. If the third linked list is empty, it is determined whether the fourth linked list is empty. If the fourth linked list is empty, the process returns to step S102 to perform data initialization operation on the linked list.
  • FIG. 10 is a schematic diagram of another refinement function module of the write module 604 in the embodiment shown in FIG. 6 , including:
  • the fourth determining unit 1001 is configured to determine, if the data attribute is non-essential data, whether the third linked list, the fourth linked list, the second linked list, and the first linked list are empty, and is taken out from the first non-empty linked list.
  • the second deleting unit 1002 is configured to write the to-be-written data into the physical page corresponding to the extracted physical page address, and delete the node data corresponding to the extracted physical page address from the first non-empty linked list. .
  • the non-essential data should be stored in a relatively poor physical page.
  • the specific operation is that the fourth determining unit 1001 sequentially determines the third linked list, the fourth linked list, and the first Whether the second linked list and the first linked list are empty, and the physical page address stored in the linked list that is not empty is taken, and the data to be written is written into the physical page corresponding to the physical page address to be fetched, and the second delete is performed.
  • Unit 1002 deletes the node data corresponding to the fetched physical page address from the first non-empty linked list. For example, if it is non-essential data, first determine whether the third linked list is empty.
  • the third linked list is not empty, it means that there is a physical page address in the third linked list, and the stored physical page address is taken from the third linked list, if the third If the linked list is empty, it means that there is no physical page address in the third linked list, and it is determined whether the fourth linked list is empty. If the fourth linked list is not empty, the stored physical page address is taken out from the fourth linked list, and if the fourth linked list is empty, Then, it is determined whether the second linked list is empty. If the second linked list is empty, it is determined whether the first linked list is empty. If the first linked list is empty, the process returns to step S102 to perform data initialization operation on the linked list.
  • the embodiment of the present invention determines the time standard of the physical page by determining the module 601, avoids global detection, and reduces the time for determining the quality of the physical page. Determining data attributes of data to be written, thereby writing data to be written of different attributes into a suitable physical page, The problem of uneven distribution of electrons caused by variation of the three-dimensional flash process is solved, thereby ensuring the integrity and reliability of data stored in the flash memory.
  • the disclosed apparatus and method may be implemented in other manners.
  • the device embodiments described above are merely illustrative.
  • the division of the modules is only a logical function division.
  • there may be another division manner for example, multiple modules or components may be combined or Can be integrated into another system, or some features can be ignored or not executed.
  • the mutual coupling or direct coupling or communication connection shown or discussed may be an indirect coupling or communication connection through some interface, device or module, and may be electrical, mechanical or otherwise.
  • the modules described as separate components may or may not be physically separated.
  • the components displayed as modules may or may not be physical modules, that is, may be located in one place, or may be distributed to multiple network modules. Some or all of the modules may be selected according to actual needs to achieve the purpose of the solution of the embodiment.
  • each functional module in each embodiment of the present invention may be integrated into one processing module, or each module may exist physically separately, or two or more modules may be integrated into one module.
  • the above integrated modules can be implemented in the form of hardware or in the form of software functional modules.
  • the integrated modules if implemented in the form of software functional modules and sold or used as separate products, may be stored in a computer readable storage medium.
  • the technical solution of the present invention which is essential or contributes to the prior art, or all or part of the technical solution, may be embodied in the form of a software product stored in a storage medium.
  • a number of instructions are included to cause a computer device (which may be a personal computer, server, or network device, etc.) to perform all or part of the steps of the methods described in various embodiments of the present invention.
  • the foregoing storage medium includes: a U disk, a mobile hard disk, a read only memory (ROM, Read-Only) Memory, random access memory (RAM), disk or optical disk, and other media that can store program code.

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

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

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-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本发明所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
以上为对本发明所提供的一种基于三维闪存的数据写入方法及装置的描述,对于本领域的技术人员,依据本发明实施例的思想,在具体实施方式及应用范围上均会有改变之处,综上,本说明书内容不应理解为对本发明的限制。

Claims (10)

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

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/CN2017/085460 WO2018214013A1 (zh) 2017-05-23 2017-05-23 基于三维闪存的数据写入方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2017/085460 WO2018214013A1 (zh) 2017-05-23 2017-05-23 基于三维闪存的数据写入方法及装置

Publications (1)

Publication Number Publication Date
WO2018214013A1 true WO2018214013A1 (zh) 2018-11-29

Family

ID=64396103

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2017/085460 WO2018214013A1 (zh) 2017-05-23 2017-05-23 基于三维闪存的数据写入方法及装置

Country Status (1)

Country Link
WO (1) WO2018214013A1 (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102981966A (zh) * 2012-11-09 2013-03-20 青岛海信宽带多媒体技术有限公司 一种均衡分配Flash存储块的数据存储方法
US20140149649A1 (en) * 2009-08-20 2014-05-29 Sk Hynix Memory Solutions Inc. Measure of health for writing to locations in flash
CN105242871A (zh) * 2014-06-06 2016-01-13 华为技术有限公司 一种数据写入方法及装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140149649A1 (en) * 2009-08-20 2014-05-29 Sk Hynix Memory Solutions Inc. Measure of health for writing to locations in flash
CN102981966A (zh) * 2012-11-09 2013-03-20 青岛海信宽带多媒体技术有限公司 一种均衡分配Flash存储块的数据存储方法
CN105242871A (zh) * 2014-06-06 2016-01-13 华为技术有限公司 一种数据写入方法及装置

Similar Documents

Publication Publication Date Title
US11531482B2 (en) Data deduplication method and apparatus
WO2018149082A1 (zh) 合同生成方法、装置、服务器和存储介质
WO2010076966A2 (ko) 메모리 컨트롤러 및 메모리 관리 방법
WO2020141660A1 (en) Electronic apparatus managing data based on block chain and method for managing data
WO2013174210A1 (zh) 一种闪存设备中数据存储的方法及装置
WO2019137217A1 (zh) 应用程序中的页面跳转方法、终端及存储介质
JP4669708B2 (ja) ストレージシステム、データ移動方法及び管理計算機
WO2017008648A1 (zh) 集群切换方法与设备
WO2016204529A1 (ko) 전원 손실 이후 데이터 손실을 방지하기 위한 메모리 저장 장치 및 방법
WO2015180434A1 (zh) 一种数据库集群管理数据的方法、节点及系统
WO2017157125A1 (zh) 在云计算环境中删除云主机的方法、装置、服务器及存储介质
WO2017035785A1 (zh) 一种内存泄漏的定位方法和装置
WO2020237849A1 (zh) 网络块设备快照读写方法、装置、设备及存储介质
WO2018058983A1 (zh) 数据库容量计算方法、装置、服务器及存储设备
WO2018218806A1 (zh) 终端隐私保护方法及系统
WO2018214013A1 (zh) 基于三维闪存的数据写入方法及装置
EP3436921A1 (en) Replication between heterogeneous storage systems
WO2020235858A1 (en) Server and control method thereof
US6738791B2 (en) Data synchronizing device
WO2014044131A1 (zh) 移动终端联系人备份的方法、装置及存储介质
WO2017026740A1 (ko) 전자 장치 및 이의 데이터 압축 방법
WO2016065695A1 (zh) 一种硬盘物理块管理方法及系统
WO2018161294A1 (zh) 应用程序本地缓存方法和装置
CN116501545A (zh) 数据备份方法、恢复方法、装置、设备及可读存储介质
WO2019037093A1 (zh) 一种 Spark 分布式计算数据处理方法及系统

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 17911205

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

32PN Ep: public notification in the ep bulletin as address of the adressee cannot be established

Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC (EPO FORM 1205A DATED 26.02.2020)

122 Ep: pct application non-entry in european phase

Ref document number: 17911205

Country of ref document: EP

Kind code of ref document: A1