CN111414138A - Wear leveling method and device for solid state disk - Google Patents

Wear leveling method and device for solid state disk Download PDF

Info

Publication number
CN111414138A
CN111414138A CN202010195586.7A CN202010195586A CN111414138A CN 111414138 A CN111414138 A CN 111414138A CN 202010195586 A CN202010195586 A CN 202010195586A CN 111414138 A CN111414138 A CN 111414138A
Authority
CN
China
Prior art keywords
queue
data
data block
cold
block
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202010195586.7A
Other languages
Chinese (zh)
Other versions
CN111414138B (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.)
Rongming Microelectronics Jinan Co ltd
Original Assignee
Qingdao Rongming Semiconductor 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 Qingdao Rongming Semiconductor Co ltd filed Critical Qingdao Rongming Semiconductor Co ltd
Priority to CN202010195586.7A priority Critical patent/CN111414138B/en
Publication of CN111414138A publication Critical patent/CN111414138A/en
Application granted granted Critical
Publication of CN111414138B publication Critical patent/CN111414138B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

The invention provides a method and a device for wear leveling of a solid state disk, which are used for reducing the expenditure of system memory resources and improving the processing efficiency of wear leveling operation. The solid state disk wear leveling method comprises the following steps: acquiring the time stamps of the head data blocks in the cold data queue, wherein the data blocks in the cold data queue are arranged according to the sequence of the time stamps from early to late; if the time difference between the acquired timestamp and the current time is not greater than a preset cold data migration threshold, acquiring the erasing times of a plurality of data blocks at the front section of the cold data queue; and if the difference value between the erasing times of any one of the obtained data blocks in the front section and the erasing times of the data block at the tail of the idle queue is larger than a preset abrasion balance threshold value, starting abrasion balance operation, wherein the idle data blocks in the idle queue are arranged in the sequence of the erasing times from small to large.

Description

Wear leveling method and device for solid state disk
Technical Field
The invention relates to the technical field of solid state disks, in particular to a method and a device for wear leveling of a solid state disk.
Background
A Solid State Disk (SSD) is a computer storage device mainly using a flash memory as a permanent memory. The flash memory is used as a storage medium and is divided into a plurality of data blocks, and each block needs to be erased into a free data block before being written. If the written data is updated, the new data will be written to a different physical address, and the data corresponding to the old address is marked as invalid, which is also called data garbage. Through rubbish recovery, can promote SSD's utilization efficiency.
Garbage collection, data retention and wear leveling are important functions of solid state disk design. As the amount of data written increases, the number of free data blocks decreases, garbage collection migrates valid data from the source blocks to the target blocks, after which the source blocks can be erased to free data blocks, thereby freeing up space occupied by invalid data. The free data blocks are managed by a queue and can be sorted from small to large according to the erasing times. Garbage collection typically occurs when there is less available space, which means that the free data block queue is not large, regardless of the update efficiency of queue insert ordering and deletion. Written data may be subject to read disturb and become unreliable if stored for too long a time. Data retention is the migration of data that has been read disturbed or stored for too long from a source block to a target block.
The read times of each data block are updated at run-time, and when the read times exceed a threshold value, the data blocks can be directly placed into an emergency garbage collection queue. Each free data block is time stamped when it is first written, its value remaining unchanged until the data block is erased and rewritten. When writing data to a new free block or erasing a data block, the time stamp of the data block may be added to the tail of a queue or deleted from the queue. The queue is naturally ordered by time stamps, called a cold data queue, with the earlier the time stamp the colder the data, and later the time stamp the hotter it.
The erase times can indicate the amount of wear of the data blocks, and wear leveling requires that data be migrated from a source block with a high erase time to a target block with a low erase time when the difference between the highest and lowest erase times exceeds a threshold value, so as to prolong the service life.
In the prior art, a separate wear queue is required to track the number of erasing times, and the size of the queue is the number of all data blocks in the flash memory of the solid state disk and needs to be sorted according to the number of erasing times. The garbage recycling can continuously generate updating insertion and deletion operations, and due to the large abrasion queues, corresponding memory and calculated amount are needed for maintaining large sequencing queues, so that the expenditure of system memory resources is increased, and the processing efficiency of abrasion balance operation is reduced.
Disclosure of Invention
The embodiment of the invention provides a method and a device for wear leveling of a solid state disk, which are used for reducing the expenditure of system memory resources and improving the processing efficiency of wear leveling operation.
In a first aspect, a method for wear leveling of a solid state disk is provided, including:
acquiring the time stamps of the head data blocks in the cold data queue, wherein the data blocks in the cold data queue are arranged according to the sequence of the time stamps from early to late;
if the time difference between the acquired timestamp and the current time is not greater than a preset cold data migration threshold, acquiring the erasing times of a plurality of data blocks at the front section of the cold data queue;
and if the difference value between the erasing times of any one data block in the plurality of data blocks at the front section and the erasing times of the data block at the tail of the idle queue is larger than a preset abrasion balance threshold value, starting abrasion balance operation, wherein the idle data blocks in the idle queue are arranged in the sequence of the erasing times from small to large.
In one embodiment, initiating a wear leveling operation specifically includes:
migrating effective data in a first source data block to a first target data block at the tail of a free queue, wherein the first source data block comprises at least one data block at the front section of the cold data queue;
determining the recycling grade of the first source data block according to the effective data proportion in the first source data block;
and according to the recycling grade of the first source data block, putting the first source data block into a recycling queue of a corresponding grade.
In an implementation manner, the method for wear leveling of a solid state disk provided in the embodiment of the present invention further includes:
adding a timestamp to the first target data block according to the data migration time;
and placing the first target data block at the tail of the cold data queue.
In an implementation manner, the method for wear leveling of a solid state disk provided in the embodiment of the present invention further includes:
when a data writing request is received, writing data to be written into a second target data block at the head of the idle queue;
adding a timestamp of the second target data block according to the writing time;
and placing the second target data block at the tail of the cold data queue.
In an implementation manner, the method for wear leveling of a solid state disk provided in the embodiment of the present invention further includes:
in the process of writing the data to be written, if the second target data block is full, deleting the second target data block from the idle queue;
determining the recovery grade of the second target data block according to the proportion of the effective data in the second target data block;
and according to the recycling grade of the second target data block, putting the second target data block into a recycling queue of a corresponding grade.
In one embodiment, the de-allocated queues further include an emergency de-allocated queue;
the method further comprises the following steps:
if the data capacity of the free queue is lower than a preset recovery starting threshold value or the emergency recovery queue is not empty, selecting a data block at the head of the recovery queue with the highest recovery grade as a second source data block;
migrating the effective data in the second source data block to a third target data block at the tail of the free queue;
erasing the data in the second source data block;
and inserting the second source data block into the idle queue according to the erasing times of the second source data block.
In an implementation manner, the method for wear leveling of a solid state disk provided in the embodiment of the present invention further includes:
in the data reading and writing process, if a data reading and writing error is detected, deleting the corresponding data block from the idle queue or the non-emergency recovery queue; and added to the emergency reclaim queue.
In a second aspect, a solid state disk wear leveling apparatus is provided, including:
the first acquisition unit is used for acquiring the time stamps of the head data blocks in the cold data queue, and the data blocks in the cold data queue are arranged according to the sequence of the time stamps from early to late;
a second obtaining unit, configured to obtain the number of times of erasing a plurality of data blocks in a front segment of the cold data queue if a time difference between the timestamp obtained by the first obtaining unit and the current time is not greater than a preset cold data migration threshold;
and the processing unit is used for starting the wear leveling operation if the difference value between the erasing times of any one of the plurality of data blocks in the front section acquired by the second acquisition unit and the erasing times of the data block at the tail of the free queue is greater than a preset wear leveling threshold, and the free data blocks in the free queue are arranged in the sequence from small to large in the erasing times.
In an embodiment, the processing unit is specifically configured to migrate valid data in a first source data block to a first target data block at the tail of a free queue, where the first source data block includes at least one data block in a front section of the cold data queue; determining the recycling grade of the first source data block according to the effective data proportion in the first source data block; and according to the recycling grade of the first source data block, putting the first source data block into a recycling queue of a corresponding grade.
In one embodiment, the processing unit is further configured to add a timestamp to the first target data block according to a data migration time; and placing the first target data block at the tail of the cold data queue.
In an embodiment, the processing unit is further configured to, when a data write request is received, write data to be written into a second target data block at the head of the idle queue; adding a timestamp of the second target data block according to the writing time; and placing the second target data block at the tail of the cold data queue.
In an embodiment, the processing unit is further configured to, during writing the data to be written, delete the second target data block from the idle queue if the second target data block is full; determining the recovery grade of the second target data block according to the proportion of the effective data in the second target data block; and according to the recycling grade of the second target data block, putting the second target data block into a recycling queue of a corresponding grade.
In one embodiment, the de-allocated queues further include an emergency de-allocated queue;
the processing unit is further configured to select a data block at the head of the recovery queue with the highest recovery level as a second source data block if the free queue data capacity is lower than a preset recovery starting threshold or the emergency recovery queue is not empty; migrating the effective data in the second source data block to a third target data block at the tail of the free queue; erasing the data in the second source data block; and inserting the second source data block into the idle queue according to the erasing times of the second source data block.
In an embodiment, the processing unit is further configured to, during data reading and writing, delete a corresponding data block from the idle queue or the non-emergency recycle queue if a data reading and writing error is detected; and added to the emergency reclaim queue.
In a third aspect, a computing device is provided, the computing device comprising: a memory, a processor and a computer program stored on the memory and executable on the processor, the computer program, when executed by the processor, implementing the steps of any of the methods described above.
In a fourth aspect, a computer storage medium is provided, on which a computer program is stored, which, when being executed by a processor, carries out the steps of any of the methods described above.
By adopting the technical scheme, the invention at least has the following advantages:
in the method and the device for wear leveling of the solid state disk, the data blocks in the idle queue are arranged in the sequence from small to large in the erasing times, and the cold data queue is arranged in the sequence from early to late in the time stamps, so that the erasing times of the data blocks at the head of the cold data queue are relatively small, whether wear leveling is started or not can be judged by comparing the erasing times of the data blocks at the head of the cold data queue and the tail of the idle queue, wear leveling is realized by multiplexing the cold data queue and the idle queue in the process, and the wear leveling queue is not required to be maintained, so that the overhead of system memory resources is reduced.
Drawings
Fig. 1 is a schematic flowchart of a method for wear leveling of a solid state disk according to an embodiment of the present invention;
FIG. 2 is a schematic flow diagram of a wear leveling operation according to an embodiment of the present invention;
FIG. 3 is a schematic diagram illustrating a flash read operation flow of a solid state disk according to an embodiment of the present invention;
FIG. 4 is a flowchart illustrating a method for determining whether to initiate data migration according to an embodiment of the present invention;
fig. 5 is a schematic structural diagram of a solid state disk wear leveling device according to an embodiment of the present invention;
FIG. 6 is a schematic diagram of a computing device according to an embodiment of the invention.
Detailed Description
To further explain the technical means and effects of the present invention adopted to achieve the intended purpose, the present invention will be described in detail with reference to the accompanying drawings and preferred embodiments.
First, some terms related to the embodiments of the present invention are explained to facilitate understanding by those skilled in the art.
It should be noted that the terms "first", "second", and the like in the description and the claims of the embodiments of the present invention and in the drawings described above are used for distinguishing similar objects and not necessarily for describing a particular order or sequence. It will be appreciated that the data so used may be interchanged under appropriate circumstances such that the embodiments described herein may be practiced otherwise than as specifically illustrated or described herein.
Reference herein to "a plurality or a number" means two or more. "and/or" describes the association relationship of the associated objects, meaning that there may be three relationships, e.g., a and/or B, which may mean: a exists alone, A and B exist simultaneously, and B exists alone. The character "/" generally indicates that the former and latter associated objects are in an "or" relationship.
In the prior art, a separate wear queue is required to track the number of erasing times, and the size of the queue is the number of all data blocks in the flash memory of the solid state disk and needs to be sorted according to the number of erasing times. Garbage collection can continuously generate update insertion and deletion operations, and due to the large wear queue, maintaining a large sorting queue requires corresponding memory and computation, which is expensive and inefficient for infrequent wear leveling operations. Because wear leveling is not a frequent operation, cold data migration is similar to wear leveling and is not a frequent operation, and it is sufficient to periodically check the cold data queue. In view of this, the embodiments of the present invention provide a wear leveling method based on cold data migration and garbage collection, which removes dynamic maintenance of a separate wear queue and multiplexes a cold data queue and an idle queue, thereby reducing system memory resource overhead and improving wear leveling efficiency.
In the embodiment of the invention, the following three queues are established:
and (4) idle queue: the method is used for tracking the free data blocks, and the free data blocks in the free queue are sorted from small to large according to the erasing times.
Cold data queue: and tracking the written data blocks, and arranging the data blocks in the cold data queue according to the time stamps from early to late.
And (3) recovering the queue group: the method comprises the steps of determining recycling grades according to the invalid data quantity relative to the data block size, adding the recycling grades into corresponding queues, and not needing to sort in each grade queue. The queue group also comprises a recovery queue with an emergency level, which is used for processing data migration caused by data read-write errors including read interference.
Based on the three queues established above, an embodiment of the present invention provides a method for wear leveling of a solid state disk, as shown in fig. 1, which may include the following steps:
and S11, acquiring the time stamp of the head data block in the cold data queue.
In specific implementation, the cold data queue may be periodically checked according to a set period, and whether cold data migration is started is determined by comparing a timestamp of the queue head as a source block with the current time and determining whether the comparison exceeds a cold data migration threshold.
And S12, if the time difference between the acquired time stamp and the current time is not greater than the preset cold data migration threshold, acquiring the erasing times of a plurality of data blocks at the front section of the cold data queue.
In this step, the timestamp of the head data block of the queue obtained in step S11 is compared with the current time, the time difference between the two is calculated, if the calculated time difference is greater than the preset cold data migration threshold, the cold data migration operation is started, and if the calculated time difference is not greater than the preset cold data threshold, the number of times of erasing a plurality of data blocks at the front section of the cold data queue is obtained.
The front part of the cold data queue refers to the first N data blocks from the head of the cold data queue, N is an integer, and a specific value thereof may be set according to actual needs, for example, N may be set to 10.
And S13, if the difference between the erasing times of any one of the obtained front data blocks and the erasing times of the data block at the tail of the free queue is larger than a preset wear leveling threshold value, starting wear leveling operation.
It should be noted that, in the embodiment of the present invention, a cold data queue is multiplexed to determine wear leveling. Specifically, in the cold data queue, the data blocks are arranged from early to late according to the time stamps, the erasing times of the data blocks at the front section of the queue are relatively less, the idle queue is arranged according to the sequence of the erasing times from small to large, and the erasing times of the data blocks at the tail of the idle queue are more, so that whether the wear leveling operation is started or not can be judged by comparing the difference value between the erasing times of the data blocks at the tail of the idle queue and the erasing times of the data blocks at the head of the cold data queue, if the difference value between the erasing times of the data blocks at the tail of the idle queue and the erasing times of the data blocks at the head of the cold data queue, the wear leveling operation is started, otherwise, the next processing.
As shown in fig. 2, in specific implementation, the wear leveling operation may be started according to the following procedure in the embodiment of the present invention:
and S21, migrating the effective data in the first source data block to the first target data block at the tail of the free queue.
Wherein the first source data block comprises at least one data block of the front section of the cold data queue. In specific implementation, according to the embodiment of the invention, the wear leveling operation can be started for a plurality of blocks of data at the front section of the cold data queue.
And S22, determining the recycling level of the first source data block according to the effective data proportion in the first source data block.
In this step, the recycling level of the first source data block may be determined according to the effective data proportion in the first source data block. Or determining the recycling level of the first source data block according to the invalid data proportion, wherein the higher the invalid data proportion is, the higher the recycling level is, or the higher the valid data proportion is, the lower the recycling level is.
It should be noted that all data in the data block after data migration will be marked as invalid, and therefore, the recycling level of the corresponding data block is the highest level.
S23, according to the recycling level of the first source data block, the first source data block is placed into the recycling queue of the corresponding level.
In addition, after the data in the first source data block is migrated to the first target data block, a timestamp needs to be added to the first target data block according to the data migration, and the first target data block is placed at the tail of the cold data queue.
In specific implementation, the data migration flow generated by the cold data migration and the garbage collection is similar to the data migration flow generated by the wear leveling operation, so the data migration flow generated by the cold data migration and the garbage collection can be implemented by referring to the data migration flow generated by the wear leveling operation, and details are not repeated here.
According to the embodiment of the invention, cold data to be migrated is generated by cold data migration, wear leveling and garbage collection, a free block with a large number of erasing times, namely the tail of a free queue, is selected as a target block, and the block is stamped and placed at the tail of a cold data queue, which means that the cold data is heated after being migrated.
In specific implementation, according to an embodiment of the present invention, there is further provided a data writing method, as shown in fig. 3, including the following steps:
and S31, writing the data to be written into the second target data block at the head of the free queue when the received data write request is received.
And S32, adding the time stamp of the second target data block according to the writing time.
And S33, placing the second target data block at the tail of the cold data queue.
According to the embodiment of the invention, the front-end writing generates hot data to be written newly, a free block with less erasing times, namely the head of a free queue is selected as a target block, and the block is stamped and placed at the tail of a cold data queue.
In the specific implementation process, in the process of writing data to be written, if the second target data block is full, deleting the second target data block from the idle queue; determining the recovery grade of the second target data block according to the proportion of the effective data in the second target data block; and according to the recycling grade of the second target data block, putting the second target data block into a recycling queue of a corresponding grade.
In such an embodiment, the reclamation level of the second target data block may be determined based on the proportion of valid data in the second target data block. Or determining the recycling level of the second target data block according to the invalid data proportion, wherein the higher the invalid data proportion is, the higher the recycling level is, or the higher the valid data proportion is, the lower the recycling level is. For example, the reclamation level of the second target data block may be determined according to the following formula: (invalid data amount/total data amount) a number of levels, wherein the number of levels is the number of different levels of reclamation queues included in the set of reclamation queues.
It should be noted that the above calculation method of the recovery level is only an optional implementation manner of the embodiment of the present invention, and in a specific implementation, other formulas may be used to determine the recovery level, which is not limited in the embodiment of the present invention.
In addition, the recovery queue group also comprises an emergency recovery queue, and in the data reading and writing process, if data reading and writing errors such as data reading interference or data writing errors are detected, the corresponding data block is deleted from the idle queue or the non-emergency recovery queue; and added to the emergency reclaim queue. .
In specific implementation, if the data capacity of the free queue is lower than a preset recovery starting threshold or the emergency recovery queue is not empty, selecting the data block at the head of the recovery queue with the highest recovery level as a second source data block; transferring effective data in a second source data block to a third target data block at the tail of the free queue; erasing the data in the second source data block; and inserting the second source data block into the idle queue according to the erasing times of the second source data block, and keeping the data blocks between the head and the tail of the idle queue to be ordered according to the erasing times.
According to the data migration operation flow provided by the embodiment of the invention, the number of times of erasing the data block close to the head of the cold data queue is less than that of erasing the data block at the tail of the cold data queue.
For a better understanding of the present invention, its implementation is described below in conjunction with specific implementations. Setting parameters (including cold data queue check interval, cold data migration threshold, wear balance threshold, recycling grade number and starting garbage recycling threshold) during system initialization, inserting all idle data blocks into an idle queue in sequence according to erasing times, wherein the cold data queue and the recycling queue group are both empty; when the system is restarted, the information of the idle queue, the cold data queue, the recovery queue group and the like which are stored before are loaded. And then enters the run cycle. Fig. 3 is a schematic diagram illustrating a flash memory read operation flow of a solid state disk according to the embodiment of the present invention, including the following steps:
step 1: judging whether data migration needs to be started or not; if so, performing step 2, otherwise, performing step 3.
Fig. 4 is a schematic flow chart illustrating a process of determining whether to initiate data migration according to an embodiment of the present invention, where:
step 1.1: determining whether a cold data check interval expires; if so, performing step 1.2, otherwise, performing step 1.4.
Step 1.2: judging whether cold data migration is started or not; if so, performing step 2, otherwise, performing step 1.3.
Step 1.3: judging whether to start wear leveling; if so, performing step 2, otherwise, performing step 1.4.
Step 1.4: judging whether to start garbage recycling; if so, performing step 2, otherwise, performing step 3.
Step 2: and moving the source blocks out of the recovery queue and the cold data queue, arranging data migration judgment, and entering the next round of circulation.
And step 3: judging whether the scheduled data migration is finished or not; if yes, performing step 4, otherwise, performing step 7.
And 4, step 4: judging whether the finished data migration belongs to garbage collection; if yes, performing step 5, otherwise, performing step 6.
And 5: and erasing the source block and increasing the erasing times of the source block, inserting the source block between the head and the tail of the idle queue according to the sequence of the erasing times, and entering the next round of circulation.
Step 6: the reclamation level of the source blocks which are fully written is calculated and is placed at the tail of the corresponding reclamation level queue (the source blocks which are not fully written continue to stay in the free queue), and the next round of circulation is entered.
And 7: judging whether to execute/continue data migration; if yes, go to step 8, otherwise go to step 9.
And 8: valid data is read from the source block in preparation for writing to the cold target data block.
It should be noted that, because the source block is being migrated, no processing is needed if the source block has read/write interference. If an uncorrectable read error occurs, data is lost.
And step 9: judging whether the cold target block is ready; if so, step 10 is performed to write the valid data read from the source block into the cold target block, otherwise step 11 is performed.
Step 10: the data is written to the target block, step 12.
Step 11: and (5) selecting the tail of the idle queue as a target block, covering a time stamp on the tail of the cold data queue, and performing the step 10.
Step 12: judging whether the target block has a write error; if yes, go to step 13, otherwise go to step 14.
Step 13: and moving the data block with the read-write error out of the idle queue/non-emergency recovery queue, adding the data block into the emergency recovery queue, and entering the next round of circulation.
Step 14: judging whether the target block is fully written; if so, go to step 15, otherwise go to the next cycle.
Step 15: and moving the fully written target data block out of an idle queue, calculating the recovery level of the target data block, putting the recovery level at the tail of a corresponding recovery level queue, and entering the next round of circulation.
Step 16: judging whether to execute front-end data writing; if so, go to step 17, otherwise, go to step 19.
And step 17: judging whether the hot target block is ready; if so, go to step 10, otherwise, go to step 18.
Step 18: and (3) selecting the head of the free queue as a target block, covering a time stamp on the tail of the cold data queue, and writing the front-end data into the hot target block in the step 10.
Step 19: judging whether to execute front-end data reading; if so, go to step 20, otherwise go to the next cycle.
Step 20: the data is read according to the logical-physical address mapping, and step 21 is performed.
Step 21: judging whether data reading errors (including reading interference) occur or not; if so, go to step 13, otherwise go to the next cycle.
It should be noted that the order of step 1, step 3, step 7, step 16 and step 19 may be dynamically adjusted according to the actual need and according to the priority, and for convenience of description, the embodiment of the present invention is described according to the order shown in fig. 3.
According to the solid state disk wear leveling method provided by the embodiment of the invention, the data blocks in the idle queue are arranged in the sequence from small to large in the erasing times, and the cold data queue is arranged in the sequence from early to late in the time stamps, so that the erasing times of the data blocks at the head of the cold data queue are relatively small, whether wear leveling is started or not can be judged by comparing the erasing times of the data blocks at the head of the cold data queue and the tail of the idle queue, wear leveling is realized by multiplexing the cold data queue and the idle queue in the process, and the wear leveling queue is not required to be maintained, so that the overhead of system memory resources is reduced.
Based on the same technical concept, an embodiment of the present invention further provides a solid state disk wear leveling apparatus, as shown in fig. 5, including:
a first obtaining unit 51, configured to obtain timestamps of head-of-queue data blocks in a cold data queue, where the data blocks in the cold data queue are arranged in an order from early to late according to the timestamps;
a second obtaining unit 52, configured to obtain the erasing times of a plurality of data blocks in a front segment of the cold data queue if a time difference between the timestamp obtained by the first obtaining unit and the current time is not greater than a preset cold data migration threshold;
and the processing unit 53 is configured to start a wear leveling operation if a difference between the number of times of erasing any one of the plurality of data blocks in the front segment acquired by the second acquiring unit and the number of times of erasing a data block at the tail of the free queue is greater than a preset wear leveling threshold, where the free data blocks in the free queue are arranged in an order from small to large in the number of times of erasing.
In an embodiment, the processing unit 53 is specifically configured to migrate valid data in a first source data block to a first target data block at the tail of a free queue, where the first source data block includes at least one data block in a front section of the cold data queue; determining the recycling grade of the first source data block according to the effective data proportion in the first source data block; and according to the recycling grade of the first source data block, putting the first source data block into a recycling queue of a corresponding grade.
In one embodiment, the processing unit 53 is further configured to add a timestamp to the first target data block according to a data migration time; and placing the first target data block at the tail of the cold data queue.
In an embodiment, the processing unit 53 is further configured to, when a data write request is received, write data to be written into a second target data block at the head of the free queue; adding a timestamp of the second target data block according to the writing time; and placing the second target data block at the tail of the cold data queue.
In an embodiment, the processing unit 53 is further configured to, during writing the data to be written, delete the second target data block from the idle queue if the second target data block is full; determining the recovery grade of the second target data block according to the proportion of the effective data in the second target data block; and according to the recycling grade of the second target data block, putting the second target data block into a recycling queue of a corresponding grade.
In one embodiment, the de-allocated queues further include an emergency de-allocated queue;
the processing unit 53 is further configured to select, if the free queue data capacity is lower than a preset recovery starting threshold or the emergency recovery queue is not empty, the data block at the head of the recovery queue with the highest recovery level as the second source data block; migrating the effective data in the second source data block to a third target data block at the tail of the free queue; erasing the data in the second source data block; and inserting the second source data block into the idle queue according to the erasing times of the second source data block.
In an embodiment, the processing unit 53 is further configured to, during data reading and writing, delete the corresponding data block from the free queue or the non-urgent reclaim queue if a data reading and writing error is detected; and added to the emergency reclaim queue.
For convenience of description, the above parts are separately described as modules (or units) according to functional division. Of course, the functionality of the various modules (or units) may be implemented in the same or in multiple pieces of software or hardware in practicing the invention.
Having described the method and apparatus for wear leveling in a solid state drive according to an exemplary embodiment of the present invention, a computing apparatus according to another exemplary embodiment of the present invention is described next.
As will be appreciated by one skilled in the art, aspects of the present invention may be embodied as a system, method or program product. Thus, various aspects of the invention may be embodied in the form of: an entirely hardware embodiment, an entirely software embodiment (including firmware, microcode, etc.) or an embodiment combining hardware and software aspects that may all generally be referred to herein as a "circuit," module "or" system.
In some possible embodiments, a computing device according to the present invention may include at least one processor, and at least one memory. Wherein the memory stores program code which, when executed by the processor, causes the processor to perform the steps of the solid state disk wear leveling method according to various exemplary embodiments of the present invention described above in this specification. For example, the processor may execute step S11 shown in fig. 1, obtaining a timestamp of a head data block in the cold data queue, and step S12, obtaining the number of times of erasing a number of data blocks in the front section of the cold data queue if a time difference between the obtained timestamp and a current time is not greater than a preset cold data migration threshold; and step S13, if the difference value between the erasing times of any one of the obtained front data blocks and the erasing times of the data block at the tail of the free queue is larger than a preset abrasion balance threshold value, starting abrasion balance operation.
The computing device 60 according to this embodiment of the invention is described below with reference to fig. 6. The computing device 60 shown in fig. 6 is only an example and should not impose any limitations on the functionality or scope of use of embodiments of the present invention.
As shown in fig. 6, the computing apparatus 60 is in the form of a general purpose computing device. Components of computing device 60 may include, but are not limited to: the at least one processor 61, the at least one memory 62, and a bus 63 connecting the various system components (including the memory 62 and the processor 61).
Bus 63 represents one or more of any of several types of bus structures, including a memory bus or memory controller, a peripheral bus, a processor, or a local bus using any of a variety of bus architectures.
The memory 62 may include readable media in the form of volatile memory, such as Random Access Memory (RAM)621 and/or cache memory 622, and may further include Read Only Memory (ROM) 623.
The memory 62 may also include a program/utility 625 having a set (at least one) of program modules 624, such program modules 624 including, but not limited to: an operating system, one or more application programs, other program modules, and program data, each of which, or some combination thereof, may comprise an implementation of a network environment.
Computing device 60 may also communicate with one or more external devices 64 (e.g., keyboard, pointing device, etc.), and may also communicate with one or more devices that enable a user to interact with computing device 60, and/or with any devices (e.g., router, modem, etc.) that enable computing device 60 to communicate with one or more other computing devices, such communication may occur via input/output (I/O) interfaces 65, and computing device 60 may also communicate with one or more networks (e.g., local area network (L AN), Wide Area Network (WAN) and/or a public network, such as the Internet) via network adapter 66. As shown, network adapter 66 communicates with other modules for computing device 60 via bus 63. it should be understood that, although not shown, other hardware and/or software modules may be used in conjunction with computing device 60, including, but not limited to, microcode, device drivers, redundant processors, external disk drive arrays, RAID systems, tape drives, and data backup storage systems, etc.
In some possible embodiments, the various aspects of the solid state disk wear leveling method provided by the present invention may also be implemented in the form of a program product, which includes program code for causing a computer device to execute the steps in the solid state disk wear leveling method according to various exemplary embodiments of the present invention described above in this specification when the program product runs on the computer device, for example, the computer device may execute step S11 shown in fig. 1, obtain a timestamp of a head data block in a cold data queue, and step S12, obtain the number of times of erasing a number of data blocks in the front of the cold data queue if a time difference between the obtained timestamp and a current time is not greater than a preset cold data migration threshold; and step S13, if the difference value between the erasing times of any one of the obtained front data blocks and the erasing times of the data block at the tail of the free queue is larger than a preset abrasion balance threshold value, starting abrasion balance operation.
The program product may employ any combination of one or more readable media. The readable medium may be a readable signal medium or a readable storage medium. A readable storage medium may be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any combination of the foregoing. More specific examples (a non-exhaustive list) of the readable storage medium include: an electrical connection having one or more wires, a portable disk, a hard disk, a Random Access Memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing.
The program product for solid state disk wear leveling of embodiments of the present invention may employ a portable compact disk read only memory (CD-ROM) and include program code, and may be run on a computing device. However, the program product of the present invention is not limited in this regard and, in the present document, a readable storage medium may be any tangible medium that can contain, or store a program for use by or in connection with an instruction execution system, apparatus, or device.
A readable signal medium may include a propagated data signal with readable program code embodied therein, for example, in baseband or as part of a carrier wave. Such a propagated data signal may take any of a variety of forms, including, but not limited to, electro-magnetic, optical, or any suitable combination thereof. A readable signal medium may also be any readable medium that is not a readable storage medium and that can communicate, propagate, or transport a program for use by or in connection with an instruction execution system, apparatus, or device.
Program code embodied on a readable medium may be transmitted using any appropriate medium, including but not limited to wireless, wireline, optical fiber cable, RF, etc., or any suitable combination of the foregoing.
Program code for carrying out operations of the present invention may be written in any combination of one or more programming languages, including AN object oriented programming language such as Java, C + +, or the like, as well as conventional procedural programming languages, such as the "C" language or similar programming languages.
While the present invention has been described with reference to particular embodiments, it will be understood by those skilled in the art that various changes in form and details may be made therein without departing from the spirit and scope of the invention as defined by the appended claims.

Claims (10)

1. A method for wear leveling of a solid state disk, comprising:
acquiring the time stamps of the head data blocks in the cold data queue, wherein the data blocks in the cold data queue are arranged according to the sequence of the time stamps from early to late;
if the time difference between the acquired timestamp and the current time is not greater than a preset cold data migration threshold, acquiring the erasing times of a plurality of data blocks at the front section of the cold data queue;
and if the difference value between the erasing times of any one of the plurality of data blocks at the front section and the erasing times of the data block at the tail of the idle queue is greater than a preset abrasion balance threshold value, starting abrasion balance operation, wherein the idle data blocks in the idle queue are arranged in the sequence of the erasing times from small to large.
2. The method according to claim 1, characterized in that the wear leveling operation is initiated, in particular comprising:
migrating effective data in a first source data block to a first target data block at the tail of a free queue, wherein the first source data block comprises at least one data block at the front section of the cold data queue;
determining the recycling grade of the first source data block according to the effective data proportion in the first source data block;
and according to the recycling grade of the first source data block, putting the first source data block into a recycling queue of a corresponding grade.
3. The method of claim 2, further comprising:
adding a timestamp to the first target data block according to the data migration time;
and placing the first target data block at the tail of the cold data queue.
4. The method of claim 1, further comprising:
when a data writing request is received, writing data to be written into a second target data block at the head of the idle queue;
adding a timestamp of the second target data block according to the writing time;
and placing the second target data block at the tail of the cold data queue.
5. The method of claim 4, further comprising:
in the process of writing the data to be written, if the second target data block is full, deleting the second target data block from the idle queue;
determining the recovery grade of the second target data block according to the proportion of the effective data in the second target data block;
and according to the recycling grade of the second target data block, putting the second target data block into a recycling queue of a corresponding grade.
6. The method of any of claims 2-5, wherein the de-allocated queue further comprises an emergency de-allocated queue;
the method further comprises the following steps:
if the data capacity of the free queue is lower than a preset recovery starting threshold value or the emergency recovery queue is not empty, selecting a data block at the head of the recovery queue with the highest recovery grade as a second source data block;
migrating the effective data in the second source data block to a third target data block at the tail of the free queue;
erasing the data in the second source data block;
and inserting the second source data block into the idle queue according to the erasing times of the second source data block.
7. The method of claim 6, further comprising:
in the data reading and writing process, if a data reading and writing error is detected, deleting the corresponding data block from the idle queue or the non-emergency recovery queue; and are
Added to the emergency reclaim queue.
8. A solid state disk wear leveling apparatus, comprising:
the first acquisition unit is used for acquiring the time stamps of the head data blocks in the cold data queue, and the data blocks in the cold data queue are arranged according to the sequence of the time stamps from early to late;
a second obtaining unit, configured to obtain the number of times of erasing a plurality of data blocks in a front segment of the cold data queue if a time difference between the timestamp obtained by the first obtaining unit and the current time is not greater than a preset cold data migration threshold;
and the processing unit is used for starting the wear leveling operation if the difference value between the erasing times of any one of the plurality of data blocks in the front section acquired by the second acquisition unit and the erasing times of the data block at the tail of the free queue is greater than a preset wear leveling threshold, and the free data blocks in the free queue are arranged in the sequence from small to large in the erasing times.
9. A computing device, the computing device comprising: memory, processor and computer program stored on the memory and executable on the processor, which computer program, when executed by the processor, carries out the steps of the method according to any one of claims 1 to 7.
10. A computer storage medium having stored thereon a computer program which, when executed by a processor, carries out the steps of the method according to any one of claims 1 to 7.
CN202010195586.7A 2020-03-19 2020-03-19 Wear balancing method and device for solid state disk Active CN111414138B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010195586.7A CN111414138B (en) 2020-03-19 2020-03-19 Wear balancing method and device for solid state disk

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010195586.7A CN111414138B (en) 2020-03-19 2020-03-19 Wear balancing method and device for solid state disk

Publications (2)

Publication Number Publication Date
CN111414138A true CN111414138A (en) 2020-07-14
CN111414138B CN111414138B (en) 2024-02-13

Family

ID=71491246

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010195586.7A Active CN111414138B (en) 2020-03-19 2020-03-19 Wear balancing method and device for solid state disk

Country Status (1)

Country Link
CN (1) CN111414138B (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112416254A (en) * 2020-11-27 2021-02-26 天地伟业技术有限公司 Optimization method for use efficiency of disk space
CN114327279A (en) * 2021-12-29 2022-04-12 湖南国科微电子股份有限公司 Data migration method and device
CN115586874A (en) * 2022-11-24 2023-01-10 苏州浪潮智能科技有限公司 Data block recovery method and device, electronic equipment and storage medium
CN117666972A (en) * 2024-02-01 2024-03-08 合肥康芯威存储技术有限公司 Storage device and data processing method thereof

Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101354681A (en) * 2008-09-23 2009-01-28 美商威睿电通公司 Memory system, abrasion equilibrium method and apparatus of non-volatile memory
CN101499033A (en) * 2008-12-18 2009-08-05 上海全景数字技术有限公司 Flash memory data saving method
CN102081576A (en) * 2011-03-01 2011-06-01 华中科技大学 Flash memory wear balance method
CN104461915A (en) * 2014-11-17 2015-03-25 苏州阔地网络科技有限公司 Method and device for dynamically allocating internal storage in online class system
CN106484323A (en) * 2016-09-13 2017-03-08 郑州云海信息技术有限公司 A kind of loss equalizing method of solid-state storage and system
CN106681935A (en) * 2016-12-29 2017-05-17 郑州云海信息技术有限公司 Trash recycling method for solid state disk
CN106951187A (en) * 2017-03-07 2017-07-14 记忆科技(深圳)有限公司 A kind of solid-state storage static wear implementation method in a balanced way
US10008275B1 (en) * 2017-05-24 2018-06-26 Lite-On Electronics (Guangzhou) Limited Control method for solid state storage device
CN108255419A (en) * 2017-12-19 2018-07-06 深圳忆联信息系统有限公司 A kind of abrasion equilibrium method and SSD for TLC types SSD
CN108363813A (en) * 2018-03-15 2018-08-03 北京小度信息科技有限公司 Date storage method, device and system
CN108681435A (en) * 2018-05-25 2018-10-19 郑州云海信息技术有限公司 A kind of abrasion equilibrium method of solid state disk, device, equipment and storage medium
CN109753443A (en) * 2019-01-12 2019-05-14 湖南国科微电子股份有限公司 A kind of data processing method, device and electronic equipment
CN110688326A (en) * 2019-09-23 2020-01-14 西安微电子技术研究所 Flash memory wear leveling algorithm based on multiple thresholds

Patent Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101354681A (en) * 2008-09-23 2009-01-28 美商威睿电通公司 Memory system, abrasion equilibrium method and apparatus of non-volatile memory
CN101499033A (en) * 2008-12-18 2009-08-05 上海全景数字技术有限公司 Flash memory data saving method
CN102081576A (en) * 2011-03-01 2011-06-01 华中科技大学 Flash memory wear balance method
CN104461915A (en) * 2014-11-17 2015-03-25 苏州阔地网络科技有限公司 Method and device for dynamically allocating internal storage in online class system
CN106484323A (en) * 2016-09-13 2017-03-08 郑州云海信息技术有限公司 A kind of loss equalizing method of solid-state storage and system
CN106681935A (en) * 2016-12-29 2017-05-17 郑州云海信息技术有限公司 Trash recycling method for solid state disk
CN106951187A (en) * 2017-03-07 2017-07-14 记忆科技(深圳)有限公司 A kind of solid-state storage static wear implementation method in a balanced way
US10008275B1 (en) * 2017-05-24 2018-06-26 Lite-On Electronics (Guangzhou) Limited Control method for solid state storage device
CN108255419A (en) * 2017-12-19 2018-07-06 深圳忆联信息系统有限公司 A kind of abrasion equilibrium method and SSD for TLC types SSD
CN108363813A (en) * 2018-03-15 2018-08-03 北京小度信息科技有限公司 Date storage method, device and system
CN108681435A (en) * 2018-05-25 2018-10-19 郑州云海信息技术有限公司 A kind of abrasion equilibrium method of solid state disk, device, equipment and storage medium
CN109753443A (en) * 2019-01-12 2019-05-14 湖南国科微电子股份有限公司 A kind of data processing method, device and electronic equipment
CN110688326A (en) * 2019-09-23 2020-01-14 西安微电子技术研究所 Flash memory wear leveling algorithm based on multiple thresholds

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112416254A (en) * 2020-11-27 2021-02-26 天地伟业技术有限公司 Optimization method for use efficiency of disk space
CN114327279A (en) * 2021-12-29 2022-04-12 湖南国科微电子股份有限公司 Data migration method and device
CN115586874A (en) * 2022-11-24 2023-01-10 苏州浪潮智能科技有限公司 Data block recovery method and device, electronic equipment and storage medium
CN115586874B (en) * 2022-11-24 2023-03-10 苏州浪潮智能科技有限公司 Data block recovery method and device, electronic equipment and storage medium
WO2024108849A1 (en) * 2022-11-24 2024-05-30 苏州元脑智能科技有限公司 Data block reclamation method and apparatus, and electronic device and nonvolatile readable storage medium
CN117666972A (en) * 2024-02-01 2024-03-08 合肥康芯威存储技术有限公司 Storage device and data processing method thereof
CN117666972B (en) * 2024-02-01 2024-05-14 合肥康芯威存储技术有限公司 Storage device and data processing method thereof

Also Published As

Publication number Publication date
CN111414138B (en) 2024-02-13

Similar Documents

Publication Publication Date Title
CN111414138A (en) Wear leveling method and device for solid state disk
US11150836B2 (en) Deterministic optimization via performance tracking in a data storage system
US9817581B2 (en) Maintaining versions of data in solid state memory
TWI424316B (en) Controller, data storage device, and program product
US8224874B2 (en) Systems and methods for removing unreferenced data segments from deduplicated data systems
KR100843543B1 (en) System comprising flash memory device and data recovery method thereof
CN103123604B (en) The method of the internal memory use of tracking data disposal system
US8356148B2 (en) Snapshot metadata management in a storage system
US20150212752A1 (en) Storage system redundant array of solid state disk array
US20200348863A1 (en) Snapshot reservations in a distributed storage system
CN101515276B (en) Method for write operation of file data, and recovery method and recovery system for file data
US20130332656A1 (en) File system for maintaining data versions in solid state memory
CN108733306B (en) File merging method and device
CN104516678A (en) Method and device for storing data
WO2012008732A2 (en) Device and method for managing flash memory using page unit mapping
CN107092563B (en) Garbage recovery method and device
CN108646977B (en) SSD (solid State disk) cold and hot data judgment method and garbage recycling method
CN111159058B (en) Wear leveling method and device and nonvolatile storage equipment
US10452267B2 (en) Storage scheme for a distributed storage system
CN111399750A (en) Flash memory data writing method and computer readable storage medium
CN115421651A (en) Data processing method of solid state disk, electronic device and medium
US20070067486A1 (en) Memory management
CN116737064A (en) Data management method and system for solid state disk
WO2012008731A2 (en) Device and method for managing flash memory using block unit mapping
CN109086001B (en) NAND Flash garbage recovery method and system

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
TA01 Transfer of patent application right

Effective date of registration: 20211208

Address after: 250100 room 2-302-131, building 7, North District, Shandong design creative industrial park, No. 868, Tangye West Road, Jinan area, free trade pilot zone, Jinan, Shandong Province

Applicant after: Rongming Microelectronics (Jinan) Co.,Ltd.

Address before: 266100 blue Silicon Valley entrepreneurship center, No. 1, Keji Road, Jimo District, Qingdao, Shandong

Applicant before: QINGDAO RONGMING SEMICONDUCTOR Co.,Ltd.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant