On-die static random access memory (SRAM) for caching logical-to-physical (L2P) tables
By utilizing on-die SRAM to cache L2P tables, the flash memory system addresses the latency issue associated with large storage capacities, achieving faster data access and improved performance.
Patent Information
- Application Number
- JP2024062623
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2024-04-09
- Publication Date
- 2025-05-08
- Estimated Expiration
- 2041-02-08
AI Technical Summary
As storage capacity in flash memory devices increases, the latency in reading data becomes a significant challenge due to the large size of the logical-physical (L2P) mapping table required for efficient data access.
The implementation of a cache of L2P tables in an SRAM storage device located on the same die as the NAND flash memory array, known as on-die SRAM, allows for quick access and reduces data read latency without expanding the device footprint.
This approach significantly reduces data read latency by providing faster access to L2P information, improving the performance of flash memory systems without increasing device size or manufacturing costs.
Smart Images

Figure 0007673287000001 
Figure 0007673287000002 
Figure 0007673287000003
Abstract
Description
[Technical field]
[0001] FIELD OF THE DISCLOSURE This disclosure relates generally to the field of flash memory, and more particularly to systems and methods for reducing latency in the operation of flash memory devices. [Background technology]
[0002] Memory cells are scaled to smaller sizes by improving processing techniques, circuit designs, programming algorithms and manufacturing processes. In many servers and mobile devices, NAND flash memory (a type of non-volatile storage technology) is widely used as the main non-volatile storage device due to its high storage density and relatively low access latency. Three-dimensional (3D) NAND flash memory is being developed to further increase storage density and reduce manufacturing costs. However, as smaller device sizes provide the benefits of significantly improved storage capacity, it becomes increasingly difficult to effectively and timely read data from and write data to memory devices. Summary of the Invention [Means for solving the problem]
[0003] The present disclosure includes a method for reading data from a flash memory, the method including receiving, by a flash memory controller, a read request for data stored in a plurality of flash memory dies. The read request includes a logical address of the data. Each flash memory die of the plurality of flash memory dies includes one or more flash memory arrays and one or more on-die static random access memory (SRAM) storage devices. The method also includes identifying an on-die SRAM storage device of the flash memory die that includes logical-to-physical (L2P) information, and searching the L2P information to obtain a physical address of the data corresponding to the logical address. The method further includes retrieving the data from the flash memory array of the flash memory die using the physical address.
[0004] The present disclosure also includes a method for reading data from a flash memory, the method including receiving, by a flash memory controller, a read request for data stored in a plurality of flash memory dies. The read request includes a logical address of the data, and the flash memory controller includes a controller storage device. Each flash memory die of the plurality of flash memory dies includes one or more flash memory arrays and one or more on-die static random access memory (SRAM) storage devices. The method also includes searching the controller storage device for logical-to-physical (L2P) information. In response to the L2P information being present in the controller storage device, the method includes using the L2P information to obtain a physical address of the data, and retrieving the data from the plurality of flash memory dies using the physical address. In response to the L2P information not being present in the controller storage device, the method includes identifying an on-die SRAM storage device of the flash memory die that includes the L2P information, and searching the L2P information to obtain a physical address corresponding to the logical address. The method further includes retrieving the data from a flash memory array of the flash memory die using the physical address.
[0005] The present disclosure further includes a flash memory system having a plurality of flash memory dies. Each flash memory die includes one or more NAND memory arrays and one or more on-die SRAM storage devices. The flash memory system also includes a flash memory controller including a controller memory and one or more processors. The one or more processors are configured to receive a read request for data stored in the plurality of flash memory dies upon executing instructions, the read request including a logical address of the data. The one or more processors are further configured to identify an on-die SRAM memory storage including logical-to-physical (L2P) information, the on-die SRAM storage device being formed on one flash memory die of the plurality of flash memory dies. The one or more processors are further configured to search the L2P information to obtain a physical address of the data corresponding to the logical address. The flash memory controller is also configured to retrieve data from the NAND memory array of the flash memory die using the physical address.
[0006] Aspects of the present disclosure are best understood from the following detailed description when read in conjunction with the accompanying figures. It should be noted that, according to common industry practice, various features have not been drawn to scale. In fact, dimensions of various features may be arbitrarily increased or decreased for clarity of illustration and discussion. [Brief description of the drawings]
[0007] [Figure 1] 1 is a block diagram illustrating a flash memory system according to some embodiments of the present disclosure. [Diagram 2] FIG. 1 is a circuit schematic diagram illustrating a flash memory array according to some embodiments of the present disclosure. [Diagram 3] 4 is a flowchart illustrating the operation of a flash memory system according to some embodiments of the present disclosure. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0008] While specific configurations and arrangements are discussed, it should be understood that this is done for illustrative purposes only. A person skilled in the art will recognize that other configurations and arrangements can be used without departing from the spirit and scope of the present disclosure. It will be apparent to one skilled in the art that the present disclosure can also be used in a variety of other applications.
[0009] It should be noted that references herein to "one embodiment," "an embodiment," "an exemplary embodiment," "some embodiments," and the like, indicate that the embodiment being described may include particular features, structures, or characteristics, but not all embodiments necessarily include these particular features, structures, or characteristics. Moreover, such phrases do not necessarily refer to the same embodiment. Moreover, if a particular feature, structure, or characteristic is described in connection with one embodiment, it will be within the knowledge of one of ordinary skill in the art to implement such feature, structure, or characteristic in connection with other embodiments, whether or not explicitly described.
[0010] Generally, terminology may be understood, at least in part, from usage in context. For example, the term "one or more" as used herein, at least in part depending on the context, may be used to describe any feature, structure, or characteristic in a singular sense, or may be used to describe a combination of features, structures, or characteristics in a plural sense. Similarly, terms such as "a," "an," "the," etc. may be understood as conveying singular usage or as conveying plural usage, also at least in part depending on the context.
[0011] It should be readily understood that the meanings of "on", "above" and "directly on" in this disclosure should be interpreted in the broadest manner possible, such that "on" does not only mean "directly on" something, but also includes the meaning "on" something with an intervening intermediate feature or layer, and "on" or "directly on" does not only mean "above" something or "directly on" something, but also can include the meaning "on" something or "directly on" something without an intervening intermediate feature or layer (i.e., directly on something).
[0012] Additionally, spatially related terms such as "below," "lower," "bottom," "above," "top," and the like, may be used herein for ease of description to describe the relationship of one element or feature shown in the figures to another element or feature. The spatially related terms are intended to encompass different orientations of the device during use or operation in addition to the orientation depicted in the figures. The device may be oriented other than as depicted (rotated 90 degrees or oriented in other orientations), and the spatially related descriptions used herein may be interpreted accordingly.
[0013] As used herein, the term "substrate" refers to a material onto which subsequent layers of material are applied. The substrate has a top surface and a bottom surface. Semiconductor devices are formed on the top surface of the substrate, and thus the semiconductor devices are formed on the top side of the substrate. The bottom surface is opposite the top surface, and thus the bottom side of the substrate is opposite the top side of the substrate. The substrate itself can be patterned. The material applied to the top of the substrate can be patterned or remain unpatterned. Additionally, the substrate can include a variety of semiconductor materials, such as silicon, germanium, gallium arsenide, indium phosphide, and the like. Alternatively, the substrate can be made of a non-conductive material, such as glass, plastic, or a sapphire wafer.
[0014] As used herein, the term "layer" refers to a portion of material that includes a region having a thickness. A layer can extend across an underlying or overlying structure, or can have an extent less than the extent of the underlying or overlying structure. Additionally, a layer may be a homogeneous or non-homogeneous region of a continuous structure that has a thickness less than the thickness of the continuous structure. For example, a layer can be disposed between any pair of horizontal planes between the top and bottom surfaces of a continuous structure, or at the top and bottom surfaces of a continuous structure. A layer can extend along horizontal, vertical, and / or oblique surfaces. A substrate may be a layer and can include one or more layers therein and / or have one or more layers on, above, and / or below it. A layer can include multiple layers. For example, an interconnect layer can include one or more conductor and contact layers (in which contacts, interconnect lines, and / or vias are formed), as well as one or more dielectric layers.
[0015] As used herein, the term "nominal" refers to a desired or target value of a characteristic or parameter for a component or process operation that is set during the design phase of a product or process, along with a range of values above and / or below the desired value. The range of values may be due to slight variations in the manufacturing process or manufacturing tolerances. As used herein, the term "about" refers to a value of a given quantity that may vary based on a particular technology node associated with the semiconductor device. Based on a particular technology node, the term "about" may refer to a value of a given quantity that varies, for example, within 10-30% of its value (e.g., ±10%, ±20% or ±30% of its value).
[0016] As used herein, the term "3D NAND memory device" (referred to herein as a "memory device") refers to a semiconductor device having vertically oriented strings of 3D NAND memory cell transistors (referred to herein as "memory strings", such as NAND strings or 3D NAND strings) on a laterally oriented substrate such that the memory strings extend vertically relative to the substrate. As used herein, the term "vertical" means nominally perpendicular to the lateral surface of the substrate.
[0017] A solid-state drive ("SSD") is a storage device that can record data. For example, an SSD device can store and retrieve data using non-volatile memory components. A user or device interface allows other systems to access the storage capacity of the SSD device. Various types of non-volatile memory, such as flash-based memory, can be used to store data persistently. 3D NAND memory devices are a type of non-volatile memory device that was developed to provide large data storage capacity. Flash memory devices can be manufactured using several different types of integrated circuit technologies, such as NOR or NAND logic gates with floating gates. Flash memory devices can be arranged in arrays depending on the application and can be configured to be accessed as blocks, pages, words and / or bytes. An individual page can be 2 N A page may contain 1000 bytes, where N is an integer, and typical page sizes may be, for example, 2,048 bytes (2kb), 4,096 bytes (4kb), 8,192 bytes (8kb) or more per page. Pages may be arranged in blocks. For example, a block may contain 64 pages, 128 pages or more pages. Read and write operations for NAND memory devices are performed on a page-by-page basis, while erase operations may be performed on a block-by-block basis.
[0018] Hard disks are linearly addressed by logical addresses (e.g., logical block addresses), while NAND devices address memory storage devices by physical addresses (e.g., page numbers). Thus, flash memory devices typically allocate a portion of controller circuitry to maintain a record of the mapping of each logical block address to the current page number where data is stored. This record mapping can be managed by a flash translation layer (FTL), which can provide a logical-to-physical (L2P) table for mapping the two addresses. The FTL can be implemented using an allocated portion of the flash memory controller circuitry and control software. To retrieve a particular piece of data, the host device can provide the logical address of the target data, and the flash memory controller can utilize the L2P mapping table to identify the physical page address of the target data in the non-volatile memory device and retrieve the stored data.
[0019] Several techniques can be used to store and maintain the L2P mapping table. One such technique is single-level direct L2P mapping. Under such a mapping scheme, the mapping table includes per-page entries at the end of each block containing logical block address information and a summary page for metadata. The L2P mapping table can be stored in a memory device within the flash memory controller. For example, the L2P mapping table can be stored in a static random access memory (SRAM) device. Single-level direct L2P mapping can include mapping information for an entire flash memory device. Thus, a single-level direct page mapping scheme requires a large amount of storage space to store the L2P mapping table (on the order of 1-2 MB per GB of user storage), which can be a challenge for large capacity flash storage memory devices.
[0020] Another approach for storing and maintaining the L2P mapping table is a multi-level mapping scheme. For example, the multi-level mapping scheme can group together multiple adjacent logical blocks and can include a page global directory for each grouped block. The page global directory can be stored in a memory device (e.g., SRAM) in the flash memory controller for quick access. This mapping scheme also includes a page middle directory and a page table that are stored and maintained in pages arranged at the memory cell level in a spare area of the NAND memory device. The page table includes a physical block number and a physical page number of data.
[0021] A flash translation layer ("FTL") may be located in the flash memory control module for translating logical addresses to physical addresses. Under single-level direct L2P mapping, the FTL may read and scan the L2P mapping table stored in the flash memory controller. Under a multi-level mapping scheme, the FTL will read the page global directory stored in the flash memory controller and also access the spare memory cells of the NAND memory device for the page middle directory and page table to search for the requested data address. The FTL may be a module stored in a static random access memory (SRAM) or dynamic random access memory (DRAM) in the flash memory controller module. The access speed to the spare memory cells of the SRAM and NAND memory device in the flash memory may be different. For example, the read latency of the SRAM in the flash memory controller module may be on the order of a few microseconds, while the read latency from the cell level of the NAND memory device may be an order of magnitude longer, for example, tens of microseconds.
[0022] As the storage capacity of memory devices such as 3D NAND memory increases, the size of the L2P table becomes significantly large, requiring a significant amount of storage space for storing the L2P table and for access operations such as buffering data. In particular, in a mobile device that does not include DRAM storage, implementing a single-level direct L2P table in a flash memory controller SRAM storage may result in larger device size and higher manufacturing costs. On the other hand, implementing a multi-level mapping scheme by storing the storage components of the L2P table in the flash memory controller and spare memory cells of the non-volatile memory device may result in higher latency and reduced device performance.
[0023] To address the above shortcomings, embodiments described herein are directed to systems and methods for reducing latency in flash memory systems without expanding device footprint. More particularly, the present disclosure is directed to caching an L2P table in SRAM storage located on the same die as a NAND flash memory array, i.e., on-die SRAM. A page middle directory and a page table may be stored in the on-die SRAM for quick access, for example, by a flash memory controller. The method may include program code and / or algorithms implementing an indication flag to provide a storage location for the L2P table containing address information for the target data. For example, the indication flag may indicate a first state indicating that the target L2P table is stored in on-die SRAM storage or a second state indicating that the target L2P table is stored in an SRAM of a flash memory controller. Because a flash memory system may include more than one flash memory die, the indication flag may also indicate a flash memory die that includes an on-die SRAM that stores the target L2P table. Additionally, the method may also include swapping L2P tables between various on-die SRAMs and a flash memory controller SRAM. The structures and components described in this application can be implemented in hardware, firmware, software, or any combination thereof. The methods and systems described in this disclosure can reduce the read latency of 3D NAND flash memory devices by more than 90%.
[0024] FIG. 1 illustrates a block diagram of a flash memory system 100 according to some embodiments. The flash memory system 100 may include a flash memory controller 110 and an array of flash memory dies 160. The flash memory controller 110 is in communication with a host controller 102 via an interface 104. The host controller 102 may be operable to request the flash memory controller to perform read, program, and erase operations on the flash memory dies 160 by sending commands and / or data via the interface 104. The flash memory controller 110 may be configured to retrieve data from one or more flash memory dies 160 (e.g., an array of flash memory devices) and send the data to the host controller 102 via a data bus. The retrieved data may be transmitted by the host controller 102 to a host computer or other system components not shown. The array of flash memory devices may include one or more arrays of NAND flash memory, introduced below as element 170.
[0025] The host controller 102 retrieves data by instructing the flash memory controller 110 to send data to be stored in or read data from the flash memory die 160. The host controller 102 may process I / O requests received from a host computer (not shown in FIG. 1), ensure data integrity and valid storage, and manage the flash memory die 160. The interface 106 may provide data and control communications between the flash memory controller 110 and the flash memory die 160 over a data bus.
[0026] Flash memory controller 110 may include an encoder / decoder unit 120, control logic 130, controller memory 132, a flash translation layer (FTL) 140, and a page buffer 150. Flash memory controller 110 may include other suitable components, which are not shown or described herein for the sake of brevity. In some embodiments, FTL 140 may further include a memory area (e.g., SRAM) for storing L2P mapping information or any other suitable information.
[0027] The encoder / decoder unit 120 may provide encoding and decoding of data processed by the flash memory controller 110. The encoder / decoder unit 120 may also generate and store error correction codes (ECC) and metadata for memory management. The encoder / decoder unit 120 may be used to detect and correct errors in the stored data.
[0028] The control logic 130 may be any suitable integrated circuit mechanism (e.g., one or more processors) configured to receive instructions from the host controller 102 and transmit commands and / or data to and from the flash memory die 160 via the interface 106 to perform read, program, and erase operations of the flash memory die 160, as is well understood by those skilled in the art (POSA). For example, the control logic 130 receives requests for flash media access, such as read or write operations, from one or more external devices via the host controller 102. The control logic 130 may be further configured to communicate with and control other components of the flash memory controller 110. For example, the control logic 130 may instruct the FTL to scan the internal memory storage for mapping information and may send / receive address-mapping information from the FTL. The control logic 130 may further communicate with the encoder / decoder unit 120, the page buffer 150, and other suitable components of the flash memory controller 110.
[0029] The controller memory 132 may be used to store commands for the operation of the control logic 130. In some embodiments, the controller memory 132 may be a storage medium for storing mapping information. For example, the controller memory 132 may include a single level direct L2P mapping table for sectors of the flash memory die 160. In some embodiments, the controller memory 132 may include page global directory information for the flash memory die 160. The page global directory information may be stored in a random access memory device (RAM) and may be used as a pseudo cache to provide fast lookup of mapping data. The page global directory is well understood by POSA and will not be described in detail herein for brevity. In some embodiments, the controller memory 132 may include software code, commands, computer logic, firmware, or any suitable information. In some embodiments, the controller memory 132 may be an SRAM device.
[0030] The flash translation layer (FTL) 140 can be configured to provide an L2P mapping table for translating logical addresses to physical addresses. A request to access a flash medium received by the control logic 130 can include one or more logical block addresses where user data is to be read or written. The FTL 140 can be configured to translate the logical block addresses of the desired data to physical addresses by scanning through various L2P tables. For example, the FTL 140 can generate L2P mapping information and send such information to a storage medium located on the flash memory controller 110, such as the controller storage device 132. The FTL 140 can also send the mapping information to a storage medium located on the flash memory die 160, such as an on-die SRAM or memory cell. The FTL 140 can also search the storage medium for L2P information when requested by the flash memory controller 110.
[0031] The page buffer 150 may include one or more register circuitry for storing sections of data. For example, under a two-pass programming scheme, the page buffer 150 may store data such as lower page data, middle page data, and upper page data. Data transfers between the host controller 102 and the array of flash memory dies 160 may be temporarily stored in the page buffer 150. The structure and function of the page buffer 150 are well understood by POSA and will not be described in detail herein for the sake of brevity.
[0032] The flash memory die 160 can be configured to store user data and can include circuitry components for communicating with the flash memory controller 110 and for storing L2P mapping information. In some embodiments, an individual flash memory die 160 can include an array of data cache 162, on-die SRAM 164, and NAND flash memory array 170. The flash memory die 160 can be a memory chip (package), a memory die, or any portion of a memory die. In some embodiments, an individual flash memory die 160 can include one or more on-die SRAM 164 or one or more NAND flash memory array 170. The additional on-die SRAM 164 and NAND flash memory array 170 are not shown in FIG. 1 for simplicity.
[0033] Data cache 162 may be configured to temporarily store data transferred between flash memory controller 110 and NAND flash memory array 170. For example, during a read operation to access stored user data from NAND flash memory array 170, data cache 162 may be configured to temporarily store retrieved data before sending the retrieved data to flash memory controller 110.
[0034] The on-die SRAM 164 can be configured to store the L2P mapping information for rapid access by the flash memory controller 110. For example, under a multi-level mapping scheme, the L2P mapping information, such as a page middle directory and a page table, can be stored in the on-die SRAM 164 and accessed by the FTL 140 of the flash memory controller 110 via the interface 106. Storing such information in the on-die SRAM 164 can provide advantages, among others, in reduced data read latency, since reading data from an SRAM storage medium is potentially orders of magnitude faster than reading data from a NAND flash memory cell, as compared to storing the L2P information in a spare memory cell of a NAND flash memory array. In some embodiments, the on-die SRAM 164 can be any other suitable memory device having a speed faster than a NAND flash memory cell. In some embodiments, a media storage device, such as a dynamic RAM (DRAM), can be implemented in the flash memory die 160 to perform functions similar to the on-die SRAM 164.
[0035] The NAND flash memory array 170 may include one or more memory planes, each of which may include multiple memory blocks. Identical simultaneous operations may occur in each memory plane. A memory block, which may be megabyte (MB) in size, is the minimum size for performing an erase operation. Each memory block may include multiple memory cells, which may be addressed via interconnects such as bit lines and word lines. The bit lines and word lines may be laid out orthogonally (e.g., in rows and columns, respectively) to form an array of metal lines. For ease of understanding, a memory block may also be referred to as a "memory array" or "array." A memory array is a core region in a memory device that performs storage functions.
[0036] FIG. 2 is a schematic circuit diagram illustrating a flash memory cell arrangement according to some embodiments of the present disclosure. The NAND flash memory array 170 may include an array of flash memory cells 172 laid out in an array arrangement as illustrated by FIG. 2. The NAND flash memory array 170 may be a 3D NAND flash memory array including a stack of gate electrodes arranged above a substrate, with a semiconductor channel penetrating into the substrate and crossing a word line. The bottom / bottom gate electrode functions as a bottom / bottom select gate. The top / top gate electrode functions as a top / top select gate. The word line / gate electrode between the top / top select gate electrode and the bottom / bottom gate electrode functions as a word line. The intersection of the word line and the semiconductor channel forms a memory cell. The top / top select gate is connected to a word line to select a row, and the bottom / bottom select gate is connected to a bit line to select a column. Examples of 3D NAND flash memory devices and methods for forming 3D NAND flash memory devices can be found in U.S. Pat. No. 10,559,592, entitled "Memory Device and Forming Method Thereof," which is incorporated by reference in its entirety.
[0037] Each of the NAND flash memory cells 172 indicates one or more bit values stored therein. In particular, each NAND flash memory cell 172 may include a transistor having a floating gate for storing charge. The NAND flash memory cells 172 are coupled in a plurality of serial strings 174, with the drain of a memory cell being coupled to the source of each of the other NAND flash memory cells 172. The NAND flash memory array 170 may include word lines WL0-WLN. Each of the word lines WL0-WLN may be connected to the control gates of individual NAND flash memory cells 172 in a row of the NAND flash memory array 170 and may be utilized to bias the control gates of the NAND flash memory cells 172 in the row. The NAND flash memory array 170 also includes bit lines BL0-BLK. Each of the bit lines BL0-BLK is coupled to the serial strings 174 and is also coupled to the data cache 162. Sensing circuitry (not shown but apparent to the POSA) can be controlled by the control logic 130 to detect the state of individual NAND flash memory cells 172 by sensing the voltage or current of particular ones of the bit lines BL0-BLK.
[0038] Other suitable circuitry components may be included in the schematic circuit diagram of Figure 2 but are not shown for the sake of brevity, such as select gates, sense circuitry, address decoders, driver circuits, other supporting logic / circuitry and any suitable circuitry components may be included but are omitted here for the sake of brevity.
[0039] 3 is a flow chart illustrating the operation of a flash memory system implementing on-die SRAM for low data read latency according to some embodiments of the present disclosure. It should be understood that the method 300 is not exhaustive and that other operational steps may be performed before, after, or between any operational steps shown. In some embodiments, some operational steps of the method 300 may be omitted or other operational steps may be included that are not described here for brevity. In some embodiments, the operational steps of the method 300 may be performed in a different order and / or the operational steps may be modified. The method 300 may be implemented using the flash memory devices and circuitry described in FIG. 1 and FIG. 2.
[0040] Method 300 begins at operational step 310, where, according to some embodiments of the present disclosure, a host controller initiates a user data read request. With reference to Figure 1, host controller 102 may initiate a user data request command via interface 104 to flash memory controller 110 to request a particular piece of user data stored in flash memory array 170. In some embodiments, the request command may include one or more logical addresses of the requested user data.
[0041] Method 300 continues with operation step 320, where, according to some embodiments of the present disclosure, the flash memory controller scans the flash memory controller's media storage (e.g., SRAM) to search the L2P table. Referring to FIG. 1, flash memory controller 110 can be configured to receive a user data request from a host controller and instruct FTL 140 to search controller storage 132 of flash memory controller 110 to determine whether controller storage 132 includes mapping information for the requested user data. In some embodiments, controller storage 132 can include a single level direct L2P mapping of a selection of user data. For example, to reduce read latency, the flash memory controller's storage medium can include a single level direct L2P mapping information for user data that is frequently accessed by a user. In some embodiments, the flash memory controller's storage medium can also include a sector of L2P mapping information. For example, under a multi-level mapping scheme, controller storage 132 can include a page global directory, and FTL 140 can be configured to search the page global directory.
[0042] Method 300 continues with operational step 330, where, according to some embodiments of the present disclosure, the FTL is configured to determine whether the L2P data is stored on the controller media storage device. In some embodiments, the user data request initiated by the host controller may include logical address information for the requested data. With reference to FIG. 1, the FTL 140 may be configured to determine whether the L2P address information corresponding to the logical address information is stored on the controller media storage device or the flash memory die.
[0043] If the FTL determines that the L2P address information is stored in the flash controller storage device, the method 300 continues with operational step 340, where the FTL reads a sector of the L2P information from the flash controller storage device, according to some embodiments of the present disclosure. With reference to FIG. 1, the FTL 140 can be configured to search the contents of the controller storage device 132 to identify a sector of the L2P mapping data that corresponds to the logical address information received from the host controller 102. The method 300 continues with operational step 342, where a physical address is retrieved based on the read value of the L2P data. Under a single-level direct L2P mapping scheme, the FTL 140 can look up the physical address in the L2P mapping table to obtain the corresponding physical address of the logical address received from the host controller 102.
[0044] The method 300 continues with operational step 380, where the control logic 130 of the flash memory controller 110 retrieves the user data from the NAND flash memory array 170 based on the physical address of the user data. The method 300 then continues with operational step 390, where the flash memory controller transmits the data to the host controller. For example, the flash memory controller 110 receives the user data from the flash memory die 160 and temporarily stores the user data in the page buffer 150 before transmitting the user data to the host controller 102 via the interface 104.
[0045] On the other hand, if the FTL determines in operation step 330 that the L2P address information is not stored in the flash controller memory storage, the method 300 continues with operation step 350, where the indication flag is examined to determine where the L2P address information is stored. For example, a first state (e.g., state 0) of the indication flag can inform the flash memory controller 110 that the corresponding L2P address information is stored in a spare cell in one of the flash memory dies 160. The indication flag can be a string of bits that provides information such as an identification of the one of the flash memory dies in which the L2P address information is stored. For example, the indication flag can be one or more bits of information stored in the controller memory storage 132. The indication flag can also include block information of whether the L2P mapping information is stored in the NAND flash memory array 170 or the on-die SRAM 164. If the L2P address information is stored in a spare cell of the NAND flash memory array 170, the method 300 continues with operation step 360, where the FTL 140 can be configured to retrieve the physical address from the L2P data stored in the spare cell of the NAND flash memory array 170. The instruction flag can include information that directs the flash memory controller 110 to the particular die that contains the L2P data.
[0046] Alternatively, a second state (e.g., state 1) of the indication flag may inform the flash memory controller 110 that the corresponding L2P address information is stored in an on-die SRAM. The indication flag may also be configured to include an identification of the on-die SRAM, such as a die number on which the on-die SRAM is located. The indication flag may further include an identification of a sector of the on-die SRAM on which the relevant portion of the L2P mapping information is stored. In such a scenario, the method 300 continues with operation step 370, and according to some embodiments of the present disclosure, the FTL may be configured to sweep the sector of the L2P mapping data from the on-die SRAM onto the controller storage device. Based on the information provided by the indication flag, the FTL may identify a particular on-die SRAM sector of the flash memory die 160 and sweep the sector of the L2P mapping data from the on-die SRAM 164 onto the controller storage device 132. In some embodiments, the sweeping of the sector of L2P mapping data includes transmitting the sector of L2P mapping data from on-die SRAM 164 to flash memory controller 110 and storing the sector of L2P mapping data in controller memory 132. Method 300 continues with operation 372, where the FTL updates the indication flag according to some embodiments of the present disclosure. With reference to FIG. 1, FTL 140 may update the indication flag to include information of the sector of L2P mapping data currently stored in controller memory 132. The stored information may be available for subsequent read requests. Method 300 continues with operation 374, where the physical address may be retrieved from the L2P data according to some embodiments of the present disclosure. FTL 140 may be configured to scan and read the L2P data swept up onto controller memory 132 and obtain the physical address corresponding to the logical address provided by host controller 102. The indication flag may include one or more additional appropriate states.
[0047] The method 300 then continues with operational step 380, where data is read from the memory cells according to some embodiments of the present disclosure. Based on the physical address obtained by the FTL 140, the control logic 130 of the flash memory controller 110 retrieves the user data from the NAND flash memory array 170 based on the physical address of the user data.
[0048] The method 300 then continues with operation 390, where the flash memory controller transmits the data to the host controller. For example, the flash memory controller 110 receives user data from the flash memory die and transmits the user data to the host controller 102 via the interface 104.
[0049] Various embodiments of the present disclosure are directed to systems and methods for reducing latency in flash memory systems without expanding device footprint. For example, a flash memory die may include SRAM storage located on the same die as a NAND flash memory array. The method may include program code and / or algorithms implementing one or more indicator flags to provide a location of an L2P table containing address mapping information for target data. For example, the indicator flag may indicate a first state indicating that the target L2P table is stored in on-die SRAM storage or a second state indicating that the target L2P table is stored in an SRAM of a flash memory controller.
[0050] In some embodiments, a method for reading data from a flash memory includes receiving, by a flash memory controller, a read request for data stored in a plurality of flash memory dies. The read request includes a logical address of the data. Each flash memory die of the plurality of flash memory dies includes one or more flash memory arrays and one or more on-die static random access memory (SRAM) storage devices. The method also includes identifying an on-die SRAM storage device of the flash memory die that includes logical-to-physical (L2P) information, and searching the L2P information to obtain a physical address of the data corresponding to the logical address. The method further includes retrieving the data from the flash memory array of the flash memory die using the physical address.
[0051] In some embodiments, a method for reading data from a flash memory includes receiving, by a flash memory controller, a read request for data stored on a plurality of flash memory dies. The read request includes a logical address of the data, and the flash memory controller includes a controller storage device. Each flash memory die of the plurality of flash memory dies includes one or more flash memory arrays and one or more on-die static random access memory (SRAM) storage devices. The method also includes searching the controller storage device for logical-to-physical (L2P) information. In response to the L2P information being present in the controller storage device, the method includes using the L2P information to obtain a physical address of the data, and retrieving the data from the plurality of flash memory dies using the physical address. In response to the L2P information not being present in the controller storage device, the method includes identifying an on-die SRAM storage device of the flash memory die that includes the L2P information, and searching the L2P information to obtain a physical address corresponding to the logical address. The method further includes retrieving the data from a flash memory array of the flash memory die using the physical address.
[0052] In some embodiments, the flash memory system includes a plurality of flash memory dies. Each flash memory die includes one or more NAND memory arrays and one or more on-die SRAM storage devices. The flash memory system also includes a flash memory controller including a controller storage device and one or more processors. The one or more processors are configured to receive a read request for data stored in the plurality of flash memory dies upon executing instructions, the read request including a logical address of the data. The one or more processors are further configured to identify an on-die SRAM storage device including logical-to-physical (L2P) information, the on-die SRAM storage device being formed on one flash memory die of the plurality of flash memory dies. The one or more processors are further configured to search the L2P information to obtain a physical address of the data corresponding to the logical address. The flash memory controller is also configured to retrieve data from the NAND memory array of the flash memory die using the physical address.
[0053] The above description of the specific embodiments fully reveals the general nature of the present disclosure, so that others can easily modify and / or adapt such specific embodiments for various applications by applying knowledge within the skill of those skilled in the art without undue experimentation and without departing from the general concept of the present disclosure. Such adaptations and modifications are therefore intended to be within the meaning and scope of equivalents of the disclosed embodiments based on the teaching and guidance presented herein. It should be understood that the phraseology or terminology used herein is intended to be descriptive and not limiting, as the terminology or terminology used herein would be interpreted by those skilled in the art in light of the teaching and guidance.
[0054] The embodiments of the present disclosure have been described above with the aid of functional building blocks illustrating implementations of specified functions and relationships thereof. The boundaries of these functional building blocks have been arbitrarily defined herein for the convenience of description. Alternative boundaries may be defined as long as the specified functions and relationships thereof are appropriately implemented.
[0055] The Summary and Abstract sections may represent one or more example embodiments of the disclosure, but not all, contemplated by the inventors, and are therefore not intended to be in any way limiting of the scope of the disclosure and the appended claims.
[0056] The breadth and scope of the present disclosure should not be limited by any of the above-described exemplary embodiments, but should be defined only in accordance with the following claims and their equivalents. [Explanation of symbols]
[0057] 100 Flash Memory System 102 Host Controller 104 Interface 106 Interface 110 Flash Memory Controller 120 Encoder / Decoder Unit 130 Control Logic 132 Controller storage device 140 Flash Translation Layer (FTL) 150 page buffer 160 Flash Memory Dies 162 Data Cache 164 on-die SRAM 170 NAND Flash Memory Array 172 Flash Memory Cells 174 String
Claims
1. 1. A flash memory controller, comprising: A controller storage device; One or more processors, A request for data stored on a flash memory die, comprising: the request includes a logical address of the data; receiving a request, wherein at least one of the flash memory dies comprises one or more on-die static random access memory (SRAM) storage devices; Searching for logical-to-physical (L2P) information in said controller storage device; Identifying an on-die SRAM storage device containing the L2P information; searching the L2P information to obtain a physical address of the data corresponding to the logical address; Retrieving the data from a flash memory array of a corresponding flash memory die using the physical address. one or more processors configured to a flash memory controller.
2. 2. The flash memory controller of claim 1, wherein the controller storage is configured to store an indicator flag containing the location of the L2P information.
3. The flash memory controller of claim 2 , wherein the location of the L2P information includes an address of the on-die SRAM storage device.
4. the one or more processors: In response to the L2P information not being present in the controller storage device, checking the indication flag.
3. The flash memory controller of claim 2, further configured as follows:
5. the one or more processors: Obtaining information from the instruction flag; Identifying a memory die containing the L2P information based on the obtained information from the indication flag.
5. The flash memory controller of claim 4, further configured to:
6. identifying the on-die SRAM storage device containing the L2P information; 5. The flash memory controller of claim 4, further comprising determining a sector of an L2P mapping table based on the obtained information from the indication flag.
7. the one or more processors: Sweeping the sectors of the L2P mapping table from the on-die SRAM storage device to the controller storage device.
7. The flash memory controller of claim 6, further configured to:
8. the one or more processors:
2. Update the indication flag with information related to the sector in the L2P mapping table.
8. The flash memory controller of claim 7, further configured to:
9. the one or more processors: Maintaining the L2P information through a single-level direct L2P mapping scheme or a multi-level mapping scheme 10. The flash memory controller of claim 1 further configured to:
10. 1. A method for reading data, comprising: receiving a request for data stored on a flash memory die, the request includes a logical address of the data; at least one of the flash memory dies includes one or more on-die static random access memory (SRAM) storage devices; receiving a request; searching for logical-to-physical (L2P) information in a controller storage device; in response to the L2P information not being present in the controller storage device, identifying an on-die SRAM storage device containing the L2P information; searching the L2P information to obtain a physical address of the data corresponding to the logical address; retrieving the data from a flash memory array corresponding to the flash memory die using the physical address; The method includes:
11. 11. The method of claim 10, further comprising the step of, in response to the L2P information not being present in the controller storage device, checking an indication flag containing the location of the L2P information.
12. The method of claim 11 , wherein the instruction flag is stored in the controller memory.
13. The method of claim 11 , wherein the location of the L2P information includes an address of the on-die SRAM storage device.
14. obtaining information from the indication flag; identifying a memory die containing the L2P information based on the obtained information from the indication flag; The method of claim 11 further comprising:
15. 12. The method of claim 11, wherein identifying the on-die SRAM storage device containing the L2P information comprises determining a sector of an L2P mapping table based on the obtained information from the indication flag.
16. 16. The method of claim 15, further comprising the step of sweeping the sectors of the L2P mapping table from the on-die SRAM storage device to the controller storage device.
17. 16. The method of claim 15, further comprising updating the indication flag with information related to the sector of the L2P mapping table.
18. 1. A flash memory system, comprising:
1. A flash memory device including a flash memory die, Each flash memory die contains one or more NAND memory arrays; one or more of the flash memory dies include one or more on-die static random access memory (SRAM) storage devices; A flash memory device; a flash memory controller coupled to the flash memory device, the flash memory controller including a controller storage device and one or more processors, the one or more processors comprising: receiving a request for data stored on the flash memory die, the request including a logical address of the data; determining whether logical-to-physical (L2P) information is stored in said controller storage device; responsive to the L2P information not being present in the controller storage device, identifying an on-die SRAM storage device containing the L2P information; searching the L2P information to obtain a physical address of the data corresponding to the logical address; Retrieving the data from a flash memory array corresponding to the flash memory die using the physical address. It is configured as follows: Flash memory controller A flash memory system comprising:
19. The flash memory device comprises: storing logical-to-physical (L2P) information on the one or more on-die SRAM storage devices; In response to a request for data stored in the one or more flash memory arrays, outputting corresponding L2P information.
20. The flash memory system of claim 18 configured to:
20. 20. The flash memory system of claim 18, wherein the controller storage is further configured to store an indication flag containing the location of the L2P information.
21. 21. The flash memory system of claim 20, wherein the location of the L2P information includes an address of the on-die SRAM storage device.
22. 20. The flash memory system of claim 18, wherein the flash memory device comprises a NAND memory device.
23. the one or more processors: Maintaining the L2P information through a single-level direct L2P mapping scheme or a multi-level mapping scheme 20. The flash memory system of claim 18 further configured to:
Citation Information
Patent Citations
Flash memory system and programming method performed therein
JP2008052728A
Storage device and computer with the same
JP2012174086A