US20120151125A1 - Data processing method for nonvolatile memory system - Google Patents

Data processing method for nonvolatile memory system Download PDF

Info

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
Application number
US13/313,825
Other versions
US8650379B2 (en
Inventor
Jung Woong Yang
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Assigned to SAMSUNG ELECTRONICS CO., LTD. reassignment SAMSUNG ELECTRONICS CO., LTD. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: YANG, JUNG WOONG
Assigned to SAMSUNG ELECTRONICS CO., LTD., DAWIN TECHNOLOGY INC. reassignment SAMSUNG ELECTRONICS CO., LTD. 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.. Assignors: YANG, JUNG WOONG
Publication of US20120151125A1 publication Critical patent/US20120151125A1/en
Application granted granted Critical
Publication of US8650379B2 publication Critical patent/US8650379B2/en
Active legal-status Critical Current
Adjusted expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7207Details 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

A data processing method for a nonvolatile memory system is described. In the method, a host CPU calls N data file segments, generates logical addresses, and then transfers the N data file segments and logical addresses to an ASIC. The ASIC then maps the logical addresses onto physical addresses of a nonvolatile memory, derives N payload data segments, and collectively generates corresponding metadata for all of the N payload data segments. Then, a single multi-segment transfer operation is performed to sequentially write the N payload data segments to a data block in the nonvolatile memory, and thereafter, write the corresponding metadata to a metadata block associated with the data block.

Description

    CROSS-REFERENCE TO RELATED APPLICATIONS
  • 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.
  • BACKGROUND OF THE INVENTION
  • 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, 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. In the example of FIG. 1, 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. 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 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. As is conventionally understood, 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. As is also conventionally understood, 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.
  • Thus, in response to various commands issued by the host CPU 110, 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. Referring to FIGS. 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 the flash 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, the file system 115 generates logical addresses for each input data segments D0 to D7 in response to a write request provided by the host CPU 110. Upon receiving the input data segments, the FTL maps the corresponding logical addresses generated by the file system 115 onto physical addresses for the flash 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 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.
  • 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.
  • SUMMARY OF THE INVENTION
  • 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.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • 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 of FIGS. 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.
  • DETAILED DESCRIPTION
  • 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, 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. 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.
  • As has been noted above, 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.
  • 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 in FIG. 3, 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.
  • 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 of FIG. 3. For example, when receiving a program command from the host CPU 310, 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.
  • As before, 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. For example, assuming a Windows® operating system, 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. 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, 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, among other benefits, 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.
  • 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 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.
  • 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, 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).
  • 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 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 of FIG. 3.
  • Referring collectively to FIGS. 3, 4A, 4B, 4C, and 5, the host 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 the host CPU 310 or a user input. The file data D0 through D7 is assumed to be previously stored in the shared area 325 of the oneDRAM® 320 (S10).
  • In response to the resulting write request by the host CPU 310, 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) (S20).
  • The FTL 335 then maps the logical addresses generated by the file 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 the flash 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 the flash 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)

1. A data processing method for a nonvolatile memory system including a host central processing unit (CPU) and 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 N payload data segments logical addresses for the N payload data segments based on data file segments;
transferring the N payload data segments and the logical addresses to the ASIC;
using the ASIC, mapping the logical addresses onto physical addresses of the nonvolatile memory;
using the ASIC 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.
2. The method of claim 1, wherein a file system running on the host CPU performs the calling of the N data file segments and the generation of N payload data segment and the logical addresses.
3. The method of claim 2, further comprising:
using the file system to analyze the N data file segments and derive file data information for the N data file segments; and
transferring the file data information to the ASIC with the N payload data segments and the logical addresses.
4. The method of claim 3, wherein the single multi-segment transfer operation further comprises; writing the file data information to the data block.
5. The method of claim 4, wherein during the single multi-segment transfer operation the file data information is written to the data block before the N payload data segments are written to the data block.
6. The method of claim 5, wherein during the single multi-segment transfer the N payload data segments are written to the data block before the corresponding metadata is written to the metadata block.
7. The method of claim 1, wherein each of the N payload data segments is 4 KB in size.
8. The method of claim 1, wherein the metadata includes file location information on N payload data segments, as stored in the nonvolatile memory.
9. The method of claim 2, wherein the file system uses at least one of a File Allocation Table (FAT), a New Technology File System (NTFS), a Unix File System (UFS), an Extended 2 (EXT2), an Extended 3 (EXT3), and a Journaling File System (JFS).
10. The method of claim 1, wherein the nonvolatile memory is a flash memory, and the ASIC runs a flash translation layer (FTL) that performs the mapping of the logical addresses onto the physical addresses.
11. The method of claim 1, wherein the single multi-segment transfer operation consists of a single metadata update instruction that causes the corresponding metadata to be written to the metadata block.
12. The method of claim 1, further comprising:
storing the N file data segments in the multiple access memory in a shared area, such that calling the N data file segments transfers the N data file segments from the shared memory area of the multiple access memory to the file system.
13. The method of claim 1, wherein the multiple access memory includes a CPU access area configured to be accessed only by the host CPU, an ASIC access area configured to be accessed only by the ASIC, and the shared area configured to be accessed by either the host CPU or the ASIC at any given time.
14. The method of claim 1, wherein the corresponding metadata is written to the metadata block immediately after the N payload data segments are sequentially written to the data block.
15. A data processing method for a memory link architecture (MLA) including a multiple access memory, an Application Specific Integrated Circuit (ASIC), and a nonvolatile memory, wherein the MLA is connected to a host central processing unit (CPU), comprising:
by using a file system of the host CPU, generating file data information, N payload data segments and logical addresses for the N payload data segments based on N data file segments stored in the multiple access memory, in response to a write command from the host CPU;
transferring the file data information, the N payload data segments and the logical addresses to the ASIC;
by using the ASIC, mapping the logical addresses onto physical addresses of the nonvolatile memory;
by using the ASIC, collectively generating corresponding metadata for all of the N payload data segments; and then,
performing a single multi-segment transfer operation that includes;
writing the file data information to a data block in the nonvolatile memory;
sequentially writing the N payload data segments to the data block, and thereafter,
writing the corresponding metadata to a metadata block associated with the data block.
16. The method of claim 15, wherein the N file data segments stored in the multiple access memory in a shared area, such that the N data file segments are transferred from the shared memory area of the multiple access memory to the file system.
US13/313,825 2010-12-08 2011-12-07 Data processing method for nonvolatile memory system Active 2032-08-06 US8650379B2 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (3)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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