CN108121666B - Garbage recovery method and device for flash memory - Google Patents

Garbage recovery method and device for flash memory Download PDF

Info

Publication number
CN108121666B
CN108121666B CN201711140040.6A CN201711140040A CN108121666B CN 108121666 B CN108121666 B CN 108121666B CN 201711140040 A CN201711140040 A CN 201711140040A CN 108121666 B CN108121666 B CN 108121666B
Authority
CN
China
Prior art keywords
garbage
recovery
threshold
flash memory
units
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201711140040.6A
Other languages
Chinese (zh)
Other versions
CN108121666A (en
Inventor
吴延赞
吴素宏
黄国炎
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Cloud Computing Technologies Co Ltd
Original Assignee
Chengdu Huawei Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Chengdu Huawei Technology Co Ltd filed Critical Chengdu Huawei Technology Co Ltd
Priority to CN201711140040.6A priority Critical patent/CN108121666B/en
Publication of CN108121666A publication Critical patent/CN108121666A/en
Application granted granted Critical
Publication of CN108121666B publication Critical patent/CN108121666B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0253Garbage collection, i.e. reclamation of unreferenced memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7205Cleaning, compaction, garbage collection, erase control

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System (AREA)

Abstract

The embodiment of the application discloses a garbage collection method and a garbage collection device of a flash memory, relates to the field of storage, and solves the problem of how to optimally reduce the write-in amplification phenomenon when a storage system adopts a global garbage collection mode. The specific scheme is as follows: determining that the garbage amount of N system recovery units is greater than or equal to a first threshold value, wherein the first threshold value is a critical value for garbage recovery of the garbage of the system recovery units, and N is an integer greater than or equal to 1; dividing the N system recovery units into M recovery groups according to the garbage amount of the N system recovery units, wherein M is an integer greater than or equal to 1, and M is less than or equal to N; and garbage collection is carried out on the garbage amount of the system recovery units included in the M recovery groups. The method and the device are used for the garbage recycling process of the flash memory.

Description

Garbage recovery method and device for flash memory
Technical Field
The embodiment of the application relates to the field of storage, in particular to a garbage recovery method and device for a flash memory.
Background
Currently, Read-Only Memory (ROM) is widely used in electronic or computer systems that do not require frequent data changes, such as flash Memory in Solid State Drives (SSD). When the flash memory stores a large amount of invalid data or the flash memory has a small storage space, it is necessary to release resources using a Garbage Collection (GC) mechanism. The garbage collection mechanism comprises single-disk garbage collection and global garbage collection. The system can identify cold and hot data, and the cold and hot data are separated, so that the cold data is reduced from being moved; and the system can identify invalid data, and reduce invalid data movement in the disk by recovering and releasing the invalid data through global garbage. Therefore, in the existing storage system, a global garbage collection mode is adopted for garbage collection, resources are released, and write amplification is reduced.
In the prior art, a system performs global garbage collection on more than two flash memories according to the distribution granularity of a system resource pool, that is, the size of a system recovery unit for global garbage collection is equal to the distribution granularity of the system resource pool, wherein the system recovery unit is composed of more than two recovery subunits, one recovery subunit corresponds to one flash memory, and the size of each recovery subunit is equal. However, garbage collection is required per disc collection unit for each single disc, and the collection subunit is smaller than the disc collection unit. Fig. 1 is a schematic diagram of a garbage recycling mechanism provided in the prior art. When the system executes global garbage collection, if the disk collection unit to which the collection subunit belongs includes valid data, the valid data still needs to be moved first, and then the disk collection unit is erased. Therefore, data written in the flash memory is rewritten, and the Write Amplification (WA) phenomenon cannot be optimally reduced.
Disclosure of Invention
The embodiment of the application provides a garbage collection method and device for a flash memory, which can optimally reduce the phenomenon of write amplification when a storage system adopts a global garbage collection mode to collect garbage.
In order to achieve the above purpose, the embodiment of the present application adopts the following technical solutions:
in a first aspect of the embodiments of the present application, a method for garbage collection of a flash memory is provided, including: firstly, determining that the garbage amount of the N system recovery units is larger than or equal to a first threshold value, then dividing the N system recovery units into M recovery groups according to the garbage amount of the N system recovery units, and performing garbage recovery on the garbage amount of the system recovery units included in the M recovery groups. The first threshold is a critical value for garbage recycling of garbage of the system recycling unit, N is an integer greater than or equal to 1, M is an integer greater than or equal to 1, and M is less than or equal to N. According to the garbage collection method of the flash memory, the N system recovery units are grouped according to the garbage amount of the N system recovery units based on the principle that the garbage amount of the data blocks distributed in the same time period is the same, the garbage amount of the system recovery units in the same time period is guaranteed to be in the same garbage amount level, and then the concurrent garbage collection is carried out on the system recovery units with the same (similar) garbage amount, so that the write-in amplification phenomenon is reduced optimally.
It should be noted that the timing of determining that the garbage amount of the N system recovery units is greater than or equal to the first threshold may be when the storage space of the system is insufficient (for example, only 10%), or when the garbage amount of the system reaches more than 60%, the system needs to perform garbage recovery.
With reference to the first aspect, in a possible implementation manner, dividing the N system recovery units into M recovery groups according to the garbage amount of the N system recovery units includes: sorting the 1 st recoverable threshold through the Mth recoverable threshold; comparing the garbage amount of the ith system recovery unit with a jth recoverable threshold value and a j +1 recoverable threshold value, wherein the jth recoverable threshold value is a recoverable threshold value of a jth recovery group, the j +1 recoverable threshold value is a recoverable threshold value of a jth +1 recovery group, the jth recoverable threshold value and the j +1 recoverable threshold value are two adjacent recoverable threshold values, i is an integer, i is from 1 to N, j is an integer, and j is from 1 to M; and when the garbage amount of the ith system recovery unit is greater than or equal to the jth recoverable threshold value and less than the j +1 recoverable threshold value, dividing the ith system recovery unit into a jth recovery group. Therefore, the system recovery units are grouped through the recoverable threshold value, the system recovery units with larger garbage amount are grouped into one group, so that the system recovery units with larger garbage amount can be conveniently subjected to garbage recovery, and therefore, less effective data are moved, and the write amplification phenomenon is optimally reduced.
With reference to the foregoing possible implementation manner, in another possible implementation manner, before determining that the garbage amount of the N system recycling units is greater than or equal to the first threshold, the method further includes: m recoverable thresholds are preconfigured. Therefore, the system recovery units are divided in time to recover the garbage.
With reference to the foregoing possible implementation manner, in another possible implementation manner, after determining that the garbage amount of the N system recycling units is greater than or equal to the first threshold, the method further includes: and determining M recyclable thresholds according to the garbage amount of the N system recycling units. Therefore, the system recovery unit is accurately divided by dynamically determining the recoverable threshold value in real time according to the garbage amount of the system recovery unit.
With reference to the foregoing possible implementation manners, in another possible implementation manner, performing garbage collection on garbage amount of system recovery units included in M recovery groups includes: and performing garbage collection on the garbage amount of the system recovery units included in the M recovery groups from large to small according to the M recoverable threshold values. Therefore, the garbage of the system recovery unit is recovered according to the direction of reducing the garbage amount of the system recovery unit, so that the resources can be released as soon as possible, data movement is reduced as much as possible, write amplification is reduced, and the available space of the flash memory is enlarged.
In order to achieve the optimized reduction of the write amplification phenomenon, with reference to the first aspect and the foregoing possible implementation manners, in another possible implementation manner, each system recycle unit includes P recycle subunits and a recycle subunit identifier of each recycle subunit, where the recycle subunit identifier is used to indicate a disk recycle unit of a flash memory to which the recycle subunit belongs, the P recycle subunits have the same size, one recycle subunit belongs to a part of the disk recycle unit of one flash memory, and P is the number of flash memories included in the system, and the garbage collection is performed on the garbage amount of the system recycle units included in M recycle groups, including: dividing recovery subunits included by the system recovery units in the jth recovery group according to the recovery subunit identifications; and carrying out garbage collection on the recovery subunits included by the system recovery units in the j recovery group after division in parallel.
In a second aspect of the embodiments of the present application, a garbage recycling device for a flash memory is provided, including: the system comprises a processing unit, a data processing unit and a data processing unit, wherein the processing unit is used for determining that the garbage amount of N system recovery units is greater than or equal to a first threshold value, the first threshold value is a critical value for garbage recovery of the garbage of the system recovery units, and N is an integer greater than or equal to 1; the processing unit is also used for dividing the N system recovery units into M recovery groups according to the garbage amount of the N system recovery units, wherein M is an integer greater than or equal to 1, and M is less than or equal to N; and the processing unit is also used for carrying out garbage collection on the garbage amount of the system recovery units included in the M recovery groups.
It should be noted that the functional modules in the second aspect may be implemented by hardware, or may be implemented by hardware executing corresponding software. The hardware or software includes one or more modules corresponding to the above-described functions. For example, a processor for performing the functions of the processing unit, and a memory for storing program instructions for the processor to process the garbage collection method of the flash memory according to the embodiment of the present application. The processor, the communication interface and the memory are connected through a bus and complete mutual communication. Specifically, reference may be made to the function of the behavior of the device in the garbage collection method for the flash memory provided in the first aspect.
In a third aspect of the embodiments of the present application, a garbage collection apparatus for a flash memory is provided, including: at least one processor, a memory, a flash memory, a communication interface, a communication bus; at least one processor is connected to the memory, the flash memory and the communication interface through a communication bus, the memory is used for storing execution instructions of the device, and when the processor runs, the processor executes the execution instructions of the device stored in the memory, so that the device executes the garbage collection method of the flash memory according to the first aspect or any one of the possible implementation manners of the first aspect.
In a fourth aspect of the embodiments of the present application, a storage device is provided, including the above garbage collection device of a flash memory, at least one processor, and a memory, where the garbage collection device of the flash memory, the at least one processor, and the memory are connected to each other.
In a fifth aspect of the embodiments of the present application, a computer storage medium is provided for storing computer software instructions for the apparatus, where the computer software instructions include a program designed to execute the garbage collection method for the flash memory.
In a sixth aspect of embodiments of the present application, there is provided a computer program product comprising instructions that, when run on an apparatus, enable the apparatus to perform the method of any of the above aspects.
In addition, for technical effects brought by any one of the design manners of the second aspect to the sixth aspect, reference may be made to technical effects brought by different design manners of the first aspect, and details are not described here.
In the embodiment of the present application, the name of the garbage collection apparatus of the flash memory does not limit the device itself, and in practical implementation, the devices may appear by other names. Provided that the function of each device is similar to the embodiments of the present application, and fall within the scope of the claims of the present application and their equivalents.
Drawings
FIG. 1 is a schematic diagram of a garbage recycling mechanism provided in the prior art;
fig. 2 is a schematic composition diagram of a garbage recycling apparatus for flash memory according to an embodiment of the present disclosure;
fig. 3 is a schematic composition diagram of a storage device according to an embodiment of the present application;
fig. 4 is a flowchart of a garbage collection method for a flash memory according to an embodiment of the present disclosure;
FIG. 5 is a schematic diagram illustrating a range of garbage amount of a recycling unit of the system according to an embodiment of the present disclosure;
fig. 6 is a schematic diagram illustrating garbage collection of a flash memory according to an embodiment of the present disclosure;
fig. 7 is a first schematic structural diagram of an apparatus for garbage collection of a flash memory according to an embodiment of the present disclosure;
fig. 8 is a schematic structural diagram of a device for garbage collection of a flash memory according to an embodiment of the present application.
Detailed Description
The terms "first," "second," and "third," etc. in the description and claims of this application and the above-described drawings are used for distinguishing between different objects and not for limiting a particular order.
In the embodiments of the present application, words such as "exemplary" or "for example" are used to mean serving as an example, instance, or illustration. Any embodiment or design described herein as "exemplary" or "e.g.," is not necessarily to be construed as preferred or advantageous over other embodiments or designs. Rather, use of the word "exemplary" or "such as" is intended to present concepts related in a concrete fashion.
For clarity and conciseness of the following descriptions of the various embodiments, a brief introduction to the related art is first given:
a ROM is a solid-state semiconductor memory that can only read out pre-stored data. The ROM is stable in stored data, the stored data can not be changed after power failure, and the ROM is commonly used for storing various fixed programs and data. Such as flash memory.
It should be noted that the data written in the flash memory cannot be directly updated, and can only be rewritten by sector overwriting. Erasing is required before overwriting, and the erasing operation cannot be performed on a sector, and can only be completed on a block of the magnetic disk, and before erasing the block, valid data needs to be read (moved) first, and then data stored on the block needs to be erased. Then, the new data is written together with the original valid data. For example, when a 4KB data needs to be written, the storage space is not enough, and in the worst case, there is no storage space in a block, but invalid data can be erased, so all data in the block is read into the buffer, the block is erased, the data in the whole block is updated in the buffer, and then new data is written into the block, the write amplification caused by this operation is that 4K data is actually written, resulting in a write operation of the whole block (512KB in total), that is, an amplification of 128 times. Meanwhile, the operation that only one step of writing 4KB is needed originally is changed into: the four-step operation of flash read (512KB) → cache change (4KB) → flash erase (512KB) → flash write (512KB) results in a significant increase in latency and a slow speed. Therefore, these repeated operations not only increase the amount of data written but also reduce the lifetime of the flash memory, but the increased writing also consumes the bandwidth of the flash memory, indirectly affecting the random write performance.
In addition, when the amount of invalid data stored in the flash memory is large or the storage space of the flash memory is small, it is necessary to perform garbage collection by using a garbage collection mechanism to release resources. The garbage collection mechanism comprises single-disk garbage collection and global garbage collection.
The single-disk garbage collection means that the disk performs garbage collection according to the disk collection unit (block). If no valid data in the block can be directly erased; if the effective data exists in the block, the disk carries and erases the data in the block unit.
The global garbage collection is to count the effective data and invalid data in the system, the garbage amount reaches the recoverable threshold of the system recovery unit, and the garbage collection is performed on the data stored in more than two ROMs according to the distribution granularity of the system resource pool. Or counting the valid data and invalid data in the system, when the garbage amount reaches the recoverable threshold of the system recovery unit and the system usage space is small, performing garbage recovery on the data stored in more than two ROMs according to the distribution granularity of the system resource pool. For example, the system includes 25 single disks, the allocation granularity of the system resource pool is 25M, and the allocation granularity of each single disk is 1M. Therefore, the system performs garbage collection for the size 1M of the collection subunit of each single disk according to the size 25M of the system collection unit.
Although the system performs global garbage collection, each time the garbage collection is performed for each single-disk collection subunit. And garbage collection is required for each single disc according to the disc collection unit. The recycling sub-unit is smaller than the disc recycling unit. If the disk recycling unit to which the recycling sub-unit belongs includes valid data, the valid data still needs to be moved first, and then one disk recycling unit of all disks of the whole system is erased. For example, the disk recycling unit of 8M shown in fig. 1.
If the system performs global garbage collection, the size of the recovery subunit is set to the size of the disk recovery unit, which may affect the system-level design, for example, the reserved resource of the cache needs to be increased; meanwhile, the system performance may be affected, for example, after the allocation granularity of the system resource pool is enlarged, IO imbalance on the disk may be caused, and finally the IO imbalance is fed back to the IOPS of the system. Therefore, the existing global garbage collection mechanism does not optimally reduce the write amplification phenomenon because the disk collection unit is inconsistent with the system collection unit.
It should be noted that, due to the blocks allocated in the same time period, the increasing trend of the garbage amount of the blocks is the same, i.e. the garbage amount of the data blocks is in the same (similar) proportion at the same time. Therefore, in order to solve the problem of optimally reducing the write amplification phenomenon when the storage system performs garbage collection by using a global garbage collection method, an embodiment of the present application provides a garbage collection method for a flash memory, and the basic principle is as follows: determining that the garbage amount of the N system recovery units is greater than or equal to a first threshold value, wherein the first threshold value is a critical value for garbage recovery of the garbage of the system recovery units; dividing the N system recovery units into M recovery groups according to the garbage amount of the N system recovery units; and garbage collection is carried out on the garbage amount of the system recovery units included in the M recovery groups. According to the garbage collection method of the flash memory, the N system recovery units are grouped according to the garbage amount of the N system recovery units based on the principle that the garbage amount of the data blocks distributed in the same time period is the same, the garbage amount of the system recovery units in the same time period is guaranteed to be in the same garbage amount level, and then the concurrent garbage collection is carried out on the system recovery units with the same (similar) garbage amount, so that the write-in amplification phenomenon is reduced optimally.
Embodiments of the present application will be described in detail below with reference to the accompanying drawings.
Fig. 2 is a schematic composition diagram of a garbage collection apparatus for flash memory according to an embodiment of the present disclosure, and as shown in fig. 2, the garbage collection apparatus for flash memory may include a processor 21, a memory 22, a communication interface 23, a communication bus 24, and a flash memory 25.
The following describes each component of the garbage collection device of the flash memory in detail with reference to fig. 2:
the processor 21 is a control center of the garbage collection apparatus of the flash memory, and may be a single processor or a collective term for a plurality of processing elements. In particular implementations, processor 21 may include, for example, a Central Processing Unit (CPU) or multiple CPUs such as CPU0 and CPU1 shown in fig. 2. The processor 21 may also be an Application Specific Integrated Circuit (ASIC), or one or more Integrated circuits configured to implement embodiments of the present Application, such as: one or more microprocessors (DSPs), or one or more Field Programmable Gate Arrays (FPGAs).
Taking the processor 21 as one or more CPUs as an example, the processor 21 can execute various functions of the garbage collection device of the flash memory by running or executing a software program stored in the memory 22 in the garbage collection device of the flash memory and calling data stored in the memory 22.
In one embodiment, the garbage collection apparatus of the flash memory may include a plurality of processors, such as the processor 21 and the processor 26 shown in fig. 2. Each of these processors may be a single-Core Processor (CPU) or a multi-Core Processor (CPU). A processor herein may refer to one or more devices, circuits, and/or processing cores for processing data (e.g., computer program instructions).
In the embodiment of the application, the processor is mainly used for determining that the garbage amount of the N system recovery units is greater than or equal to a first threshold, the first threshold is a critical value for garbage recovery of the garbage of the system recovery units, and N is an integer greater than or equal to 1; dividing the N system recovery units into M recovery groups according to the garbage amount of the N system recovery units, wherein M is an integer greater than or equal to 1, and M is less than or equal to N; and garbage collection is carried out on the garbage amount of the system recovery units included in the M recovery groups.
The Memory 22 may be a Read-Only Memory (ROM) or other type of static storage device that can store static information and instructions, a Random Access Memory (RAM) or other type of dynamic storage device that can store information and instructions, an electrically erasable Programmable Read-Only Memory (EEPROM), a Compact Disc Read-Only Memory (CD-ROM) or other optical Disc storage, optical Disc storage (including Compact Disc, laser Disc, optical Disc, digital versatile Disc, blu-ray Disc, etc.), a magnetic Disc storage medium or other magnetic storage device, or any other medium that can be used to carry or store desired program code in the form of instructions or data structures and that can be accessed by a computer, but is not limited to such. The memory 22 may be self-contained and coupled to the processor 21 via a communication bus 24. The memory 22 may also be integrated with the processor 21.
The memory 22 is used for storing software programs for executing the scheme of the application, and is controlled by the processor 21 to execute.
The communication interface 23 is used for communication with other devices or a communication network, and the communication interface 23 may include a receiving unit implementing a receiving function and a transmitting unit implementing a transmitting function.
The communication bus 24 may be an Industry Standard Architecture (ISA) bus, a Peripheral Component Interconnect (PCI) bus, an Extended ISA (EISA) bus, or the like. The bus may be divided into an address bus, a data bus, a control bus, etc. For ease of illustration, only one thick line is shown in FIG. 2, but it is not intended that there be only one bus or one type of bus.
The device architecture shown in fig. 2 does not constitute a limitation of the garbage collection of the flash memory, and may include more or fewer components than those shown, or some components may be combined, or a different arrangement of components. The garbage collection apparatus of the flash memory shown in fig. 2 may be an SSD including a flash memory.
As can be seen from the above description, the garbage collection method for the flash memory provided in the embodiment of the present application can be applied to a storage device. As shown in fig. 3, the storage device includes a processor 30, a memory 31, a garbage collection 32 for flash memory, and a power supply 33. The processor 30, the memory 31, the garbage collection device 32 of the flash memory, and the power supply 33 are connected via a system bus. The memory 31 and the garbage collection device 32 of the flash memory may be integrated in the same device, or may be independently disposed, which is not specifically limited in this embodiment of the present application.
The processor 30 may include at least one CPU, and each CPU may be a single-core processor (single-CPU) or a multi-core processor (multi-CPU). The plurality of processor cores may be time-shared or occupy memory blocks in the storage memory 31 at the same time. For convenience of description, the following description will be made by taking an example in which one processor includes one processor core.
The garbage collection device 32 of the Flash memory is a storage device using Flash particles as a storage medium, and may be an SSD, or may be another memory, which is not specifically limited in this embodiment of the present application. For convenience of description and understanding, in the embodiment of the present application, the garbage collection device 32 of the flash memory is illustrated as an SSD. The hardware structure of the garbage collection device of the flash memory can refer to fig. 2, and details are not repeated here.
The storage device is installed with an operating system and other application programs. The processor 30 may send an input/output (I/O) request to a garbage collection 32 of the flash memory. The I/O request may be a write data request or a read data request.
The power supply 33 includes a normal power supply and a backup power supply. The normal power supply and the standby power supply can be integrated in the same equipment or can be independent equipment. The power supply 33 supplies power to the processor 30, the memory 31 and the garbage collection device 32 of the flash memory to ensure the normal operation thereof. Optionally, the power supply 33 may be a capacitor, a nickel-metal hydride battery, or another battery capable of providing power for the processor 30, the memory 31, and the flash memory device 32, which is not specifically limited in this embodiment of the present invention.
The device architecture shown in fig. 3 does not constitute a limitation on the storage device and may include more or fewer components than shown, or some components may be combined, or a different arrangement of components.
Fig. 4 is a flowchart of a garbage collection method for a flash memory according to an embodiment of the present disclosure, and as shown in fig. 4, the method may include:
s401, determining that the garbage amount of the N system recovery units is larger than or equal to a first threshold value.
When the storage space of the system is insufficient (for example, only 10%), or the garbage amount of the system reaches more than 60%, the system needs to perform garbage collection. At this time, the system can perform garbage collection on the system according to the garbage collection method of the flash memory described in the embodiment of the present application, which is an implementation method of global garbage collection. The garbage amount of the system recovery unit may represent a specific numerical value of the garbage of the system recovery unit, and may also represent a ratio of the garbage of the system recovery unit to the stored data of the system recovery unit, where the stored data includes valid data and invalid data, and the garbage of the system recovery unit may be the invalid data. For example, the stored data of the system recovery unit is 4M, the amount of garbage of the system recovery unit may be expressed as 3M, or the amount of garbage of the system recovery unit may be expressed as 80%, i.e., 3.2M. The first threshold is a critical value for garbage collection of the garbage collection unit of the system, and may be, for example, 20% or 30%, and may be set empirically. N is an integer of 1 or more.
S402, dividing the N system recovery units into M recovery groups according to the garbage amount of the N system recovery units.
Because the difference exists between the garbage amount of the system recovery units, the garbage amount of each system recovery unit can be compared with each recoverable threshold according to a plurality of recoverable thresholds, the N system recovery units are divided, the system recovery units with smaller difference of the garbage amount can be divided into the same recovery group, and the system recovery units with larger difference of the garbage amount can be divided into different recovery groups. The garbage amount of the system recovery units divided into the same recovery group can be different, but the difference value of the garbage amount of any two system recovery units is smaller. Of course, there are also systems that can have the same amount of garbage collected for the units that are classified into the same collection group. The garbage amount of the system recovery units divided into different recovery groups is different, and the difference of the garbage amount of any two system recovery units is larger. For example, the 1 st recyclable threshold to the Mth recyclable threshold are sorted, then the amount of garbage of the i-th system recycling unit is compared with the j-th recyclable threshold and the j + 1-th recyclable threshold, and when the amount of garbage of the i-th system recycling unit is greater than or equal to the j-th recyclable threshold and is less than the j + 1-th recyclable threshold, the i-th system recycling unit is classified into the j-th recycling group. The jth recoverable threshold value is a recoverable threshold value of a jth recovery group, the jth +1 recoverable threshold value is a recoverable threshold value of a jth +1 recovery group, the jth recovery group and the jth +1 recovery group are any two adjacent recovery groups in M recovery groups, i is an integer, i is from 1 to N, j is an integer, and j is from 1 to M.
Wherein M is less than or equal to N. If the difference value between the garbage amount of the N system recovery units is large, each system recovery unit forms a group, and M is equal to N; if the difference between the garbage amount of some system recovery units is smaller and the difference between the garbage amount of some system recovery units is larger in the N system recovery units, M is smaller than N.
It should be noted that, the system may configure M recoverable thresholds in advance in a static manner, and after the system determines the garbage amount of N system recovery units, directly compare the garbage amount of the N system recovery units with the M recoverable thresholds, and divide the N system recovery units. Alternatively, the system may determine the M recoverable thresholds in a dynamic manner based on a detailed analysis of the amount of garbage in the N system recovery units. For example, the retrievability threshold may be set to 80%, 60%, 50%, 40%, and so on. The method for determining the recoverable threshold value is not limited in the embodiments of the present application, and is only an example, and may be any method in practical applications.
Optionally, the system may implement grouping the N system recovery units in a linked list. Different recycle groups are equivalent to a linked list, and the system recycle units which are divided into one recycle group are equivalent to connecting the current system recycle units to the corresponding linked list. Each linked list corresponds to a recyclable threshold.
In addition, the amount of garbage collected by the system collection unit is usually relatively large within a range, and is not a relatively scattered arbitrary amount of generated garbage. Thus, when the system is setting the threshold for reclaimability, the threshold for reclaimability may be set according to the sparse region and the tight region. The difference value after the recoverable threshold value in the sparse area is large, and the difference value of the garbage amount of the system recovery units of different recovery groups in the sparse area is large. The difference after the recoverable threshold in the compact is smaller, the difference in the amount of garbage of the system recovery units of the different recovery groups comprised by the compact is smaller.
For example, assuming that the first threshold is w, the current average garbage amount is g, and the ratio of the garbage amount in the compact region before and after the average garbage amount is σ, wherein σ ≦ MIN ((g-w), (100% -g)), the garbage amount in the sparse region and the garbage amount in the compact region are w ≦ E from small to large1<E2<E3Less than or equal to 100 percent, wherein:
E1=[w,g-σ),
E2=[g-σ,g+σ),
E3=[g+σ,100%]。
for example, as shown in fig. 5. The difference in the amount of waste of the systematic recovery units of the different recovery groups within the sparse zone of 20% to 40% may be 10%. The difference in the amount of waste of the systematic recovery units of the different recovery groups in a tight area of 40% to 60% may be 1%. The difference in the amount of waste of the systematic recovery units of the different recovery groups within the sparse zone of 60% to 100% may be 5%.
The gradient values of the linked lists of the three areas are respectively t1,t2,t3In general, t1=t3>t2It can be obtained that the total number of the linked lists of the three areas is respectively:
Figure BDA0001471299580000081
Figure BDA0001471299580000082
Figure BDA0001471299580000083
the linked list index range is [0, L1+L2+L3]。
Therefore, the system can adjust the garbage quantity difference value of the system recovery units among the recovery groups, namely dynamically refine the range of the sorted garbage quantity according to the average garbage quantity of the current system and refine the garbage quantity sorting.
And S403, performing garbage collection on the garbage amount of the system recovery units included in the M recovery groups.
And performing garbage collection on the garbage amount of the system recovery units included in the M recovery groups from large to small according to the M recoverable threshold values. Each system recovery unit of each recovery group comprises P recovery subunits and a recovery subunit identifier of each recovery subunit, P is the number of flash memories included in the system, the sizes of the P recovery subunits are the same, one recovery subunit belongs to one part of a flash memory disk recovery unit, the recovery subunit identifiers are used for representing the flash memory disk recovery units to which the recovery subunits belong, the recovery subunits included in the system recovery units in the jth recovery group are divided according to the recovery subunit identifiers, the recovery subunits included in the system recovery units in the jth recovery group after division are subjected to garbage recovery in parallel, namely the recovery subunits belonging to the same flash memory disk recovery unit are divided into one group, and the flash memory disk recovery units are subjected to garbage recovery in parallel. If the effective data exists in the disk recovery unit of the flash memory, the effective data is moved, and garbage recovery is carried out on the disk recovery unit of the flash memory.
For example, as shown in FIG. 6, assume that the system has A, B, C and D four single disks. At time T0, four blocks a1, B1, C1, and D1 are allocated to write data at the granularity of 1M per single disc, and at time T1, four blocks a2, B2, C2, and D2 are allocated to write data at the granularity of 1M per single disc. After a period of time, the garbage amount of the system reaches more than 60%, at the moment, the system is subjected to overall garbage recycling, the system recycling unit of the overall garbage recycling is 4M, and each single plate is 1M for garbage recycling. The amount of garbage from the system recovery unit 1 to the system recovery unit 7 is 87.5%, and the amount of garbage from the system recovery unit 8 to the system recovery unit 12 is 62.5%, the system recovery unit 1 to the system recovery unit 7 are divided into a recovery group 1, and the system recovery unit 8 to the system recovery unit 12 are divided into a recovery group 2. The garbage collection is performed on the system recovery units 1 to 7 with the garbage amount of 87.5%, namely, the garbage of the recovery subunits belonging to the disk recovery unit A1 of the single disk A in the system recovery units 1 to 7 is divided into a group, the garbage of the recovery subunits belonging to the disk recovery unit B1 of the single disk B is divided into a group, the garbage of the recovery subunits belonging to the disk recovery unit C1 of the single disk C is divided into a group, and the garbage of the recovery subunits belonging to the disk recovery unit D1 of the single disk D is divided into a group for parallel recovery. Wherein, A1, B1, C1 and D1 can be the identity of the recovery subunit. Then, garbage collection is performed on the system recovery units 8 to 12 with the garbage amount of 62.5%, that is, garbage belonging to the recovery sub-units of the disk recovery unit a2 of the single disk a in the system recovery units 8 to 12 is divided into one group, garbage belonging to the recovery sub-units of the disk recovery unit B2 of the single disk B is divided into one group, garbage belonging to the recovery sub-units of the disk recovery unit C2 of the single disk C is divided into one group, and garbage belonging to the recovery sub-units of the disk recovery unit D2 of the single disk D is divided into one group for parallel recovery.
In addition, the amount of garbage for a system recovery unit may also increase over time, and if the amount of garbage for a system recovery unit in a recovery group with a smaller recoverable threshold increases, the system recovery unit may be repartitioned into a recovery group with a larger recoverable threshold. The system may also support node elimination, i.e. when the recycle group with the larger recoverable threshold includes fewer system recycle units, the system recycle units included in the recycle group with the smaller recoverable threshold may be divided into the recycle group with the larger recoverable threshold for the same flash memory.
It is understood that the garbage collection apparatus of the flash memory includes hardware structures and/or software modules for performing the above functions. Those of skill in the art will readily appreciate that the present application is capable of hardware or a combination of hardware and computer software implementing the various illustrative algorithm steps described in connection with the embodiments disclosed herein. Whether a function is performed as hardware or computer software drives hardware depends upon the particular application and design constraints imposed on the solution. Skilled artisans may implement the described functionality in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the present application.
In the embodiment of the present application, the garbage collection device of the flash memory may be divided into the functional modules according to the method example, for example, each functional module may be divided corresponding to each function, or two or more functions may be integrated into one processing module. The integrated module can be realized in a hardware mode, and can also be realized in a software functional module mode. It should be noted that, in the embodiment of the present application, the division of the module is schematic, and is only one logic function division, and there may be another division manner in actual implementation.
In the case of dividing each function module according to each function, fig. 7 shows a schematic diagram of a possible composition of the garbage collection apparatus of the flash memory according to the foregoing embodiments, and as shown in fig. 7, the garbage collection apparatus of the flash memory may include: a processing unit 71 and a flash memory 72.
Among them, the processing unit 71, the garbage collection apparatus for supporting flash memory, executes S401, S402 and S403 in the garbage collection method for flash memory shown in fig. 4.
It should be noted that all relevant contents of each step related to the above method embodiment may be referred to the functional description of the corresponding functional module, and are not described herein again.
The garbage collection device of the flash memory provided by the embodiment of the application is used for executing the garbage collection method of the flash memory, so that the same effect as the garbage collection method of the flash memory can be achieved.
In the case of an integrated unit, fig. 8 shows another possible composition diagram of the garbage collection apparatus for flash memory according to the above embodiment. As shown in fig. 8, the garbage collection apparatus of the flash memory includes: a processing module 81 and a communication module 82.
The processing module 81 is configured to control and manage the operation of the garbage collection apparatus of the flash memory, for example, the processing module 81 is configured to support the garbage collection apparatus of the flash memory to perform S401, S402, and S403 in fig. 4 and/or other processes for the technology described herein. The garbage collection apparatus of the flash memory may further include a storage module 83 for storing program codes and data of the garbage collection apparatus of the flash memory.
The processing module 81 may be a processor or a controller. Which may implement or perform the various illustrative logical blocks, modules, and circuits described in connection with the disclosure. A processor may also be a combination of computing functions, e.g., comprising one or more microprocessors, a DSP and a microprocessor, or the like. The communication module 82 may be a communication interface or the like. The storage module 83 may be a memory.
When the processing module 81 is a processor, the communication module 82 is a communication interface, and the storage module 83 is a memory, the garbage collection device of the flash memory according to the embodiment of the present application may be the garbage collection device of the flash memory shown in fig. 2.
Through the above description of the embodiments, it is clear to those skilled in the art that, for convenience and simplicity of description, the foregoing division of the functional modules is merely used as an example, and in practical applications, the above function distribution may be completed by different functional modules according to needs, that is, the internal structure of the device may be divided into different functional modules to complete all or part of the above described functions.
In the several embodiments provided in the present application, it should be understood that the disclosed apparatus and method may be implemented in other ways. For example, the above-described device embodiments are merely illustrative, and for example, the division of the modules or units is only one logical functional division, and there may be other divisions when actually implemented, for example, a plurality of units or components may be combined or may be integrated into another device, or some features may be omitted, or not executed. In addition, the shown or discussed mutual coupling or direct coupling or communication connection may be an indirect coupling or communication connection through some interfaces, devices or units, and may be in an electrical, mechanical or other form.
The units described as separate parts may or may not be physically separate, and parts displayed as units may be one physical unit or a plurality of physical units, that is, may be located in one place, or may be distributed in a plurality of different places. Some or all of the units can be selected according to actual needs to achieve the purpose of the solution of the embodiment.
In addition, functional units in the embodiments of the present application may be integrated into one processing unit, or each unit may exist alone physically, or two or more units are integrated into one unit. The integrated unit can be realized in a form of hardware, and can also be realized in a form of a software functional unit.
The integrated unit, if implemented in the form of a software functional unit and sold or used as a stand-alone product, may be stored in a readable storage medium. Based on such understanding, the technical solutions of the embodiments of the present application may be essentially or partially contributed to by the prior art, or all or part of the technical solutions may be embodied in the form of a software product, where the software product is stored in a storage medium and includes several instructions to enable a device (which may be a single chip, a chip, or the like) or a processor (processor) to execute all or part of the steps of the methods described in the embodiments of the present application. And the aforementioned storage medium includes: various media capable of storing program codes, such as a usb disk, a removable hard disk, a Read-Only Memory (ROM), a Random Access Memory (RAM), a magnetic disk, or an optical disk.
The above description is only an embodiment of the present application, but the scope of the present application is not limited thereto, and any changes or substitutions within the technical scope of the present disclosure should be covered by the scope of the present application. Therefore, the protection scope of the present application shall be subject to the protection scope of the claims.

Claims (14)

1. A garbage collection method of a flash memory is characterized by comprising the following steps:
determining that the garbage amount of N system recovery units is greater than or equal to a first threshold value, wherein the first threshold value is a critical value for garbage recovery of the garbage of the system recovery units, and N is an integer greater than or equal to 1;
dividing the N system recovery units into M recovery groups according to the garbage amount of the N system recovery units, wherein M is an integer greater than or equal to 1, and M is less than or equal to N;
carrying out garbage collection on the garbage amount of the system recovery units included in the M recovery groups;
wherein, the dividing the N system recovery units into M recovery groups according to the garbage amount of the N system recovery units comprises:
sorting the 1 st recoverable threshold through the Mth recoverable threshold;
comparing the garbage amount of the ith system recycling unit with a jth recyclable threshold and a j +1 recyclable threshold, wherein the jth recyclable threshold is a recyclable threshold of a jth recycling group, the j +1 recyclable threshold is a recyclable threshold of a jth +1 recycling group, the jth recyclable threshold and the j +1 recyclable threshold are two adjacent recyclable thresholds, i is an integer, i is from 1 to N, j is an integer, and j is from 1 to M;
when the garbage amount of the ith system recovery unit is greater than or equal to the jth recoverable threshold and less than the j +1 recoverable threshold, dividing the ith system recovery unit into the jth recovery group.
2. The method of claim 1, wherein prior to the determining that the amount of garbage for the N system recovery units is greater than or equal to the first threshold, the method further comprises:
m recoverable thresholds are preconfigured.
3. The method of claim 1, wherein after the determining that the amount of garbage for the N system recovery units is greater than or equal to the first threshold, the method further comprises:
and determining M recyclable thresholds according to the garbage amount of the N system recycling units.
4. The method according to claim 2 or 3, wherein the garbage collection of the garbage amount of the system recovery units included in the M recovery groups comprises:
and performing garbage collection on the garbage amount of the system recovery units included in the M recovery groups from large to small according to the M recoverable threshold values.
5. The method according to claim 4, wherein each of the system recycle units includes P recycle subunits and a recycle subunit identifier of each of the recycle subunits, the recycle subunit identifiers are used for indicating disk recycle units of flash memories to which the recycle subunits belong, the P recycle subunits have the same size, one recycle subunit belongs to a part of a disk recycle unit of one flash memory, P is the number of flash memories included in a system, and the garbage recycling the garbage amount of the system recycle units included in the M recycle groups includes:
dividing recovery subunits included in the system recovery units in the jth recovery group according to the recovery subunit identifications, wherein j is an integer and is 1-M;
and performing garbage collection on the recovery subunits included in the system recovery units in the j recovery group after division in parallel.
6. A garbage collection device for a flash memory, comprising:
the system comprises a processing unit and a control unit, wherein the processing unit is used for determining that the garbage amount of N system recovery units is greater than or equal to a first threshold value, the first threshold value is a critical value for garbage recovery of the garbage of the system recovery units, and N is an integer greater than or equal to 1;
the processing unit is further configured to divide the N system recovery units into M recovery groups according to the garbage amount of the N system recovery units, where M is an integer greater than or equal to 1, and M is less than or equal to N;
the processing unit is also used for carrying out garbage collection on the garbage amount of the system recovery units included in the M recovery groups;
wherein the processing unit is specifically configured to:
sorting the 1 st recoverable threshold through the Mth recoverable threshold;
comparing the garbage amount of the ith system recycling unit with a jth recyclable threshold and a j +1 recyclable threshold, wherein the jth recyclable threshold is a recyclable threshold of a jth recycling group, the j +1 recyclable threshold is a recyclable threshold of a jth +1 recycling group, the jth recyclable threshold and the j +1 recyclable threshold are two adjacent recyclable thresholds, i is an integer, i is from 1 to N, j is an integer, and j is from 1 to M;
when the garbage amount of the ith system recovery unit is greater than or equal to the jth recoverable threshold and less than the j +1 recoverable threshold, dividing the ith system recovery unit into the jth recovery group.
7. The apparatus of claim 6,
the processing unit is further configured to pre-configure M recyclable thresholds.
8. The apparatus of claim 6,
the processing unit is further configured to determine M recoverable threshold values according to the garbage amount of the N system recovery units.
9. The apparatus according to claim 7 or 8, wherein the processing unit is specifically configured to:
and performing garbage collection on the garbage amount of the system recovery units included in the M recovery groups from large to small according to the M recoverable threshold values.
10. The apparatus according to claim 9, wherein each of the system recycle units includes P recycle subunits and a recycle subunit identifier of each of the recycle subunits, the recycle subunit identifiers are used for indicating the disk recycle units of the flash memories to which the recycle subunits belong, the P recycle subunits have the same size, one recycle subunit belongs to a part of the disk recycle unit of one flash memory, P is the number of flash memories included in the system, and the processing unit is specifically configured to:
dividing recovery subunits included in the system recovery units in the jth recovery group according to the recovery subunit identifications, wherein j is an integer and is 1-M;
and performing garbage collection on the recovery subunits included in the system recovery units in the j recovery group after division in parallel.
11. A garbage collection device for a flash memory, comprising: at least one processor, a memory, a flash memory, a communication interface, a communication bus; the at least one processor is connected with the memory, the flash memory and the communication interface through a communication bus, the memory is used for storing execution instructions of the garbage collection device of the flash memory, when the processor runs, the processor executes the execution instructions of the garbage collection device of the flash memory stored in the memory, and the garbage collection device of the flash memory executes the garbage collection method of the flash memory according to any one of claims 1 to 5.
12. A storage device comprising the flash memory garbage collection apparatus of claim 11, at least one processor, and a memory, wherein the flash memory garbage collection apparatus, the at least one processor, and the memory are interconnected.
13. A computer-readable storage medium comprising instructions that, when executed on a garbage collection apparatus of a flash memory, cause the garbage collection apparatus of the flash memory to perform the garbage collection method of the flash memory according to any one of claims 1 to 5.
14. A garbage collection device for flash memory, wherein the device is in the form of a chip, and the device comprises a processor and a memory, the memory is coupled to the processor and is configured to store program instructions and data of the device, and the processor is configured to execute the program instructions stored in the memory, so that the device performs the method according to any one of claims 1 to 5.
CN201711140040.6A 2017-11-16 2017-11-16 Garbage recovery method and device for flash memory Active CN108121666B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711140040.6A CN108121666B (en) 2017-11-16 2017-11-16 Garbage recovery method and device for flash memory

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711140040.6A CN108121666B (en) 2017-11-16 2017-11-16 Garbage recovery method and device for flash memory

Publications (2)

Publication Number Publication Date
CN108121666A CN108121666A (en) 2018-06-05
CN108121666B true CN108121666B (en) 2020-09-04

Family

ID=62228546

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711140040.6A Active CN108121666B (en) 2017-11-16 2017-11-16 Garbage recovery method and device for flash memory

Country Status (1)

Country Link
CN (1) CN108121666B (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111078588B (en) * 2019-12-17 2022-03-25 北京三快在线科技有限公司 Garbage recycling method, device, equipment and storage medium
CN116820351B (en) * 2023-07-21 2024-04-09 北京得瑞领新科技有限公司 Cold and hot data calibration method and device, storage medium and electronic equipment

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7617264B1 (en) * 2004-04-15 2009-11-10 Sun Microsystems, Inc. Parallel remembered-set processing respecting popular-object detection
CN105528301A (en) * 2015-12-07 2016-04-27 中国人民解放军信息工程大学 NAND Flash memory garbage collection method
CN106681935A (en) * 2016-12-29 2017-05-17 郑州云海信息技术有限公司 Trash recycling method for solid state disk
CN106980661A (en) * 2017-03-20 2017-07-25 北京金山安全软件有限公司 Method and device for cleaning data files in mobile terminal and electronic equipment

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9946483B2 (en) * 2015-12-03 2018-04-17 Sandisk Technologies Llc Efficiently managing unmapped blocks to extend life of solid state drive with low over-provisioning

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7617264B1 (en) * 2004-04-15 2009-11-10 Sun Microsystems, Inc. Parallel remembered-set processing respecting popular-object detection
CN105528301A (en) * 2015-12-07 2016-04-27 中国人民解放军信息工程大学 NAND Flash memory garbage collection method
CN106681935A (en) * 2016-12-29 2017-05-17 郑州云海信息技术有限公司 Trash recycling method for solid state disk
CN106980661A (en) * 2017-03-20 2017-07-25 北京金山安全软件有限公司 Method and device for cleaning data files in mobile terminal and electronic equipment

Also Published As

Publication number Publication date
CN108121666A (en) 2018-06-05

Similar Documents

Publication Publication Date Title
CN110226157B (en) Dynamic memory remapping for reducing line buffer conflicts
Kim et al. Exploring the design space of page management for {Multi-Tiered} memory systems
US9529719B2 (en) Dynamic multithreaded cache allocation
CN107506136B (en) Garbage recycling method and device
CN109358809B (en) RAID data storage system and method
CN103927277A (en) CPU (central processing unit) and GPU (graphic processing unit) on-chip cache sharing method and device
Zhang et al. Deterministic crash recovery for NAND flash based storage systems
CN103902475B (en) Solid state disk concurrent access method and device based on queue management mechanism
CN114371813A (en) Identification and classification of write stream priorities
US10642727B1 (en) Managing migration events performed by a memory controller
US11429314B2 (en) Storage device, storage system and operating method thereof
CN104272277A (en) Apparatus and method for fast cache shutdown
CN108121666B (en) Garbage recovery method and device for flash memory
CN114968839A (en) Hard disk garbage recycling method, device and equipment and computer readable storage medium
US10459662B1 (en) Write failure handling for a memory controller to non-volatile memory
CN109213423B (en) Address barrier-based lock-free processing of concurrent IO commands
CN116342365A (en) Techniques for expanding system memory via use of available device memory
CN102597972A (en) Virtual computer system, area management method, and program
US10922137B2 (en) Dynamic thread mapping
CN100520737C (en) Caching system, method and computer system
Zhu et al. A preliminary study: towards parallel garbage collection for NAND flash-based SSDs
Caulfield et al. Gordon: An improved architecture for data-intensive applications
He et al. RTFTL: design and implementation of real-time FTL algorithm for flash memory
Lee et al. Waltz: Leveraging zone append to tighten the tail latency of lsm tree on zns ssd
Jung et al. LINK-GC: a preemptive approach for garbage collection in NAND flash storages

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20220214

Address after: 550025 Huawei cloud data center, jiaoxinggong Road, Qianzhong Avenue, Gui'an New District, Guiyang City, Guizhou Province

Patentee after: Huawei Cloud Computing Technology Co.,Ltd.

Address before: No. 1899 Xiyuan Avenue, high tech Zone (West District), Chengdu, Sichuan 610041

Patentee before: Chengdu Huawei Technologies Co.,Ltd.

TR01 Transfer of patent right