HK1166390B - Copyback optimization for memory system - Google Patents
Copyback optimization for memory system Download PDFInfo
- Publication number
- HK1166390B HK1166390B HK12106948.6A HK12106948A HK1166390B HK 1166390 B HK1166390 B HK 1166390B HK 12106948 A HK12106948 A HK 12106948A HK 1166390 B HK1166390 B HK 1166390B
- Authority
- HK
- Hong Kong
- Prior art keywords
- data page
- data
- register
- memory
- changed
- Prior art date
Links
Description
This subject matter is generally related to memory systems.
Flash memory is a type of electrically erasable programmable read-only memory (EEPROM). Because flash memories are non-volatile and relatively dense, they are used to store files and other persistent objects in handheld computers, mobile phones, digital cameras, portable music players, and many other devices in which other storage solutions (e.g., magnetic disks) are inappropriate. When data stored in flash memory is processed, a data page is read out of flash memory and stored in a register. The register contents is transferred to a controller that is external to the non-volatile memory for processing. The processed data page is placed back in the register so that the processed data page can be written back to flash memory.
In a copyback or read operation for a non-volatile memory subsystem, data page change indicators are used to manage transfers of data pages between a register in non-volatile memory and a controller that is external to the non-volatile memory. According to the invention, which is defined in the appended independent claims 1 and 8, it is proposed a method and an apparatus for performing a copyback operation for a data page in a non-volatile flash memory.
The host device 124 can include a system-on-chip (SoC) 126 and volatile memory 128. The SoC 126 can include hardware and software for interacting with the memory subsystem 102, such as transmitting read and write requests made by applications running on the host device 124.
The memory subsystem 102 can include non-volatile memory 104 (also referred to as "raw memory") and an external controller 116. The memory 104 can include a memory cell array 106, an internal state machine 108, a memory register 110 and data change indicator (DO) 130. The controller 116 can include a processor 118, volatile memory 114 and error correction code (ECC) engine 120. Other configurations for the memory subsystem 102 are possible. For example, a cache register can be included in the data path between the memory cell array 106 and the memory register 110 to allow the internal state machine to read the next data page from the memory cell array 106 while transferring the current page to the controller 116 over internal bus 112.
FIG. IB is a block diagram of another example memory system 130 for implementing an optimized copyback process. The system 130 shows only the memory subsystem 102, the operation of which was described in reference to FIG. 1A .
Copyback can be a memory subsystem command to move data from one page to another page. Copyback can be used in wear leveling and other nonvolatile memory management operations. In a typical copyback operation, a data page is read from the memory cell array 106 and stored in the memory register 110 by the internal state machine. The external controller 116 reads or clocks the data page out of the memory register 110 so that the processor 118 can perform a desired operation on the data page (e.g., an ECC operation). The processed data page can be written back to the memory register 110 by the controller 116. The internal state machine 108 can write the contents of the memory register 110 into a new data page in the memory cell array 106. By avoiding the transfer of the entire contents of register 110 to the external controller 116, processing times and power consumption can be reduced.
If the DCI for the data page in the register indicates that the data page has changed (308), the data page can be transferred to the external controller (310), an ECC can be computed for the data page (312) and the ECC information for the data page can be corrected in the external controller (314). The data page and associated ECC can be transferred back to the memory register (316). A new DCI can be computed for the data page in the memory register (318).
If the DCI for the data page in the register indicates that the data page has not changed (308), an ECC can be computed for new metadata associated with the data page (320). The new metadata and associated ECC can be transferred to the memory register (322). A new DCI can be computed for the metadata in the memory register (324). The memory register contents can be written to a new data page in non-volatile memory (326).
[0020] If the data page has changed (408), an ECC for the new metadata associated with the data page can be computed and transferred, together with the new metadata to the memory register (412). A new DCI can be computed for the metadata in the memory register and the register contents can be written to a new data page in non-volatile memory (414).
[0021] If the data page has not changed (408), the memory register contents can be transferred to an external controller and an ECC can be computed by the external controller (410). An ECC for the new metadata associated with the data page can be computed and transferred by the external controller, together with the new metadata to the memory register (412). A new DCI can be computed for the metadata in the memory register and the register contents can be written to a new data page in non-volatile memory (414).
[0022] FIG. 5 illustrates example data structures used by the copyback process of FIGS. 3A-3C . In the example shown, a data page 500 in non-volatile memory includes metadata 502, metadata ECC 504, data 506 and data ECC 508. If the data has not changed then only the metadata 502 and the metadata ECC 504 are transferred from the register to the external controller 510 for processing. The processed metadata 502 and metadata ECC 504 are transferred back to the memory subsystem and stored in the memory register. The data page can the be written to a new data page in non-volatile memory (e.g., a memory cell array).
[0023] A number of implementations have been described. Nevertheless, it will be understood that various modifications may be made. For example, elements of one or more implementations may be combined, deleted, modified, or supplemented to form further implementations. As yet another example, the logic flows depicted in the figures do not require the particular order shown, or sequential order, to achieve desirable results. In addition, other steps may be provided, or steps may be eliminated, from the described flows, and other components may be added to, or removed from, the described systems. Accordingly, other implementations are within the scope of the following claims.
Claims (14)
- A method of performing a copyback operation for a data page in non-volatile Flash memory of a memory subsystem, the method comprising:obtaining the data page from the non-volatile memory (106) of the memory subsystem;storing the data page in a register (110) of the memory subsystem (102);determining if the data page has changed based on a data change indicator (130) that indicates whether a change has occurred in the data page;if the data page has changed, sending the data page to a controller (116) for processing; andif the data page is unchanged:sending metadata associated with the data page to the controller for processing, without sending the unchanged data page to the controller for processing;receiving, from the controller, the metadata and an error correction code for the metadata;storing the metadata and the error correction code in the register; andwriting the contents of the register to the non-volatile memory including:writing the unchanged data page from the register to another data page in the non-volatile memory; andwriting the metadata and the error correction code, from the register, to the non-volatile memory.
- The method of claim 1, where determining if the data page has changed further comprises:reading the data change indicator (130) for the data page.
- The method of claim 2, where the data change indicator is associated with an error detection code.
- The method of claim 1, where determining if the data page has changed further comprises:computing the data change indicator (130) for the data page; anddetermining if the data page has changed based on the data change indicator.
- The method of claim 4, where computing the data change indicator (130) is performed prior to or on-the-fly as part of the read operation for reading the data page from the non-volatile memory.
- The method of claim 1, where if the data page has changed, the method further comprising:determining, by the controller, an error correction code associated with the data page that has changed.
- The method of claim 6, where obtaining the data page includes obtaining the data page from a register, the method further comprising:sending the data page that has changed and the error correction code to the register.
- A system for performing a copyback operation for a data page in non-volatile Flash memory, the system comprising:an interface (112) adapted for coupling to a controller;non-volatile memory (104);a processor (118) coupled to the non-volatile memory and the interface, the processor operable to:obtain the data page from the non-volatile memory;store the data page in a register (110);determine if the data page has changed based on a data change indicator (130) that indicates whether a change has occurred in the data page; andif the data page has changed, send the data page through the interface to the controller for processing; andif the data page has not changed:send metadata associated with the data page through the interface to the controller for processing, without sending the unchanged data page to the controller for processing;receive, from the controller through the interface, the metadata and an error correction code for the metadata;store the metadata and the error correction code in the register; and write the contents of the register to the non-volatile memory including:writing the unchanged data page from the register to another data page in the non-volatile memory; andwriting the metadata and the error correction code, from the register, to the non-volatile memory.
- The system of claim 8, where the processor (118) is further operable to read the data change indicator (130) for the data page to determine if the data page has changed.
- The system of claim 9, where the data change indicator (130) is associated with an error detection code.
- The system of claim 8, where the processor (118) is further operable to compute the data change indicator (130) for the data page, and determine if the data page has changed based on the data change indicator.
- The system of claim 11, where the processor (118) is further operable to compute the data change indicator (130) prior to or concurrently with obtaining the data page from the non-volatile memory (104).
- The system of claim 8, where if the data page has changed, the controller (116) is further operable to determine an error correction code associated with the data page that has changed.
- The system of claim 13, where:the processor (118) further operable to obtain the data page from a register (110); andthe controller (116) is further operable to send the data page that has changed and the error correction code to the register.
Applications Claiming Priority (4)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US4933008P | 2008-04-30 | 2008-04-30 | |
| US60/049,330 | 2008-04-30 | ||
| US12/193,638 | 2008-08-18 | ||
| US12/193,638 US8185706B2 (en) | 2008-04-30 | 2008-08-18 | Copyback optimization for memory system |
Related Parent Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| HK11109601.9A Addition HK1155530B (en) | 2008-04-30 | 2009-04-01 | Copyback optimization for memory system |
Related Child Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| HK11109601.9A Division HK1155530B (en) | 2008-04-30 | 2009-04-01 | Copyback optimization for memory system |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| HK1166390A1 HK1166390A1 (en) | 2012-10-26 |
| HK1166390B true HK1166390B (en) | 2013-11-29 |
Family
ID=
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| EP2407883B1 (en) | Copyback optimization for memory system | |
| US8650463B2 (en) | Solid state drive and method of controlling an error thereof | |
| US10347349B2 (en) | Method and device for fail-safe erase of flash memory | |
| US9875035B2 (en) | Memory system having a read and copy-back operation and method for the same | |
| CN110347530B (en) | Data storage device and method of operating the same | |
| US20150127882A1 (en) | Read operation prior to retrieval of scatter gather list | |
| US11126376B2 (en) | Apparatus and method for performing recovery operation of memory system | |
| US11907059B2 (en) | Abnormal power loss recovery method, memory control circuit unit, and memory storage device | |
| US20150019904A1 (en) | Data processing system and operating method thereof | |
| TWI640997B (en) | Data protecting method, memory control circuit unit and memory storage apparatus | |
| JP2010079856A (en) | Storage device and memory control method | |
| US20170286219A1 (en) | Data storage device and operating method thereof | |
| US10289328B2 (en) | Memory controller and method for handling host request based on data character | |
| US20210019082A1 (en) | Nonvolatile memory bad row management | |
| TWI436209B (en) | Memory management table proceesing method, memory controller and memory storage apparatus | |
| HK1166390B (en) | Copyback optimization for memory system | |
| CN110008145B (en) | Data protection method, memory control circuit unit, and memory storage device | |
| HK1155530B (en) | Copyback optimization for memory system | |
| HK1158344B (en) | Copyback optimization for memory system | |
| CN114637630B (en) | Abnormal power failure recovery method, memory controller and memory storage device | |
| US9990974B2 (en) | Memory system having address synchronizer and operation method thereof | |
| CN120406850A (en) | Data access method and storage device |