US20120151125A1 - Data processing method for nonvolatile memory system - Google Patents
Data processing method for nonvolatile memory system Download PDFInfo
- Publication number
- US20120151125A1 US20120151125A1 US13/313,825 US201113313825A US2012151125A1 US 20120151125 A1 US20120151125 A1 US 20120151125A1 US 201113313825 A US201113313825 A US 201113313825A US 2012151125 A1 US2012151125 A1 US 2012151125A1
- Authority
- US
- United States
- Prior art keywords
- data
- file
- segments
- asic
- memory
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7207—Details relating to flash memory management management of metadata or control data
Definitions
- Embodiments of the inventive concept relate to data processing methods for nonvolatile memory systems. More particularly, embodiments of the inventive concept relate to data processing methods for nonvolatile memory systems that are capable of maximizing the performance of constituent firmware by simultaneously updating metadata after a file data transfer between a host Central Processing Unit (CPU) and a memory.
- CPU Central Processing Unit
- Semiconductor memory devices may be classified as volatile memories such as DRAM, SRAM, etc., and nonvolatile such as EEPROM, FRAM, PRAM, flash memory, etc. Volatile memory loses stored data in the absence of applied power, while nonvolatile memory is able to retain stored data even in the absence of applied power.
- volatile memories such as DRAM, SRAM, etc.
- nonvolatile such as EEPROM, FRAM, PRAM, flash memory, etc.
- Volatile memory loses stored data in the absence of applied power, while nonvolatile memory is able to retain stored data even in the absence of applied power.
- One or more memory device(s) are typically accessed in a memory system by a controller or interface.
- nonvolatile memory systems and devices are commonly used in MP3 players, digital cameras, mobile phones, camcorders, flash cards, solid state disks, etc.
- flash memory being one type of nonvolatile memory
- flash memory has been widely adapted for use as a storage medium in digital data systems due to its combination of high programming speed, low power consumption, a mass storage capacity, etc.
- FIG. (FIG.) 1 is a block diagram illustrating a flash memory system as one example of a conventional nonvolatile memory system.
- a nonvolatile memory system 100 comprises a flash memory device 140 and an application specific integrated circuit (ASIC) 130 serving as an interface to the flash memory device 140 .
- the nonvolatile memory system 100 is shown connected via a host interface with a host CPU 110 and a DRAM 120 .
- the host CPU 110 typically provides commands (e.g., read, write and erase commands, etc.) to the flash memory 140 via the ASIC 130 and the host interface.
- commands may be variously communicated as one or more control signals and/or one or more data packets.
- the ASIC 130 may be a memory controller. For example, when receiving a write command from the host CPU 110 , the ASIC 130 may be used to control the flash memory 140 such that file data received from the host CPU 110 is written to the flash memory 140 via a flash interface.
- FIG. 2A is a block diagram further describing one possible relationship between a file system 115 run on the host CPU 110 and a flash translation layer (FTL) 135 run by the ASIC 130 .
- the file system 115 is generally capable of managing files and associated file data resulting from the execution of one or more applications on the host CPU.
- the FTL 135 is used to manage memory space in the flash memory 140 by, among other functions, translating (or “mapping”) logical addresses used by the file system 115 and/or host CPU 110 into physical addresses used to store data in the flash memory 140 .
- the file system 115 manages the use of the flash memory 140 through the functionality provided by the host interface, the FTL 135 and the flash interface, wherein the ASIC 130 is integral to the operation of the host interface and flash interface.
- FIG. 2B is a conceptual diagram describing one possible organization of file data during a program (or write) operation performed by the flash memory system 100 .
- file data e.g., data segments DO through D 7
- file data may include certain metadata updates. That is, “input data” (or payload data) of the sort communicated to the flash memory 140 during a program operation may include a plurality of data segments (D 0 through D 7 ) and one or more related metadata update instructions.
- segment is used here to generically identify input data of any reasonable size and/or particular composition.
- the file system 115 generates logical addresses for each input data segments D 0 to D 7 in response to a write request provided by the host CPU 110 .
- the FTL maps the corresponding logical addresses generated by the file system 115 onto physical addresses for the flash memory 140 .
- the FTL 135 may program the first data segment D 0 in the flash memory 140 and update certain metadata related to the first data segment. This approach is used for each one of the plurality of input data segments D 0 through D 7 . Accordingly, the eight (8) input data segments (D 0 through D 7 ) provided by the file system 115 in the example of FIG. 2B result in eight (8) corresponding metadata update instructions being sent to the flash memory 140 and eight (8) corresponding execution periods, one for each metadata update.
- nonvolatile memory systems are increasingly used to store large volumes of user data, particularly in mobile devices such as cellular phones
- the effective number of input data segments being programmed to memory has dramatically increased.
- the resulting large number of metadata updates slows memory system performance and firmware operation in particular.
- Embodiments of the inventive concept provide data processing methods for nonvolatile memory systems that allow firmware to be efficiently utilized even when faced with numerous metadata update requirements caused by input data transfers from a host CPU.
- the inventive concept provides a data processing method for a nonvolatile memory system including a host CPU connected to a memory link architecture (MLA) including a multiple access memory, an Application Specific Integrated Circuit (ASIC), and a nonvolatile memory, the data processing method comprising; by operation of the host CPU, calling N data file segments indicated by a write request, and generating logical addresses for the N data file segments, transferring the N data file segments and logical addresses to the ASIC, using the ASIC, mapping the logical addresses onto physical addresses of the nonvolatile memory, using the ASIC, deriving N payload data segments using the N file data segments and logical addresses, and collectively generating corresponding metadata for all of the N payload data segments; and then, performing a single multi-segment transfer operation that includes, sequentially writing the N payload data segments to a data block in the nonvolatile memory, and thereafter, writing the corresponding metadata to a metadata block associated with the data block.
- MLA memory link architecture
- ASIC Application Specific Integrated Circuit
- FIG. 1 is a block diagram illustrating a conventional nonvolatile memory system (i.e., a flash memory) connected to a host CPU.
- a conventional nonvolatile memory system i.e., a flash memory
- FIG. 2A is a diagram further illustrating a relationship between a conventional file system and a flash translation layer.
- FIG. 2B is a conceptual diagram describing one possible input data (e.g., file data) during a program operation directed to the flash memory of FIGS. 1 and 2A .
- input data e.g., file data
- FIG. 3 is a block diagram illustrating a nonvolatile memory system including a flash memory according to an embodiment of the inventive concept.
- FIG. 4A is a block diagram further illustrating a relationship between a file system and a flash translation layer within the context of certain embodiments of the inventive concept.
- FIG. 4B is a conceptual diagram illustrating an addressing approach for a oneDRAM® and a flash memory.
- FIG. 4C is a conceptual diagram illustrating one possible organization for file data being communicated during a program operation directed to a flash memory and including a metadata update instruction.
- FIG. 5 is a flowchart summarizing a program operation for file data being sent to a flash memory for storage and including a metadata update instruction.
- first, second, third etc. may be used herein to describe various elements, components, regions, layers and/or sections, these elements, components, regions, layers and/or sections should not be limited by these terms. These terms are only used to distinguish one element, component, region, layer or section from another region, layer or section. Thus, a first element, component, region, layer or section discussed below could be termed a second element, component, region, layer or section without departing from the teachings of the inventive concept.
- FIG. 3 is a block diagram illustrating a nonvolatile memory system including a flash memory according to an embodiment of the inventive concept.
- a nonvolatile memory system 300 comprises a host CPU 310 connected to a “memory link architecture (MLA)” including in the illustrated example, a oneDRAM® 320 , an ASIC 330 , and a flash memory 340 .
- MLA memory link architecture
- the constituent elements 320 , 330 , and 340 forming the memory link architecture may be commonly integrated into a single integrated circuit (IC) or in a single semiconductor chip.
- the host CPU 310 may provide variously defined commands directed to the flash memory 340 . However, these command are communicated by and executed using the resources provided by memory link architecture in additional to the host interface.
- the oneDRAM® 320 is a particular type of fusion memory including a fast, nonvolatile memory (e.g., a DRAM) capable of enabling multiple access paths (e.g., by a CPU via one port and by an ASIC of a memory system via another port) to at least one shared memory area and at least one dedicated memory area.
- a fast, nonvolatile memory e.g., a DRAM
- this type of memory e.g., a CPU via one port and by an ASIC of a memory system via another port
- this type of memory will be referred to as a “multiple access memory”.
- the multiple access memory e.g., oneDRAM 320 in divided into a CPU access area 321 , an ASIC access area 323 , and a shared area 325 .
- the CPU access area 321 is a memory area that may be accessed by only the host CPU 310 .
- the ASIC access area 322 is a memory area that may be accessed by only the ASIC 330 .
- the shared area 325 is a memory area that may be accessed by either the host CPU 310 or the ASIC 330 at any given time.
- data may be routed between multiple processors within a mobile device via a single chip incorporating a multiple access memory such as the oneDRAM® instead of a typical DRAM.
- Provision of a MLA with a multiple access memory allows the removal of two data buffers from the related data paths, thereby improving data processing speed between (e.g.,) a communication processor and a media processor.
- the ASIC 330 may be a typical flash memory controller in the embodiment of FIG. 3 .
- the ASIC 330 may be used control the flash memory 340 to receive and store file data provided to the MLA via a host interface, and subsequently provide to the flash memory 340 via a flash interface.
- the flash memory 340 may be formed by one or more NAND flash memory and/or by one or more NOR flash memory. Unlike the NOR flash memory, the NAND flash memory does not support byte-unit read and program operations. That is, the NAND flash memory performs read and program operations on a page unit basis, while performing erase operations on a block unit basis.
- FIG. 4A is a conceptual diagram describing one possible relationship between a file system 315 run by the host CPU 340 and a flash translation layer (FTL) 335 run by the ASIC 330 according to certain embodiments of the inventive concept.
- FTL flash translation layer
- the file system 315 may be used to manage data storage and retrieval by the flash memory 340 in response to commands provided by the host CPU 310 .
- the file system 315 may be provided as part of an operating system OS of the host CPU 310 .
- the file system 315 may include a file allocation table (FAT) type file system and/or a new technology file system (NTFS) type file system.
- FAT file allocation table
- NTFS new technology file system
- the file system may include an Unix® file system (UFS), an Extended 2 (EXT2), an Extended 3 (EXT3), a journaling file system (JFS), etc.
- the flash translation layer 335 maps logical address(es) generated by the file system 315 into corresponding physical address(es) for the flash memory 340 .
- This approach enables the host CPU 310 to recognize (or functionally “see”) the flash memory 340 as a hard disk drive (HDD), or other similar type (SRAM) legacy memory system. Accordingly, the host CPU 310 may access the flash memory 340 in the same manner as it does a HDD.
- HDD hard disk drive
- SRAM similar type
- FIG. 4B is a conceptual diagram illustrating an addressing scheme used in conjunction with a multiple access memory, like the oneDRAM® and a flash memory when file data is programmed to the flash memory.
- file data information (Data-info) and a plurality of payload data segments (Payload_ 0 through Payload_n) are assumed to be stored in the shared area 325 of the oneDRAM® 320 in FIG. 3 .
- the file data information (Data-info) includes information such as command type, corresponding address(es), data size, etc.
- Payload data segments (Payload_ 0 through Payload_n) enable user data to be managed continuously, sequentially, and flexibly. Assuming that each of the payload data segments (Payload_ 0 through Payload_n) is 4 KB in size, an operation may be performed that transfers data having a total of 4*(n+1) KB in size to the flash memory. This operation will hereafter be referred to as a “multi-segment transfer operation”, and those skilled in the art will recognize that such an operation may be variously performed.
- the file system 315 Upon receiving a “write request” (e.g., a command indicating a program operation for a flash memory) indicating file data segments D 0 through Dn from the host CPU 310 , the file system 315 analyzes each file data segment to generate corresponding logical addresses and then generates the file data information (Data-info) and the payload data segments (Payload_ 0 through Payload_n).
- a “write request” e.g., a command indicating a program operation for a flash memory
- the FTL 335 is then able to map the logical addresses generated and provided by the file system 315 onto corresponding physical addresses for the flash memory 340 .
- the resulting physical addresses are then used during the program operation to store the file data D 0 through Dn.
- the physical addresses for the flash memory 340 may indicate a particular data block.
- This data block may be used to store the file data information (Data-info) and each of the payload data segments (Payload_ 0 through Payload_n).
- Data-info file data information
- Payload_ 0 through Payload_n payload data segments
- corresponding metadata will be stored in a meta block.
- Metadata is a particular kind of data associated with other types of data (e.g., payload data) that is stored in memory. It may be understood generally as data describing stored data, the data storage environment, and/or data structures used to store the data.
- metadata may include data needed to parse the status of a flash memory or manage the flash memory effectively.
- Such data may include address mapping table(s) including a logical block address LBA and physical block address PBA, an erase count for a memory block, free block information, bad block information, etc.
- FIG. 4C is a conceptual diagram illustrating one possible organization for file data to be written to a flash memory during a program operation and including one or more metadata update instructions.
- FIG. 5 is a flowchart summarizing a file data program operation for a flash memory including a metadata update operation.
- the file data is assumed to include eight (8) data segments D 0 through D 7 to be written to the flash memory 340 of FIG. 3 .
- the host CPU 310 “calls” file data D 0 through D 7 in relation to a write request made in response to (e.g.,) an application being executed by the host CPU 310 or a user input.
- the file data D 0 through D 7 is assumed to be previously stored in the shared area 325 of the oneDRAM® 320 (S 10 ).
- the file system 315 analyzes each file data segment to generate logical addresses and generate corresponding file data information (Data-info) as well as the payload data segments (Payload_ 0 through Payload_ 7 ) (S 20 ).
- the FTL 335 then maps the logical addresses generated by the file system 315 onto physical addresses of the flash memory 340 (S 30 ).
- the FTL 335 then sequentially stores the file data information (Data-info) and the payload data segments (Payload_ 0 through Payload_ 7 ) in a data block of the flash memory 340 (S 40 ).
- each one of eight (8) payload data segments (Payload_ 0 to Payload_ 7 ) is 4 KB in size.
- the inventive concept is not limited thereto. Indeed, data segments having a size of 8 KB, 12 KB, etc., may be used.
- the FTL 335 updates metadata associated all data segments in the multi-segment transfer operation (S 50 ).
- the metadata update may be a one-time event (i.e., including only one metadata update instruction) for all of the meta block associated with all of the data segments being programmed to the flash memory 340 during a particular program operation.
- a write request indicates “N” payload data segments (e.g., file data segments D 0 through D 7 ) for a single program operation directed to the flash memory 340
- M metadata update instructions are included in the resulting program operation, where M is less than N.
Abstract
Description
- This application claims under 35 U.S.C §119 the benefits of Korean Patent Application No. 10-2010-0124977 filed Dec. 8, 2010, the subject matter of which is hereby incorporated by reference.
- Embodiments of the inventive concept relate to data processing methods for nonvolatile memory systems. More particularly, embodiments of the inventive concept relate to data processing methods for nonvolatile memory systems that are capable of maximizing the performance of constituent firmware by simultaneously updating metadata after a file data transfer between a host Central Processing Unit (CPU) and a memory.
- Semiconductor memory devices may be classified as volatile memories such as DRAM, SRAM, etc., and nonvolatile such as EEPROM, FRAM, PRAM, flash memory, etc. Volatile memory loses stored data in the absence of applied power, while nonvolatile memory is able to retain stored data even in the absence of applied power. One or more memory device(s) are typically accessed in a memory system by a controller or interface.
- Recent consumer trends are towards devices, and mobile devices in particular, that incorporate nonvolatile memory systems and devices. For example, nonvolatile memory systems and devices are commonly used in MP3 players, digital cameras, mobile phones, camcorders, flash cards, solid state disks, etc.
- In particular, so-called flash memory, being one type of nonvolatile memory, has been widely adapted for use as a storage medium in digital data systems due to its combination of high programming speed, low power consumption, a mass storage capacity, etc.
- FIG. (FIG.) 1 is a block diagram illustrating a flash memory system as one example of a conventional nonvolatile memory system.
- Referring to
FIG. 1 , anonvolatile memory system 100 comprises aflash memory device 140 and an application specific integrated circuit (ASIC) 130 serving as an interface to theflash memory device 140. In the example ofFIG. 1 , thenonvolatile memory system 100 is shown connected via a host interface with ahost CPU 110 and aDRAM 120. Thehost CPU 110 typically provides commands (e.g., read, write and erase commands, etc.) to theflash memory 140 via the ASIC 130 and the host interface. In this context, a “command” may be variously communicated as one or more control signals and/or one or more data packets. - The ASIC 130 may be a memory controller. For example, when receiving a write command from the
host CPU 110, the ASIC 130 may be used to control theflash memory 140 such that file data received from thehost CPU 110 is written to theflash memory 140 via a flash interface. -
FIG. 2A is a block diagram further describing one possible relationship between afile system 115 run on thehost CPU 110 and a flash translation layer (FTL) 135 run by the ASIC 130. As is conventionally understood, thefile system 115 is generally capable of managing files and associated file data resulting from the execution of one or more applications on the host CPU. As is also conventionally understood, the FTL 135 is used to manage memory space in theflash memory 140 by, among other functions, translating (or “mapping”) logical addresses used by thefile system 115 and/or hostCPU 110 into physical addresses used to store data in theflash memory 140. - Thus, in response to various commands issued by the
host CPU 110, thefile system 115 manages the use of theflash memory 140 through the functionality provided by the host interface, the FTL 135 and the flash interface, wherein the ASIC 130 is integral to the operation of the host interface and flash interface. -
FIG. 2B is a conceptual diagram describing one possible organization of file data during a program (or write) operation performed by theflash memory system 100. Referring toFIGS. 1 , 2A and 2B, file data (e.g., data segments DO through D7) during a program operation may include certain metadata updates. That is, “input data” (or payload data) of the sort communicated to theflash memory 140 during a program operation may include a plurality of data segments (D0 through D7) and one or more related metadata update instructions. The term “segment” is used here to generically identify input data of any reasonable size and/or particular composition. - According to the example of
FIG. 2B , thefile system 115 generates logical addresses for each input data segments D0 to D7 in response to a write request provided by thehost CPU 110. Upon receiving the input data segments, the FTL maps the corresponding logical addresses generated by thefile system 115 onto physical addresses for theflash memory 140. - Thus, the FTL 135 may program the first data segment D0 in the
flash memory 140 and update certain metadata related to the first data segment. This approach is used for each one of the plurality of input data segments D0 through D7. Accordingly, the eight (8) input data segments (D0 through D7) provided by thefile system 115 in the example ofFIG. 2B result in eight (8) corresponding metadata update instructions being sent to theflash memory 140 and eight (8) corresponding execution periods, one for each metadata update. - However, as nonvolatile memory systems are increasingly used to store large volumes of user data, particularly in mobile devices such as cellular phones, the effective number of input data segments being programmed to memory has dramatically increased. The resulting large number of metadata updates slows memory system performance and firmware operation in particular.
- Embodiments of the inventive concept provide data processing methods for nonvolatile memory systems that allow firmware to be efficiently utilized even when faced with numerous metadata update requirements caused by input data transfers from a host CPU.
- In one embodiment, the inventive concept provides a data processing method for a nonvolatile memory system including a host CPU connected to a memory link architecture (MLA) including a multiple access memory, an Application Specific Integrated Circuit (ASIC), and a nonvolatile memory, the data processing method comprising; by operation of the host CPU, calling N data file segments indicated by a write request, and generating logical addresses for the N data file segments, transferring the N data file segments and logical addresses to the ASIC, using the ASIC, mapping the logical addresses onto physical addresses of the nonvolatile memory, using the ASIC, deriving N payload data segments using the N file data segments and logical addresses, and collectively generating corresponding metadata for all of the N payload data segments; and then, performing a single multi-segment transfer operation that includes, sequentially writing the N payload data segments to a data block in the nonvolatile memory, and thereafter, writing the corresponding metadata to a metadata block associated with the data block.
- The above and other objects and features associated with embodiments of the inventive concept will become apparent from the following description with reference to the following figures.
-
FIG. 1 is a block diagram illustrating a conventional nonvolatile memory system (i.e., a flash memory) connected to a host CPU. -
FIG. 2A is a diagram further illustrating a relationship between a conventional file system and a flash translation layer. -
FIG. 2B is a conceptual diagram describing one possible input data (e.g., file data) during a program operation directed to the flash memory ofFIGS. 1 and 2A . -
FIG. 3 is a block diagram illustrating a nonvolatile memory system including a flash memory according to an embodiment of the inventive concept. -
FIG. 4A is a block diagram further illustrating a relationship between a file system and a flash translation layer within the context of certain embodiments of the inventive concept. -
FIG. 4B is a conceptual diagram illustrating an addressing approach for a oneDRAM® and a flash memory. -
FIG. 4C is a conceptual diagram illustrating one possible organization for file data being communicated during a program operation directed to a flash memory and including a metadata update instruction. -
FIG. 5 is a flowchart summarizing a program operation for file data being sent to a flash memory for storage and including a metadata update instruction. - Certain embodiments of the inventive concept will now be described in some additional detail with reference to the accompanying drawings. The inventive concept may, however, be embodied in many different forms and should not be construed as being limited to only the illustrated embodiments. Rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the scope of the inventive concept to those skilled in the art. Throughout the written description and drawings, like numbers and labels are used to denote like or similar elements.
- It will be understood that, although the terms first, second, third etc. may be used herein to describe various elements, components, regions, layers and/or sections, these elements, components, regions, layers and/or sections should not be limited by these terms. These terms are only used to distinguish one element, component, region, layer or section from another region, layer or section. Thus, a first element, component, region, layer or section discussed below could be termed a second element, component, region, layer or section without departing from the teachings of the inventive concept.
- The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the inventive concept. As used herein, the singular forms “a”, “an” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms “comprises” and/or “comprising,” when used in this specification, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof. As used herein, the term “and/or” includes any and all combinations of one or more of the associated listed items.
- It will be understood that when an element or layer is referred to as being “on”, “connected to”, “coupled to”, or “adjacent to” another element or layer, it can be directly on, connected, coupled, or adjacent to the other element or layer, or intervening elements or layers may be present. In contrast, when an element is referred to as being “directly on,” “directly connected to”, “directly coupled to”, or “immediately adjacent to” another element or layer, there are no intervening elements or layers present.
- Unless otherwise defined, all terms (including technical and scientific terms) used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this inventive concept belongs. It will be further understood that terms, such as those defined in commonly used dictionaries, should be interpreted as having a meaning that is consistent with their meaning in the context of the relevant art and/or the present specification and will not be interpreted in an idealized or overly formal sense unless expressly so defined herein.
-
FIG. 3 is a block diagram illustrating a nonvolatile memory system including a flash memory according to an embodiment of the inventive concept. - Referring to
FIG. 3 , anonvolatile memory system 300 comprises ahost CPU 310 connected to a “memory link architecture (MLA)” including in the illustrated example, aoneDRAM® 320, anASIC 330, and aflash memory 340. Theconstituent elements - As has been noted above, the
host CPU 310 may provide variously defined commands directed to theflash memory 340. However, these command are communicated by and executed using the resources provided by memory link architecture in additional to the host interface. - As will be appreciated by those skilled in the art, the
oneDRAM® 320 is a particular type of fusion memory including a fast, nonvolatile memory (e.g., a DRAM) capable of enabling multiple access paths (e.g., by a CPU via one port and by an ASIC of a memory system via another port) to at least one shared memory area and at least one dedicated memory area. Hereafter, this type of memory—as best exemplified by the oneDRAM®—will be referred to as a “multiple access memory”. As illustrated inFIG. 3 , the multiple access memory (e.g., oneDRAM 320) in divided into aCPU access area 321, anASIC access area 323, and a sharedarea 325. - The
CPU access area 321 is a memory area that may be accessed by only thehost CPU 310. The ASIC access area 322 is a memory area that may be accessed by only theASIC 330. The sharedarea 325 is a memory area that may be accessed by either thehost CPU 310 or theASIC 330 at any given time. - In certain embodiments of the inventive concept, data may be routed between multiple processors within a mobile device via a single chip incorporating a multiple access memory such as the oneDRAM® instead of a typical DRAM. Provision of a MLA with a multiple access memory allows the removal of two data buffers from the related data paths, thereby improving data processing speed between (e.g.,) a communication processor and a media processor.
- The
ASIC 330 may be a typical flash memory controller in the embodiment ofFIG. 3 . For example, when receiving a program command from thehost CPU 310, theASIC 330 may be used control theflash memory 340 to receive and store file data provided to the MLA via a host interface, and subsequently provide to theflash memory 340 via a flash interface. - The
flash memory 340 may be formed by one or more NAND flash memory and/or by one or more NOR flash memory. Unlike the NOR flash memory, the NAND flash memory does not support byte-unit read and program operations. That is, the NAND flash memory performs read and program operations on a page unit basis, while performing erase operations on a block unit basis. -
FIG. 4A is a conceptual diagram describing one possible relationship between afile system 315 run by thehost CPU 340 and a flash translation layer (FTL) 335 run by theASIC 330 according to certain embodiments of the inventive concept. - As before, the
file system 315 may be used to manage data storage and retrieval by theflash memory 340 in response to commands provided by thehost CPU 310. - The
file system 315 may be provided as part of an operating system OS of thehost CPU 310. For example, assuming a Windows® operating system, thefile system 315 may include a file allocation table (FAT) type file system and/or a new technology file system (NTFS) type file system. Assuming a Unix®/Linux® operating system, the file system may include an Unix® file system (UFS), an Extended 2 (EXT2), an Extended 3 (EXT3), a journaling file system (JFS), etc. - When payload data is programmed (or written) to the
flash memory 340, theflash translation layer 335 maps logical address(es) generated by thefile system 315 into corresponding physical address(es) for theflash memory 340. This approach, among other benefits, enables thehost CPU 310 to recognize (or functionally “see”) theflash memory 340 as a hard disk drive (HDD), or other similar type (SRAM) legacy memory system. Accordingly, thehost CPU 310 may access theflash memory 340 in the same manner as it does a HDD. -
FIG. 4B is a conceptual diagram illustrating an addressing scheme used in conjunction with a multiple access memory, like the oneDRAM® and a flash memory when file data is programmed to the flash memory. - Referring to
FIG. 4B , file data information (Data-info) and a plurality of payload data segments (Payload_0 through Payload_n) are assumed to be stored in the sharedarea 325 of theoneDRAM® 320 inFIG. 3 . The file data information (Data-info) includes information such as command type, corresponding address(es), data size, etc. - Payload data segments (Payload_0 through Payload_n) enable user data to be managed continuously, sequentially, and flexibly. Assuming that each of the payload data segments (Payload_0 through Payload_n) is 4 KB in size, an operation may be performed that transfers data having a total of 4*(n+1) KB in size to the flash memory. This operation will hereafter be referred to as a “multi-segment transfer operation”, and those skilled in the art will recognize that such an operation may be variously performed.
- Upon receiving a “write request” (e.g., a command indicating a program operation for a flash memory) indicating file data segments D0 through Dn from the
host CPU 310, thefile system 315 analyzes each file data segment to generate corresponding logical addresses and then generates the file data information (Data-info) and the payload data segments (Payload_0 through Payload_n). - The
FTL 335 is then able to map the logical addresses generated and provided by thefile system 315 onto corresponding physical addresses for theflash memory 340. The resulting physical addresses are then used during the program operation to store the file data D0 through Dn. - For example, the physical addresses for the
flash memory 340 may indicate a particular data block. This data block may be used to store the file data information (Data-info) and each of the payload data segments (Payload_0 through Payload_n). In contrast, corresponding metadata will be stored in a meta block. - As will be understood by those skilled in the art, metadata is a particular kind of data associated with other types of data (e.g., payload data) that is stored in memory. It may be understood generally as data describing stored data, the data storage environment, and/or data structures used to store the data. For example, metadata may include data needed to parse the status of a flash memory or manage the flash memory effectively. Such data may include address mapping table(s) including a logical block address LBA and physical block address PBA, an erase count for a memory block, free block information, bad block information, etc.
-
FIG. 4C is a conceptual diagram illustrating one possible organization for file data to be written to a flash memory during a program operation and including one or more metadata update instructions.FIG. 5 is a flowchart summarizing a file data program operation for a flash memory including a metadata update operation. - The file data is assumed to include eight (8) data segments D0 through D7 to be written to the
flash memory 340 ofFIG. 3 . - Referring collectively to
FIGS. 3 , 4A, 4B, 4C, and 5, thehost CPU 310 “calls” file data D0 through D7 in relation to a write request made in response to (e.g.,) an application being executed by thehost CPU 310 or a user input. The file data D0 through D7 is assumed to be previously stored in the sharedarea 325 of the oneDRAM® 320 (S10). - In response to the resulting write request by the
host CPU 310, thefile system 315 analyzes each file data segment to generate logical addresses and generate corresponding file data information (Data-info) as well as the payload data segments (Payload_0 through Payload_7) (S20). - The
FTL 335 then maps the logical addresses generated by thefile system 315 onto physical addresses of the flash memory 340 (S30). - The
FTL 335 then sequentially stores the file data information (Data-info) and the payload data segments (Payload_0 through Payload_7) in a data block of the flash memory 340 (S40). - In one possible embodiment of the inventive concept, it is assumed that a total of 32 KB of payload data is transferred during a single multi-segment transfer operation wherein each one of eight (8) payload data segments (Payload_0 to Payload_7) is 4 KB in size. However, the inventive concept is not limited thereto. Indeed, data segments having a size of 8 KB, 12 KB, etc., may be used.
- Following the multi-segment transfer operation, which may follow transfer of corresponding file data information (Data-info), the
FTL 335 updates metadata associated all data segments in the multi-segment transfer operation (S50). For example, the metadata update may be a one-time event (i.e., including only one metadata update instruction) for all of the meta block associated with all of the data segments being programmed to theflash memory 340 during a particular program operation. Alternately, where a write request indicates “N” payload data segments (e.g., file data segments D0 through D7) for a single program operation directed to theflash memory 340, only “M” metadata update instructions are included in the resulting program operation, where M is less than N. - This approach dramatically reduces the number and frequency of metadata updates. thereby improving the execution efficiency of related software and firmware controlling a program operation in a flash memory system. Using the foregoing approach, eight (8) separate metadata updates, each being indicated (e.g.) by a separate metadata update instruction, have been replace by a single metadata update (or less than 8) in the examples described above.
- The above-disclosed subject matter is to be considered illustrative, and not restrictive, and the appended claims are intended to cover all such modifications, enhancements, and other embodiments, which fall within the true spirit and scope. Thus, to the maximum extent allowed by law, the scope is to be determined by the broadest permissible interpretation of the following claims and their equivalents, and shall not be restricted or limited by the foregoing detailed description.
Claims (16)
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2010-0124977 | 2010-12-08 | ||
KR1020100124977A KR101301840B1 (en) | 2010-12-08 | 2010-12-08 | Method of data processing for non-volatile memory |
Publications (2)
Publication Number | Publication Date |
---|---|
US20120151125A1 true US20120151125A1 (en) | 2012-06-14 |
US8650379B2 US8650379B2 (en) | 2014-02-11 |
Family
ID=46200576
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/313,825 Active 2032-08-06 US8650379B2 (en) | 2010-12-08 | 2011-12-07 | Data processing method for nonvolatile memory system |
Country Status (2)
Country | Link |
---|---|
US (1) | US8650379B2 (en) |
KR (1) | KR101301840B1 (en) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150032986A1 (en) * | 2013-07-29 | 2015-01-29 | Ralph Moore | Memory block management systems and methods |
US20150106573A1 (en) * | 2013-10-10 | 2015-04-16 | SK Hynix Inc. | Data processing system |
CN104731725A (en) * | 2013-12-24 | 2015-06-24 | 爱思开海力士有限公司 | Data storage device and data processing system including the same |
WO2015112126A1 (en) * | 2014-01-22 | 2015-07-30 | Hewlett Packard Development Company, L.P. | Byte-addressable non-volatile read-write main memory partitioned into regions including metadata region |
WO2016122520A1 (en) * | 2015-01-29 | 2016-08-04 | Hewlett-Packard Development Company, L.P. | Resuming a system-on-a-chip device |
WO2017172662A1 (en) * | 2016-03-31 | 2017-10-05 | Microsoft Technology Licensing, Llc | High performance mobile device flashing |
US10235183B2 (en) | 2015-01-29 | 2019-03-19 | Hewlett-Packard Development Company, L.P. | Booting a system-on-a-chip device |
CN110780810A (en) * | 2018-07-31 | 2020-02-11 | 爱思开海力士有限公司 | Apparatus and method for interfacing a plurality of memory systems with each other to store data |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20160143259A (en) | 2015-06-05 | 2016-12-14 | 에스케이하이닉스 주식회사 | Memory system and operation method for the same |
KR20170075855A (en) | 2015-12-23 | 2017-07-04 | 에스케이하이닉스 주식회사 | Memory system and operating method of memory system |
KR102565895B1 (en) | 2017-11-13 | 2023-08-11 | 에스케이하이닉스 주식회사 | Memory system and operating method thereof |
US11289137B2 (en) | 2017-11-16 | 2022-03-29 | Micron Technology, Inc. | Multi-port storage-class memory interface |
KR20190083051A (en) | 2018-01-03 | 2019-07-11 | 에스케이하이닉스 주식회사 | Controller and operation method thereof |
KR20190106005A (en) | 2018-03-07 | 2019-09-18 | 에스케이하이닉스 주식회사 | Memory system, operating method thereof and electronic apparatus |
KR20190113443A (en) | 2018-03-28 | 2019-10-08 | 에스케이하이닉스 주식회사 | Memory system and operating method of memory system |
KR20220130526A (en) | 2021-03-18 | 2022-09-27 | 에스케이하이닉스 주식회사 | Memory system and operating method thereof |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110035537A1 (en) * | 2009-08-04 | 2011-02-10 | Samsung Electronics Co., Ltd. | Multiprocessor system having multi-command set operation and priority command operation |
US20110035575A1 (en) * | 2009-08-04 | 2011-02-10 | Samsung Electronics Co., Ltd. | Multiprocessor system comprising multi-port semiconductor memory device |
US20110047320A1 (en) * | 2009-08-20 | 2011-02-24 | Samsung Electronics Co., Ltd. | System and method for performing program operation on nonvolatile memory device |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101404083B1 (en) * | 2007-11-06 | 2014-06-09 | 삼성전자주식회사 | Solid state disk and operating method thereof |
KR100672996B1 (en) | 2005-02-07 | 2007-01-24 | 삼성전자주식회사 | Memory apparatus with meta data stored fram |
KR100977709B1 (en) * | 2008-08-20 | 2010-08-24 | 주식회사 셀픽 | A flash memory storage device and a manage method using the same |
KR101543431B1 (en) | 2008-11-20 | 2015-08-11 | 삼성전자주식회사 | Non-volatile memroy system and access method thereof |
KR101571693B1 (en) * | 2009-04-15 | 2015-11-26 | 삼성전자주식회사 | Non-volatile semiconductor memory controller for processing one request first before completing another request Memory system having the same and Method there-of |
-
2010
- 2010-12-08 KR KR1020100124977A patent/KR101301840B1/en not_active IP Right Cessation
-
2011
- 2011-12-07 US US13/313,825 patent/US8650379B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110035537A1 (en) * | 2009-08-04 | 2011-02-10 | Samsung Electronics Co., Ltd. | Multiprocessor system having multi-command set operation and priority command operation |
US20110035575A1 (en) * | 2009-08-04 | 2011-02-10 | Samsung Electronics Co., Ltd. | Multiprocessor system comprising multi-port semiconductor memory device |
US20110047320A1 (en) * | 2009-08-20 | 2011-02-24 | Samsung Electronics Co., Ltd. | System and method for performing program operation on nonvolatile memory device |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150032986A1 (en) * | 2013-07-29 | 2015-01-29 | Ralph Moore | Memory block management systems and methods |
US9424027B2 (en) * | 2013-07-29 | 2016-08-23 | Ralph Moore | Message management system for information transfer within a multitasking system |
US20150106573A1 (en) * | 2013-10-10 | 2015-04-16 | SK Hynix Inc. | Data processing system |
US20150178009A1 (en) * | 2013-12-24 | 2015-06-25 | SK Hynix Inc. | Data storage device and data processing system including the same |
CN104731725A (en) * | 2013-12-24 | 2015-06-24 | 爱思开海力士有限公司 | Data storage device and data processing system including the same |
US9501130B2 (en) * | 2013-12-24 | 2016-11-22 | SK Hynix Inc. | Data storage device and data processing system including the same |
WO2015112126A1 (en) * | 2014-01-22 | 2015-07-30 | Hewlett Packard Development Company, L.P. | Byte-addressable non-volatile read-write main memory partitioned into regions including metadata region |
TWI584305B (en) * | 2014-01-22 | 2017-05-21 | 惠普發展公司有限責任合夥企業 | Byte-addressable non-volatile read-write main memory partitioned into regions including metadata region |
US10331457B2 (en) | 2014-01-22 | 2019-06-25 | Hewlett-Packard Development Company, L.P. | Byte-addressable non-volatile read-write main memory partitioned into regions including metadata region |
WO2016122520A1 (en) * | 2015-01-29 | 2016-08-04 | Hewlett-Packard Development Company, L.P. | Resuming a system-on-a-chip device |
CN107003864A (en) * | 2015-01-29 | 2017-08-01 | 惠普发展公司,有限责任合伙企业 | Recover system-on-chip apparatus |
US10228745B2 (en) | 2015-01-29 | 2019-03-12 | Hewlett-Packard Development Company, L.P. | Resuming a system-on-a-chip device |
US10235183B2 (en) | 2015-01-29 | 2019-03-19 | Hewlett-Packard Development Company, L.P. | Booting a system-on-a-chip device |
WO2017172662A1 (en) * | 2016-03-31 | 2017-10-05 | Microsoft Technology Licensing, Llc | High performance mobile device flashing |
CN110780810A (en) * | 2018-07-31 | 2020-02-11 | 爱思开海力士有限公司 | Apparatus and method for interfacing a plurality of memory systems with each other to store data |
Also Published As
Publication number | Publication date |
---|---|
KR101301840B1 (en) | 2013-08-29 |
US8650379B2 (en) | 2014-02-11 |
KR20120063829A (en) | 2012-06-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8650379B2 (en) | Data processing method for nonvolatile memory system | |
US11055230B2 (en) | Logical to physical mapping | |
US9804801B2 (en) | Hybrid memory device for storing write data based on attribution of data stored therein | |
US9128618B2 (en) | Non-volatile memory controller processing new request before completing current operation, system including same, and method | |
US8566505B2 (en) | Flash management using sequential techniques | |
KR102137761B1 (en) | Heterogeneous unified memory section and method for manaing extended unified memory space thereof | |
US9489388B2 (en) | Computing system, host system and method for managing data | |
EP2665065A2 (en) | Electronic device employing flash memory | |
KR102585883B1 (en) | Operating method of memory system and memory system | |
US9355027B2 (en) | Zone-based defragmentation methods and user devices using the same | |
US11010079B2 (en) | Concept for storing file system metadata within solid-stage storage devices | |
US20140095555A1 (en) | File management device and method for storage system | |
KR102443600B1 (en) | hybrid memory system | |
US20100146193A1 (en) | System and method for cache synchronization | |
US20160274819A1 (en) | Memory system including host and a plurality of storage devices and data migration method thereof | |
US8332575B2 (en) | Data management systems, methods and computer program products using a phase-change random access memory for selective data maintenance | |
US10108342B2 (en) | Method for reducing use of DRAM in SSD and the SSD using the same | |
JP2015026379A (en) | Controller management of memory array of storage device using magnetic random access memory (mram) | |
US20110320689A1 (en) | Data Storage Devices and Data Management Methods for Processing Mapping Tables | |
KR20200121372A (en) | Hybrid memory system | |
US11269771B2 (en) | Storage device for improving journal replay, operating method thereof, and electronic device including the storage device | |
US20130173855A1 (en) | Method of operating storage device including volatile memory and nonvolatile memory | |
KR20200117032A (en) | Hybrid memory system | |
US11556276B2 (en) | Memory system and operating method thereof | |
US20150254011A1 (en) | Memory system, memory controller and control method of non-volatile memory |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: SAMSUNG ELECTRONICS CO., LTD., KOREA, REPUBLIC OF Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:YANG, JUNG WOONG;REEL/FRAME:027349/0914 Effective date: 20111205 |
|
AS | Assignment |
Owner name: SAMSUNG ELECTRONICS CO., LTD., KOREA, REPUBLIC OF Free format text: CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE INFORMATION PREVIOUSLY RECORDED ON REEL 027349 FRAME 0914. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNEES SHOULD BE SAMSUNG ELECTRONICS CO., LTD. AND DAWIN TECHNOLOGY INC.;ASSIGNOR:YANG, JUNG WOONG;REEL/FRAME:027464/0807 Effective date: 20111229 Owner name: DAWIN TECHNOLOGY INC., KOREA, REPUBLIC OF Free format text: CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE INFORMATION PREVIOUSLY RECORDED ON REEL 027349 FRAME 0914. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNEES SHOULD BE SAMSUNG ELECTRONICS CO., LTD. AND DAWIN TECHNOLOGY INC.;ASSIGNOR:YANG, JUNG WOONG;REEL/FRAME:027464/0807 Effective date: 20111229 |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
FPAY | Fee payment |
Year of fee payment: 4 |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 8 |