US20150347038A1 - Apparatuses and methods for performing wear leveling operations - Google Patents
Apparatuses and methods for performing wear leveling operations Download PDFInfo
- Publication number
- US20150347038A1 US20150347038A1 US14/288,663 US201414288663A US2015347038A1 US 20150347038 A1 US20150347038 A1 US 20150347038A1 US 201414288663 A US201414288663 A US 201414288663A US 2015347038 A1 US2015347038 A1 US 2015347038A1
- Authority
- US
- United States
- Prior art keywords
- wear leveling
- memory
- block
- array
- command
- 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0616—Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0653—Monitoring storage devices or systems
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
- G06F2212/1036—Life time enhancement
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/15—Use in a specific computing environment
- G06F2212/152—Virtualized environment, e.g. logically partitioned system
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/20—Employing a main memory using a specific memory technology
- G06F2212/202—Non-volatile memory
- G06F2212/2022—Flash memory
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7211—Wear leveling
Definitions
- Memories may be included in a variety of apparatuses, such as computers or other devices, including but not limited to portable memory devices, solid state drives, personal digital assistants, music players, cameras, phones, wireless devices, displays, chip sets, set top boxes, gaming systems, vehicles, and appliances. Memories may be volatile, where power is needed to store date, and non-volatile, where data is stored even if power is not provided to the memory, or combinations of volatile and non-volatile memory. There are many different types of volatile and non-volatile memory including random-access memory (RAM), read only memory (ROM), dynamic random access memory (DRAM), synchronous dynamic random access memory (SDRAM), flash memory, and resistance variable memory, among others.
- RAM random-access memory
- ROM read only memory
- DRAM dynamic random access memory
- SDRAM synchronous dynamic random access memory
- flash memory and resistance variable memory, among others.
- Resistance variable memory devices may be used as non-volatile memory for a wide range of electronic devices.
- Resistance variable memory devices may include, for example, phase change memory (PCM) or resistive memory, among others.
- PCM phase change memory
- resistive memory resistive memory
- PCMs phase change memory
- RAM replacement operation of PCMs in memory systems may be restricted and/or require additional mechanisms for operation.
- blocks of PCMs may be limited to a relatively low number of write operations compared to RAM and may require additional housekeeping mechanisms (e.g., wear leveling operations, refresh operations) to ensure feasible RAM replacement.
- FIG. 1 is a block diagram of an apparatus according to an embodiment of the present invention.
- FIG. 3 is a block diagram of a memory according to an embodiment of the present invention.
- FIG. 4 is a flowchart of a method for performing a wear leveling operation according to an embodiment of the present invention.
- FIG. 5A is a schematic diagram of an initial block address mapping arrangement during a wear leveling operation according to an embodiment of the present invention.
- FIG. 5B is a schematic diagram of an intermediate block address mapping arrangement during a wear leveling operation according to an embodiment of the present invention.
- FIG. 5C is a schematic diagram of an intermediate block address mapping arrangement during a wear leveling operation according to an embodiment of the present invention.
- FIG. 5D is a schematic diagram of an intermediate block address mapping arrangement during a wear leveling operation according to an embodiment of the present invention.
- FIG. 5E is a schematic diagram of an intermediate block address mapping arrangement during a wear leveling operation according to an embodiment of the present invention.
- FIG. 5F is a schematic diagram of a final block address mapping arrangement during a wear leveling operation according to an embodiment of the present invention.
- FIG. 1 is a block diagram of an apparatus 100 according to an embodiment of the present invention.
- the apparatus may comprise circuitry, one or more semiconductor die, a packaged semiconductor, a device including such circuitry, die, or package, and/or a system including such a device.
- the apparatus 100 may include a host 110 (e.g., memory controller) and a memory 120 .
- the host 110 and the memory 120 may be coupled by a command and address (CA) bus 130 and a data bus 135 .
- the memory 120 may be configured to receive commands and/or addresses from the host 110 over the CA bus 130 , and the memory may be configured to receive information and/or provide information over the bus 135 .
- CA command and address
- the information received and provided over the bus 135 may include data to be stored by the memory 120 and/or to be provided from memory, for example.
- the host 110 and memory 120 are described as providing signals over the CA bus 130 and the data bus 135 , in some examples, a single bus may be used to provide signals.
- the host 110 may be configured to provide commands, addresses, and data to the memory 120 and receive data from the memory 120 , over a single, shared bus.
- the memory 120 may be configured to perform operations (e.g., read operations, write operations, or wear leveling operations) in response to received memory commands and/or addresses provided by the host 110 .
- the memory 120 may provide data to the host 110 over the data bus 135 responsive to a read command, and may store data received over the data bus 135 responsive to a write command.
- the memory 120 may perform a wear leveling operation responsive to a wear leveling command, described further below.
- the memory 120 may further provide information to the host 110 over the data bus 135 .
- Information provided by the memory 120 to the host 110 may, for instance, be included in an acknowledgement provided to the host 110 in response to one or more commands. Acknowledgements may, for instance, be provided following a variable latency period.
- the table 200 illustrates example bit assignments for acknowledgements provided by the memory 120 to the host 110 .
- an acknowledgement may include information associated with a wait state, e.g., whether a variable latency has ended, and/or may include information associated with one or more current instructions.
- an acknowledgement may indicate that a command, such as a read command or write command, has been accepted and that the memory 120 will perform the command (e.g., “001”).
- An acknowledgement further may indicate that an error, such as a lock error, has occurred during a previous operation (e.g., “101”).
- an acknowledgement may indicate that the memory 120 recommends that the host 110 provide a wear leveling command (e.g., “011”).
- the memory 120 may be configured to track write operations performed by the memory 120 .
- the memory 120 may track a “global write count,” or the number of write operations performed by the memory 120 since the memory 120 last performed a wear leveling operation.
- the memory 120 may recommend the host 110 provide a wear leveling command.
- the memory 120 may selectively ignore wear leveling commands based on the global write count. The memory 120 may, for instance, ignore wear leveling commands if the global write count does not exceed a threshold.
- the memory 120 may be configured to track a number of write operations performed on each block of an array associated with the memory 120 .
- the memory 120 may track a “local write count” for each block, or a number of write operations performed by the memory 120 on each block since the memory 120 last performed a wear leveling operation.
- the memory 120 may recommend the host 110 provide a wear leveling command, and in some instances, the memory 120 may selectively ignore wearing commands based on the local write count. In this manner, the memory 120 may recommend the host 110 provide a wear leveling command in response to performing an operation at a particular block (e.g., maximum cycled block) a particular number of times since last performing a wear leveling operation.
- FIG. 3 is a block diagram of a memory 300 according to an embodiment of the present invention.
- the memory 300 may be used to implement, at least in part, the memory 120 of FIG. 1 .
- the memory 300 may include a memory control unit 310 , a buffer 320 , an array 330 , and a flag status register 350 .
- the memory 300 may include elements that have been previously described with respect to the apparatus 100 of FIG. 1 . Those elements have been identified in FIG. 3 using the same reference numbers used in FIG. 1 and operation of the common elements is as previously described. Consequently, a detailed description of the operation of these elements will not be repeated in the interest of brevity.
- the memory control unit 310 may be configured to control operation of the one or more components of the memory 300 .
- the memory control unit 310 may be coupled to the buffer 320 and the array 330 and may be configured to control operation of the buffer 320 and the array 330 .
- the memory control unit 310 may be configured to receive commands and addresses from the CA bus 130 and the buffer 320 may be configured to receive information from the data bus 135 and provide information to the data bus 135 .
- the memory control unit 310 may be configured to cause data (e.g., write data or read data) to be provided between the buffer 320 and the array 330 over the data bus 340 in response to received commands and addresses.
- the memory control unit 310 may cause write data to be provided from the buffer 320 to the array 330 .
- the memory control unit 310 may cause read data to be provided from the array 330 to the buffer 320 .
- the memory control unit 310 may further be configured to perform wear leveling operations.
- the memory control unit 310 may be configured to perform wear leveling operations in accordance with static wear leveling, dynamic wear leveling, or a combination thereof.
- performing a wear leveling operation may include reallocating data between various blocks of the memory array 330 and/or reassigning one or more addresses (e.g., block addresses) corresponding thereto.
- performing a wear leveling operation may include storing addresses in one or more address registers 312 .
- the address registers 312 may be volatile or non-volatile registers and may be included in the memory control unit 310 , as illustrated, and/or may be located in one or more other components of the memory 300 .
- the memory control unit 310 may include wear leveling logic 315 for performing a wear leveling operation.
- the wear leveling logic 315 may be implemented in hardware, software, or combinations thereof.
- the memory control unit 310 may be implemented, at least in part, using a controller, and the wear leveling logic 315 may be stored in non-volatile memory of the controller as one or more computer-readable instructions executable by one or more processing units (e.g., processors) of the memory control unit 310 .
- the memory control unit 310 may further be configured to set one or more status bits of a register.
- the memory control unit 310 may be configured to set a bit of the flag status register 350 having a logic state indicating whether a wear leveling operation is being performed (e.g., the bit of the flag status register 350 having a logic state of “I”).
- the memory control unit 310 may be configured to set a bit of the flag status register 350 indicating whether a wear leveling operation is recommended (e.g., the bit of the flag status register 350 having a logic state of “1”).
- the memory 300 may track (e.g., count) a global write count indicative of the number of write operations performed by the memory 300 since a wear leveling operation was last performed by the memory 300 and/or may track local write counts indicative of the number of write operations performed at each block of an array associated with the memory 300 , such as the array 330 .
- the global write count and/or the local write counts may be tracked using a counter 311 located in the memory control unit 310 . Responsive to the global write count and/or a local write count exceeding a threshold, the memory control unit 310 may recommend the host 110 provide a wear leveling command.
- the counter 311 may alternatively be stored in the buffer 320 , or any other component of the memory 300 .
- the memory control unit 310 may perform wear leveling operations in response to commands provided by the host 110 , in some instances the memory control unit 310 may automatically perform wear leveling operations.
- the memory control unit 310 may perform a wear leveling operation in response to the global write count exceeding a threshold.
- the global write count threshold causing the memory control unit 310 to automatically perform a wear leveling operation may exceed the global write count threshold causing the memory control unit 310 to recommend the host 110 provide a wear leveling command.
- the array 330 may comprise any array known in the art, now or in the future, and as described, may be divided into blocks.
- the array 330 may include a volatile portion of memory, a non-volatile portion of memory (e.g., PCM memory), or a combination thereof.
- the array 330 may include a data structure for tracking various attributes of the array 330 over time.
- the array 330 may include an address map 332 that includes information specifying the relationship between logical addresses of the array 330 and physical addresses of the array 330 .
- the logical addresses may be related to the addresses provided to the memory by the host, such as the addresses associated with a read command and a write command.
- the array 330 may include a write count map 334 that includes information that may indicate a number of write operations performed on each block of the array 330 , for instance, over a life of the array 330 .
- the address map 332 and the write count map 334 may additionally or alternatively be stored in the memory control unit 310 .
- the memory control unit 310 may be configured to read and/or modify the address map 332 and the write count map 334 .
- FIG. 4 is a flowchart 400 of a method for performing a wear leveling operation according to an embodiment of the present invention.
- the method may be implemented using a memory control unit, such as the memory control unit 310 and of FIG. 3 , and an array, such as the array 330 of FIG. 3 .
- the method 400 is described herein with reference to FIGS. 5A-5F which may further illustrate block address mapping arrangements during a wear leveling operation.
- FIGS. 5A-5F illustrate an address map 502 , a physical array 504 , a write count map 506 , and address registers 508 .
- the address map 502 stores logical addresses 502 LOG 0 -LOG 7 and associated physical addresses 502 PHYS 0 -PHYS 7 .
- the memory control unit 310 may identify a maximum cycled block and a spare block of the array 504 .
- the maximum cycled block may be a block having a highest write count of each of the blocks array 504 as indicated by the write count map 506 .
- the spare block may be any block in the array 504 that may be used as a spare wear leveling block.
- the spare block may be any block not storing any data and/or blocks designated as not storing persistent data.
- identifying the maximum cycled block and a spare block may include identifying a logical address and/or physical address in the address map 502 for each of the maximum cycled block and spare block.
- the memory control unit 310 may identify a highest count in the write count map 506 , the write count NM, to identify the maximum cycled block of the array 504 .
- the maximum cycled block may be identified from blocks of the array 504 designated as swappable.
- a block may be designated as swappable, for instance, based on a “swap write count” of the block, or a number of write operations performed on the block since the block was last assigned a new block address (e.g., logical block address) in accordance with a wear leveling operation.
- a block may be designated as swappable when a swap write count of the block exceeds a threshold.
- the swap write count of each block may be stored in the write count map 506 and/or in one or more registers (not shown).
- the memory control unit 310 may identify a logical address LBAM and a physical address PBAM in the address map 502 associated with the identified maximum cycled block. Similarly, the memory control unit 310 may identify a spare block and identify a logical address SPARE and a physical address PBAi associated with the identified spare block. At step 410 , the memory control unit 310 may store the logical address LBAM and the physical address PBAM in the address registers 508 . As illustrated in FIG. 5A , the maximum cycled block is BLOCK 0 and the spare block is BLOCK 6 of the array 504 .
- the memory control unit 310 may copy data stored in the maximum cycled block BLOCK 0 to the spare block BLOCK 6 , and at step 420 , the memory control unit 310 may update (e.g., increment) the write count NS associated with the spare block BLOCK 6 .
- the memory control unit 310 may assign the addresses stored in the address registers 508 , in particular, the logical address LBAM and the physical address PBAM.
- the addresses may be assigned such that the logical address SPARE is associated with the physical address PBAM and the logical address LBAM is associated with the physical address PBAi.
- the physical addresses mapped to the logical addresses LBAM, SPARE may be switched relative to the arrangement of FIG. 5A .
- the maximum cycled block BLOCK 0 of the array 504 may be assigned as the spare block of the array 504 .
- the memory control unit 310 may identify a minimum cycled block.
- the minimum cycled block may be a block having a lowest write count of each of the blocks BLOCK 0 -BLOCK 7 of array 504 as indicated by the write count map 506 .
- identifying the minimum cycled block may include identifying a logical address and/or physical address for the minimum cycled block.
- the memory control unit 310 may identify a lowest count in the write count map 506 , the write count Nm, to identify the minimum cycled block of the array 504 .
- BLOCK 3 is identified in FIG. 5D as the minimum cycled block of the array 504 .
- the memory control unit 310 may identify a logical address LBAm and a physical address PBAm in the address map 502 associated with the identified minimum cycled block. At step 435 , the memory control unit 310 may store the logical address LBAm and the physical address PBAm in the address registers 508 .
- the memory control unit 310 may copy data stored in the minimum cycled block to the spare block, and at step 445 , may update the write count NM associated with the spare block.
- the memory control unit 310 may perform a wear leveling operation such that the logical address LBAm may be associated with the physical address PBAM and thus the maximum cycled block of the array 504 .
- the logical address SPARE may be associated with the physical address PBAm and thus the minimum cycled block BLOCK 3 of the array 504
- the logical address LBAM may be associated with the physical address PBAi and thus becoming the spare block of the array 504 .
- Assigning addresses in this manner may, for instance, more evenly distribute write operations among blocks BLOCK 0 -BLOCK 7 of the array 504 and thereby provide prolonged operation of the array 504 .
- steps of the method 400 may be performed in any order and further may include additional steps and/or omit one or more described steps.
- the maximum and minimum cycled blocks may be identified at a same time and logical and/or physical addresses of the maximum and minimum cycled blocks may be stored simultaneously in address registers 508 .
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
Description
- Memories may be included in a variety of apparatuses, such as computers or other devices, including but not limited to portable memory devices, solid state drives, personal digital assistants, music players, cameras, phones, wireless devices, displays, chip sets, set top boxes, gaming systems, vehicles, and appliances. Memories may be volatile, where power is needed to store date, and non-volatile, where data is stored even if power is not provided to the memory, or combinations of volatile and non-volatile memory. There are many different types of volatile and non-volatile memory including random-access memory (RAM), read only memory (ROM), dynamic random access memory (DRAM), synchronous dynamic random access memory (SDRAM), flash memory, and resistance variable memory, among others.
- Memories, such as resistance variable memory devices, may be used as non-volatile memory for a wide range of electronic devices. Resistance variable memory devices may include, for example, phase change memory (PCM) or resistive memory, among others. In some instances, it may be desirable to use PCM to implement random access memory. As a result of the limitations of using PCM as RAM replacement, operation of PCMs in memory systems may be restricted and/or require additional mechanisms for operation. For example, blocks of PCMs may be limited to a relatively low number of write operations compared to RAM and may require additional housekeeping mechanisms (e.g., wear leveling operations, refresh operations) to ensure feasible RAM replacement.
-
FIG. 1 is a block diagram of an apparatus according to an embodiment of the present invention. -
FIG. 2 is a table illustrating example bit assignments of a flag status register according to an embodiment of the present invention. -
FIG. 3 is a block diagram of a memory according to an embodiment of the present invention. -
FIG. 4 is a flowchart of a method for performing a wear leveling operation according to an embodiment of the present invention. -
FIG. 5A is a schematic diagram of an initial block address mapping arrangement during a wear leveling operation according to an embodiment of the present invention. -
FIG. 5B is a schematic diagram of an intermediate block address mapping arrangement during a wear leveling operation according to an embodiment of the present invention. -
FIG. 5C is a schematic diagram of an intermediate block address mapping arrangement during a wear leveling operation according to an embodiment of the present invention. -
FIG. 5D is a schematic diagram of an intermediate block address mapping arrangement during a wear leveling operation according to an embodiment of the present invention. -
FIG. 5E is a schematic diagram of an intermediate block address mapping arrangement during a wear leveling operation according to an embodiment of the present invention. -
FIG. 5F is a schematic diagram of a final block address mapping arrangement during a wear leveling operation according to an embodiment of the present invention. - Apparatuses and methods for commands to perform wear leveling operations are described herein. Certain details are set forth below to provide a sufficient understanding of embodiments of the invention. However, it will be clear to one having skill in the art that embodiments of the invention may be practiced without these particular details. Moreover, the particular embodiments of the present invention described herein are provided by way of example and should not be used to limit the scope of the invention to these particular embodiments. In other instances, well-known circuits, control signals, timing protocols, and software operations have not been shown in detail in order to avoid unnecessarily obscuring the invention.
-
FIG. 1 is a block diagram of anapparatus 100 according to an embodiment of the present invention. The apparatus may comprise circuitry, one or more semiconductor die, a packaged semiconductor, a device including such circuitry, die, or package, and/or a system including such a device. Theapparatus 100 may include a host 110 (e.g., memory controller) and amemory 120. Thehost 110 and thememory 120 may be coupled by a command and address (CA)bus 130 and adata bus 135. Thememory 120 may be configured to receive commands and/or addresses from thehost 110 over theCA bus 130, and the memory may be configured to receive information and/or provide information over thebus 135. The information received and provided over thebus 135 may include data to be stored by thememory 120 and/or to be provided from memory, for example. Although thehost 110 andmemory 120 are described as providing signals over theCA bus 130 and thedata bus 135, in some examples, a single bus may be used to provide signals. For example, in at least one embodiment, thehost 110 may be configured to provide commands, addresses, and data to thememory 120 and receive data from thememory 120, over a single, shared bus. - The
memory 120 may be configured to perform operations (e.g., read operations, write operations, or wear leveling operations) in response to received memory commands and/or addresses provided by thehost 110. By way of example, thememory 120 may provide data to thehost 110 over thedata bus 135 responsive to a read command, and may store data received over thedata bus 135 responsive to a write command. As another example, thememory 120 may perform a wear leveling operation responsive to a wear leveling command, described further below. - The
memory 120 may further provide information to thehost 110 over thedata bus 135. Information provided by thememory 120 to thehost 110 may, for instance, be included in an acknowledgement provided to thehost 110 in response to one or more commands. Acknowledgements may, for instance, be provided following a variable latency period. With reference toFIG. 2 , the table 200 illustrates example bit assignments for acknowledgements provided by thememory 120 to thehost 110. Generally, an acknowledgement may include information associated with a wait state, e.g., whether a variable latency has ended, and/or may include information associated with one or more current instructions. By way of example, an acknowledgement may indicate that a command, such as a read command or write command, has been accepted and that thememory 120 will perform the command (e.g., “001”). An acknowledgement further may indicate that an error, such as a lock error, has occurred during a previous operation (e.g., “101”). Additionally or alternatively, an acknowledgement may indicate that thememory 120 recommends that thehost 110 provide a wear leveling command (e.g., “011”). - In some examples, the
memory 120 may be configured to track write operations performed by thememory 120. In particular, thememory 120 may track a “global write count,” or the number of write operations performed by thememory 120 since thememory 120 last performed a wear leveling operation. Once the global write count has exceeded a threshold, thememory 120 may recommend thehost 110 provide a wear leveling command. In some instances, thememory 120 may selectively ignore wear leveling commands based on the global write count. Thememory 120 may, for instance, ignore wear leveling commands if the global write count does not exceed a threshold. - Additionally or alternatively, in some examples, the
memory 120 may be configured to track a number of write operations performed on each block of an array associated with thememory 120. In particular, thememory 120 may track a “local write count” for each block, or a number of write operations performed by thememory 120 on each block since thememory 120 last performed a wear leveling operation. Once a local write count has exceeded a threshold, thememory 120 may recommend thehost 110 provide a wear leveling command, and in some instances, thememory 120 may selectively ignore wearing commands based on the local write count. In this manner, thememory 120 may recommend thehost 110 provide a wear leveling command in response to performing an operation at a particular block (e.g., maximum cycled block) a particular number of times since last performing a wear leveling operation. -
FIG. 3 is a block diagram of amemory 300 according to an embodiment of the present invention. Thememory 300 may be used to implement, at least in part, thememory 120 ofFIG. 1 . Thememory 300 may include amemory control unit 310, abuffer 320, anarray 330, and aflag status register 350. Thememory 300 may include elements that have been previously described with respect to theapparatus 100 ofFIG. 1 . Those elements have been identified inFIG. 3 using the same reference numbers used inFIG. 1 and operation of the common elements is as previously described. Consequently, a detailed description of the operation of these elements will not be repeated in the interest of brevity. - The
memory control unit 310 may be configured to control operation of the one or more components of thememory 300. By way of example, thememory control unit 310 may be coupled to thebuffer 320 and thearray 330 and may be configured to control operation of thebuffer 320 and thearray 330. Thememory control unit 310 may be configured to receive commands and addresses from theCA bus 130 and thebuffer 320 may be configured to receive information from thedata bus 135 and provide information to thedata bus 135. Thememory control unit 310 may be configured to cause data (e.g., write data or read data) to be provided between thebuffer 320 and thearray 330 over thedata bus 340 in response to received commands and addresses. For example, in response to a write command, thememory control unit 310 may cause write data to be provided from thebuffer 320 to thearray 330. Similarly, in response to a read command, thememory control unit 310 may cause read data to be provided from thearray 330 to thebuffer 320. - The
memory control unit 310 may further be configured to perform wear leveling operations. Generally, thememory control unit 310 may be configured to perform wear leveling operations in accordance with static wear leveling, dynamic wear leveling, or a combination thereof. Accordingly, performing a wear leveling operation may include reallocating data between various blocks of thememory array 330 and/or reassigning one or more addresses (e.g., block addresses) corresponding thereto. In some examples, performing a wear leveling operation may include storing addresses in one or more address registers 312. The address registers 312 may be volatile or non-volatile registers and may be included in thememory control unit 310, as illustrated, and/or may be located in one or more other components of thememory 300. - The
memory control unit 310 may include wear levelinglogic 315 for performing a wear leveling operation. Thewear leveling logic 315 may be implemented in hardware, software, or combinations thereof. By way of example, thememory control unit 310 may be implemented, at least in part, using a controller, and thewear leveling logic 315 may be stored in non-volatile memory of the controller as one or more computer-readable instructions executable by one or more processing units (e.g., processors) of thememory control unit 310. - In some embodiments, the
memory control unit 310 may further be configured to set one or more status bits of a register. For example, thememory control unit 310 may be configured to set a bit of theflag status register 350 having a logic state indicating whether a wear leveling operation is being performed (e.g., the bit of theflag status register 350 having a logic state of “I”). In another example, thememory control unit 310 may be configured to set a bit of theflag status register 350 indicating whether a wear leveling operation is recommended (e.g., the bit of theflag status register 350 having a logic state of “1”). Acknowledgements provided to thehost 110 may be based on one or more bits of the flag status register, and accordingly, whether an acknowledgement recommends thehost 110 provide a wear leveling command may be based on a bit of theflag status register 350. The bit of theflag status register 350 indicating whether a wear leveling operation is recommended may be set by thememory control unit 310 based on a number of write commands performed since a wear leveling operation was last performed. Additionally or alternatively, the logic state of the bit written by thememory control unit 310 may be set based on an amount of time since a wear leveling operation was performed. Thememory 110 may provide information indicative of the state of each bit of theflag status register 350 in response to a read flag status register (RFSR) command to thememory 300. - As described, the
memory 300 may track (e.g., count) a global write count indicative of the number of write operations performed by thememory 300 since a wear leveling operation was last performed by thememory 300 and/or may track local write counts indicative of the number of write operations performed at each block of an array associated with thememory 300, such as thearray 330. By way of example, the global write count and/or the local write counts may be tracked using acounter 311 located in thememory control unit 310. Responsive to the global write count and/or a local write count exceeding a threshold, thememory control unit 310 may recommend thehost 110 provide a wear leveling command. In some examples, thecounter 311 may alternatively be stored in thebuffer 320, or any other component of thememory 300. - Further, while the
memory control unit 310 may perform wear leveling operations in response to commands provided by thehost 110, in some instances thememory control unit 310 may automatically perform wear leveling operations. By way of example, thememory control unit 310 may perform a wear leveling operation in response to the global write count exceeding a threshold. The global write count threshold causing thememory control unit 310 to automatically perform a wear leveling operation may exceed the global write count threshold causing thememory control unit 310 to recommend thehost 110 provide a wear leveling command. As an example, a global write count of 10,000 write operations may cause thememory control unit 310 to recommend thehost 110 provide a wear leveling command, for instance by setting a bit of theflag status register 350 having an appropriate logic state, and a global write count of 100,000 write operations may cause the memory control unit to automatically perform a wear leveling operation. As another example, thememory control unit 310 may perform a wear leveling operation in response to a local write count exceeding a threshold. A local write count threshold causing thememory control unit 310 to automatically perform a wear leveling operation may exceed the local write count threshold causing thememory control unit 310 to recommend thehost 110 provide a wear leveling command. In other examples, thememory control unit 310 may not automatically perform wear leveling operations, or thememory control unit 310 may be configured to selectively perform wear leveling operations automatically, for instance, based on a control signal or command provided by thehost 110. - The
array 330 may comprise any array known in the art, now or in the future, and as described, may be divided into blocks. Thearray 330 may include a volatile portion of memory, a non-volatile portion of memory (e.g., PCM memory), or a combination thereof. Thearray 330 may include a data structure for tracking various attributes of thearray 330 over time. By way of example, thearray 330 may include anaddress map 332 that includes information specifying the relationship between logical addresses of thearray 330 and physical addresses of thearray 330. The logical addresses may be related to the addresses provided to the memory by the host, such as the addresses associated with a read command and a write command. As another example, thearray 330 may include awrite count map 334 that includes information that may indicate a number of write operations performed on each block of thearray 330, for instance, over a life of thearray 330. In some examples, theaddress map 332 and thewrite count map 334 may additionally or alternatively be stored in thememory control unit 310. Thememory control unit 310 may be configured to read and/or modify theaddress map 332 and thewrite count map 334. -
FIG. 4 is aflowchart 400 of a method for performing a wear leveling operation according to an embodiment of the present invention. The method may be implemented using a memory control unit, such as thememory control unit 310 and ofFIG. 3 , and an array, such as thearray 330 ofFIG. 3 . Themethod 400 is described herein with reference toFIGS. 5A-5F which may further illustrate block address mapping arrangements during a wear leveling operation. Each of theFIGS. 5A-5F illustrate anaddress map 502, aphysical array 504, awrite count map 506, and address registers 508. Theaddress map 502 storeslogical addresses 502 LOG0-LOG7 and associatedphysical addresses 502 PHYS0-PHYS7. Theaddress map 502, writecount map 506, and registers 508 may be used to implement theaddress map 332, thewrite count map 334, and the address registers 312 ofFIG. 3 , respectively. For example, logical address LOG4 corresponds to physical address PHYS4 that at a given time may point to BLOCK3, the write count of which is stored in COUNT3. - At
step 405, thememory control unit 310 may identify a maximum cycled block and a spare block of thearray 504. The maximum cycled block may be a block having a highest write count of each of theblocks array 504 as indicated by thewrite count map 506. The spare block may be any block in thearray 504 that may be used as a spare wear leveling block. The spare block may be any block not storing any data and/or blocks designated as not storing persistent data. - With reference to
FIG. 5A , identifying the maximum cycled block and a spare block may include identifying a logical address and/or physical address in theaddress map 502 for each of the maximum cycled block and spare block. By way of example, thememory control unit 310 may identify a highest count in thewrite count map 506, the write count NM, to identify the maximum cycled block of thearray 504. In some examples, the maximum cycled block may be identified from blocks of thearray 504 designated as swappable. A block may be designated as swappable, for instance, based on a “swap write count” of the block, or a number of write operations performed on the block since the block was last assigned a new block address (e.g., logical block address) in accordance with a wear leveling operation. By way of example, in at least one embodiment, a block may be designated as swappable when a swap write count of the block exceeds a threshold. The swap write count of each block may be stored in thewrite count map 506 and/or in one or more registers (not shown). - In turn, the
memory control unit 310 may identify a logical address LBAM and a physical address PBAM in theaddress map 502 associated with the identified maximum cycled block. Similarly, thememory control unit 310 may identify a spare block and identify a logical address SPARE and a physical address PBAi associated with the identified spare block. Atstep 410, thememory control unit 310 may store the logical address LBAM and the physical address PBAM in the address registers 508. As illustrated inFIG. 5A , the maximum cycled block is BLOCK0 and the spare block is BLOCK6 of thearray 504. - With reference to
FIG. 5B , atstep 415, thememory control unit 310 may copy data stored in the maximum cycled block BLOCK0 to the spare block BLOCK6, and atstep 420, thememory control unit 310 may update (e.g., increment) the write count NS associated with the spare block BLOCK6. - With reference to
FIG. 5C , atstep 425, thememory control unit 310 may assign the addresses stored in the address registers 508, in particular, the logical address LBAM and the physical address PBAM. The addresses may be assigned such that the logical address SPARE is associated with the physical address PBAM and the logical address LBAM is associated with the physical address PBAi. In this manner, the physical addresses mapped to the logical addresses LBAM, SPARE may be switched relative to the arrangement ofFIG. 5A . Accordingly, the maximum cycled block BLOCK0 of thearray 504 may be assigned as the spare block of thearray 504. - At
step 430, thememory control unit 310 may identify a minimum cycled block. The minimum cycled block may be a block having a lowest write count of each of the blocks BLOCK0-BLOCK7 ofarray 504 as indicated by thewrite count map 506. With reference toFIG. 5D , identifying the minimum cycled block may include identifying a logical address and/or physical address for the minimum cycled block. By way of example, thememory control unit 310 may identify a lowest count in thewrite count map 506, the write count Nm, to identify the minimum cycled block of thearray 504. BLOCK3 is identified inFIG. 5D as the minimum cycled block of thearray 504. In turn, thememory control unit 310 may identify a logical address LBAm and a physical address PBAm in theaddress map 502 associated with the identified minimum cycled block. Atstep 435, thememory control unit 310 may store the logical address LBAm and the physical address PBAm in the address registers 508. - With reference to
FIG. 5E , atstep 440, thememory control unit 310 may copy data stored in the minimum cycled block to the spare block, and atstep 445, may update the write count NM associated with the spare block. - With reference to
FIG. 5F , atstep 450, thememory control unit 310 may assign the addresses stored in the address registers 508, the logical address LBAm and the physical address PBAm. The addresses may be assigned such that the logical address SPARE is associated with the physical address PBAm and the logical address LBAm is associated with the physical address PBAM. In this manner, the physical addresses mapped to the logical addresses LBAm, SPARE may be switched relative to the arrangement ofFIG. 5D . Accordingly, the minimum cycled block BLOCK3 of thearray 504 may be assigned as the spare block of thearray 504. - Accordingly, the
memory control unit 310 may perform a wear leveling operation such that the logical address LBAm may be associated with the physical address PBAM and thus the maximum cycled block of thearray 504. Additionally, the logical address SPARE may be associated with the physical address PBAm and thus the minimum cycled block BLOCK3 of thearray 504, and the logical address LBAM may be associated with the physical address PBAi and thus becoming the spare block of thearray 504. Assigning addresses in this manner may, for instance, more evenly distribute write operations among blocks BLOCK0-BLOCK7 of thearray 504 and thereby provide prolonged operation of thearray 504. - While the
method 400 has been described as including particular steps in a particular order, in some examples, steps of themethod 400 may be performed in any order and further may include additional steps and/or omit one or more described steps. In some examples, for instance, the maximum and minimum cycled blocks may be identified at a same time and logical and/or physical addresses of the maximum and minimum cycled blocks may be stored simultaneously in address registers 508. - From the foregoing it will be appreciated that, although specific embodiments of the invention have been described herein for purposes of illustration, various modifications may be made without deviating from the spirit and scope of the invention. Accordingly, the invention is not limited except as by the appended claims.
Claims (37)
Priority Applications (6)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US14/288,663 US10365835B2 (en) | 2014-05-28 | 2014-05-28 | Apparatuses and methods for performing write count threshold wear leveling operations |
| KR1020167036706A KR102032605B1 (en) | 2014-05-28 | 2015-04-24 | Apparatuses and methods for performing wear leveling operations |
| PCT/US2015/027490 WO2015183443A1 (en) | 2014-05-28 | 2015-04-24 | Apparatuses and methods for performing wear leveling operations |
| CN201580028254.7A CN106462500A (en) | 2014-05-28 | 2015-04-24 | Apparatus and method for performing wear leveling operations |
| CN202211209761.9A CN115512754A (en) | 2014-05-28 | 2015-04-24 | Apparatus and method for performing wear leveling operations |
| US16/523,860 US11347402B2 (en) | 2014-05-28 | 2019-07-26 | Performing wear leveling operations in a memory based on block cycles and use of spare blocks |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US14/288,663 US10365835B2 (en) | 2014-05-28 | 2014-05-28 | Apparatuses and methods for performing write count threshold wear leveling operations |
Related Child Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US16/523,860 Division US11347402B2 (en) | 2014-05-28 | 2019-07-26 | Performing wear leveling operations in a memory based on block cycles and use of spare blocks |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| US20150347038A1 true US20150347038A1 (en) | 2015-12-03 |
| US10365835B2 US10365835B2 (en) | 2019-07-30 |
Family
ID=54699512
Family Applications (2)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US14/288,663 Active US10365835B2 (en) | 2014-05-28 | 2014-05-28 | Apparatuses and methods for performing write count threshold wear leveling operations |
| US16/523,860 Active 2034-06-29 US11347402B2 (en) | 2014-05-28 | 2019-07-26 | Performing wear leveling operations in a memory based on block cycles and use of spare blocks |
Family Applications After (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US16/523,860 Active 2034-06-29 US11347402B2 (en) | 2014-05-28 | 2019-07-26 | Performing wear leveling operations in a memory based on block cycles and use of spare blocks |
Country Status (4)
| Country | Link |
|---|---|
| US (2) | US10365835B2 (en) |
| KR (1) | KR102032605B1 (en) |
| CN (2) | CN106462500A (en) |
| WO (1) | WO2015183443A1 (en) |
Cited By (43)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US9734097B2 (en) | 2013-03-15 | 2017-08-15 | Micron Technology, Inc. | Apparatuses and methods for variable latency memory operations |
| US9754648B2 (en) | 2012-10-26 | 2017-09-05 | Micron Technology, Inc. | Apparatuses and methods for memory operations having variable latencies |
| US20170344278A1 (en) * | 2016-05-25 | 2017-11-30 | SK Hynix Inc. | Memory controllers, memory systems, and methods relating to wear-leveling |
| KR20180094391A (en) * | 2017-02-15 | 2018-08-23 | 에스케이하이닉스 주식회사 | Memory system and operating method thereof |
| US20180293004A1 (en) * | 2017-04-06 | 2018-10-11 | International Business Machines Corporation | Network asset management |
| US10198195B1 (en) * | 2017-08-04 | 2019-02-05 | Micron Technology, Inc. | Wear leveling |
| CN110603529A (en) * | 2017-04-07 | 2019-12-20 | 美光科技公司 | Method for sketch-based memory management and memory device using the same |
| EP3627308A1 (en) * | 2018-09-20 | 2020-03-25 | STMicroelectronics Srl | A method of managing memories, corresponding circuit, device and computer program product |
| US20200097394A1 (en) * | 2018-09-21 | 2020-03-26 | Micron Technology, Inc. | Scrubber driven wear leveling in out of place media translation |
| US20200174677A1 (en) * | 2018-11-29 | 2020-06-04 | Micron Technology, Inc. | Wear leveling for non-volatile memory using data write counters |
| US10846955B2 (en) | 2018-03-16 | 2020-11-24 | Micron Technology, Inc. | Black box data recorder for autonomous driving vehicle |
| US10860482B2 (en) | 2013-08-14 | 2020-12-08 | Micron Technology, Inc. | Apparatuses and methods for providing data to a configurable storage area |
| CN112446480A (en) * | 2019-09-05 | 2021-03-05 | 美光科技公司 | Data storage device and method |
| US20210103391A1 (en) * | 2019-10-03 | 2021-04-08 | Landis+Gyr Innovations, Inc. | Restricting write cycles to extend the lifetime of nonvolatile memory |
| US11094148B2 (en) | 2018-06-18 | 2021-08-17 | Micron Technology, Inc. | Downloading system memory data in response to event detection |
| US11249652B1 (en) * | 2013-01-28 | 2022-02-15 | Radian Memory Systems, Inc. | Maintenance of nonvolatile memory on host selected namespaces by a common memory controller |
| US11361552B2 (en) | 2019-08-21 | 2022-06-14 | Micron Technology, Inc. | Security operations of parked vehicles |
| US11409654B2 (en) | 2019-09-05 | 2022-08-09 | Micron Technology, Inc. | Intelligent optimization of caching operations in a data storage device |
| US11436076B2 (en) | 2019-09-05 | 2022-09-06 | Micron Technology, Inc. | Predictive management of failing portions in a data storage device |
| US11481119B2 (en) * | 2019-07-15 | 2022-10-25 | Micron Technology, Inc. | Limiting hot-cold swap wear leveling |
| US11498388B2 (en) | 2019-08-21 | 2022-11-15 | Micron Technology, Inc. | Intelligent climate control in vehicles |
| US11531339B2 (en) | 2020-02-14 | 2022-12-20 | Micron Technology, Inc. | Monitoring of drive by wire sensors in vehicles |
| US11586194B2 (en) | 2019-08-12 | 2023-02-21 | Micron Technology, Inc. | Storage and access of neural network models of automotive predictive maintenance |
| US11586943B2 (en) | 2019-08-12 | 2023-02-21 | Micron Technology, Inc. | Storage and access of neural network inputs in automotive predictive maintenance |
| US11635893B2 (en) | 2019-08-12 | 2023-04-25 | Micron Technology, Inc. | Communications between processors and storage devices in automotive predictive maintenance implemented via artificial neural networks |
| US11650746B2 (en) | 2019-09-05 | 2023-05-16 | Micron Technology, Inc. | Intelligent write-amplification reduction for data storage devices configured on autonomous vehicles |
| US11693562B2 (en) | 2019-09-05 | 2023-07-04 | Micron Technology, Inc. | Bandwidth optimization for different types of operations scheduled in a data storage device |
| US11702086B2 (en) | 2019-08-21 | 2023-07-18 | Micron Technology, Inc. | Intelligent recording of errant vehicle behaviors |
| US11709625B2 (en) | 2020-02-14 | 2023-07-25 | Micron Technology, Inc. | Optimization of power usage of data storage devices |
| US11733873B2 (en) | 2017-12-01 | 2023-08-22 | Micron Technology, Inc. | Wear leveling in solid state drives |
| US11748626B2 (en) | 2019-08-12 | 2023-09-05 | Micron Technology, Inc. | Storage devices with neural network accelerators for automotive predictive maintenance |
| US11775816B2 (en) | 2019-08-12 | 2023-10-03 | Micron Technology, Inc. | Storage and access of neural network outputs in automotive predictive maintenance |
| US11830296B2 (en) | 2019-12-18 | 2023-11-28 | Lodestar Licensing Group Llc | Predictive maintenance of automotive transmission |
| US11853863B2 (en) | 2019-08-12 | 2023-12-26 | Micron Technology, Inc. | Predictive maintenance of automotive tires |
| CN117632038A (en) * | 2024-01-25 | 2024-03-01 | 合肥兆芯电子有限公司 | Wear leveling method, memory storage device and memory control circuit unit |
| US12061971B2 (en) | 2019-08-12 | 2024-08-13 | Micron Technology, Inc. | Predictive maintenance of automotive engines |
| US20240345729A1 (en) * | 2022-08-04 | 2024-10-17 | SK Hynix Inc. | Storage device, electronic device including the same, and operating method thereof |
| US12189960B2 (en) * | 2019-07-15 | 2025-01-07 | Micron Technology, Inc. | Limiting hot-cold swap wear leveling |
| US12210401B2 (en) | 2019-09-05 | 2025-01-28 | Micron Technology, Inc. | Temperature based optimization of data storage operations |
| US12249189B2 (en) | 2019-08-12 | 2025-03-11 | Micron Technology, Inc. | Predictive maintenance of automotive lighting |
| US12314168B2 (en) | 2022-11-07 | 2025-05-27 | SK Hynix Inc. | Controller for improving wear leveling efficiency, storage device and method for operating storage device |
| US12443387B2 (en) | 2019-08-21 | 2025-10-14 | Micron Technology, Inc. | Intelligent audio control in vehicles |
| US12497055B2 (en) | 2019-08-21 | 2025-12-16 | Micron Technology, Inc. | Monitoring controller area network bus for vehicle control |
Families Citing this family (16)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR20180123385A (en) * | 2017-05-08 | 2018-11-16 | 에스케이하이닉스 주식회사 | Memory system and method of wear-leveling for the same |
| KR102534648B1 (en) * | 2018-03-08 | 2023-05-22 | 에스케이하이닉스 주식회사 | Memory system and operating method thereof |
| US10705747B2 (en) * | 2018-03-21 | 2020-07-07 | Micron Technology, Inc. | Latency-based storage in a hybrid memory system |
| US10713155B2 (en) * | 2018-07-19 | 2020-07-14 | Micron Technology, Inc. | Biased sampling methodology for wear leveling |
| CN112470227B (en) | 2018-07-26 | 2022-11-01 | 华为技术有限公司 | Data block processing method and controller |
| US11537307B2 (en) | 2018-08-23 | 2022-12-27 | Micron Technology, Inc. | Hybrid wear leveling for in-place data replacement media |
| US10860219B2 (en) * | 2018-10-05 | 2020-12-08 | Micron Technology, Inc. | Performing hybrid wear leveling operations based on a sub-total write counter |
| US11373466B2 (en) | 2019-01-31 | 2022-06-28 | Micron Technology, Inc. | Data recorders of autonomous vehicles |
| US11410475B2 (en) | 2019-01-31 | 2022-08-09 | Micron Technology, Inc. | Autonomous vehicle data recorders |
| JP6727365B1 (en) * | 2019-03-27 | 2020-07-22 | ウィンボンド エレクトロニクス コーポレーション | Semiconductor memory device |
| CN112233715B (en) * | 2019-07-15 | 2024-06-18 | 美光科技公司 | Maintenance operations for memory systems |
| CN112230845B (en) * | 2019-07-15 | 2024-06-14 | 美光科技公司 | Wear leveling based on subgroup write counts in a memory subsystem |
| US11379156B2 (en) * | 2020-08-19 | 2022-07-05 | Micron Technology, Inc. | Write type indication command |
| US11681469B2 (en) * | 2021-02-22 | 2023-06-20 | Micron Technology, Inc. | Storing and recovering critical data in a memory device |
| JP2022147574A (en) | 2021-03-23 | 2022-10-06 | キオクシア株式会社 | memory controller and memory system |
| US20240012751A1 (en) * | 2022-07-11 | 2024-01-11 | Micron Technology, Inc. | Adaptive wear leveling for a memory system |
Citations (22)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20080015530A1 (en) * | 2001-02-19 | 2008-01-17 | Basf Aktiengesellschaft | Method using a dry fluidized bed for producing thin, absorbent surface structures |
| US20100002367A1 (en) * | 2008-07-03 | 2010-01-07 | Aopen Inc. | Modularized device and method for assembling the same |
| US20100013675A1 (en) * | 2008-07-16 | 2010-01-21 | Bennett James D | Writing pad with synchronized background audio and video and handwriting recognition |
| US20100161932A1 (en) * | 2008-12-18 | 2010-06-24 | Ori Moshe Stern | Methods for writing data from a source location to a destination location in a memory device |
| US20100161880A1 (en) * | 2006-12-27 | 2010-06-24 | Guangqing You | Flash initiative wear leveling algorithm |
| US20100172179A1 (en) * | 2009-01-05 | 2010-07-08 | Sergey Anatolievich Gorobets | Spare Block Management of Non-Volatile Memories |
| US20110035536A1 (en) * | 2009-08-06 | 2011-02-10 | Samsung Electronics Co., Ltd. | Non-volatile memory device generating wear-leveling information and method of operating the same |
| US20110197014A1 (en) * | 2010-02-05 | 2011-08-11 | Phison Electronics Corp. | Memory management and writing method and rewritable non-volatile memory controller and storage system using the same |
| US20120054419A1 (en) * | 2010-08-27 | 2012-03-01 | Via Technologies, Inc. | Memory device and operating method thereof |
| US20120173809A1 (en) * | 2011-01-05 | 2012-07-05 | Tae-Kyeong Ko | Memory Device Having DRAM Cache and System Including the Memory Device |
| US20120216085A1 (en) * | 2011-02-23 | 2012-08-23 | Densbits Technologies Ltd. | Devices and method for wear estimation based memory management |
| US20120331207A1 (en) * | 2011-06-24 | 2012-12-27 | Lassa Paul A | Controller, Storage Device, and Method for Power Throttling Memory Operations |
| US20130028296A1 (en) * | 2011-07-27 | 2013-01-31 | Khandekar Aamod D | Chip x2 correlation hypotheses using chip x1 samples |
| US20130036253A1 (en) * | 2011-08-03 | 2013-02-07 | Micron Technology, Inc. | Wear leveling for a memory device |
| US20130159766A1 (en) * | 2011-12-20 | 2013-06-20 | Sandisk Technologies Inc. | Wear leveling of memory devices |
| US20130191704A1 (en) * | 2009-07-23 | 2013-07-25 | International Business Machines Corporation | Memory management in a non-volatile solid state memory device |
| US20140012282A1 (en) * | 2012-07-05 | 2014-01-09 | Michael H. Fritsch | One step tympanostomy tube and method of inserting same |
| US20140013028A1 (en) * | 2012-07-09 | 2014-01-09 | Hamilton Sundstrand Corporation | Hardware flash memory wear monitoring |
| US20140021512A1 (en) * | 2010-09-14 | 2014-01-23 | Samsung Electronics Co., Ltd. | Methods of manufacturing the gallium nitride based semiconductor devices |
| US20140082259A1 (en) * | 2012-09-20 | 2014-03-20 | Phison Electronics Corp. | Data storing method, memory controller and memory storage apparatus |
| US20140122822A1 (en) * | 2012-10-26 | 2014-05-01 | Micron Technology, Inc. | Apparatuses and methods for memory operations having variable latencies |
| US20140136771A1 (en) * | 2007-04-25 | 2014-05-15 | Apple Inc. | Initiating Memory Wear Leveling |
Family Cites Families (79)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP0376285B1 (en) | 1988-12-27 | 1994-03-09 | Nec Corporation | Microcomputer having electrically erasable and programmable nonvolatile memory |
| US6230233B1 (en) * | 1991-09-13 | 2001-05-08 | Sandisk Corporation | Wear leveling techniques for flash EEPROM systems |
| US5369616A (en) | 1992-10-30 | 1994-11-29 | Intel Corporation | Method for assuring that an erase process for a memory array has been properly completed |
| US6201739B1 (en) | 1996-09-20 | 2001-03-13 | Intel Corporation | Nonvolatile writeable memory with preemption pin |
| JPH10312684A (en) | 1997-05-13 | 1998-11-24 | Fujitsu Ltd | Semiconductor integrated circuit |
| US6000006A (en) * | 1997-08-25 | 1999-12-07 | Bit Microsystems, Inc. | Unified re-map and cache-index table with dual write-counters for wear-leveling of non-volatile flash RAM mass storage |
| US5822244A (en) | 1997-09-24 | 1998-10-13 | Motorola, Inc. | Method and apparatus for suspending a program/erase operation in a flash memory |
| JP4034923B2 (en) | 1999-05-07 | 2008-01-16 | 富士通株式会社 | Semiconductor memory device operation control method and semiconductor memory device |
| US8341332B2 (en) | 2003-12-02 | 2012-12-25 | Super Talent Electronics, Inc. | Multi-level controller with smart storage transfer manager for interleaving multiple single-chip flash memory devices |
| US6314049B1 (en) | 2000-03-30 | 2001-11-06 | Micron Technology, Inc. | Elimination of precharge operation in synchronous flash memory |
| JP4762435B2 (en) | 2001-05-09 | 2011-08-31 | 富士通セミコンダクター株式会社 | Nonvolatile semiconductor memory device having a plurality of internal counters |
| US20040098549A1 (en) | 2001-10-04 | 2004-05-20 | Dorst Jeffrey R. | Apparatus and methods for programmable interfaces in memory controllers |
| JP4077295B2 (en) | 2002-10-23 | 2008-04-16 | 株式会社東芝 | Synchronous semiconductor memory device and operation method thereof |
| JP2004171678A (en) | 2002-11-20 | 2004-06-17 | Sony Corp | Information storage device, information storage method, and information storage program |
| JP4540352B2 (en) | 2003-09-12 | 2010-09-08 | ルネサスエレクトロニクス株式会社 | Storage device |
| US6996016B2 (en) | 2003-09-30 | 2006-02-07 | Infineon Technologies Ag | Echo clock on memory system having wait information |
| EP1701244B1 (en) | 2003-12-09 | 2015-04-01 | Panasonic Corporation | Electronic device, control method thereof, host device, and control method thereof |
| US7579683B1 (en) | 2004-06-29 | 2009-08-25 | National Semiconductor Corporation | Memory interface optimized for stacked configurations |
| US7624209B1 (en) | 2004-09-15 | 2009-11-24 | Xilinx, Inc. | Method of and circuit for enabling variable latency data transfers |
| US20060069812A1 (en) | 2004-09-30 | 2006-03-30 | Osborne Randy B | Method to mitigate performance turnaround in a bidirectional interconnect |
| US7139673B1 (en) | 2004-11-05 | 2006-11-21 | Xilinx, Inc. | Method of and circuit for verifying a data transfer protocol |
| JP2006139556A (en) | 2004-11-12 | 2006-06-01 | Toshiba Corp | Memory card and card controller |
| JP4734033B2 (en) | 2005-05-30 | 2011-07-27 | 株式会社東芝 | Storage device |
| US7200043B2 (en) | 2005-05-31 | 2007-04-03 | Elite Semiconductor Memory Technology, Inc. | Nonvolatile memory using a two-step cell verification process |
| US20070005922A1 (en) | 2005-06-30 | 2007-01-04 | Swaminathan Muthukumar P | Fully buffered DIMM variable read latency |
| US7673111B2 (en) | 2005-12-23 | 2010-03-02 | Intel Corporation | Memory system with both single and consolidated commands |
| US7571297B2 (en) | 2005-12-30 | 2009-08-04 | Intel Corporation | Data invalid signal for non-deterministic latency in a memory system |
| US20070208904A1 (en) | 2006-03-03 | 2007-09-06 | Wu-Han Hsieh | Wear leveling method and apparatus for nonvolatile memory |
| KR100816748B1 (en) | 2006-03-16 | 2008-03-27 | 삼성전자주식회사 | Phase change memory device supporting program suspend / resume mode and its programming method |
| KR100843546B1 (en) | 2006-11-21 | 2008-07-04 | 삼성전자주식회사 | Multi-chip Package Flash Memory Device and Its Status Signal Reading Method |
| US7515500B2 (en) * | 2006-12-20 | 2009-04-07 | Nokia Corporation | Memory device performance enhancement through pre-erase mechanism |
| US20080270811A1 (en) | 2007-04-26 | 2008-10-30 | Super Talent Electronics Inc. | Fast Suspend-Resume of Computer Motherboard Using Phase-Change Memory |
| US7643334B1 (en) | 2007-04-26 | 2010-01-05 | Super Talent Electronics, Inc. | High-speed controller for phase-change memory peripheral device |
| KR100857761B1 (en) * | 2007-06-14 | 2008-09-10 | 삼성전자주식회사 | Memory system performing wear leveling and its writing method |
| US8099632B2 (en) | 2007-08-08 | 2012-01-17 | Sandisk Technologies Inc. | Urgency and time window manipulation to accommodate unpredictable memory operations |
| JP2009086988A (en) | 2007-09-28 | 2009-04-23 | Toshiba Corp | Memory card |
| US7865658B2 (en) | 2007-12-31 | 2011-01-04 | Sandisk Il Ltd. | Method and system for balancing host write operations and cache flushing |
| US8001331B2 (en) | 2008-04-17 | 2011-08-16 | Arm Limited | Efficiency of cache memory operations |
| TWI385669B (en) | 2008-07-23 | 2013-02-11 | Phison Electronics Corp | Wear leveling method and storage system and controller using the same |
| US7929356B2 (en) | 2008-09-05 | 2011-04-19 | Atmel Corporation | Method and system to access memory |
| KR20100055105A (en) | 2008-11-17 | 2010-05-26 | 삼성전자주식회사 | Phase-change random access memory device |
| JP2010123164A (en) | 2008-11-18 | 2010-06-03 | Elpida Memory Inc | Semiconductor storage device and control method thereof |
| US8064250B2 (en) | 2008-12-16 | 2011-11-22 | Micron Technology, Inc. | Providing a ready-busy signal from a non-volatile memory device to a memory controller |
| KR100985410B1 (en) | 2008-12-30 | 2010-10-06 | 주식회사 하이닉스반도체 | Semiconductor devices |
| US7979759B2 (en) | 2009-01-08 | 2011-07-12 | International Business Machines Corporation | Test and bring-up of an enhanced cascade interconnect memory system |
| US8250417B2 (en) * | 2009-01-14 | 2012-08-21 | Micron Technology, Inc. | Method for detecting flash program failures |
| US8090899B1 (en) * | 2009-03-04 | 2012-01-03 | Western Digital Technologies, Inc. | Solid state drive power safe wear-leveling |
| US8387065B2 (en) | 2009-04-16 | 2013-02-26 | International Business Machines Corporation | Speculative popcount data creation |
| CN102598141A (en) | 2009-06-10 | 2012-07-18 | 美光科技公司 | Memory operation suspension for reducing read latency in memory arrays |
| US8004884B2 (en) | 2009-07-31 | 2011-08-23 | International Business Machines Corporation | Iterative write pausing techniques to improve read latency of memory systems |
| KR101585213B1 (en) | 2009-08-18 | 2016-01-13 | 삼성전자주식회사 | A method of controlling a memory device for performing a light leveling operation, a light leveling method of a memory device, and a memory controller for performing a light leveling operation, a memory device, and a memory system |
| US8327092B2 (en) | 2009-09-21 | 2012-12-04 | Freescale Semiconductor, Inc. | Memory device configurable as interleaved or non-interleaved memory |
| JP2011129192A (en) * | 2009-12-16 | 2011-06-30 | Samsung Electronics Co Ltd | Semiconductor memory device |
| US8327052B2 (en) | 2009-12-23 | 2012-12-04 | Spansion Llc | Variable read latency on a serial memory bus |
| US8291126B2 (en) | 2010-03-23 | 2012-10-16 | Spansion Llc | Variable read latency on a serial memory bus |
| US9104546B2 (en) | 2010-05-24 | 2015-08-11 | Silicon Motion Inc. | Method for performing block management using dynamic threshold, and associated memory device and controller thereof |
| US8522067B2 (en) | 2010-06-17 | 2013-08-27 | Stmicroelectronics, Inc. | Variable latency interface for read/write channels |
| KR101131560B1 (en) | 2010-07-15 | 2012-04-04 | 주식회사 하이닉스반도체 | Non-Volitile Memory Device For Performing Wear-Leveling and Method Thereof |
| US9355051B2 (en) | 2010-09-10 | 2016-05-31 | Cypress Semiconductor Corporation | Apparatus, method, and manufacture for using a read preamble to optimize data capture |
| US20120117303A1 (en) | 2010-11-04 | 2012-05-10 | Numonyx B.V. | Metadata storage associated with flash translation layer |
| US8645637B2 (en) | 2010-11-16 | 2014-02-04 | Micron Technology, Inc. | Interruption of write memory operations to provide faster read access in a serial interface memory |
| US8356153B2 (en) | 2010-11-19 | 2013-01-15 | International Business Machines Corporation | Adaptive wear leveling via monitoring the properties of memory reference stream |
| TWI417727B (en) | 2010-11-22 | 2013-12-01 | Phison Electronics Corp | Memory storage device, memory controller thereof, and method for responding instruction sent from host thereof |
| KR20120096212A (en) * | 2011-02-22 | 2012-08-30 | 삼성전자주식회사 | Non-volatile memory device, memory controller, and methods thereof |
| US8649210B2 (en) | 2011-09-06 | 2014-02-11 | Mediatek Inc. | DDR PSRAM and data writing and reading methods thereof |
| US8762625B2 (en) | 2011-04-14 | 2014-06-24 | Apple Inc. | Stochastic block allocation for improved wear leveling |
| US8806171B2 (en) | 2011-05-24 | 2014-08-12 | Georgia Tech Research Corporation | Systems and methods providing wear leveling using dynamic randomization for non-volatile memory |
| KR101804521B1 (en) | 2011-08-16 | 2017-12-07 | 에스케이하이닉스 주식회사 | Integrated circuit, operation method of the same and system including the same, memory and memory system |
| WO2013048470A1 (en) * | 2011-09-30 | 2013-04-04 | Intel Corporation | Statistical wear leveling for non-volatile system memory |
| JP5642649B2 (en) | 2011-10-07 | 2014-12-17 | シャープ株式会社 | Semiconductor memory device and semiconductor device |
| CN102789423B (en) | 2012-07-11 | 2014-12-10 | 山东华芯半导体有限公司 | Four-pool flash wear leveling method |
| US20140089562A1 (en) | 2012-09-27 | 2014-03-27 | Hitachi, Ltd. | Efficient i/o processing in storage system |
| US9652376B2 (en) * | 2013-01-28 | 2017-05-16 | Radian Memory Systems, Inc. | Cooperative flash memory control |
| US9734097B2 (en) | 2013-03-15 | 2017-08-15 | Micron Technology, Inc. | Apparatuses and methods for variable latency memory operations |
| KR20160024962A (en) * | 2013-06-25 | 2016-03-07 | 마이크론 테크놀로지, 인크. | On demand block management |
| US9195590B2 (en) * | 2013-08-29 | 2015-11-24 | Micron Technology, Inc. | Sub-sector wear leveling in memories |
| US20150095551A1 (en) | 2013-09-30 | 2015-04-02 | Micron Technology, Inc. | Volatile memory architecutre in non-volatile memory devices and related controllers |
| US9824004B2 (en) | 2013-10-04 | 2017-11-21 | Micron Technology, Inc. | Methods and apparatuses for requesting ready status information from a memory |
| KR102042859B1 (en) * | 2013-10-14 | 2019-11-08 | 에스케이하이닉스 주식회사 | Semiconductor device and operating method thereof |
-
2014
- 2014-05-28 US US14/288,663 patent/US10365835B2/en active Active
-
2015
- 2015-04-24 KR KR1020167036706A patent/KR102032605B1/en active Active
- 2015-04-24 WO PCT/US2015/027490 patent/WO2015183443A1/en not_active Ceased
- 2015-04-24 CN CN201580028254.7A patent/CN106462500A/en active Pending
- 2015-04-24 CN CN202211209761.9A patent/CN115512754A/en active Pending
-
2019
- 2019-07-26 US US16/523,860 patent/US11347402B2/en active Active
Patent Citations (22)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20080015530A1 (en) * | 2001-02-19 | 2008-01-17 | Basf Aktiengesellschaft | Method using a dry fluidized bed for producing thin, absorbent surface structures |
| US20100161880A1 (en) * | 2006-12-27 | 2010-06-24 | Guangqing You | Flash initiative wear leveling algorithm |
| US20140136771A1 (en) * | 2007-04-25 | 2014-05-15 | Apple Inc. | Initiating Memory Wear Leveling |
| US20100002367A1 (en) * | 2008-07-03 | 2010-01-07 | Aopen Inc. | Modularized device and method for assembling the same |
| US20100013675A1 (en) * | 2008-07-16 | 2010-01-21 | Bennett James D | Writing pad with synchronized background audio and video and handwriting recognition |
| US20100161932A1 (en) * | 2008-12-18 | 2010-06-24 | Ori Moshe Stern | Methods for writing data from a source location to a destination location in a memory device |
| US20100172179A1 (en) * | 2009-01-05 | 2010-07-08 | Sergey Anatolievich Gorobets | Spare Block Management of Non-Volatile Memories |
| US20130191704A1 (en) * | 2009-07-23 | 2013-07-25 | International Business Machines Corporation | Memory management in a non-volatile solid state memory device |
| US20110035536A1 (en) * | 2009-08-06 | 2011-02-10 | Samsung Electronics Co., Ltd. | Non-volatile memory device generating wear-leveling information and method of operating the same |
| US20110197014A1 (en) * | 2010-02-05 | 2011-08-11 | Phison Electronics Corp. | Memory management and writing method and rewritable non-volatile memory controller and storage system using the same |
| US20120054419A1 (en) * | 2010-08-27 | 2012-03-01 | Via Technologies, Inc. | Memory device and operating method thereof |
| US20140021512A1 (en) * | 2010-09-14 | 2014-01-23 | Samsung Electronics Co., Ltd. | Methods of manufacturing the gallium nitride based semiconductor devices |
| US20120173809A1 (en) * | 2011-01-05 | 2012-07-05 | Tae-Kyeong Ko | Memory Device Having DRAM Cache and System Including the Memory Device |
| US20120216085A1 (en) * | 2011-02-23 | 2012-08-23 | Densbits Technologies Ltd. | Devices and method for wear estimation based memory management |
| US20120331207A1 (en) * | 2011-06-24 | 2012-12-27 | Lassa Paul A | Controller, Storage Device, and Method for Power Throttling Memory Operations |
| US20130028296A1 (en) * | 2011-07-27 | 2013-01-31 | Khandekar Aamod D | Chip x2 correlation hypotheses using chip x1 samples |
| US20130036253A1 (en) * | 2011-08-03 | 2013-02-07 | Micron Technology, Inc. | Wear leveling for a memory device |
| US20130159766A1 (en) * | 2011-12-20 | 2013-06-20 | Sandisk Technologies Inc. | Wear leveling of memory devices |
| US20140012282A1 (en) * | 2012-07-05 | 2014-01-09 | Michael H. Fritsch | One step tympanostomy tube and method of inserting same |
| US20140013028A1 (en) * | 2012-07-09 | 2014-01-09 | Hamilton Sundstrand Corporation | Hardware flash memory wear monitoring |
| US20140082259A1 (en) * | 2012-09-20 | 2014-03-20 | Phison Electronics Corp. | Data storing method, memory controller and memory storage apparatus |
| US20140122822A1 (en) * | 2012-10-26 | 2014-05-01 | Micron Technology, Inc. | Apparatuses and methods for memory operations having variable latencies |
Cited By (76)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US10163472B2 (en) | 2012-10-26 | 2018-12-25 | Micron Technology, Inc. | Apparatuses and methods for memory operations having variable latencies |
| US9754648B2 (en) | 2012-10-26 | 2017-09-05 | Micron Technology, Inc. | Apparatuses and methods for memory operations having variable latencies |
| US10885957B2 (en) | 2012-10-26 | 2021-01-05 | Micron Technology, Inc. | Apparatuses and methods for memory operations having variable latencies |
| US11249652B1 (en) * | 2013-01-28 | 2022-02-15 | Radian Memory Systems, Inc. | Maintenance of nonvolatile memory on host selected namespaces by a common memory controller |
| US9734097B2 (en) | 2013-03-15 | 2017-08-15 | Micron Technology, Inc. | Apparatuses and methods for variable latency memory operations |
| US10067890B2 (en) | 2013-03-15 | 2018-09-04 | Micron Technology, Inc. | Apparatuses and methods for variable latency memory operations |
| US10740263B2 (en) | 2013-03-15 | 2020-08-11 | Micron Technology, Inc. | Apparatuses and methods for variable latency memory operations |
| US10860482B2 (en) | 2013-08-14 | 2020-12-08 | Micron Technology, Inc. | Apparatuses and methods for providing data to a configurable storage area |
| US10114561B2 (en) * | 2016-05-25 | 2018-10-30 | SK Hynix Inc. | Memory controllers, memory systems, and methods relating to wear-leveling |
| US20170344278A1 (en) * | 2016-05-25 | 2017-11-30 | SK Hynix Inc. | Memory controllers, memory systems, and methods relating to wear-leveling |
| KR20180094391A (en) * | 2017-02-15 | 2018-08-23 | 에스케이하이닉스 주식회사 | Memory system and operating method thereof |
| US10303394B2 (en) | 2017-02-15 | 2019-05-28 | SK Hynix Inc. | Memory system and operating method thereof |
| KR102807343B1 (en) | 2017-02-15 | 2025-05-15 | 에스케이하이닉스 주식회사 | Memory system and operating method thereof |
| US20180293004A1 (en) * | 2017-04-06 | 2018-10-11 | International Business Machines Corporation | Network asset management |
| US11074018B2 (en) * | 2017-04-06 | 2021-07-27 | International Business Machines Corporation | Network asset management |
| CN110603529A (en) * | 2017-04-07 | 2019-12-20 | 美光科技公司 | Method for sketch-based memory management and memory device using the same |
| EP3662374A4 (en) * | 2017-08-04 | 2021-05-12 | Micron Technology, Inc. | Wear leveling |
| US20190332281A1 (en) * | 2017-08-04 | 2019-10-31 | Micron Technology, Inc. | Wear leveling |
| WO2019027727A1 (en) | 2017-08-04 | 2019-02-07 | Micron Technology, Inc. | Wear leveling |
| CN110998543A (en) * | 2017-08-04 | 2020-04-10 | 美光科技公司 | Wear leveling |
| US10198195B1 (en) * | 2017-08-04 | 2019-02-05 | Micron Technology, Inc. | Wear leveling |
| US10585597B2 (en) * | 2017-08-04 | 2020-03-10 | Micron Technology, Inc. | Wear leveling |
| JP2020529665A (en) * | 2017-08-04 | 2020-10-08 | マイクロン テクノロジー,インク. | Wear leveling |
| US11003361B2 (en) * | 2017-08-04 | 2021-05-11 | Micron Technology, Inc. | Wear leveling |
| JP7092865B2 (en) | 2017-08-04 | 2022-06-28 | マイクロン テクノロジー,インク. | Wear leveling |
| US20190042109A1 (en) * | 2017-08-04 | 2019-02-07 | Micron Technology, Inc. | Wear leveling |
| TWI672588B (en) * | 2017-08-04 | 2019-09-21 | 美商美光科技公司 | Methods of operating a memory array and memory apparatuses |
| US10416903B2 (en) * | 2017-08-04 | 2019-09-17 | Micron Technology, Inc | Wear leveling |
| US11733873B2 (en) | 2017-12-01 | 2023-08-22 | Micron Technology, Inc. | Wear leveling in solid state drives |
| US10846955B2 (en) | 2018-03-16 | 2020-11-24 | Micron Technology, Inc. | Black box data recorder for autonomous driving vehicle |
| US11676431B2 (en) | 2018-03-16 | 2023-06-13 | Micron Technology, Inc. | Black box data recorder for autonomous driving vehicle |
| US12087110B2 (en) | 2018-03-16 | 2024-09-10 | Lodestar Licensing Group Llc | Black box data recorder for autonomous driving vehicle |
| US11756353B2 (en) | 2018-06-18 | 2023-09-12 | Micron Technology, Inc. | Downloading system memory data in response to event detection |
| US11094148B2 (en) | 2018-06-18 | 2021-08-17 | Micron Technology, Inc. | Downloading system memory data in response to event detection |
| US11263125B2 (en) * | 2018-09-20 | 2022-03-01 | Stmicroelectronics S.R.L. | Managing memory sector swapping using write transaction counts |
| EP3627308A1 (en) * | 2018-09-20 | 2020-03-25 | STMicroelectronics Srl | A method of managing memories, corresponding circuit, device and computer program product |
| US10810119B2 (en) * | 2018-09-21 | 2020-10-20 | Micron Technology, Inc. | Scrubber driven wear leveling in out of place media translation |
| US20200097394A1 (en) * | 2018-09-21 | 2020-03-26 | Micron Technology, Inc. | Scrubber driven wear leveling in out of place media translation |
| US11455242B2 (en) * | 2018-09-21 | 2022-09-27 | Micron Technology, Inc. | Scrubber driven wear leveling in out of place media translation |
| US11782605B2 (en) * | 2018-11-29 | 2023-10-10 | Micron Technology, Inc. | Wear leveling for non-volatile memory using data write counters |
| US20200174677A1 (en) * | 2018-11-29 | 2020-06-04 | Micron Technology, Inc. | Wear leveling for non-volatile memory using data write counters |
| US12189960B2 (en) * | 2019-07-15 | 2025-01-07 | Micron Technology, Inc. | Limiting hot-cold swap wear leveling |
| US11481119B2 (en) * | 2019-07-15 | 2022-10-25 | Micron Technology, Inc. | Limiting hot-cold swap wear leveling |
| US11748626B2 (en) | 2019-08-12 | 2023-09-05 | Micron Technology, Inc. | Storage devices with neural network accelerators for automotive predictive maintenance |
| US11775816B2 (en) | 2019-08-12 | 2023-10-03 | Micron Technology, Inc. | Storage and access of neural network outputs in automotive predictive maintenance |
| US11586194B2 (en) | 2019-08-12 | 2023-02-21 | Micron Technology, Inc. | Storage and access of neural network models of automotive predictive maintenance |
| US11586943B2 (en) | 2019-08-12 | 2023-02-21 | Micron Technology, Inc. | Storage and access of neural network inputs in automotive predictive maintenance |
| US11635893B2 (en) | 2019-08-12 | 2023-04-25 | Micron Technology, Inc. | Communications between processors and storage devices in automotive predictive maintenance implemented via artificial neural networks |
| US12249189B2 (en) | 2019-08-12 | 2025-03-11 | Micron Technology, Inc. | Predictive maintenance of automotive lighting |
| US12061971B2 (en) | 2019-08-12 | 2024-08-13 | Micron Technology, Inc. | Predictive maintenance of automotive engines |
| US11853863B2 (en) | 2019-08-12 | 2023-12-26 | Micron Technology, Inc. | Predictive maintenance of automotive tires |
| US12497055B2 (en) | 2019-08-21 | 2025-12-16 | Micron Technology, Inc. | Monitoring controller area network bus for vehicle control |
| US12443387B2 (en) | 2019-08-21 | 2025-10-14 | Micron Technology, Inc. | Intelligent audio control in vehicles |
| US11498388B2 (en) | 2019-08-21 | 2022-11-15 | Micron Technology, Inc. | Intelligent climate control in vehicles |
| US11702086B2 (en) | 2019-08-21 | 2023-07-18 | Micron Technology, Inc. | Intelligent recording of errant vehicle behaviors |
| US11361552B2 (en) | 2019-08-21 | 2022-06-14 | Micron Technology, Inc. | Security operations of parked vehicles |
| US11693562B2 (en) | 2019-09-05 | 2023-07-04 | Micron Technology, Inc. | Bandwidth optimization for different types of operations scheduled in a data storage device |
| US12450010B2 (en) * | 2019-09-05 | 2025-10-21 | Lodestar Licensing Group Llc | Intelligent wear leveling with reduced write-amplification for data storage devices configured on autonomous vehicles |
| US11435946B2 (en) * | 2019-09-05 | 2022-09-06 | Micron Technology, Inc. | Intelligent wear leveling with reduced write-amplification for data storage devices configured on autonomous vehicles |
| US11436076B2 (en) | 2019-09-05 | 2022-09-06 | Micron Technology, Inc. | Predictive management of failing portions in a data storage device |
| CN112446480A (en) * | 2019-09-05 | 2021-03-05 | 美光科技公司 | Data storage device and method |
| US11409654B2 (en) | 2019-09-05 | 2022-08-09 | Micron Technology, Inc. | Intelligent optimization of caching operations in a data storage device |
| US11650746B2 (en) | 2019-09-05 | 2023-05-16 | Micron Technology, Inc. | Intelligent write-amplification reduction for data storage devices configured on autonomous vehicles |
| US12210401B2 (en) | 2019-09-05 | 2025-01-28 | Micron Technology, Inc. | Temperature based optimization of data storage operations |
| US20230004327A1 (en) * | 2019-09-05 | 2023-01-05 | Micron Technology, Inc. | Intelligent Wear Leveling with Reduced Write-amplification for Data Storage Devices Configured on Autonomous Vehicles |
| US20210103391A1 (en) * | 2019-10-03 | 2021-04-08 | Landis+Gyr Innovations, Inc. | Restricting write cycles to extend the lifetime of nonvolatile memory |
| US11169713B2 (en) * | 2019-10-03 | 2021-11-09 | Landis+Gyr Innovations, Inc. | Restricting write cycles to extend the lifetime of nonvolatile memory |
| JP2022550462A (en) * | 2019-10-03 | 2022-12-01 | ランディス・ギア イノベーションズ インコーポレイテッド | Extending the life of non-volatile memory by limiting the number of writes |
| JP7653089B2 (en) | 2019-10-03 | 2025-03-28 | ランディス・ギア・テクノロジー・インコーポレイテッド | Extending the life of non-volatile memory by limiting the number of writes |
| US12518570B2 (en) | 2019-12-18 | 2026-01-06 | Lodestar Licensing Group Llc | Predictive maintenance of automotive transmission |
| US11830296B2 (en) | 2019-12-18 | 2023-11-28 | Lodestar Licensing Group Llc | Predictive maintenance of automotive transmission |
| US11709625B2 (en) | 2020-02-14 | 2023-07-25 | Micron Technology, Inc. | Optimization of power usage of data storage devices |
| US11531339B2 (en) | 2020-02-14 | 2022-12-20 | Micron Technology, Inc. | Monitoring of drive by wire sensors in vehicles |
| US20240345729A1 (en) * | 2022-08-04 | 2024-10-17 | SK Hynix Inc. | Storage device, electronic device including the same, and operating method thereof |
| US12314168B2 (en) | 2022-11-07 | 2025-05-27 | SK Hynix Inc. | Controller for improving wear leveling efficiency, storage device and method for operating storage device |
| CN117632038A (en) * | 2024-01-25 | 2024-03-01 | 合肥兆芯电子有限公司 | Wear leveling method, memory storage device and memory control circuit unit |
Also Published As
| Publication number | Publication date |
|---|---|
| US10365835B2 (en) | 2019-07-30 |
| KR102032605B1 (en) | 2019-10-15 |
| CN106462500A (en) | 2017-02-22 |
| US20190347012A1 (en) | 2019-11-14 |
| US11347402B2 (en) | 2022-05-31 |
| WO2015183443A1 (en) | 2015-12-03 |
| CN115512754A (en) | 2022-12-23 |
| KR20170016385A (en) | 2017-02-13 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US11347402B2 (en) | Performing wear leveling operations in a memory based on block cycles and use of spare blocks | |
| US9563565B2 (en) | Apparatuses and methods for providing data from a buffer | |
| US11354040B2 (en) | Apparatuses and methods for concurrently accessing multiple partitions of a non-volatile memory | |
| US10223263B2 (en) | Apparatuses and methods for providing data to a configurable storage area | |
| US10445005B2 (en) | Memory system and operating method thereof | |
| US9317214B2 (en) | Operating a memory management controller | |
| US10049717B2 (en) | Wear leveling for storage or memory device | |
| US9298613B2 (en) | Integrated circuit for computing target entry address of buffer descriptor based on data block offset, method of operating same, and system including same | |
| US20150098271A1 (en) | System and method of storing data in a data storage device | |
| CN104981789A (en) | Apparatuses and methods for variable latency memory operations | |
| US20200073809A1 (en) | Forward caching memory systems and methods | |
| US10275187B2 (en) | Memory device and data read method thereof | |
| US20150169228A1 (en) | System and method of storing data at a non-volatile memory | |
| US10769074B2 (en) | Computer memory content movement | |
| US9971549B2 (en) | Method of operating a memory device | |
| US10083120B2 (en) | Memory system, and address mapping method and access method thereof | |
| US11314650B2 (en) | Operating method of memory system that checks stored data that is reused and generating a flag/bit signal | |
| US9817767B2 (en) | Semiconductor apparatus and operating method thereof | |
| US10452312B2 (en) | Apparatus, system, and method to determine a demarcation voltage to use to read a non-volatile memory | |
| US20170308296A1 (en) | Staging write requests | |
| US10705745B2 (en) | Using a memory controller to mange access to a memory based on a memory initialization state indicator |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| AS | Assignment |
Owner name: MICRON TECHNOLOGY, INC., IDAHO Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:MONTELEONE, DOMENICO;BERNARDI, GIACOMO;PORZIO, LUCA;AND OTHERS;SIGNING DATES FROM 20140523 TO 20140528;REEL/FRAME:032974/0667 |
|
| AS | Assignment |
Owner name: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT, CALIFORNIA Free format text: SECURITY INTEREST;ASSIGNOR:MICRON TECHNOLOGY, INC.;REEL/FRAME:038669/0001 Effective date: 20160426 Owner name: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGEN Free format text: SECURITY INTEREST;ASSIGNOR:MICRON TECHNOLOGY, INC.;REEL/FRAME:038669/0001 Effective date: 20160426 |
|
| AS | Assignment |
Owner name: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT, MARYLAND Free format text: PATENT SECURITY AGREEMENT;ASSIGNOR:MICRON TECHNOLOGY, INC.;REEL/FRAME:038954/0001 Effective date: 20160426 Owner name: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL Free format text: PATENT SECURITY AGREEMENT;ASSIGNOR:MICRON TECHNOLOGY, INC.;REEL/FRAME:038954/0001 Effective date: 20160426 |
|
| AS | Assignment |
Owner name: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT, CALIFORNIA Free format text: CORRECTIVE ASSIGNMENT TO CORRECT THE REPLACE ERRONEOUSLY FILED PATENT #7358718 WITH THE CORRECT PATENT #7358178 PREVIOUSLY RECORDED ON REEL 038669 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY INTEREST;ASSIGNOR:MICRON TECHNOLOGY, INC.;REEL/FRAME:043079/0001 Effective date: 20160426 Owner name: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGEN Free format text: CORRECTIVE ASSIGNMENT TO CORRECT THE REPLACE ERRONEOUSLY FILED PATENT #7358718 WITH THE CORRECT PATENT #7358178 PREVIOUSLY RECORDED ON REEL 038669 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY INTEREST;ASSIGNOR:MICRON TECHNOLOGY, INC.;REEL/FRAME:043079/0001 Effective date: 20160426 |
|
| AS | Assignment |
Owner name: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT, ILLINOIS Free format text: SECURITY INTEREST;ASSIGNORS:MICRON TECHNOLOGY, INC.;MICRON SEMICONDUCTOR PRODUCTS, INC.;REEL/FRAME:047540/0001 Effective date: 20180703 Owner name: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT, IL Free format text: SECURITY INTEREST;ASSIGNORS:MICRON TECHNOLOGY, INC.;MICRON SEMICONDUCTOR PRODUCTS, INC.;REEL/FRAME:047540/0001 Effective date: 20180703 |
|
| AS | Assignment |
Owner name: MICRON TECHNOLOGY, INC., IDAHO Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT;REEL/FRAME:047243/0001 Effective date: 20180629 |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: NOTICE OF ALLOWANCE MAILED -- APPLICATION RECEIVED IN OFFICE OF PUBLICATIONS |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: AWAITING TC RESP., ISSUE FEE NOT PAID |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: PUBLICATIONS -- ISSUE FEE PAYMENT VERIFIED |
|
| STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
| AS | Assignment |
Owner name: MICRON TECHNOLOGY, INC., IDAHO Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT;REEL/FRAME:050937/0001 Effective date: 20190731 |
|
| AS | Assignment |
Owner name: MICRON SEMICONDUCTOR PRODUCTS, INC., IDAHO Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT;REEL/FRAME:051028/0001 Effective date: 20190731 Owner name: MICRON TECHNOLOGY, INC., IDAHO Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT;REEL/FRAME:051028/0001 Effective date: 20190731 |
|
| MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 4 |