CN116027988A - Wear leveling method for memory and control method for chip controller of wear leveling method - Google Patents
Wear leveling method for memory and control method for chip controller of wear leveling method Download PDFInfo
- Publication number
- CN116027988A CN116027988A CN202310283977.8A CN202310283977A CN116027988A CN 116027988 A CN116027988 A CN 116027988A CN 202310283977 A CN202310283977 A CN 202310283977A CN 116027988 A CN116027988 A CN 116027988A
- Authority
- CN
- China
- Prior art keywords
- row
- column
- address
- module
- equalization
- 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
Links
Images
Classifications
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Memory System (AREA)
Abstract
The invention discloses a wear leveling method for a memory and a control method for a chip controller thereof, and relates to the field of embedded design. The method divides the address space into storage units, performs row-column equalization in the two-dimensional array storage space, realizes in-block equalization, realizes block-to-block equalization, achieves better effect by controlling row size and column size, achieves better effect by controlling row update threshold and column update threshold with lower moving cost at the expense of slight effect, achieves better effect and higher moving cost by controlling row size and column size, and achieves better effect by controlling row update threshold and column update threshold with lower moving cost with slightly lower effect than similar algorithm. The proposed wear-leveling method is built into the self-contained function of the memory, adds a little logic, redesigns the structure of the memory controller, and internalizes the wear-leveling function into the memory.
Description
Technical Field
The invention relates to the field of embedded design, in particular to a wear leveling method for a memory and a control method of a chip controller thereof.
Background
Some nonvolatile memories (e.g., PCM, RRAM, MRAM, flash, etc.) suffer from limited write endurance when used-the number of writes to an address is limited, whereas in practical applications the distribution of each address accessed by the memory will exhibit a near gaussian distribution, and once the number of writes to any portion of the memory exceeds the endurance limit, the entire device is considered inoperable. This is because there is temporal locality of external access to memory, i.e., the memory location that has been accessed is likely to be referenced multiple times in a short period of time, and spatial locality, i.e., when one address of memory is accessed once, then there is a likelihood that the external will then go to access an address in its vicinity.
It can be seen that in this access case, the actual memory utilization is small. When a memory is damaged, a large portion of available space remains, and the life of the device is long enough to be exploited. It is desirable to design algorithms that allow balanced access to the entire memory, rather than just writing to specific areas, distributing operations on certain blocks across the entire memory, and achieving a balance of writing of blocks, such algorithms are known as wear leveling algorithms.
For an emerging nonvolatile memory, a wear-leveling algorithm is a necessary requirement and is supposed to be embedded into a controller in a chip to be used as a part of the memory, meanwhile, the addition of the wear-leveling algorithm tends to increase the read-write time, and the function of accessing while balancing can be realized by embedding algorithm logic into the controller, so that the time cost of the algorithm is greatly reduced. The existing balancing strategy for enhancing the durability of the nonvolatile memory is not limited to carrying out movement balancing in a one-dimensional address space, and the effect is not ideal; there is no special requirement for the read-write address distribution.
Disclosure of Invention
The invention aims to provide a wear leveling method for a memory and a control method of a chip controller thereof. A mapping relation between a logical address and a physical address is designed, and premature damage of a memory caused by excessive centralized access of the outside to some addresses is avoided. The original concentrated access state is converted into the balanced access to the memory as much as possible, and the memory durability is enhanced without generating extra memory overhead and read-write delay as much as possible.
The invention provides a wear-leveling method for a memory, which comprises three modules, namely:
module 1: a read-write address conversion module;
module 2: a counting module;
module 3: an equalization module;
the process of the memory for reading and writing data is as follows: the method comprises the steps of externally inputting addresses, data and commands, wherein the commands firstly flow through a counting module, if the commands are writing commands, the counting module is increased by one, and after the commands reach a set updating threshold value, an equalization module is started; the address passes through a read-write address conversion module, and according to the equalization algorithm parameters transmitted by the equalization module, the externally input logical address is converted into a physical address, and then the physical address, the command and the data are accessed to a memory; when the equalization module is started, carrying out data moving operation on a partial area of the memory, and updating parameters of a corresponding equalization method after moving is completed;
in addition, the moving operation of the balancing module is performed according to a pre-designed memory address partitioning operation, wherein the memory address partitioning operation abstracts a memory space into one memory unit (the size of the memory unit is formulated according to the required balancing precision) under a certain memory storage space size, one memory unit possibly consists of a plurality of actual physical addresses of a memory, abstracts one memory unit into an address in an algorithm, and rearranges a one-dimensional memory space, namely a continuous memory address space from small to large, into a two-dimensional array memory space; dividing effective addresses and idle addresses on a two-dimensional address space of segmentation and recombination, so as to carry out row and column moving operation of the equalization module; meanwhile, different updating thresholds are needed for the row moving operation and the column moving operation, namely, the row moving operation needs a row updating threshold, the column moving operation needs a column updating threshold, and the setting of the updating threshold is closely related to the row and column size of the divided two-dimensional array storage space;
the module 1 comprises: decomposing an address array and calculating a physical address;
the method for decomposing the address array comprises the following steps: the input logical address addr_LA is used for calculating the position of the logical address in the array, namely row and column coordinates according to the size of the row and the column col, and the calculation mode is as follows:
the reason that the row coordinate xadr is equal to the logical address addr_la divided by the column col-1 and then the remainder is divided by the column col-1 is that both the row and the column have one inaccessible row and column;
the reason why the column coordinate yadr is equal to the logical address addr_la divided by the column col-1 and then rounded, divided by the column col-1 is that the rows and columns have one inaccessible row and column, which is understood as arranging the whole logical address range into a matrix array according to the rows and columns, the last row and the last column of the matrix array are inaccessible, and the logical address range is calculated by subtracting the row from the column plus 1 from the address space, so that the address in the logically accessible address space needs to be converted into the address in the physical space first;
the method for calculating the physical address comprises the following steps: the resultant rows of xadr and yadr were calculated separately:
the new address xnew of the row coordinate xadr is equal to xadr plus start_col and then the column col-1 is left, and then, if xnew is greater than or equal to the column coordinate gap_col_num where the empty column is located, xnew is added with 1; if xnew is less than gap_col_num, xnew is unchanged; start_col is responsible for recording the number of cycles that the empty column gap_col has for the column;
the new address ynew of the column coordinate yadr is equal to yadr plus start_row and then the column row-1 is left, next, if ynew is larger than or equal to the row coordinate gap_row_num where the empty interlace is located, then ynew is added with 1, if ynew is smaller than gap_row_num, then ynew is unchanged; start_row is responsible for recording the number of cycles that the empty interlace gap_row is made to line;
after xnew and ynew are obtained, the physical address addr_PA to be accessed is calculated, and the calculation method is as follows:
addr_PA= ynew * col + xnew
the functions of module 1 are: after balanced movement, the logical address is converted into a physical address, so that normal reading and writing are realized;
the module 2 comprises: a row counting module and a column counting module;
the row counting module: for the input logical address, if the write operation is performed, the write_num_row is added with 1; if the write_num_row is greater than the row update threshold write_time_row, then the write_num_row is set to 0 while the row equalization module is started;
the column count module: for the input logical address, if it is a write operation, then write_num_col is incremented by 1; if the write_num_col is greater than the column update threshold write_time_col, then the write_num_col is set to 0 while the column equalization module is started;
the function of the module 2 is to account for row writing operation counting, reach the corresponding row updating threshold value, and start a row balancing module; the column writing operation counting is responsible, the corresponding column updating threshold value is reached, and a column balancing module is started;
the module 3 comprises: a row equalization module and a column equalization module;
the line equalization module: two cases: the empty interlace gap_row is equal to 0, then the last line and the current empty interlace gap_row are moved to each other; if the empty interlace gap_row is not equal to 0, the empty interlace gap_row is moved forward;
the column equalization module: two cases: the gap_col is equal to 0, and the last column and the current gap_col are moved mutually; if the space column gap_col is not equal to 0, the space column gap_col is moved forward;
the function of the module 3 is to balance the rows and columns respectively and to carry out data movement;
equalization principle: the one-dimensional address space is divided into a two-dimensional matrix array, row-column alternate equalization is respectively carried out on rows and columns, and through converting the addresses into x coordinates and y coordinates, the read-write addresses are in one-to-one correspondence when the row equalization and the column equalization are simultaneously carried out.
The working process comprises the following steps:
when not balanced: the logic address, read-write operation and other signals input from the outside are converted into physical addresses which are required to be accessed after equalization through read-write address array conversion, meanwhile, the counting module counts according to whether the logic address, the read-write operation and other signals are read or write operation, if the logic address, the read-write operation and other signals are write operation, row counting or column counting reaches a row updating threshold value or a column updating threshold value, and row equalization or column equalization in the equalization module is started;
equalization: when the line is balanced: the empty interlace gap_row is equal to 0, then the last line and the current empty interlace gap_row are moved to each other; if the empty interlace gap_row is not equal to 0, the empty interlace gap_row is moved forward; after the moving is finished, starting the row writing operation counting; column equalization: the gap_col is equal to 0, and the last column and the current gap_col are moved mutually; if the space column gap_col is not equal to 0, the space column gap_col is moved forward; starting row writing operation counting after the moving is finished; the alternate proceeding of row equalization and column equalization is ensured.
The algorithm is simple and effective, the address space is divided into storage units, row and column equalization is carried out in the two-dimensional array storage space, the in-block equalization is realized, the row equalization is realized, the equalization among blocks is realized, the better effect is achieved by controlling the row size and the column size, the better effect is achieved by controlling the row updating threshold value and the column updating threshold value, the moving expense is greatly reduced at the cost of a slight effect, the better effect and the higher moving expense are achieved by controlling the row size and the column size, the moving expense is greatly reduced by controlling the row updating threshold value and the column updating threshold value, the effect is slightly reduced, and the better effect and the lower expense than those of the similar algorithm are achieved.
A method of controlling a memory chip controller employing a wear leveling algorithm, the method comprising:
the control process of the chip controller adopting the wear-leveling algorithm comprises the following steps: when the chip starts the wear-leveling function, external addresses and commands are subjected to address conversion and threshold value counting update through the above-mentioned module 1 (read-write address conversion module) and module 2 (counting module), and then the converted addresses and corresponding signals are transmitted into the control core, and the control core decides whether to start the leveling operation according to the transmitted signals; if the control core starts the equalization operation, the corresponding row and column moving operation is carried out on the two-dimensional array storage space which is recombined according to the storage space of the memory, and the physical address which needs to be moved is given by the equalization module; in addition, when the balanced moving operation is performed, the control core can start the balanced access mode at the same time, the moving address and the accessed address can be compared in the control core, and corresponding operation is adopted according to the comparison result, so that the balanced access operation is realized, and the condition that the memory is periodically occupied due to the balanced moving operation is greatly relieved.
The method is simple and effective, the address space is divided into storage units, row and column balancing is carried out in the two-dimensional array storage space, the in-block balancing is realized, the row balancing is realized, the block-to-block balancing is realized, the better effect is achieved by controlling the row size and the column size, the row updating threshold value and the column updating threshold value are controlled to be greatly lower in moving cost and at the cost of slightly effect, the better effect and the higher moving cost can be achieved by controlling the row size and the column size, the row updating threshold value and the column updating threshold value are controlled to be greatly lower in moving cost, the effect is slightly reduced, and the better effect and the lower cost than those of the similar algorithm are achieved. The proposed wear leveling method can be built into the self-contained function of the memory by the proposed design method of the embeddable memory controller, a little logic is added, the structure of the memory controller is redesigned, and the wear leveling function is internalized into the memory.
Drawings
FIG. 1 is a schematic diagram of memory space division and reorganization according to the present invention;
FIG. 2 is a schematic diagram of a row moving operation according to the present invention;
FIG. 3 is a schematic diagram of a column shifting operation according to the present invention;
FIG. 4 is a flow chart of the method of the present invention;
FIG. 5 is a schematic diagram of a memory architecture according to the present invention;
FIG. 6 is a diagram of a nonvolatile memory controller framework in accordance with the present invention.
Description of the embodiments
For the split reorganization of the memory address space, a reorganization method and a column and row moving method are described, taking one memory cell as 512 bits and a total of 25 memory cells (physical addresses) as an example:
as shown in fig. 1, 25 memory cells are rearranged into a two-dimensional address space of 5*5, and the last row and the last column are set to free addresses (red-marked portions), at which time the logical address, i.e., the externally accessible address space, is 16 memory cells.
As shown in fig. 2, the row shifting operation is embodied in a two-dimensional address space, in which the free address of a row and the address of the previous row are shifted, and in a one-dimensional address space, as indicated by the arrow marks in fig. 2.
The column shifting is performed after the row shifting, and the column shifting operation is performed on the two-dimensional address space, in which the free address of a column and the address of the previous column are shifted, and the one-dimensional address space is shown in fig. 3.
As shown in fig. 4, the flow of the present invention is as follows, and an array type equalization wear-out algorithm for enhancing the endurance of the nonvolatile memory, which includes the above three blocks, is illustrated by the address space size addr_space=8192, endurance=10ζ4, and access total number visit_num=8.192×10ζ7
visit_num = addr_space * endurance
Row=16, column col=512, row update threshold 2000, column update threshold 2000 is exemplified:
module one: read-write address translation
Address array decomposition: the input logical address addr_la, the logical address range is address space size-row size-column size +1=7665, because the last row is empty interlaced and the last column is also empty interlaced, the position of the logical address in the physical address array, i.e. row column coordinates, are calculated according to the row and column col sizes, as follows:
xadr= mod(addr_LA ,col-1)
yard=fix(addr_LA,col-1)
mod (a, B) represents a divided by B, and fix (a, B) represents a divided by B.
Physical address calculation: the obtained xadr and yadr are judged in a row-column separation mode:
the blank interlace initial coordinate gap_row_num is equal to 16 for the last row and the blank column initial coordinate gap_col_num is equal to 512 for the last column. The number of empty interlace cycles start_row is initially 0 and the number of empty bay loop cycles start_col is initially 0.
Line xadr: xnew= (xadr+start_col) mod (col-1), xnew equals xadr plus start_col and then leaves column col-1, next, xnew adds 1 if xnew is equal to or greater than gap_col_num (column coordinate where the space column is located), and xnew is unchanged if xnew is less than gap_col_num. start_col is responsible for recording the number of cycles that the empty column gap_col is made to column.
Column yadr: ynew=mod (yadr+start_row, row-1), ynew is equal to yadr plus start_row and then the column row-1 is left over, next, ynew is added 1 if ynew is equal to or greater than gap_row_num (row coordinate where empty interlace is located), and ynew is unchanged if ynew is less than gap_row_num. start_row is responsible for recording the number of cycles that the empty interlace gap_row is cycling through for the lines.
After obtaining new xnew and ynew, calculating the physical address addr_pa to be accessed, wherein the calculating method is as follows:
addr_PA=ynew * col + xnew
the conversion of the input logical address to the accessed physical address is completed so far.
And a second module: counting module
And a row counting module: for the input logical address, if the write operation is performed, the write_num_row is added with 1; if the write_num_row is greater than the write_time_row (row update threshold), then the write_num_row is set to 0 while the row equalization module is started;
column counting module: for the input logical address, if it is a write operation, then write_num_col is incremented by 1; if write_num_col is greater than write_time_col (column update threshold), then write_num_col is set to 0 while the column equalization module is started;
thus, the counting of the rows and the starting of the corresponding row and column balancing module are completed.
And a third module: equalization module
And a line equalization module: two cases: the head address of the empty interlace gap_row is equal to 0, and the last line and the current empty interlace gap_row are mutually moved; if the head address of the empty interlace gap_row is not equal to 0, the empty interlace gap_row is shifted forward, and the line number is subtracted from each address in the empty interlace. Starting column counting after completion;
column equalization module: two cases: the head address of the gap_col is equal to 0, and the last column and the current gap column are mutually moved; if the head address of the empty column gap_col is not equal to 0, the empty column gap_col is shifted forward, and the column number is subtracted from each address in the empty column. Starting row counting after completion;
so far, the line and line alternate equalization is completed, and the corresponding line and line counting module is returned.
The effect of the wear leveling algorithm is shown in table 1: the service life of the memory can be improved by several times compared with that of unbalanced improvement by using an equalizing algorithm, and experiments show that the effect of improvement is more obvious when the memory capacity is larger. Meanwhile, algorithm parameters including the row and column size of the two-dimensional address space, the size of a row and column updating threshold value and the like can be adjusted according to the size of the memory and actual use requirements, so that different effects and different moving expenses can be obtained.
The chip controller adopting wear-leveling algorithm provided by the invention is positioned on the memory chip as shown in fig. 5 and is used for controlling different nonvolatile memory blocks. As shown in fig. 6, in the case of the data paths and the control paths in the nonvolatile memory controller, external signals including commands, addresses, data, etc. are passed through different data paths according to whether or not the equalization enable is valid. When the equalization enable is disabled, external signals flow directly into the control core. When the equalization enabling is effective, external signals can flow into the counting module and the read-write address conversion module separately, and then the two modules interact with the control core to realize the equalization function and the access function while equalizing.
The invention realizes the read-write correspondence after balancing by converting the address space into a two-dimensional matrix and adopting a coordinate system mode; the line size and the line updating threshold value are parameterized, so that a better effect is achieved, and the cost is lower; the algorithm logic is embedded into the memory controller, so that the access is realized at the same time conveniently, and the performance loss of the memory caused by the wear-leveling function is reduced to the greatest extent; the wear-leveling algorithm is decomposed into algorithm logic and specific operation, the controller structure is redesigned, and the leveling function is multiplexed with the function of the controller, so that the leveling is embedded into the controller.
TABLE 1 comparison of nonvolatile memory equalization algorithm effects for 10≡4 endurance.
Claims (2)
1. A wear leveling method for a memory, the method comprising three modules, respectively:
module 1: a read-write address conversion module;
module 2: a counting module;
module 3: an equalization module;
the process of the memory for reading and writing data is as follows: the method comprises the steps of externally inputting addresses, data and commands, wherein the commands firstly flow through a counting module, if the commands are writing commands, the counting module is increased by one, and after the commands reach a set updating threshold value, an equalization module is started; the address passes through a read-write address conversion module, and according to the equalization algorithm parameters transmitted by the equalization module, the externally input logical address is converted into a physical address, and then the physical address, the command and the data are accessed to a memory; when the equalization module is started, carrying out data moving operation on a partial area of the memory, and updating parameters of a corresponding equalization method after moving is completed;
in addition, the moving operation of the balancing module is performed according to a pre-designed memory address dividing operation, wherein the memory address dividing operation is to abstract a memory space into one memory unit under a certain memory storage space size, one memory unit possibly consists of a plurality of actual physical addresses of a memory, abstract one memory unit into an address in an algorithm, and rearrange a one-dimensional memory space, namely a continuous memory address space from small to large, into a two-dimensional array memory space; dividing effective addresses and idle addresses on a two-dimensional address space of segmentation and recombination, so as to carry out row and column moving operation of the equalization module; meanwhile, different updating thresholds are needed for the row moving operation and the column moving operation, namely, the row moving operation needs a row updating threshold, the column moving operation needs a column updating threshold, and the setting of the updating threshold is closely related to the row and column size of the divided two-dimensional array storage space;
the module 1 is characterized by comprising: decomposing an address array and calculating a physical address;
the method for decomposing the address array comprises the following steps: the input logical address addr_LA is used for calculating the position of the logical address in the array, namely row and column coordinates according to the size of the row and the column col, and the calculation mode is as follows:
the reason that the row coordinate xadr is equal to the logical address addr_la divided by the column col-1 and then the remainder is divided by the column col-1 is that both the row and the column have one inaccessible row and column;
the reason why the column coordinate yadr is equal to the logical address addr_la divided by the column col-1 and then rounded, divided by the column col-1 is that the rows and columns have one inaccessible row and column, which is understood as arranging the whole logical address range into a matrix array according to the rows and columns, the last row and the last column of the matrix array are inaccessible, and the logical address range is calculated by subtracting the row from the column plus 1 from the address space, so that the address in the logically accessible address space needs to be converted into the address in the physical space first;
the method for calculating the physical address comprises the following steps: the resultant rows of xadr and yadr were calculated separately:
the new address xnew of the row coordinate xadr is equal to xadr plus start_col and then the column col-1 is left, and then, if xnew is greater than or equal to the column coordinate gap_col_num where the empty column is located, xnew is added with 1; if xnew is less than gap_col_num, xnew is unchanged; start_col is responsible for recording the number of cycles that the empty column gap_col has for the column;
the new address ynew of the column coordinate yadr is equal to yadr plus start_row and then the column row-1 is left, next, if ynew is larger than or equal to the row coordinate gap_row_num where the empty interlace is located, then ynew is added with 1, if ynew is smaller than gap_row_num, then ynew is unchanged; start_row is responsible for recording the number of cycles that the empty interlace gap_row is made to line;
after xnew and ynew are obtained, the physical address addr_PA to be accessed is calculated, and the calculation method is as follows:
addr_PA= ynew * col + xnew
the functions of module 1 are: after balanced movement, the logical address is converted into a physical address, so that normal reading and writing are realized;
the module 2 comprises: a row counting module and a column counting module;
the row counting module: for the input logical address, if the write operation is performed, the write_num_row is added with 1; if the write_num_row is greater than the row update threshold write_time_row, then the write_num_row is set to 0 while the row equalization module is started;
the column count module: for the input logical address, if it is a write operation, then write_num_col is incremented by 1; if the write_num_col is greater than the column update threshold write_time_col, then the write_num_col is set to 0 while the column equalization module is started;
the function of the module 2 is to account for row writing operation counting, reach the corresponding row updating threshold value, and start a row balancing module; the column writing operation counting is responsible, the corresponding column updating threshold value is reached, and a column balancing module is started;
the module 3 comprises: a row equalization module and a column equalization module;
the line equalization module: two cases: the empty interlace gap_row is equal to 0, then the last line and the current empty interlace gap_row are moved to each other; if the empty interlace gap_row is not equal to 0, the empty interlace gap_row is moved forward;
the column equalization module: two cases: the gap_col is equal to 0, and the last column and the current gap_col are moved mutually; if the space column gap_col is not equal to 0, the space column gap_col is moved forward;
the function of the module 3 is to balance the rows and columns respectively and to carry out data movement;
equalization principle: dividing a one-dimensional address space into a two-dimensional matrix array, respectively carrying out row-column alternate equalization on rows and columns, and realizing one-to-one correspondence of read-write addresses when carrying out row equalization and column equalization simultaneously by converting the addresses into x coordinates and y coordinates;
the working process comprises the following steps:
when not balanced: the logic address, read-write operation and other signals input from the outside are converted into physical addresses which are required to be accessed after equalization through read-write address array conversion, meanwhile, the counting module counts according to whether the logic address, the read-write operation and other signals are read or write operation, if the logic address, the read-write operation and other signals are write operation, row counting or column counting reaches a row updating threshold value or a column updating threshold value, and row equalization or column equalization in the equalization module is started;
equalization: when the line is balanced: the empty interlace gap_row is equal to 0, then the last line and the current empty interlace gap_row are moved to each other; if the empty interlace gap_row is not equal to 0, the empty interlace gap_row is moved forward; after the moving is finished, starting the row writing operation counting; column equalization: the gap_col is equal to 0, and the last column and the current gap_col are moved mutually; if the space column gap_col is not equal to 0, the space column gap_col is moved forward; starting row writing operation counting after the moving is finished; the alternate proceeding of row equalization and column equalization is ensured.
2. A control method of a memory chip controller employing a wear leveling method for a memory as claimed in claim 1, the method comprising:
the control process of the chip controller adopting the wear-leveling algorithm comprises the following steps: when the chip starts the wear-leveling function, external addresses and commands are converted and threshold value count is updated through the modules 1 and 2, and then the converted addresses and corresponding signals are transmitted into the control core, and the control core decides whether to start the leveling operation according to the transmitted signals; if the control core starts the equalization operation, the corresponding row and column moving operation is carried out on the two-dimensional array storage space which is recombined according to the storage space of the memory, and the physical address which needs to be moved is given by the equalization module; in addition, when the balanced moving operation is performed, the control core can start the balanced access mode at the same time, the moving address and the accessed address can be compared in the control core, and corresponding operation is adopted according to the comparison result, so that the balanced access operation is realized, and the condition that the memory is periodically occupied due to the balanced moving operation is greatly relieved.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310283977.8A CN116027988B (en) | 2023-03-22 | 2023-03-22 | Wear leveling method for memory and control method for chip controller of wear leveling method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310283977.8A CN116027988B (en) | 2023-03-22 | 2023-03-22 | Wear leveling method for memory and control method for chip controller of wear leveling method |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116027988A true CN116027988A (en) | 2023-04-28 |
CN116027988B CN116027988B (en) | 2023-06-23 |
Family
ID=86076179
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310283977.8A Active CN116027988B (en) | 2023-03-22 | 2023-03-22 | Wear leveling method for memory and control method for chip controller of wear leveling method |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116027988B (en) |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102981971A (en) * | 2012-12-25 | 2013-03-20 | 重庆大学 | Quick-response phase change memory wear-leveling method |
CN102981972A (en) * | 2012-12-25 | 2013-03-20 | 重庆大学 | Wear-leveling method for phase change memory |
CN103885724A (en) * | 2014-03-14 | 2014-06-25 | 山东大学 | Memory system structure based on phase change memorizers and loss balancing algorithm of memory system structure |
CN103946819A (en) * | 2011-09-30 | 2014-07-23 | 英特尔公司 | Statistical wear leveling for non-volatile system memory |
CN104407813A (en) * | 2014-11-20 | 2015-03-11 | 上海宝存信息科技有限公司 | RAID (Redundant Array of Independent Disk) system and method based on solid-state storage medium |
CN105843553A (en) * | 2015-02-02 | 2016-08-10 | 三星电子株式会社 | Memory system, including memory device capable of overwrite operation, and method of operating the memory system |
US20220004496A1 (en) * | 2020-07-06 | 2022-01-06 | SK Hynix Inc. | Memory system, memory controller, and method of operating memory system |
CN114003166A (en) * | 2020-07-28 | 2022-02-01 | 爱思开海力士有限公司 | Data storage device and operation method thereof |
CN114356209A (en) * | 2020-10-13 | 2022-04-15 | 爱思开海力士有限公司 | Storage device and operation method thereof |
CN114415962A (en) * | 2022-01-24 | 2022-04-29 | 广东工业大学 | Static wear leveling method, system, equipment and storage medium |
CN115458011A (en) * | 2022-09-15 | 2022-12-09 | 南京后摩智能科技有限公司 | Wear-leveling circuit applied to memory and memory |
CN115668163A (en) * | 2020-05-19 | 2023-01-31 | 美光科技公司 | Opcode storage for on-die microprocessors |
-
2023
- 2023-03-22 CN CN202310283977.8A patent/CN116027988B/en active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103946819A (en) * | 2011-09-30 | 2014-07-23 | 英特尔公司 | Statistical wear leveling for non-volatile system memory |
CN102981971A (en) * | 2012-12-25 | 2013-03-20 | 重庆大学 | Quick-response phase change memory wear-leveling method |
CN102981972A (en) * | 2012-12-25 | 2013-03-20 | 重庆大学 | Wear-leveling method for phase change memory |
CN103885724A (en) * | 2014-03-14 | 2014-06-25 | 山东大学 | Memory system structure based on phase change memorizers and loss balancing algorithm of memory system structure |
CN104407813A (en) * | 2014-11-20 | 2015-03-11 | 上海宝存信息科技有限公司 | RAID (Redundant Array of Independent Disk) system and method based on solid-state storage medium |
CN105843553A (en) * | 2015-02-02 | 2016-08-10 | 三星电子株式会社 | Memory system, including memory device capable of overwrite operation, and method of operating the memory system |
CN115668163A (en) * | 2020-05-19 | 2023-01-31 | 美光科技公司 | Opcode storage for on-die microprocessors |
US20220004496A1 (en) * | 2020-07-06 | 2022-01-06 | SK Hynix Inc. | Memory system, memory controller, and method of operating memory system |
CN114003166A (en) * | 2020-07-28 | 2022-02-01 | 爱思开海力士有限公司 | Data storage device and operation method thereof |
CN114356209A (en) * | 2020-10-13 | 2022-04-15 | 爱思开海力士有限公司 | Storage device and operation method thereof |
CN114415962A (en) * | 2022-01-24 | 2022-04-29 | 广东工业大学 | Static wear leveling method, system, equipment and storage medium |
CN115458011A (en) * | 2022-09-15 | 2022-12-09 | 南京后摩智能科技有限公司 | Wear-leveling circuit applied to memory and memory |
Non-Patent Citations (1)
Title |
---|
杨涓: "基于非易失性存储器的混合内存***性能优化研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》, pages 137 - 62 * |
Also Published As
Publication number | Publication date |
---|---|
CN116027988B (en) | 2023-06-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101639808B (en) | Methods of data management in non-volatile memory devices and related non-volatile memory systems | |
US7486584B2 (en) | Semiconductor memory device and refresh control method thereof | |
EP3176688B1 (en) | Method and system for asynchronous die operations in a non-volatile memory | |
US9465731B2 (en) | Multi-layer non-volatile memory system having multiple partitions in a layer | |
CN101246744B (en) | Non-volatile memory device having monitoring memory cell and related method of driving using variable read voltage | |
CN101446924B (en) | Method and system for storing and obtaining data | |
KR101399549B1 (en) | Semiconductor memory devices and block management method thereof | |
CN104050088B (en) | DIFFERENCE L2P METHOD and system | |
US20140189205A1 (en) | Method and system for managing program cycles in a multi-layer memory | |
CN103477393A (en) | Multi-layer memory system with three memory layers having different bit per cell storage capacities | |
CN109147849B (en) | Data storage device and non-volatile memory operation method | |
CN102317924A (en) | Programming method and device for a buffer cache in a solid-state disk system | |
CN102347075A (en) | Semiconductor device | |
CN107025181A (en) | Access the method for memory cell, distribute method, system and the Memory Controller of memory requests | |
CN116027988B (en) | Wear leveling method for memory and control method for chip controller of wear leveling method | |
CN103811047B (en) | Low-power-consumption refreshing method based on block DRAM (dynamic random access memory) | |
CN107045424B (en) | Time-sharing multiplexing management file reading and writing method for moonlet solid-state memory | |
CN100489772C (en) | Stream data-oriented resequencing access storage buffering method and device | |
CN101369217B (en) | RAID level transforming method and apparatus | |
US9804799B2 (en) | Memory storage device and operating method thereof | |
CN101996142B (en) | Method and device for accessing storage | |
CN1828767B (en) | Memory address generating circuit and memory controller using the same | |
US20220027131A1 (en) | Processing-in-memory (pim) devices | |
CN111273865B (en) | Task allocation and scheduling method based on variable scratch pad memory | |
WO2004040454A2 (en) | Method and apparatus for performing multi-page write operations in a non-volatile memory 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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |