Intelligent management method, system and device for flash memory data

By obtaining the parameters and status parameters of physical blocks from flash memory, and using bidding and quotation strategies to match data objects with physical blocks, the problems of high-value data access latency and low resource utilization under static strategies are solved, achieving more efficient storage resource management.

CN122018792APending Publication Date: 2026-05-12UNITED MEMORY TECHNOLOGY (JIANGSU) LTD
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
UNITED MEMORY TECHNOLOGY (JIANGSU) LTD
Filing Date
2026-01-15
Publication Date
2026-05-12

AI Technical Summary

Technical Problem

Existing flash memory management technologies, due to their static strategies, suffer from excessively high latency in accessing high-value data and low utilization of storage resources, failing to accurately match data value with storage resource costs.

Method used

By acquiring the physical and status parameters of each physical block in the flash memory, and calling the preset bidding and quotation strategies for calculation, the virtual bids of data objects and the virtual quotations of physical blocks are matched using a two-sided auction algorithm to achieve data migration and optimize storage resource allocation.

Benefits of technology

It reduces access latency for high-value data, improves the utilization of storage resources, and extends the lifespan of flash memory media.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN122018792A_ABST
    Figure CN122018792A_ABST
Patent Text Reader

Abstract

The invention discloses an intelligent management method, system and device for flash memory data. The method comprises the following steps: acquiring physical parameters and state parameters of each physical block in a flash memory; judging whether each physical block stores a data object or not; when the data object is stored in the physical block, calling a preset bidding strategy to perform bidding operation processing on the physical parameter of the physical block to obtain a virtual bid of the data object; calling a preset quotation strategy to perform quotation operation processing on the state parameter of each physical block to obtain a virtual quotation of each physical block; based on a preset bilateral auction algorithm, matching the virtual bid of each data object with the virtual quoted price of each physical block to obtain a matching result; and performing intelligent management on each data object according to the matching result, the intelligent management including data migration. According to the method, bilateral auction is performed on the virtual bid of each data object and the virtual quoted price of each physical block, so that the data objects are matched to the corresponding physical blocks, the access delay of high-value data is reduced, and the utilization rate of storage resources is improved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of data storage technology, and in particular to an intelligent management method, system and apparatus for flash memory data. Background Technology

[0002] With the rapid development of technologies such as big data, artificial intelligence, and edge computing, the market has placed stringent demands on the performance, reliability, and lifespan of storage devices. Flash memory, with its advantages of high read / write speeds and low power consumption, has become the mainstream storage medium. In this context, the quality of flash memory management technology directly determines the overall performance of storage devices.

[0003] The core objective of flash memory management technology is to achieve efficient data placement, intelligent cache scheduling, and precise garbage collection, thereby improving data access efficiency while extending the lifespan of flash memory media. Currently, existing flash memory management technologies typically perform data allocation and migration operations based on static strategies, such as writing data to specified physical blocks according to preset priority rules. However, static strategies often employ a one-size-fits-all allocation approach, ignoring the lifecycle differences of different data objects (high-priority data's need for storage reliability, and low-value data's sensitivity to storage costs), leading to difficulties in accurately matching data value with storage resource costs.

[0004] Therefore, existing flash memory management technologies are prone to problems such as excessively high latency in accessing high-value data and low utilization of storage resources. Summary of the Invention

[0005] The main objective of this application is to propose an intelligent management method, system, and apparatus for flash memory data, aiming to solve the problems of excessive latency in accessing high-value data and low utilization of storage resources.

[0006] To achieve the above objectives, this application proposes an intelligent management method for flash memory data, the intelligent management method for flash memory data comprising: Obtain the physical parameters and status parameters of each physical block in the flash memory; Determine whether each physical block stores a data object; When the physical block stores the data object, a preset bidding strategy is invoked to perform bidding calculations on the physical parameters of the physical block to obtain the virtual bid for the data object; A preset pricing strategy is invoked to perform pricing calculations on the state parameters of each physical block to obtain a virtual price for each physical block; Based on a preset bilateral auction algorithm, the virtual bids of each data object and the virtual bids of each physical block are matched to obtain a matching result; The data objects are intelligently managed based on the matching results, wherein the intelligent management includes data migration.

[0007] In some embodiments, obtaining the physical parameters and status parameters of each physical block in the flash memory includes: A preset acquisition period is obtained, and the physical parameters of each physical block are acquired according to the preset acquisition period. The physical parameters of the physical block include one or more of the following: bit error rate change gradient, programming timing increment, and erase timing increment. The health status of each physical block is obtained by weighting the physical parameters of each physical block. Real-time data collection of input / output request volume, bandwidth utilization, and concurrent operations for each physical block; The load factor of each physical block is obtained by performing load quantization calculations on the real-time input / output request volume, bandwidth utilization, and concurrent operation number of each physical block. The health status and load factor of each physical block are used as the state parameters of each physical block.

[0008] In some embodiments, the step of invoking a preset bidding strategy to perform bidding calculations on the physical parameters of the physical block to obtain the virtual bid for the data object includes: The physical parameters of the physical block are input into a preset value chain model to obtain the expected remaining lifetime and value decay risk of the data object; Obtain the preset lifetime weight of the expected remaining lifetime and the preset risk weight of the value decay risk; The virtual bid for the data object is calculated based on the expected remaining lifespan, the preset lifespan weight, the value decay risk, and the preset risk weight.

[0009] In some embodiments, calculating the virtual bid for the data object based on the expected remaining lifetime, the preset lifetime weight, the value decay risk, and the preset risk weight includes: Bid = α × (1 / RTL) + β × |ΔR|; Wherein, Bid represents the virtual bid of the data object, α represents the preset lifetime weight, RTL represents the expected remaining lifetime, β represents the preset risk weight, and ΔR represents the value decay risk.

[0010] In some embodiments, the step of invoking a preset pricing strategy to perform pricing calculations on the state parameters of each physical block to obtain a virtual price for each physical block includes: For any of the physical blocks, obtain the preset health weight of the health status and the preset load weight of the load factor; The virtual price of the physical block is calculated based on the health status, the preset health weight, the load factor, and the preset load weight.

[0011] In some embodiments, calculating the virtual quote for the physical block based on the health status, the preset health weight, the load factor, and the preset load weight includes: Ask = γ × (1 / H) + δ × L; Where Ask represents the virtual quote for the physical block, γ represents the preset health weight, H represents the health level, δ represents the preset load weight, and L represents the load factor.

[0012] In some embodiments, the step of matching the virtual bids of each data object with the virtual offers of each physical block based on a preset bilateral auction algorithm to obtain a matching result includes: The virtual bids of each of the data objects are sorted in ascending order to obtain a bid sorting table; The first sorted sequence number is taken as the current sequence number, and the virtual bid of the data object corresponding to the current sequence number is taken as the current bid. The current bid is compared with the virtual bid of each physical block to obtain all virtual bids that are less than or equal to the current bid, and these virtual bids are used as candidate bids. The candidate bid with the lowest bid is determined from all the candidate bids as the target bid, and the physical block corresponding to the target bid is matched with the data object corresponding to the current bid to obtain a sub-matching result; Determine whether the current sequence number is the final sequence number in the bid sorting table; If the current sequence number is not the final sequence number in the bid sorting table, then the current sequence number is incremented by one to update the current sequence number, and the step of taking the virtual bid of the data object corresponding to the current sequence number as the current bid is re-executed according to the updated current sequence number; If the current sequence number is the final sequence number in the bid ranking table, then all the sub-matching results are collected, and the set of all the sub-matching results is taken as the matching result.

[0013] In some embodiments, the intelligent management of each data object based on the matching result includes: For any of the sub-matching results in the matching results, the data object is migrated from the current physical block to the physical block corresponding to the target bid, wherein the current physical block is the physical block in which the data object is stored when calculating the virtual bid of the data object.

[0014] This application further proposes an intelligent management system for flash memory data, which includes a controller and flash memory. The controller is configured inside the flash memory, and the flash memory includes multiple physical blocks. The controller is capable of executing the intelligent management method for flash memory data described above.

[0015] This application further proposes an intelligent management device for flash memory data, comprising: At least one processor; and, A memory communicatively connected to the at least one processor; wherein, The memory stores instructions that are executed by the at least one processor, which enable the at least one processor to perform the intelligent management method for flash memory data described above.

[0016] This application's technical solution obtains the physical parameters and status parameters of each physical block in the flash memory; determines whether each physical block stores data objects; when a physical block stores data objects, it calls a preset bidding strategy to perform bidding calculations on the physical parameters of the physical block to obtain the virtual bid for the data object; it calls a preset quotation strategy to perform quotation calculations on the status parameters of each physical block to obtain the virtual quotation for each physical block; based on a preset two-sided auction algorithm, it matches the virtual bid for each data object with the virtual quotation for each physical block to obtain a matching result; and it performs intelligent management of each data object based on the matching result, where intelligent management includes data migration. By determining the virtual bid for each data object and the virtual quotation for each physical block through the physical parameters and status parameters of each physical block, and then performing a two-sided auction on the virtual bid for each data object and the virtual quotation for each physical block, the data object is matched to the corresponding physical block, thereby performing intelligent management of the data object, accurately matching data value with storage resource costs, reducing access latency for high-value data, and improving storage resource utilization. Attached Figure Description

[0017] Figure 1 This is a flowchart illustrating an embodiment of the intelligent flash memory data management method of this application; Figure 2 This is a flowchart illustrating another embodiment of the intelligent management method for flash memory data in this application; Figure 3 This is a flowchart illustrating another embodiment of the intelligent management method for flash memory data in this application; Figure 4 This is a flowchart illustrating another embodiment of the intelligent management method for flash memory data in this application; Figure 5 This is a flowchart illustrating another embodiment of the intelligent management method for flash memory data in this application; Figure 6This is a schematic diagram of the structure of the intelligent management system for flash memory data involved in the embodiments of this application; Figure 7 This is a schematic diagram of the structure of the intelligent flash memory data management device according to the embodiments of this application. Detailed Implementation

[0018] The solutions in the embodiments of this application will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only a part of the embodiments in this application, and not all of the embodiments. Based on the embodiments in this application, all other embodiments obtained by those of ordinary skill in the art without creative effort are within the scope of protection of this application.

[0019] It should be noted that all directional indicators (such as up, down, left, right, front, back, etc.) in the embodiments of this application are only used to explain the relative positional relationship and movement of each component in a certain specific posture (as shown in the figure). If the specific posture changes, the directional indicator will also change accordingly.

[0020] It should also be noted that when a component is referred to as "fixed to" or "set on" another component, it can be directly on the other component or an intervening component can be present simultaneously. When a component is referred to as "connected to" another component, it can be directly connected to the other component or an intervening component can be present simultaneously.

[0021] Furthermore, the use of terms such as "first" and "second" in this application is for descriptive purposes only and should not be construed as indicating or implying their relative importance or implicitly specifying the number of technical features indicated. Therefore, features defined as "first" or "second" explicitly or implicitly include at least one of those features. Additionally, the technical solutions of the various embodiments can be combined with each other, but only on the basis of being achievable by those skilled in the art. If the combination of technical solutions is contradictory or impossible to implement, such a combination of technical solutions should be considered non-existent and not within the scope of protection claimed in this application.

[0022] This application proposes an intelligent management method for flash memory data, referring to... Figure 1 and Figure 6 , Figure 1 This is a flowchart illustrating an embodiment of the intelligent flash memory data management method of this application. Figure 6 This is a schematic diagram of the structure of the intelligent management system for flash memory data according to the embodiments of this application. In some embodiments, the intelligent management method for flash memory data includes: Step S110: Obtain the physical parameters and status parameters of each physical block in the flash memory; Step S120: Determine whether each physical block stores a data object; Step S130: When a physical block stores a data object, a preset bidding strategy is called to perform bidding calculations on the physical parameters of the physical block to obtain the virtual bid for the data object. Step S140: Call the preset bidding strategy to perform bidding calculations on the state parameters of each physical block to obtain the virtual bid for each physical block; Step S150: Based on the preset bilateral auction algorithm, the virtual bids of each data object and the virtual bids of each physical block are matched to obtain the matching results; Step S160: Perform intelligent management on each data object based on the matching results, wherein intelligent management includes data migration.

[0023] In this embodiment, as Figure 1 and Figure 6 As shown, the intelligent management method for flash memory data can be applied to an intelligent management system for flash memory data. The intelligent management system for flash memory data includes a controller and flash memory. The controller is configured inside the flash memory, which comprises multiple physical blocks. The controller is capable of executing the aforementioned intelligent management method for flash memory data. In this embodiment, the controller is the executing entity of the method steps.

[0024] It is understood that the flash memory in this embodiment can refer to storage devices (such as solid-state drives, embedded multimedia cards, serial peripheral interface flash memory, etc.) made using NAND FLASH chips. The flash memory can be connected to a host computer, allowing the host computer to perform operations such as writing, reading, erasing, and programming. However, each physical block in the flash memory has a limited lifespan. Therefore, a controller within the flash memory is needed to manage these physical blocks, enabling efficient data placement, intelligent cache scheduling, and precise garbage collection. This improves data access efficiency while extending the lifespan of each physical block.

[0025] When the flash memory is powered on, the controller within the flash memory can manage each physical block. The controller can first obtain the physical parameters and status parameters of each physical block. For example, the controller can first label each physical block with a corresponding identifier; then obtain the physical parameters and status parameters of each physical block, and then bind the physical parameters and status parameters of each physical block to the corresponding identifier.

[0026] After obtaining the physical parameters and status parameters of each physical block, the controller can also determine whether each physical block stores data objects. For example, the controller can first read each physical block separately to determine whether each physical block stores data objects.

[0027] When a physical block stores data objects, the controller can invoke a preset bidding strategy to perform bidding calculations on the physical parameters of the physical block, thereby obtaining the virtual bid for the data objects. For example, for each physical block storing data objects, the controller can extract the corresponding physical parameters based on the physical block's identifier, then invoke the preset bidding strategy to perform bidding calculations on these physical parameters to obtain the virtual bid, and finally assign this virtual bid to the data objects stored on that physical block. After processing all physical blocks storing data objects, the controller can obtain the virtual bids for all data objects. The virtual bid (Bid) represents the priority of a data object's demand for high-quality physical blocks—a higher value indicates a higher risk of value decay for the data object and a greater need to acquire physical blocks with high health.

[0028] The controller can also invoke a preset pricing strategy to perform pricing calculations on the status parameters of each physical block, thereby obtaining a virtual price for each physical block. For example, for any physical block, the controller can extract the corresponding status parameters based on the physical block's identifier, then invoke the preset pricing strategy to perform pricing calculations on these status parameters to obtain a virtual price, and then assign this virtual price to the physical block. After processing all physical blocks, the controller can obtain the virtual prices for all physical blocks. The virtual price (Ask) represents the storage cost / resource consumption level of the physical block—the lower the value, the higher the physical block's health and the lower its load, indicating a higher quality storage resource.

[0029] The controller can also match the virtual bids of each data object with the virtual offers of each physical block based on a preset two-sided auction algorithm to obtain the matching result. This preset two-sided auction algorithm can be pre-configured on the controller by the user according to actual needs. The preset two-sided auction algorithm is a bidirectional matching optimization algorithm for flash memory data management scenarios, with data objects as the demand side and physical blocks as the supply side. Through a game mechanism of "virtual bid of data object - virtual offer of physical block," it achieves the optimal mapping between data objects and physical blocks under the constraint that virtual bid ≥ virtual offer, thereby maximizing flash memory resource utilization and minimizing the risk of data value decay. In other words, high-priority data objects (high Bid) are preferentially matched with high-quality physical blocks (low Ask), while low-priority data objects are matched with ordinary physical blocks, ultimately extending the lifespan of flash memory and reducing data risk.

[0030] The controller can also intelligently manage each data object based on the matching results. This intelligent management includes data migration. For example, based on the matching results, the controller can migrate each data object to its corresponding physical block, thus achieving intelligent management of flash memory data. Intelligent management also includes data erasure. When migrating a data object, it is necessary to first determine whether the corresponding physical block is a free physical block. If it is a free physical block, the migration of the data object can be performed directly. If it is not a free physical block, it is necessary to determine whether the original data object of the physical block has already been migrated. If the original data object of the physical block has been migrated, the physical block needs to be erased to make it a free physical block before the data object migration can proceed.

[0031] This application's technical solution obtains the physical parameters and status parameters of each physical block in the flash memory; determines whether each physical block stores data objects; when a physical block stores data objects, it calls a preset bidding strategy to perform bidding calculations on the physical parameters of the physical block to obtain the virtual bid for the data object; it calls a preset quotation strategy to perform quotation calculations on the status parameters of each physical block to obtain the virtual quotation for each physical block; based on a preset two-sided auction algorithm, it matches the virtual bid for each data object with the virtual quotation for each physical block to obtain a matching result; and it performs intelligent management of each data object based on the matching result, where intelligent management includes data migration. By determining the virtual bid for each data object and the virtual quotation for each physical block through the physical parameters and status parameters of each physical block, and then performing a two-sided auction on the virtual bid for each data object and the virtual quotation for each physical block, the data object is matched to the corresponding physical block, thereby performing intelligent management of the data object, accurately matching data value with storage resource costs, reducing access latency for high-value data, and improving storage resource utilization.

[0032] Reference Figure 2 , Figure 2 This is a flowchart illustrating another embodiment of the intelligent flash memory data management method of this application. In some embodiments, the aforementioned acquisition of the physical parameters and status parameters of each physical block in the flash memory includes: Step S170: Obtain a preset acquisition period and acquire the physical parameters of each physical block according to the preset acquisition period. The physical parameters of the physical block include one or more of the following: bit error rate change gradient, programming timing increment, and erase timing increment. Step S171: Perform weighted calculations on the physical parameters of each physical block to obtain the health of each physical block; Step S172: Real-time acquisition of input / output request volume, bandwidth utilization, and concurrent operation count for each physical block; Step S173: Perform load quantization calculations on the real-time input / output request volume, bandwidth utilization, and concurrent operation count of each physical block to obtain the load factor of each physical block; Step S174: The health status and load factor of each physical block are used as the state parameters of each physical block.

[0033] In this embodiment, as Figure 2 As shown, when the controller executes step S110, it can first obtain a preset acquisition period, and then acquire the physical parameters of each physical block according to the preset acquisition period. The preset acquisition period can be customized by the user according to actual conditions. For example, the preset acquisition period can be 50 microseconds, 100 microseconds, 200 microseconds, 500 microseconds, etc. The controller can acquire the physical parameters of each physical block according to the preset acquisition period. The physical parameters of the physical block include one or more of the following: bit error rate change gradient, programming timing increment, and erase timing increment. For example, the controller can periodically acquire the raw hardware signals of each physical block through the flash memory hardware interface based on the preset acquisition period, thereby extracting at least one of the bit error rate change gradient, programming timing increment, and erase timing increment.

[0034] Among them, the bit error rate change gradient (ΔBER / Δt) refers to the rate of increase in the bit error rate of physical block data reading per unit time, reflecting the aging speed of physical blocks; Programming timing increment (Δt_PROG / Δt): refers to the increase in the time taken for a physical block to complete a "data write" operation per unit of time. The longer the time taken, the more severe the wear and tear on the physical block. Erase timing increment (Δt_ERASE / Δt): refers to the increase in the time taken for a physical block to complete the "data erase" operation per unit of time. The longer the time taken, the more severe the wear and tear on the physical block.

[0035] The controller can also perform weighted calculations on the physical parameters of each physical block to obtain the health of each physical block. For example, for any physical block, the controller can first determine what the physical parameters of the physical block are. If the physical parameters include the bit error rate (BER) gradient and the programming timing increment, the controller can obtain the weights corresponding to the BER gradient and the programming timing increment (e.g., the weight of the BER gradient is 60%; the weight of the programming timing increment is 40%). Then, it performs a weighted sum according to these weights to obtain the health H with a value range of [0, 1] (the closer H is to 1, the lower the degree of aging / loss of the physical block and the higher the storage quality). The calculation formula can be: H = 1 - (w1 × ΔBER / Δt + w2 × Δt_PROG / Δt); where H represents the health of the physical block, w1 represents the weight of the BER gradient, w2 represents the weight of the programming timing increment, and w1 + w2 = 1. This formula is for illustrative purposes only and can be adjusted according to the physical parameters. Different physical parameters correspond to different weights, which can be customized by the user based on the characteristics of the flash memory hardware. All weights are greater than zero.

[0036] The controller can also collect real-time input / output request volume, bandwidth utilization, and concurrent operation count for each physical block. For example, the controller can monitor the operation of flash memory and obtain the real-time input / output request volume, real-time bandwidth utilization, and real-time concurrent operation count for each physical block. The real-time input / output request volume refers to the number of read / write requests currently waiting to be processed by the physical block; the real-time bandwidth utilization refers to the proportion of bandwidth currently actually used by the physical block to its maximum bandwidth; and the real-time concurrent operation count refers to the number of read / write operations processed simultaneously by the physical block.

[0037] The controller can also perform load quantization calculations on the real-time input / output request volume, bandwidth utilization, and concurrent operations of each physical block to obtain the load factor for each physical block. For example, for any physical block, the controller can use a load quantization model (normalization + weighting) to calculate the real-time input / output request volume, real-time bandwidth utilization, and real-time concurrent operations, thereby obtaining a load factor L with a value range of [0, 1] (the closer L is to 1, the more saturated the physical block's current resource utilization, and the lower the efficiency of processing new requests). The calculation formula can be: L = w3 × (real-time input / output request volume) + w4 × real-time bandwidth utilization + w5 × real-time concurrent operations, where w3 + w4 + w5 = 1, w3 is the weight of the real-time input / output request volume, w4 is the weight of the real-time bandwidth utilization, and w5 is the weight of the real-time concurrent operations. This formula is for illustrative purposes only; the weights can be customized by the user according to actual conditions, and all weights are greater than zero.

[0038] After obtaining the health status and load factor of each physical block, the controller can use the health status and load factor of each physical block as the state parameters of each physical block.

[0039] Reference Figure 3 , Figure 3 This is a flowchart illustrating another embodiment of the intelligent flash memory data management method of this application. In some embodiments, the aforementioned step of calling a preset bidding strategy to perform bidding calculations on the physical parameters of the physical block to obtain the virtual bid for the data object includes: Step S180: Input the physical parameters of the physical block into the preset value chain model to obtain the expected remaining lifetime and value decay risk of the data object; Step S181: Obtain the preset lifetime weight of the expected remaining lifetime and the preset risk weight of the value decay risk. Step S182: Calculate the virtual bid for the data object based on the expected remaining lifespan, preset lifespan weight, value decay risk, and preset risk weight.

[0040] In this embodiment, as Figure 3As shown, when executing step S130, the controller can first input the physical parameters of the physical block into a preset value chain model to obtain the expected remaining lifetime and value decay risk of the data object. For any physical block storing data objects, the controller can input the physical parameters of the physical block into the preset value chain model to obtain the expected remaining lifetime and value decay risk of the data object. The preset value chain model is configured with a value chain calculation formula: V(t) = V0 × exp(-∫k(H(τ), A(τ)) dτ); where V(t) represents the current value of the data object, V0 represents the initial value of the data object, exp(...) is the exponential function simulating the value of the data object over time / aging, k(H(τ), A(τ)) represents the value decay rate function representing the degree of decay of the data object's value per unit time, H(τ) represents the health of the physical block at time τ (which can be obtained by weighted calculation of the physical parameters of the physical block), and A(τ) represents the aging acceleration of the physical block at time τ (which can be one or more of the following: bit error rate change gradient, programming timing increment, and erasure timing increment).

[0041] After determining the current value of the data object, the controller can deduce the expected remaining lifetime and calculate the value decay risk. For example, deduce the expected remaining lifetime: the controller first determines a value threshold Vth. When the data value V(t) is lower than Vth, the data cannot be securely accessed. Then, it predicts the number of accesses required for V(t) to drop to Vth. Combining this with the access-aging correlation of physical blocks (the change in aging acceleration per access), it iteratively calculates the decay process of V(t) with the number of accesses until V(t) ≤ Vth. The number of accesses at this point is the expected remaining lifetime. Calculate the value decay risk: calculate the rate of decrease in expected remaining lifetime per unit time to obtain the value decay risk (e.g., divide the difference in expected remaining lifetime between two consecutive monitoring periods by the time difference to obtain the value decay risk).

[0042] After obtaining the expected remaining lifetime and value decay risk of the data object, the controller can acquire the preset lifetime weight and the preset risk weight of the value decay risk. The preset lifetime weight and preset risk weight can be customized by the user according to the actual situation.

[0043] After obtaining the preset lifetime weight and the preset risk weight of the value decay risk, the controller can calculate the virtual bid for the data object based on the expected remaining lifetime, the preset lifetime weight, the value decay risk, and the preset risk weight.

[0044] The above processing can be performed on each physical block that stores data objects to obtain the virtual bid for each data object.

[0045] In some embodiments, the aforementioned calculation of the virtual bid for the data object based on the expected remaining lifetime, a preset lifetime weight, a value decay risk, and a preset risk weight includes: Bid = α × (1 / RTL) + β × |ΔR|; Where Bid represents the virtual bid for the data object, α represents the preset lifetime weight, RTL represents the expected remaining lifetime, β represents the preset risk weight, and ΔR represents the risk of value decay.

[0046] In this embodiment, when the controller executes step S182, it can calculate according to the following formula: Bid = α × (1 / RTL) + β × |ΔR|; where Bid represents the virtual bid of the data object, α represents the preset lifetime weight, RTL represents the expected remaining lifetime, β represents the preset risk weight, ΔR represents the value decay risk, α + β = 1, and both α and β are greater than zero.

[0047] As shown by this formula, the lower the expected remaining lifetime and the greater the risk of value decay, the higher the virtual bid for a data object. Specifically, the virtual bid of a data object represents its priority in demanding high-quality physical blocks—a higher value indicates a higher risk of value decay and a greater need to acquire healthy physical blocks.

[0048] Reference Figure 4 , Figure 4 This is a flowchart illustrating another embodiment of the intelligent flash memory data management method of this application. In some embodiments, the aforementioned process of calling a preset pricing strategy to perform pricing calculations on the state parameters of each physical block to obtain a virtual price for each physical block includes: Step S190: For any physical block, obtain the preset health weight of health and the preset load weight of load factor; Step S191: Calculate the virtual price of the physical block based on the health status, preset health weight, load factor, and preset load weight.

[0049] In this embodiment, as Figure 4 As shown, when executing step S140, the controller can first obtain the preset health weight of the health status and the preset load weight of the load factor. For any physical block, the controller obtains the preset health weight of the health status and the preset load weight of the load factor. The preset health weight and preset load weight can be customized by the user according to actual conditions.

[0050] After obtaining the preset health weight of health and the preset load weight of load factor, the controller can calculate the virtual price of physical blocks based on health, preset health weight, load factor and preset load weight.

[0051] The above processing can be performed on each physical block to obtain a virtual quote for each physical block.

[0052] In some embodiments, the aforementioned calculation of the virtual price of the physical block based on health status, preset health weight, load factor, and preset load weight includes: Ask = γ × (1 / H) + δ × L; Where Ask represents the virtual price of a physical block, γ represents the preset health weight, H represents the health level, δ represents the preset load weight, and L represents the load factor.

[0053] In this embodiment, when the controller executes step S191, it can calculate according to the following formula. The formula is: Ask=γ×(1 / H)+δ×L; where Ask represents the virtual price of the physical block, γ represents the preset health weight, H represents the health level, δ represents the preset load weight, L represents the load factor, γ+δ=1, and both γ and δ are greater than zero.

[0054] As shown by the formula, the higher the health level and the lower the load factor, the lower the virtual price of the physical block. The virtual price of the physical block represents the storage cost / resource consumption of the physical block—the lower the value, the higher the health level and the lower the load, indicating a higher quality storage resource.

[0055] Reference Figure 5 , Figure 5 This is a flowchart illustrating another embodiment of the intelligent flash memory data management method of this application. In some embodiments, the aforementioned matching of the virtual bids of each data object with the virtual bids of each physical block based on a preset bilateral auction algorithm to obtain a matching result includes: Step S200: Sort the virtual bids of each data object in ascending order to obtain a bid sorting table; Step S201: Take the first sorted sequence number as the current sequence number, and take the virtual bid of the data object corresponding to the current sequence number as the current bid; Step S202: Compare the current bid with the virtual bids of each physical block to obtain all virtual bids that are less than or equal to the current bid, and use all of these virtual bids as candidate bids. Step S203: Determine the lowest bid from each candidate bid as the target bid, and match the physical block corresponding to the target bid with the data object corresponding to the current bid to obtain a sub-matching result; Step S204: Determine whether the current sequence number is the final sequence number in the bid sorting table; Step S205: If the current sequence number is not the final sequence number in the bid sorting table, increment the current sequence number by one to update the current sequence number, and re-execute the step of taking the virtual bid of the data object corresponding to the current sequence number as the current bid based on the updated current sequence number. Step S206: If the current sequence number is the final sequence number in the bid sorting table, then collect all sub-matching results and take the set of all sub-matching results as the matching result.

[0056] In this embodiment, as Figure 5 As shown, when the controller executes step S150, it can first sort the virtual bids of each data object in ascending order to obtain a bid sorting table. For example, the controller can first construct a bidirectional matching dataset, which may include a bid set and a quote set. The bid set includes each data object and its virtual bid, while the quote set includes each physical block and its virtual quote. The controller can then sort the virtual bids of each data object in the bid set in ascending order to obtain the bid sorting table.

[0057] The controller can also use the first sorted sequence number as the current sequence number, and then use the virtual bid of the data object corresponding to the current sequence number as the current bid.

[0058] The controller can also compare the current bid with the virtual bids of each physical block to obtain all virtual bids less than or equal to the current bid, and then use these virtual bids as candidate bids. For example, the controller can iterate through the bid set based on the current bid, filter out all virtual bids that meet the condition of virtual bids being less than or equal to the current bid, and then use these virtual bids as candidate bids. If no virtual bid in the bid set meets the condition (virtual bid less than or equal to the current bid), the controller can trigger a physical block expansion mechanism: filter out low-priority physical blocks whose current load factor is less than a preset load threshold and whose health is greater than a preset health threshold, release the data objects in the physical block, recalculate its virtual bid, and thus update the bid set. The preset load threshold and preset health threshold can be customized by the user according to the actual situation.

[0059] The controller can also determine the lowest candidate bid from among the candidate bids as the target bid, and then match the physical block corresponding to the target bid with the data object corresponding to the current bid to obtain a sub-matching result. For example, the controller can compare the size of each candidate bid to select the lowest candidate bid, and then use this lowest bid as the target bid. After obtaining the target bid, the controller can match the physical block corresponding to the target bid with the data object corresponding to the current bid to obtain a sub-matching result. After obtaining the sub-matching result, the controller can also remove the physical block corresponding to the target bid from the bid set to prevent it from continuing to match with other data objects. That is, a single physical block can only match one data object, and a single data object can only match one physical block.

[0060] After obtaining the sub-match results, the controller can also determine whether the current sequence number is the final sequence number in the bid sorting table.

[0061] When the current sequence number is not the final sequence number in the bid sorting table, the controller can increment the current sequence number to update it, and then re-execute the step of setting the virtual bid of the data object corresponding to the current sequence number as the current bid based on the updated current sequence number. In other words, the controller can sequentially match the virtual bids of each data object in the bid sorting table to obtain the sub-matching results between each data object and its corresponding physical block.

[0062] When the current sequence number is the final sequence number in the bid sorting table, the controller can collect all sub-match results and then use the set of all sub-match results as the match result.

[0063] In some embodiments, the aforementioned intelligent management of each data object based on the matching results includes: For any sub-match in the matching results, the data object is migrated from the current physical block to the physical block corresponding to the target bid, where the current physical block is the physical block where the data object is stored when calculating the virtual bid of the data object.

[0064] In this embodiment, when executing step S160, the controller can migrate the data object from the current physical block to the physical block corresponding to the target bid. For any sub-matching result in the matching results, the controller can migrate the data object from the current physical block to the physical block corresponding to the target bid, where the current physical block is the physical block where the data object is stored when calculating the virtual bid of the data object. For example, for any sub-matching result in the matching results, the controller can migrate the data object from the current physical block to the physical block corresponding to the target bid, thereby realizing intelligent management of flash memory data. Intelligent management also includes data erasure. When migrating the data object, it is also necessary to first determine whether the physical block corresponding to the target bid is an idle physical block. If it is an idle physical block, the migration of the data object can be performed directly; if it is not an idle physical block, it is also necessary to determine whether the original data object of the physical block corresponding to the target bid has been migrated. After the original data object of the physical block corresponding to the target bid has been migrated, it is necessary to erase the physical block corresponding to the target bid to make it an idle physical block before migrating the data object.

[0065] This application's technical solution obtains the physical parameters and status parameters of each physical block in the flash memory; determines whether each physical block stores data objects; when a physical block stores data objects, it calls a preset bidding strategy to perform bidding calculations on the physical parameters of the physical block to obtain the virtual bid for the data object; it calls a preset quotation strategy to perform quotation calculations on the status parameters of each physical block to obtain the virtual quotation for each physical block; based on a preset two-sided auction algorithm, it matches the virtual bid for each data object with the virtual quotation for each physical block to obtain a matching result; and it performs intelligent management of each data object based on the matching result, where intelligent management includes data migration. By determining the virtual bid for each data object and the virtual quotation for each physical block through the physical parameters and status parameters of each physical block, and then performing a two-sided auction on the virtual bid for each data object and the virtual quotation for each physical block, the data object is matched to the corresponding physical block, thereby performing intelligent management of the data object, accurately matching data value with storage resource costs, reducing access latency for high-value data, and improving storage resource utilization.

[0066] This application further proposes an intelligent management system for flash memory data, referring to... Figure 6 , Figure 6 This is a schematic diagram of the structure of the intelligent management system for flash memory data according to the embodiments of this application. In some embodiments, the intelligent management system for flash memory data includes a controller and flash memory. The controller is configured inside the flash memory, and the flash memory includes multiple physical blocks. The controller is capable of executing the above-described intelligent management method for flash memory data.

[0067] In this embodiment, as Figure 6As shown, the intelligent management system for flash memory data includes a controller and flash memory. The controller is configured inside the flash memory, which comprises multiple physical blocks. Flash memory can refer to storage devices made using NAND FLASH chips (such as solid-state drives, embedded multimedia cards, and serial peripheral interface flash memory). The flash memory can connect to a host computer, allowing the host computer to perform operations such as writing, reading, erasing, and programming. However, each physical block in the flash memory has a limited lifespan. Therefore, the controller within the flash memory is needed to manage these physical blocks, enabling efficient data placement, intelligent cache scheduling, and precise garbage collection. This improves data access efficiency while extending the lifespan of each physical block.

[0068] This application further proposes an intelligent management device for flash memory data, referring to... Figure 7 , Figure 7 This is a schematic diagram of the structure of the intelligent flash memory data management device according to the embodiments of this application. In some embodiments, the intelligent flash memory data management device includes: At least one processor; and, A memory that is communicatively connected to at least one processor; wherein, The memory stores instructions that are executed by the at least one processor, which enable the at least one processor to perform the intelligent management method for flash memory data described in any of the above descriptions.

[0069] In this embodiment, refer to Figure 7 The intelligent flash memory data management device in this application embodiment can be a processor capable of running an intelligent flash memory data management method; there is at least one processor. Figure 7 As shown, the intelligent management device for flash memory data may include: a processor 1001 (e.g., CPU), a network interface 1004, a user interface 1003, a memory 1005, and a communication bus 1002. The communication bus 1002 is used to enable communication between these components. The user interface 1003 may include a display screen and an input unit, such as a keyboard; optionally, the user interface 1003 may also include a standard wired interface or a wireless interface. The network interface 1004 may optionally include a standard wired interface or a wireless interface (such as a Wi-Fi interface). The memory 1005 may be high-speed RAM or stable non-volatile memory, such as a disk drive. Optionally, the memory 1005 may also be a storage device independent of the aforementioned processor 1001.

[0070] Those skilled in the art will understand that Figure 7The structure of the intelligent management device for flash data shown does not constitute a limitation on the intelligent management device for flash data. It may include more or fewer components than shown, or combine certain components, or have different component arrangements.

[0071] like Figure 7 As shown, the memory 1005, which serves as a computer storage medium, may include an operating system, a network communication module, a user interface module, and computer programs.

[0072] exist Figure 7 In the intelligent flash memory data management device shown, the network interface 1004 is mainly used to connect to the backend server and communicate with the backend server; the user interface 1003 is mainly used to connect to the client (user end) and communicate with the client; and the processor 1001 can be used to call the computer program stored in the memory 1005. When the computer program is called and executed by the processor 1001, it implements the steps of the above-mentioned intelligent flash memory data management method.

[0073] The above description is only a part or preferred embodiment of this application. Neither the text nor the drawings should limit the scope of protection of this application. All equivalent structural transformations made using the content of this application's specification and drawings under the overall concept of this application, or direct / indirect applications in other related technical fields, are included within the scope of protection of this application.

Claims

1. A method for intelligent management of flash memory data, characterized in that, The intelligent management method for flash memory data includes: Obtain the physical parameters and status parameters of each physical block in the flash memory; Determine whether each physical block stores a data object; When the physical block stores the data object, a preset bidding strategy is invoked to perform bidding calculations on the physical parameters of the physical block to obtain the virtual bid for the data object; A preset pricing strategy is invoked to perform pricing calculations on the state parameters of each physical block to obtain a virtual price for each physical block; Based on a preset bilateral auction algorithm, the virtual bids of each data object and the virtual bids of each physical block are matched to obtain a matching result; The data objects are intelligently managed based on the matching results, wherein the intelligent management includes data migration.

2. The intelligent management method for flash memory data according to claim 1, characterized in that, The acquisition of physical parameters and status parameters of each physical block in the flash memory includes: A preset acquisition period is obtained, and the physical parameters of each physical block are acquired according to the preset acquisition period. The physical parameters of the physical block include one or more of the following: bit error rate change gradient, programming timing increment, and erase timing increment. The health status of each physical block is obtained by weighting the physical parameters of each physical block. Real-time data collection of input / output request volume, bandwidth utilization, and concurrent operations for each physical block; The load factor of each physical block is obtained by performing load quantization calculations on the real-time input / output request volume, bandwidth utilization, and concurrent operation number of each physical block. The health status and load factor of each physical block are used as the state parameters of each physical block.

3. The intelligent management method for flash memory data according to claim 2, characterized in that, The step of invoking a preset bidding strategy to perform bidding calculations on the physical parameters of the physical block to obtain the virtual bid for the data object includes: The physical parameters of the physical block are input into a preset value chain model to obtain the expected remaining lifetime and value decay risk of the data object; Obtain the preset lifetime weight of the expected remaining lifetime and the preset risk weight of the value decay risk; The virtual bid for the data object is calculated based on the expected remaining lifespan, the preset lifespan weight, the value decay risk, and the preset risk weight.

4. The intelligent management method for flash memory data according to claim 3, characterized in that, The step of calculating the virtual bid for the data object based on the expected remaining lifespan, the preset lifespan weight, the value decay risk, and the preset risk weight includes: Bid = α × (1 / RTL) + β × |ΔR|; Wherein, Bid represents the virtual bid of the data object, α represents the preset lifetime weight, RTL represents the expected remaining lifetime, β represents the preset risk weight, and ΔR represents the value decay risk.

5. The intelligent management method for flash memory data according to claim 2, characterized in that, The step of invoking a preset pricing strategy to perform pricing calculations on the state parameters of each physical block to obtain a virtual price for each physical block includes: For any of the physical blocks, obtain the preset health weight of the health status and the preset load weight of the load factor; The virtual price of the physical block is calculated based on the health status, the preset health weight, the load factor, and the preset load weight.

6. The intelligent management method for flash memory data according to claim 5, characterized in that, The process of calculating the virtual price of the physical block based on the health status, the preset health weight, the load factor, and the preset load weight includes: Ask = γ × (1 / H) + δ × L; Where Ask represents the virtual quote for the physical block, γ represents the preset health weight, H represents the health level, δ represents the preset load weight, and L represents the load factor.

7. The intelligent management method for flash memory data according to claim 1, characterized in that, The matching result, based on a preset bilateral auction algorithm, is obtained by matching the virtual bids of each data object with the virtual offers of each physical block, including: The virtual bids of each of the data objects are sorted in ascending order to obtain a bid sorting table; The first sorted sequence number is taken as the current sequence number, and the virtual bid of the data object corresponding to the current sequence number is taken as the current bid; The current bid is compared with the virtual bid of each physical block to obtain all virtual bids that are less than or equal to the current bid, and these virtual bids are used as candidate bids. The candidate bid with the lowest bid is determined from all the candidate bids as the target bid, and the physical block corresponding to the target bid is matched with the data object corresponding to the current bid to obtain a sub-matching result; Determine whether the current sequence number is the final sequence number in the bid sorting table; If the current sequence number is not the final sequence number in the bid sorting table, then the current sequence number is incremented by one to update the current sequence number, and the step of taking the virtual bid of the data object corresponding to the current sequence number as the current bid is re-executed according to the updated current sequence number; If the current sequence number is the final sequence number in the bid sorting table, then all the sub-matching results are collected, and the set of all the sub-matching results is taken as the matching result.

8. The intelligent management method for flash memory data according to claim 7, characterized in that, The intelligent management of each data object based on the matching result includes: For any of the sub-matching results in the matching results, the data object is migrated from the current physical block to the physical block corresponding to the target bid, wherein the current physical block is the physical block in which the data object is stored when calculating the virtual bid of the data object.

9. An intelligent management system for flash memory data, characterized in that, The intelligent management system for flash memory data includes a controller and flash memory, the controller being configured inside the flash memory, the flash memory including multiple physical blocks; the controller is capable of executing the intelligent management method for flash memory data according to any one of claims 1 to 8.

10. A smart management device for flash memory data, characterized in that, include: At least one processor; as well as, A memory communicatively connected to the at least one processor; wherein, The memory stores instructions that are executed by the at least one processor to enable the at least one processor to perform the intelligent management method for flash memory data according to any one of claims 1 to 8.