Method, system and device for reading data during control synchronization operations

DE102018110722B4Active Publication Date: 2025-03-27SANDISK TECHNOLOGIES LLC
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
DE102018110722
Authority / Receiving Office
DE · DE
Patent Type
Patents
Current Assignee / Owner
Priority Date
2018-04-09
Filing Date
2018-05-04
Publication Date
2025-03-27
Estimated Expiration
2038-05-04

Smart Images

  • Figure 00000000_0000_ABST
    Figure 00000000_0000_ABST
Patent Text Reader

Abstract

Method in a controller (130) containing a flash translation layer (FTL) and one or more management tables (144) coupled to a non-volatile memory (104), comprising: Maintaining or preserving (215) a Control update queue (CUQ) and a Overlap area table (150) containing information about recent accesses to the non-volatile memory (104); Receiving a read request and checking whether an update of one or more management tables (144) is currently taking place in or on the non-volatile memory (104); and Reading data (230) from non-volatile memory (104) using the overlap area table (150) and the CUQ (160) if the update of one or more management tables (144) is in progress.
Need to check novelty before this filing date? Find Prior Art

Description

Background of RevelationScope of Revelation

[0001] The embodiments or implementations of the present disclosure generally relate to data storage devices. Description of the related art

[0002] Data storage devices allow users to store and retrieve data. Examples of data storage devices include volatile memory devices and non-volatile memory devices. A non-volatile memory device retains data after a power-off event, while a volatile memory device loses data after a power-off event.

[0003] A data storage device may maintain control information about stored data. Control information may be a management table for mapping logical addresses to physical addresses in or on non-volatile memory. When mapping tables are written to or on non-volatile memory in a process that may be referred to as control synchronization, further updates to the tables may be prohibited to prevent new updates from being prematurely stored in or on non-volatile memory. Therefore, some systems do not process new read / write requests during a control synchronization phase.A system that allows the processing of a new read / write request during a control synchronization may choose to temporarily store, or cache, new mapping table updates during the control synchronization within a control update queue (CUQ), which serves as an extension of the other mapping tables. When a CUQ is used during a control synchronization, when a read request arrives, such a system must first scan the CUQ and search for the most recent update. Such scanning can be inefficient and negatively impact device performance.

[0004] Therefore, an efficient means is needed to perform a read operation while the CUQ is not empty.

[0005] US 2016 / 0 299 710 A1 relates to a memory device comprising a memory controller and a non-volatile memory communicatively connected to the memory controller and in which a mapping table and a journal table are stored. Summary of Revelation

[0006] A method and apparatus for optimizing read operations during a control synchronization operation in or on a data storage device are disclosed. The data storage device includes a management table used to allocate memory addresses to or in non-volatile memory. A control synchronization operation writes a copy of the management table to or on the non-volatile memory. The control synchronization operation is non-blocking—the synchronization operation allows read and write operations in parallel with creating a copy or updating the management table. During the control synchronization operation, the read operations are optimized by a CUQ and an overlap area table. The CUQ can act as a temporary management table while also containing updates that are consolidated or merged into the management table.should be summarized. The overlap area table optimizes CUQ searches by identifying the most recently accessed addresses.

[0007] In one embodiment, a method in a controller including a flash translation layer (FTL) and one or more management tables coupled to non-volatile memory comprises: maintaining a CUQ and an overlap region table with information about recent accesses to the non-volatile memory; receiving a read request during an update of the one or more management tables in the non-volatile memory; and reading data from the non-volatile memory using the overlap region table and the CUQ during the update of the one or more management tables.

[0008] In another embodiment, a system comprises a non-volatile memory containing an FTL and one or more management tables; and at least one processor coupled to a volatile memory, configured to: maintain an overlap area table including information about recent accesses to the non-volatile memory and the CUQ; receive a read request during an update of the one or more management tables on the volatile memory; and read data from the non-volatile memory using the overlap area table and the CUQ during the update of the one or more management tables by the FTL.

[0009] In another embodiment, a non-transitory computer-readable medium is disclosed containing instructions that, when executed by a processing unit of a system having a controller including an FTL and one or more management tables coupled to non-volatile memory, cause the system to efficiently perform read operations during an update of the management table by performing the steps of: maintaining an overlap area table comprising information about recent accesses to the non-volatile memory and a CUQ; receivingReceiving a read request by the FTL during an update of the one or more management tables during non-blocking control synchronization; and reading data from the non-volatile memory using a CUQ during the update of the one or more management tables during the non-blocking control synchronization.

[0010] In another embodiment, an apparatus is disclosed comprising: a non-volatile memory device; physical address allocation means coupled to a non-volatile memory; means for receiving a read request during an update of the physical address allocation means during non-blocking control synchronization; and means for reading data from the non-volatile memory using a temporary physical address allocation means during the update of the physical address allocation means during non-blocking control synchronization.

[0011] Embodiments of the systems, methods, and instructions optimize read latency during control synchronization operations by using a proxy management table, such as the CUQ. The overlap region table avoids lengthy proxy management table lookups and redirects read operations to the regular management table when needed. The embodiments ensure the most accurate flash translation layer mapping is used by correctly managing new mappings on or in the non-volatile memory with control updates. Short description of the characters

[0012] In order that the above-mentioned features of the present disclosure may be understood in detail, a more particular description of the disclosure, briefly summarized above, will be made by reference to the embodiments, some of which are illustrated in the accompanying figures. It should be noted, however, that the accompanying figures represent only typical embodiments of this disclosure and are therefore not to be considered limiting of its scope, as the disclosure may admit to other effective embodiments. Fig. 1 shows a system including a data storage device configured to perform read operations during a non-blocking control synchronization operation according to an embodiment described herein. Fig. 2 shows a method for performing a read operation during a non-blocking control synchronization operation according to an embodiment described herein. Fig. 3 shows another method for performing a read operation during a non-blocking control synchronization operation according to an embodiment described herein. Fig. Figure 4 shows a diagram of the contents of the CUQ as a function of time during two control synchronization operations according to an embodiment described herein. Fig. 5 shows a method for removing control updates from a CUQ according to an embodiment described herein. Fig. 6 shows another method for removing control updates from a CUQ according to an embodiment described herein.

[0013] Where possible, identical reference numerals have been used to designate identical elements common to the figures. It is contemplated that elements disclosed in one embodiment may be advantageously used in other embodiments without specific reference. Detailed description

[0014] In the following, reference is made to the embodiments of the disclosure. However, it should be understood that the disclosure is not limited to the described embodiments. Instead, any possible combination of the following features and elements, whether related to different embodiments or not, is contemplated so that the disclosure can be carried out and applied. Furthermore, even though the embodiments of the disclosure may provide advantages over other possible solutions and over the prior art, it is not a limitation of the disclosure whether a particular advantage is achieved by a particular embodiment or not. Therefore, the following aspects, features, embodiments, and advantages are merely illustrative and are not to be considered elements or limitations of the appended claims unless expressly recited in one or more claims.Likewise, a reference to "the disclosure" is not to be construed as a generalization of any inventive subject matter disclosed herein and is not to be considered an element or limitation of the appended claims unless expressly recited in one or more claims.

[0015] A method and apparatus for optimizing read operations during a control synchronization operation on a data storage device are disclosed. The data storage device includes a management table used to map memory addresses to non-volatile memory. A control synchronization operation writes a copy of the management table to the non-volatile memory. The control synchronization operation is non-blocking—the synchronization operation allows read and write operations in parallel while creating a copy or updating the management table. During the control synchronization operation, the read operations are optimized by a CUQ and an overlap area table. The CUQ can act as a temporary management table while also containing updates that are consolidated or merged into the management table.should be summarized. The overlap area table optimizes CUQ searches by identifying the most recently accessed addresses.

[0016] Throughout the description, common or similar features may be referred to by common reference numerals. As used herein, "exemplary" may refer to an example, embodiment, and / or aspect and should not be construed as a limitation or as an indication of preference or preferred embodiment.

[0017] Fig. 1 shows a system 100 including a data storage device configured to perform read operations during a non-blocking controller synchronization operation, according to an embodiment described herein. The system 100 includes the data storage device 102 communicatively coupled to a device 180, such as a host device or an access device. In at least one embodiment, the data storage device 102 includes a non-volatile memory 104 and a controller 130. The controller 130 is communicatively coupled to the non-volatile memory 104 via a memory interface 132.

[0018] The non-volatile memory 104 includes at least one memory device or memory die, such as a first memory die 106 and a second memory die 108. The first memory die 106 includes a non-volatile array of memory elements. The non-volatile memory 104 may include flash memory or resistive memory. The non-volatile memory 104 may have a flat or planar or three-dimensional memory configuration.

[0019] Controller 130 includes a device interface 170 communicatively coupled to device 180. Controller 130 includes a random access memory 140. In at least one embodiment, random access memory 140 includes a flash translation layer (FTL) 142. FTL 142 includes a management table 144, an overlap region table 150, and a CUQ 160.

[0020] The device interface 170 is capable of receiving a read request 182 via the device 180 during a controller synchronization operation. The read request 182 includes at least one read address value 184 associated with the data stored in the non-volatile memory 104. In at least one embodiment, the FTL 142 is configured to perform address translation using the read address value 184 provided by the read request 182. In at least one embodiment, the address value 184 is translated into a physical address associated with the data on the non-volatile memory 104. The memory interface 132 is configured to read data from the non-volatile memory 104 based on the read address value 184.In at least one embodiment, the controller 130 returns data from the non-volatile memory 104 to the host 180 via the memory interface 132 and the device interface 170.

[0021] The management table 144 contains physical addresses of the storage elements in or on the non-volatile memory 104. In at least one embodiment, the management table 144 contains logical block addresses that are associated with, linked to, or associated with the physical block addresses of the storage elements in or on the non-volatile memory 104. In at least one embodiment, the management table 144 maps the read address value 184 to a physical address in or on the non-volatile memory 104.

[0022] The overlap range table 150 lists and identifies at least one address value or feature located in the CUQ 160. In at least one embodiment, the at least one address value or feature is linked to a memory element in or on the non-volatile memory 104. The memory element can be a physical or logical range of memory elements. Examples of physical ranges of memory elements include blocks, sectors, or wordlines. Examples of logical ranges of memory elements include logical block addresses. In at least one embodiment, the overlap range table 150 lists a range of memory elements for which the address value is located in the CUQ 160. In at least one embodiment, memory elements that need to be updated include recently accessed elements.For example, it may indicate the last access to memory elements accessed since the last control synchronization operation. In at least one embodiment, the overlap region table has been previously updated to include the read address value 184. The at least one address value or characteristic may be a logical address. The at least one value or characteristic is advantageous for quickly identifying one or more memory elements in the management table 144 that have not yet been updated.

[0023] The CUQ 160 stores control updates of the management table 144. The CUQ 160 is a page queue of the management table 144 in the FTL 142. In at least one embodiment, the control updates of the management table 144 include logical-to-physical mappings of the non-volatile memory 104. In at least one embodiment, the CUQ 160 includes a value or characteristic of an address, such as a logical block address, that corresponds to a physical address of a storage element in or on the non-volatile memory 104. In at least one embodiment, the CUQ 160 references a physical address in or on the non-volatile memory 104 based on the read address value 184. In at least one embodiment, the CUQ 160 is capable of performing the same set of functions as the management table 144 in the FTL 142.These features may include logical block allocation, uniform wear, garbage collection, and write amplification.

[0024] The CUQ 160 is configured to act as a temporary or proxy management table during a control synchronization operation. The control synchronization operation may copy the management table 144 to the non-volatile memory 104, preserving the bandwidth of the management table 144. The control synchronization operation may also be triggered periodically when the management table 144 in the non-volatile memory 104 has not been updated for a predetermined period of time. In at least one embodiment, the control synchronization operation is performed after allocating a group of blocks for newly incoming device data.

[0025] During the control synchronization operation, the CUQ 160 obtains new control updates for the management table 144. After the control synchronization operation, the controller 130 consolidates the control updates in the management table 144 by copying or remapping the control updates. Copying or remapping control updates includes the mapping of physical addresses. In another embodiment, the CUQ 160 updates all of its values ​​in the management table 144 automatically, in stages, or one value at a time over a period of time. In at least one embodiment, the CUQ 160 maintains address values ​​and mappings according to a recent access to the non-volatile memory 104. The recent access may be requested by the device 180.In another embodiment, the CUQ 160 automatically updates the management table 144 when a predetermined threshold is reached.

[0026] The CUQ 160 can be stored in various memory types, including the non-volatile memory 104. The CUQ 160 can be periodically updated in or on the non-volatile memory. Likewise, the overlap region table 150 can be periodically updated in or on the non-volatile memory 104. In another embodiment, the overlap region table 150 and the CUQ 160 can be automatically updated in or on the non-volatile memory 104 shortly before a non-blocking control synchronization.

[0027] Fig. 2 shows a method 200 for performing a read operation during a non-blocking control synchronization operation according to an embodiment as described herein. In step 210, the controller 130 initiates a control synchronization operation on the storage device 102. In step 215, the controller 130 maintains a CUQ and an overlap region table containing information about recent accesses to the non-volatile memory 104. In step 220, the device 180 requests a read operation on the non-volatile memory 104. The read operation includes a read request 182 with a read address value 184. The controller 130 may route the read request 182 to the CUQ 160 during the non-blocking control synchronization operation.

[0028] In step 230, the controller performs the read operation using the physical address provided by the CUQ 160 and retrieves data from the non-volatile memory 104. In one embodiment, the CUQ 160 acts as a proxy management table of the management table 144. This proxy (also known as the CUQ 160) contains a mapping of address values ​​to physical address locations in the non-volatile memory 104. In at least one embodiment, the CUQ 160 contains the mapping of the read address value 184 to its physical address. If the address value of the read operation is not found in the CUQ 160, the controller 130 uses the management table 144 to provide the physical address. In step 240, the data corresponding to the read operation is returned to the device 180.

[0029] Without embodiments of method 200, read query 184 may be delayed because management table 144 is occupied by a control synchronization operation. Embodiments of method 200 optimize read latency during control synchronization operations by using a proxy management table, such as CUQ 160. Embodiments of method 200 also ensure that the most up-to-date flash translation layer mapping is used. This means that read operation errors may occur while using management table 144 to receive control updates.

[0030] Fig. 3 shows another method 300 for performing a read operation during a non-blocking control synchronization operation according to an embodiment as described herein. In step 310, the controller 130 initiates a control synchronization operation in or on the data storage device 102. In step 315, the controller 130 maintains a CUQ and an overlap region table containing information about recent accesses to the non-volatile memory 104. In step 320, the device 180 requests a read operation to or from the non-volatile memory 104. The read operation includes a read request 182 with a read address value 184. The controller 130 may route the read request 182 to or into the CUQ 160 during the non-blocking control synchronization operation.

[0031] In step 330, the controller 130 checks an overlap region table 150. The overlap region table 150 contains a list of address values ​​that are in the CUQ. The overlap region table 150 may contain the read address value 184. In step 340, the controller 130 determines whether the requested address value is found in the overlap region table 150. In step 350, if the read address value 184 is found in the overlap region table 150, the controller 130 locates the physical address that matches the read address value 184 in the CUQ 160.

[0032] In step 360, the controller 130 retrieves the data from the non-volatile memory 104 using the physical address provided by the CUQ 160. In step 370, the controller returns the data matching the read request 182 to the device 180.

[0033] Otherwise, in at least one embodiment, the controller 130 does not find the requested address value, such as the read address value 184, in the overlap region table 150. Then, in step 380, the controller 130 locates the physical address that matches the read address value 184 via the regular management table 144.

[0034] In step 390, the controller 130 retrieves the data in or on the non-volatile memory 104 using the physical address provided by the regular management table 144. In step 370, the controller returns the data matching the read request 182 to the device 180.

[0035] Without embodiments of method 300, read query 182 may be delayed because management table 144 is occupied by a controller synchronization operation. Embodiments of method 300 optimize read latency during controller synchronization operations by using an overlap region table 150. Instead of searching for each translation layer mapping in CUQ 160, controller 130 first looks in overlap region table 150 to determine if read address value 184 is listed. If CUQ 160 is full or nearly full, lengthy searches using overlap region table 150 are avoided. Therefore, an increased read latency is optimized for the correct mapping.

[0036] Fig. Figure 4 shows a graph of the contents of the CUQ as a function of time during two control synchronization operations according to one embodiment described herein. The CUQ 160 flushes its control updates after the control synchronization operation has completed. The removal of CUQ values ​​can occur automatically in stages, or one value at a time over a period of time. Flushing control updates maintains the accuracy of the management table 144 and new control updates. Flushing updates also increases performance by reducing the number of entries that must be searched.

[0037] At time 410, a control synchronization operation is initiated, resulting in an accumulation of control updates in the CUQ 160. At time 420, or for the second control synchronization operation at time 450, the management table 160 is written to the non-volatile memory 104. The CUQ 160 may continue to accumulate control updates during this period.

[0038] At time 430, controller 130 receives an indication that management table 160 is considered safe and is stored on non-volatile memory 104. Flushing of control updates begins at this time. In at least one embodiment, control updates may be automatically flushed once the indication of a successful control synchronization operation is received. In at least one alternative embodiment, control updates may be automatically flushed prior to an additional control synchronization operation of management table 144.

[0039] In at least one embodiment, control update eviction occurs progressively by placing at least one marker in the CUQ 160 to indicate a partial update of the management table in or on the non-volatile memory 104. The marker indicates the entries that have not yet been evicted and that the entries are a residue from the previous control synchronization operation. For example, a control update entry injected at time 410 or 420 may be marked to be evicted after time 460 if it has not been evicted before time 440. Marked control updates are updated in the management table 160 during a subsequent control update operation.

[0040] Control update entries may be injected into the CUQ 160 during the eviction process between times 430 and 440. In at least one embodiment, at least one control update entry is evicted for each newly injected control update entry. This gradual removal of control updates prevents the CUQ 160 from expanding or being extended during the eviction process.

[0041] Fig. 5 shows a method 500 for removing control updates from a CUQ according to an embodiment as described herein. In step 510, a first control synchronization operation starts in a CUQ 160 containing at least one control update. In step 520, the controller 160 receives an indication that the management table 144 has been saved to or on the non-volatile memory 104. In step 530, the controller 160 starts the process of flushing the control updates in the CUQ 160. In step 540, the control updates in the CUQ 160 are automatically flushed. In at least one embodiment, control updates may be automatically flushed once the indication of a successful control synchronization operation has been received.In at least one alternative embodiment, control updates may be flushed from management table 144 prior to an additional control synchronization. In step 550, a second control synchronization operation is initiated.

[0042] Fig.6 shows another method 600 for removing control updates from a CUQ according to an embodiment as described herein. In step 610, a first control synchronization operation starts in a CUQ 160 containing at least one control update. In step 620, the controller 160 receives an indication that the management table 144 has been saved to the non-volatile memory 104. In step 630, the controller 160 starts the process of flushing the control updates in the CUQ 160. In step 640, a second control synchronization operation starts before the CUQ is completely flushed. That is, at least one control update remains in the CUQ when a second control synchronization operation is initiated. In step 650, a marker is placed on the at least one CUQ entry.The marking indicates that the at least one control update entry is to be removed during a subsequent control synchronization operation. In step 660, the marked at least one control update entry is removed prior to a subsequent control synchronization operation.

[0043] As disclosed herein, a method in a controller including a flash translation layer (FTL) and one or more management tables coupled to non-volatile memory includes: maintaining a CUQ and an overlap region table including information about recent accesses to the non-volatile memory; receiving a read request during an update of the one or more management tables in or on the non-volatile memory; and reading data from the non-volatile memory using the overlap region table and the CUQ during the update of the one or more management tables. Updating the one or more management tables in or on the non-volatile memory is part of a non-blocking controller synchronization operation.The method further comprises evacuating the CUQ after a non-blocking control synchronization operation and after updating these entries in the one or more management tables. The method further comprises performing flash management functions. The flash management functions include logical to physical address mapping, uniform wear, garbage collection, and write amplification. The method further comprises identifying an address value of the read request in the overlap region table; and either: locating a physical address of the read request in the CUQ, in response to identifying the address value of the read request in the overlap region table; or if the address could not be identified in the overlap region table, locating the physical address of the read request from other memory management tables.The CUQ contains a list of logical-to-physical mapping pairs, according to recent updates, chronologically ordered by the FTL. The overlap range table contains a list of address values ​​from recent accesses to non-volatile memory, enabling efficient LBA range lookups. The overlap range table contains an indicator flag indicating that an entry is present in the CUQ and optionally contains a pointer or indicator to the relevant CUQ entry.

[0044] Additionally, a system is disclosed herein, comprising: a non-volatile memory containing an FTL and one or more management tables; and at least one processor coupled to a volatile memory, configured to: maintain an overlap region table containing information about recent accesses to the non-volatile memory and the CUQ; receive a read request during an update of the one or more management tables on the non-volatile memory; and read data from the non-volatile memory using the overlap region table and the CUQ during the FTL update of the one or more management tables. At least one entity orThe unit is further configured to identify an address value of the read request in an overlap region table, wherein the at least one entity attempts, in response to identifying the address value of the read request in an overlap region table, to locate a physical address of the read request in the CUQ; and if the address is not identified in the overlap region table or not found within the CUQ, to locate the physical address of the read request from other memory management tables. The at least one entity includes a processor or a hardware block.At least one entity is further configured to identify an address value of the read request in an overlap region table, wherein another entity, in response to identifying the address value of the read request in an overlap region table, attempts to locate a physical address of the read request in the CUQ; and if the address is not identified in the overlap region table or not found within the CUQ, locate the physical address of the read request from other memory management tables. The at least one entity includes a processor or a hardware block.

[0045] A non-transitory computer-readable medium is also disclosed containing instructions that, when executed by a processing unit of a system having a controller including an FTL and one or more management tables coupled to non-volatile memory, cause the system to efficiently perform read operations during an update of the management table by performing the steps of: maintaining an overlap area table containing information about recent accesses to the non-volatile memory and a CUQ; receivingReceiving a read request by the FTL during an update of the one or more management tables during non-blocking control synchronization; and reading data from the non-volatile memory using a CUQ during the update of the one or more management tables during the non-blocking control synchronization. The system further performs the steps of identifying an address value of the read request in an overlap region table; and either: attempting, in response to identifying the address value of the read request in an overlap region table, to locate a physical address of the read request in the CUQ; or if the address is not identified in the overlap region table or not found within the CUQ, locating the physical address of the read request from other memory management tables.

[0046] Additionally, an apparatus comprising: a non-volatile memory device; physical address allocation means coupled to a non-volatile memory; means for receiving a read request during an update of the physical address allocation means during non-blocking control synchronization; and means for reading data from the non-volatile memory using a temporary physical address allocation means during the update of the physical address allocation means during non-blocking control synchronization.The apparatus also comprises means for identifying a means for identifying physical addresses of the read request in an overlap area table; and either means for locating, in response to the identification of the means for identifying physical addresses of the read request in an overlap area table, a physical address of the read request in the temporary means for allocating physical addresses; or if the address is not identified in the overlap area table or not found in the CUQ, means for locating the physical address of the read request from other memory management tables.

[0047] As disclosed herein, a method in a controller including a management table coupled to non-volatile memory includes receiving a read request to the non-volatile memory during an update of the management table; and reading data from the non-volatile memory using a CUQ during the update of the management table. The method also includes identifying an address value of the read request in an overlap area table; and in response to identifying the address value of the read request in an overlap area table, locating a physical address of the read request in the CUQ. In the method, the CUQ is capable of performing a set of functions performed by the management table.Furthermore, the set of functions includes logical block allocation, uniform wear, garbage collection, and write amplification. The CUQ contains a second address value according to a recent access to the non-volatile memory. The overlap range table contains the address value of the read request according to a recent access to the non-volatile memory. The overlap range table lists a memory element in which the address value is located. The memory element is a physical or logical range of memory elements. The CUQ is a page queue of the management table in a flash translation layer. The CUQ updates the management table when a predetermined threshold is reached. The CUQ stores a copy in or on the non-volatile memory. The method further includes removing a CUQ entry after confirming the update of the management table.The entry is automatically removed before a second update of the management table. The entry is marked for removal in a subsequent update of the management table. Marking the entry indicates that the removal failed before the management table was updated. At a minimum, the entry will be removed from the CUQ when a new entry arrives.

[0048] As also disclosed herein, a system comprises non-volatile memory containing a management table; at least one processor configured to: receive a read request to the non-volatile memory during an update of the management table; and read data from the non-volatile memory using a CUQ during the update of the management table. The system also includes a device memory coupled to the at least one processor. The at least one processor is further configured to: identify an address value of the read request in an overlap range table; and in response to identifying the address value of the read request in an overlap range table, locate a physical address of the read request in the CUQ.

[0049] A non-transitory computer-readable medium containing instructions that, when executed by a processing unit of a system having a controller including a management table coupled to non-volatile memory, cause the system to efficiently perform read operations during an update of the management table by performing the steps of: receiving a read request in the non-volatile memory during an update of the management table; and reading data from the non-volatile memory using a CUQ during the management table update is also disclosed.The controller further causes the identification of an address value of the read request in an overlap area table; and in response to the identification of the address value of the read request in an overlap area table, to locate a physical address of the read request in the CUQ.

[0050] As also disclosed herein, an apparatus includes a non-volatile memory device; physical address allocation means coupled to a non-volatile memory, means for receiving a read request during an update of the physical address allocation means; and means for reading data from the non-volatile memory using a temporary physical address allocation means during the update of the physical address allocation means. The apparatus also includes means for identifying a physical address identification means of the read request in an overlap region table; and means for locating, in response to the identification of the physical address identification means of the read request in an overlap region table, a physical address of the read request in the temporary physical address allocation means.

[0051] Embodiments of the system and methods optimize read latency during control synchronization operations by using a proxy management table, such as the CUQ 160. The overlap region table avoids lengthy proxy management table searches and redirects read operations to the regular management table when needed. The embodiments of the system and methods also ensure that the most accurate flash translation layer mapping is used. This means that read operation errors may occur while using a management table 144 to obtain control updates.

Claims

[1] A method in a controller (130) including a flash translation layer (FTL) and one or more management tables (144) coupled to a non-volatile memory (104), comprising: Maintaining or maintaining (215) a Control Update Queue (CUQ) and a Overlap area table (150) containing information about recent accesses to the non-volatile memory (104); Receiving a read request and checking whether an update of the one or more management tables (144) in or on the non-volatile memory (104) is currently taking place; and Reading data (230) from the non-volatile memory (104) using the overlap area table (150) and the CUQ (160) if the update of the one or more management tables (144) is currently in progress. [2] The method of claim 1, wherein updating the one or more management tables (144) in the non-volatile memory (104) is part of a non-blocking control synchronization operation. [3] The method of claim 2, further comprising evacuating the CUQ (160) after a non-blocking control synchronization operation and after updating said entries in the one or more management tables (144). [4] The method of claim 3, further comprising performing flash management functions. [5] The method of claim 4, wherein the flash management functions include logical to physical address mapping, wear uniformity, garbage collection, and write amplification. [6] The method of claim 1, further comprising: Identifying an address value of the read request in the overlap area table (150); and either: Locating (350) a physical address of the read request in the CUQ (160) in response to identifying the address value of the read request in the overlap area table (150); or if the address cannot be identified in the overlap area table (150), locating (380) the physical address of the read request from other memory management tables. [7] The method of claim 6, wherein the CUQ (160) contains a list of logical to physical mapping pairs according to recent updates chronologically ordered by the FTL (142). [8] The method of claim 6, wherein the overlap range table (150) contains a list of address values ​​of recent accesses to the non-volatile memory (104), thereby enabling efficient LBA range searches. [9] The method of claim 6, wherein the overlap area table (150) includes an indication flag that an entry is present in the CUQ (160) and optionally includes a pointer to the relevant CUQ entry. [10] The method of claim 1, wherein the tables are not updated while the controller (130) is writing one or more management tables to or into the flash. [11] The method of claim 10, further comprising sending (240) the read data to a host device (180). [12] System that has: a non-volatile memory (104); an FTL (142); one or more management tables (144); and at least one controller (130) coupled to the non-volatile memory (104), the controller (130) being configured to check a table for a read address value (184) or a read address value. [13] The system of claim 12, wherein the controller (130) is configured to read data from the non-volatile memory (104) using the overlap area table (150) and a CUQ (160) while updating one or more management tables (144). [14] The system of claim 13, wherein the controller (130) is configured to check (330) the overlap area table (150) for a read address value (184) in response to receiving a read request. [15] The system of claim 14, wherein the controller (130) locates (350) a physical address that matches the read address value, and wherein the physical address value is in the CUQ (160) in response to a logical address being found in the overlap table. [16] The system of claim 15, wherein the controller (130) retrieves (360) the data from the CUQ (160) using the physical address. [17] The system of claim 16, wherein the controller (130) is configured to return the data to a host device (370). [18] The system of claim 12, wherein the controller (130) is further configured to identify an address value of the read request in the overlap region table (150), wherein the controller (130) attempts to locate a physical address of the read request in the CUQ (160) in response to the address value of the read request being identified in an overlap region table (150); and in the case where the address was not identified in the overlap region table (150) or was not found within the CUQ (160), to locate the physical address of the read request from other memory management tables. [19] A system that has: a non-volatile memory (104); an FTL (142); one or more management tables (144); Means for receiving (520) an indication that the one or more management tables (144) have been stored in the non-volatile memory (104); and Means of clearing or preventing control updates. [20] The system of claim 19, further comprising means for automatically clearing (540) or preventing control updates. [21] The system of claim 20, further comprising means for initiating (230) a control synchronization operation. [22] Device comprising: a controller (130) configured to: to identify an address value of a read request in an overlap area table (150); and either: Locating (350) a physical address of the read request in the CUQ in response to identifying the address value of the read request in the overlap area table (150); or if the address was not identified in the overlap area table (150), locating (380) the physical address of the read request from other memory management tables. [23] The apparatus of claim 22, wherein the controller (130) is further configured to initiate a controller synchronization operation. [24] The apparatus of claim 23, wherein the controller (130) is further configured to write mapping tables to the non-volatile memory (104) during the controller synchronization operation. [25] The apparatus of claim 23, wherein the controller (130) is configured not to update the management tables (144) during the controller synchronization operation. [26] The apparatus of claim 23, wherein the control synchronization is performed in a non-blocking manner such that new host write operations are processed and new updates to the management tables (144) must be stored. [27] Apparatus according to claim 23, wherein new updates to the management tables (144) are stored in the CUQ (160) during the control synchronization operation, and a corresponding entry is also added to the overlap area table (150). [28] The apparatus of claim 22, wherein the controller (130) is further configured to flush data from the CUQ (160) after a controller synchronization operation. [29] The apparatus of claim 22, wherein the controller (130) is further configured to retrieve (360) data of the read request from the non-volatile memory (104) using the physical address located in the CUQ (160). [30] Device comprising: a non-volatile memory (104); Means for assigning or mapping physical addresses; Means for receiving a read request during an update of the means for assigning physical addresses during a non-blocking control synchronization; and Means for reading data from or to the non-volatile memory (104) using a temporary physical address allocation means while updating the physical address allocation means during non-blocking control synchronization. [31] The apparatus of claim 30, further comprising: Means for identifying a means for identifying physical addresses of the read request in an overlap area table (150); and either: Means for locating (350), in response to the identification of the means for identifying physical addresses of the read request in an overlap area table (150), a physical address of the read request in the temporary means for allocating physical addresses; or if the address cannot be identified in the overlap area table (150) or cannot be found in the CUQ (160), means for locating (380) the physical address of the read request from other memory management tables.

Citation Information

Patent Citations

  • Memory device and operating method of same

    US20160299710A1