US9858182B2 - Storage device and garbage collection method of data storage system having the storage device - Google Patents

Storage device and garbage collection method of data storage system having the storage device Download PDF

Info

Publication number
US9858182B2
US9858182B2 US14/735,834 US201514735834A US9858182B2 US 9858182 B2 US9858182 B2 US 9858182B2 US 201514735834 A US201514735834 A US 201514735834A US 9858182 B2 US9858182 B2 US 9858182B2
Authority
US
United States
Prior art keywords
garbage collection
multicast
storage device
commands
storage
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.)
Active, expires
Application number
US14/735,834
Other versions
US20160077964A1 (en
Inventor
Wooseok CHANG
Kangho Roh
JongWon Lee
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: CHANG, WOOSEOK, LEE, JONGWON, ROH, KANGHO
Publication of US20160077964A1 publication Critical patent/US20160077964A1/en
Application granted granted Critical
Publication of US9858182B2 publication Critical patent/US9858182B2/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/0253Garbage collection, i.e. reclamation of unreferenced memory
    • 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
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • 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/7205Cleaning, compaction, garbage collection, erase control
    • Y02B60/1228
    • Y02B60/1235
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Definitions

  • the present disclosure relates to a storage device, and a garbage collection method of a data storage system having the storage device.
  • a semiconductor memory device may be classified into a volatile memory device such as a dynamic random access memory (DRAM), a static random access memory (SRAM), and the like, and a nonvolatile memory device such as an electrically erasable programmable read only memory (EEPROM), a ferroelectric random access memory (FRAM), a phase-change random access memory (PRAM), a magnetoresistive random access memory (MRAM), a flash memory, and the like.
  • the volatile memory device loses stored data when power is interrupted while the nonvolatile memory device can retain stored data even when power is interrupted.
  • a flash memory has the advantages of high programming speed, low power consumption, high storage capacity. Thus, a data storage device based upon the flash memory is widely used. Examples of the data storage device based upon the flash memory include a solid state drive (SSD) replacing a conventional hard disk and a memory card such as a Secure Digital (SD) card, a MultiMediaCard (MMC), and the like.
  • SSD solid state drive
  • SD Secure Digital
  • Exemplary embodiments of the inventive concepts of the present disclosure provide a garbage collection method of a data storage system having storage devices.
  • the garbage collection method may include determining whether a garbage collection is needed in one of the storage devices, transferring a multicast garbage collection command from one of the storage devices to at least one other storage device in a write group through a multicast operation, and performing the garbage collection in one of the storage devices.
  • a storage device may include a plurality of nonvolatile memory devices, and a memory controller issuing a first multicast garbage collection command when a garbage collection is needed, transferring the first multicast garbage collection command to other storage devices in a write group through a multicast operation or receiving a second multicast garbage collection command from at least one of the other storage devices through a multicast operation, and performing a garbage collection in response to the first multicast garbage collection command or the second multicast garbage collection command.
  • a data storage system may include a central processing unit (CPU), a root complex which is connected to the central processing unit and replaces a transaction of the central processing unit, a system memory storing data occurring during an operation of the central processing unit or the root complex, endpoint devices transmitting/receiving data through a peripheral component interconnect express (PCIe) interface, and an interface switch having an upstream port connected to the root complex, downstream ports connected to each of the endpoint devices and a virtual channel supporting a multicast operation.
  • PCIe peripheral component interconnect express
  • FIG. 1 is a drawing depicting inventive concepts of the present disclosure.
  • FIG. 2 is a block diagram illustrating an interface switch shown in FIG. 1 .
  • FIG. 3 is a drawing depicting a multicast operation of the virtual channel illustrated in FIG. 2 .
  • FIG. 4 is a drawing depicting a global garbage collection of a data storage system according to an exemplary embodiment of the inventive concepts of the present disclosure.
  • FIG. 5 is a block diagram illustrating a storage device according to an exemplary embodiment of the inventive concepts of the present disclosure.
  • FIG. 6 is a table illustrating a priority of a global garbage collection according to an exemplary embodiment of the inventive concepts of the present disclosure.
  • FIG. 7 is a flowchart illustrating a garbage collection method of a storage device according to an exemplary embodiment of the inventive concepts of the present disclosure.
  • FIG. 8 is a flowchart illustrating a garbage collection method of a storage device according to an exemplary embodiment of the inventive concepts of the present disclosure.
  • FIG. 9 is a flowchart illustrating a global garbage collection method of a data storage system according to an exemplary embodiment of the inventive concepts of the present disclosure.
  • FIG. 10 is a drawing illustrating a host system according to an exemplary embodiment of the inventive concepts of the present disclosure.
  • FIG. 11 is a drawing illustrating a host system according to an exemplary embodiment of the inventive concepts of the present disclosure.
  • FIG. 12 is a drawing illustrating a host system according to an exemplary embodiment of the inventive concepts of the present disclosure.
  • FIG. 13 is a drawing illustrating a host system according to an exemplary embodiment of the inventive concepts of the present disclosure.
  • FIG. 14 is a drawing illustrating a global garbage collection method according to an exemplary embodiment of the inventive concepts of the present disclosure.
  • inventive concepts of the present disclosure will be described more fully hereinafter based upon the accompanying drawings, in which the exemplary embodiments of the inventive concepts of the present disclosure are shown.
  • inventive concepts of the present disclosure may, however, be configured in many different forms and should not be construed as limited to the embodiments set forth herein. Rather, these embodiments are provided so that the present disclosure will be thorough and complete, and will fully convey the scope of the inventive concepts to those skilled in the art.
  • the size and relative sizes of layers and regions may be exaggerated for clarity.
  • Like numbers refer to like elements throughout.
  • first, second, third, and the like 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 present disclosure.
  • spatially relative terms such as “beneath,” “below,” “lower,” “above,” “upper” and the like, may be used herein for ease of description to describe one element's or feature's relationship to another element(s) or feature(s) as illustrated in the drawings. It will be understood that the spatially relative terms are intended to encompass different orientations of the device in use or operation in addition to the orientation depicted in the figures. For example, if the device in the drawings is turned over, elements described as “below” or “beneath” other elements or features would then be oriented “above” the other elements or features. Thus, the term “below” can encompass both an orientation of above and below. The device may be otherwise oriented (rotated 90 degrees or at other orientations) and the spatially relative descriptors used herein interpreted accordingly.
  • FIG. 1 is a drawing depicting inventive concepts of the present disclosure.
  • a data storage system 10 may include at least one central processing unit 100 , a root complex 200 , a system memory 300 , an interface switch 400 and a plurality of endpoint devices 510 , 520 .
  • the central processing unit 100 may control the overall operation of the data storage system 10 .
  • the root complex 200 may be connected to the central processing unit 100 through an internal bus.
  • the root complex 200 can manage a transaction between the central processing unit 100 and the end point devices 510 , 520 .
  • the root complex 200 can rout messages related to the transaction.
  • the root complex 200 may be directly connected to the end point devices 510 , 520 or may be connected to the end point devices 510 , 520 through at least one interface switch 400 .
  • the root complex 200 may be configured as a device separated from the central processing unit 100 or may be configured to be integrated in the central processing unit 100 .
  • the system memory 300 can store data needed to drive the central processing unit 100 and the root complex 200 .
  • the system memory 300 may be connected to the root complex 200 or the central processing unit 100 .
  • the system memory 300 may be a DRAM or a PRAM.
  • the interface switch 400 may connect the root complex 200 to the end point devices 510 , 520 .
  • the interface switch 400 may be configured to support a multicast operation of the root complex 200 or a multicast operation between the end point devices 510 , 520 , the multicast operation meaning the transmission of one transmission packet to several places.
  • the interface switch 400 may include an upstream port UP and downstream ports DP 1 , DP 2 that are connected to the end point devices 510 , 520 , respectively.
  • Each of the end point devices 510 , 520 may store data. Each of the end point devices 510 , 520 may be configured to support the multicast operation. Each of the end point devices 510 , 520 may be a storage device configured as a nonvolatile memory device. For example, each of the end point devices 510 , 520 may be an SSD, a universal flash storage (UFS), and the like.
  • UFS universal flash storage
  • the end point devices 510 , 520 can share a message related to a garbage collection, that is, a multicast garbage collection command MC_GC_CMD by the multicast operation.
  • the first end point device 510 may issue the multicast garbage collection command MC_GC_CMD including garbage collection information, and may transmit the issued multicast garbage collection command MC_GC_CMD to the interface switch 400 .
  • Whether the garbage collection is urgent or not may be determined depending upon the number of free blocks. For example, if the number of free blocks is smaller than a predetermined value, the garbage collection may be considered to be urgent.
  • the interface switch 400 may transmit the transmitted multicast garbage collection command MC_GC_CMD to the second end point device 520 in the same group, for example, a redundant array of independent disks (RAID) as the first end point device 510 .
  • RAID redundant array of independent disks
  • the first end point device 510 can perform the garbage collection.
  • the second end point device 520 may receive the multicast garbage collection command MC_GC_CMD from the interface switch 400 and can perform a garbage collection needed in the second end point device 520 .
  • the garbage collection performed on the second end point device 520 may not be urgent. Consequently, the first and second end point devices 510 , 520 can perform the garbage collection at the same time. This is called a global garbage collection.
  • the data storage system 10 can synchronize the global garbage collection on the basis of the multicast garbage collection command MC_GC_CMD transmitted by the multicast operation.
  • the data storage system 10 can more effectively manage the garbage collection as compared with a conventional methodology by having the end point devices 510 , 520 that input and output the multicast garbage collection command MC_GC_CMD.
  • the interface switch 400 and the end point devices 510 , 520 can have a peripheral component interconnect express (PCIe) and the end point devices 510 , 520 are SSDs.
  • PCIe peripheral component interconnect express
  • FIG. 2 is a block diagram illustrating the interface switch shown in FIG. 1 .
  • the interface switch 400 may include at least one virtual channel 401 and downstream ports DP 1 , DP 2 , . . . DP 4 .
  • the interface switch 400 may be configured according to a PCIe interface regulation.
  • the interface switch 400 may operate according to a traffic class (TC) and a virtual channel (VC) 401 by the PCIe interface regulation.
  • the TC may include a tag according to importance of traffic.
  • the virtual channel 401 may set virtual routing information and may transmit the traffic to a target channel.
  • the virtual channel 401 may be divided into a plurality of queues according to the TC or may bypass the queue.
  • Each of storage devices 510 , 520 , 530 , 540 may be connected to the virtual channel 401 through the downstream ports DP 1 , DP 2 , . . . DP 4 .
  • Each of the storage devices 510 , 520 , 530 , 540 may be configured to communicate according to the PCIe interface regulation.
  • a multicast garbage collection command MC_GC_CMD generated in the first storage device 510 may be transmitted to the second through fourth SSDs 520 , 530 , 540 via the virtual channel 401 .
  • FIG. 3 is a drawing depicting a multicast operation of a virtual channel illustrated in FIG. 2 .
  • the multicast operation of the virtual channel 401 is performed as follows.
  • a multicast lookup table (LUT) according to a group ID may be set in advance. If a multicast garbage collection command MC_GC_CMD is input from any one storage device, the virtual channel 401 may search corresponding ports DP 2 , DP 3 based upon the multicast lookup table LUT, copy the multicast garbage collection command MC_GC_CMD, and transmit the copied multicast garbage collection command MC_GC_CMD to the corresponding ports DP 2 , DP 3 .
  • the multicast garbage collection command MC_GC_CMD may include a header and a payload.
  • the header may include a group ID
  • the payload may include garbage collection time information.
  • FIG. 4 is a drawing depicting a global garbage collection of a data storage system according to an exemplary embodiment of the inventive concepts of the present disclosure.
  • one RAID has four storage devices SSD 1 , SSD 2 , SSD 3 , SSD 4 , the RAID being considered a virtual disk having a function.
  • a global garbage collection may be performed in garbage collection periods GCT 1 , GCT 2 according to a multicast garbage collection command MC_GC_CMD.
  • a length (i.e., time) of the garbage collection periods GCT 1 , GCT 2 may be changed depending on garbage collection time information included in the multicast garbage collection command MC_GC_CMD.
  • a garbage collection that is not completed in the first garbage collection period GCT 1 may be performed in the second garbage collection period GCT 2 .
  • the garbage collection is needed, if it is not urgent, the garbage collection may be performed in the second garbage collection period GCT 2 after the multicast garbage collection command MC_GC_CMD is input.
  • the fourth storage device SSD 4 a part of the garbage collection may be performed in the first garbage collection period GCT 1 after the multicast garbage collection command MC_GC_CMD is input.
  • a general data storage system is aligned at a storage device having the lowest performance. That is, performance of any one storage device having slow response time determines performance of a whole virtual driver.
  • the performance of the virtual driver may not be aligned at the performance of any one storage device by performing the garbage collection on the storage devices SSD 1 , SSD 2 , SSD 3 , SSD 4 at the same time according to the multicast garbage collection command MC_GC_CMD.
  • the data storage system 10 can prevent the performance of the virtual driver constituted by RAID from being degraded by managing the storage devices SSD 1 , SSD 2 , SSD 3 , SSD 4 so that the garbage collection can be performed in the global garbage collection period in response to the multicast garbage collection command MC_GC_CMD.
  • FIG. 5 is a block diagram illustrating a storage device according to an exemplary embodiment of the inventive concepts of the present disclosure.
  • a storage device 1000 may include a plurality of nonvolatile memory devices 1100 and a memory controller 1200 controlling the nonvolatile memory devices.
  • the storage device 1000 may be various types of storage devices such as an SSD, an embedded multimedia card (eMMC), an SD card, a universal serial bus (USB) device, and the like.
  • the storage device 1000 can support a multicast operation.
  • Each nonvolatile memory device 1100 may include a plurality of memory blocks having memory cells storing at least one bit.
  • Each nonvolatile memory device 1100 may be a NAND flash memory, a vertical NAND flash memory (VNAND), a NOR flash memory, a resistive random access memory (RRAM), a PRAM, an MRAM, an FRAM, a spin transfer torque random access memory (STT-RAM), and the like.
  • Each nonvolatile memory device 1100 may be configured as a three-dimensional array structure.
  • a three dimensional (3D) memory array is provided.
  • the 3D memory array is monolithically formed in one or more physical levels of arrays of memory cells having an active area disposed above a silicon substrate and circuitry associated with the operation of those memory cells, whether such associated circuitry is above or within such substrate, term “monolithic” meaning that layers of each level of the array are directly deposited on the layers of each underlying level of the array.
  • the 3D memory array includes vertical NAND strings that are vertically oriented such that at least one memory cell is located over another memory cell.
  • the at least one memory cell may comprise a charge trap layer.
  • Each vertical NAND string may include at least one select transistor located over memory cells, the at least one select transistor having a similar structure as the memory cells and being formed monolithically together with the memory cells.
  • the inventive concepts of the present disclosure can be applied to not only a flash memory device of which a charge storage layer has a conductive floating gate but also a charge trap flash (CTF) of which a charge storage layer can be an insulating layer.
  • the nonvolatile memory devices 1100 may be configured to optionally receive an external high voltage Vpp.
  • the memory controller 1200 may be connected to the nonvolatile memory devices 1100 through a plurality of channels CH 1 , CH 2 , . . . CHi (i being an integer of 2 or more).
  • the memory controller 1200 may include at least processor 1210 , a buffer memory 1220 , an error correction circuit (ECC) 1230 , a garbage collection management unit 1240 , a storage interface (SIF) 1250 , and a nonvolatile memory interface (NVM IF) 1260 .
  • ECC error correction circuit
  • SIF storage interface
  • NVM IF nonvolatile memory interface
  • the processor 1210 can control the overall operation of the storage device 1000 .
  • the buffer memory 1220 may temporarily store data needed to drive the memory controller 1200 .
  • the buffer memory 1220 can temporarily store input/output data when an input/output request of a host occurs.
  • the buffer memory 1220 in a write operation, may temporarily store data input from external devices in order to program the data in the nonvolatile memory devices 1100 .
  • the buffer memory 1220 in a read operation, may temporarily store data read from the nonvolatile memory devices 1100 to output the data to the external devices.
  • the buffer memory 1220 may include a plurality of memory lines storing data or a command.
  • the memory lines may be mapped into cache lines that are directly accessed from the processor 1210 in a variety of ways.
  • the cache lines may exist inside the processor 1210 or may separately exist outside the processor 1210 .
  • the error correction circuit 1230 may be configured to detect and correct an error of input/output data. For example, the error correction circuit 1230 can calculate an error correction code value of data that is to be programmed in a write operation, correct an error of data read in a read operation on the basis of the error correction code value, and correct an error of data read from the nonvolatile memory device 1100 in a data restoration operation.
  • the storage device 1000 may further include a code memory storing code data needed to drive the memory controller 1200 .
  • the code memory may be configured as a nonvolatile memory device (for example, PRAM, MRAM, and the like).
  • the garbage collection management unit 1240 can internally perform a garbage collection, issue a multicast garbage collection command MC_GC_CMD for performing a global garbage collection if necessary, or perform a global garbage collection in response to the multicast garbage collection command MC_GC_CMD input from the external devices through the storage interface 1250 .
  • the multicast garbage collection command MC_GC_CMD may include garbage collection time information relevant to garbage collection performance time.
  • the garbage collection management unit 1240 may be configured in hardware, software and firmware.
  • the storage interface 1250 can provide an interface function with external devices.
  • the storage interface 1250 may be changed to a data structure that can receive a global garbage collection command generated in the garbage collection management unit 1240 from another storage device, or may be configured to receive the multicast garbage collection command MC_GC_CMD issued from an external storage device. That is, the multicast garbage collection command MC_GC_CMD that is input/output in the storage interface 1250 may follow an interface rule supporting the multicast operation.
  • the storage interface 1250 may be a PCIe interface, or a thundervolt interface.
  • the nonvolatile memory interface 1260 can provide an interface function with the nonvolatile memory device 1100 .
  • the storage device 1000 can issue and receive the multicast garbage collection command MC_GC_CMD relevant to the global garbage collection and, can perform the global garbage collection in response to the issued/received multicast garbage collection command MC_GC_CMD.
  • a priority with respect to the global garbage collection may be given according to the garbage collection time information included in the multicast garbage collection command MC_GC_CMD.
  • the garbage collection time may be determined by the number (or the number of blocks) of merge operations and/or program operations needed in the garbage collection.
  • FIG. 6 is a table illustrating a priority of a global garbage collection according to an exemplary embodiment of the inventive concepts of the present disclosure.
  • the priority is given according to garbage collection time included in a multicast garbage collection command MC_GC_CMD. For example, when the garbage collection time needed in a garbage collection is greater than first time GCT 1 , the priority is low. When the garbage collection time is greater than second time GCT 2 , the priority is in the middle. When the garbage collection time is greater than third time GCT 3 , the priority is high. When the garbage collection time is greater than fourth time GCT 4 , the priority is urgent.
  • the priority of the global garbage collection illustrated in FIG. 6 is only illustrative.
  • the global garbage collection of the present disclosure may be set by diversely subdividing the priority on the basis of at least one parameter relevant to time information needed in the garbage collection.
  • FIG. 7 is a flowchart illustrating an exemplary embodiment of a garbage collection method of a storage device according to an exemplary embodiment of the inventive concepts of the present disclosure.
  • a garbage collection of the storage device 1000 is performed as follows.
  • the garbage collection management unit 1240 of the storage device 1000 may determine whether the garbage collection is needed in the storage device 1000 (S 110 ). If the garbage collection is needed, garbage collection time GCT needed in the garbage collection can be calculated. If the garbage collection is needed, a multicast garbage collection command MC_GC_CMD relevant to the garbage collection may be issued and transferred to other storage devices existing in the same group (S 120 ).
  • the multicast garbage collection command MC_GC_CMD may include garbage collection time information. After that, the garbage collection management unit 1240 may perform the garbage collection with respect to the storage device 1000 .
  • the garbage collection method of the storage device 1000 may perform the garbage collection after transferring the multicast garbage collection command MC_GC_CMD.
  • FIG. 8 is a flowchart illustrating a garbage collection method of a storage device according to an exemplary embodiment of the inventive concepts of the present disclosure.
  • a garbage collection of the storage device 1000 is performed as follows.
  • At least one multicast garbage collection command MC_GC_CMD relevant to the garbage collection from at least one storage device in a write group may be input in the storage device 1000 (S 210 ).
  • the garbage collection management unit 1240 may determine whether the number of the multicast garbage collection commands MC_GC_CMD is greater than 1 (S 220 ). If two or more multicast garbage collection commands MC_GC_CMD are input, a priority of the multicast garbage collection commands MC_GC_CMD may be determined. For example, a relatively high priority may be given to the multicast garbage collection commands MC_GC_CMD having long garbage collection time.
  • the multicast garbage collection commands MC_GC_CMD may include garbage collection time information.
  • the garbage collection may be performed during the garbage collection time included in the priority multicast garbage collection command. If only one multicast garbage collection command is input, the garbage collection may be performed during the garbage collection time included in the inputted multicast garbage collection command (S 240 ).
  • the garbage collection method of the storage device 1000 can perform the garbage collection during the garbage collection time included in the inputted multicast garbage collection command MC_GC_CMD.
  • FIG. 9 is a flowchart illustrating a global garbage collection method of a data storage system according to an exemplary embodiment of the inventive concepts of the present disclosure.
  • a multicast global garbage collection command MC_GC_CMD may be issued in any one storage device (S 310 ).
  • the issued multicast global garbage collection command MC_GC_CMD may be transferred to other storage devices using a multicast operation (S 320 ).
  • the global garbage collection may be performed (S 330 ).
  • the global garbage collection method of the present disclosure can perform the global garbage collection during a predetermined time in response to the multicast global garbage collection command MC_GC_CMD.
  • each storage device constituting RAID may share its garbage collection time and its needed information through the multicast operation, and thereby overall response time and an overall output can be increased.
  • a message can be diversely processed in a variety of ways.
  • the data storage system of the present disclosure can perform a fast global collection synchronization by processing a message in a vendor specific interrupt service routine form.
  • a PCI multicast group may be performed after registering a multicast group that fits PCI switch capability on the basis of a predetermined write group.
  • FIG. 10 is a drawing illustrating a host system according to an exemplary embodiment of the inventive concepts of the present disclosure.
  • a host system 20 may include a host having at least one central processing unit 22 and a main memory 24 , and a data storage system having a plurality of storage devices SSDs and a storage controller 26 .
  • the central processing unit 22 and the storage controller 26 may be connected to each other through a host bus 21 .
  • the storage device SSD of FIG. 10 may be configured as the storage device 1000 illustrated in FIG. 5 .
  • the host system 20 autonomously performs a global garbage collection in the data storage system, the global garbage collection does not need to be considered in the host.
  • the host system 20 can lighten the burden due to the global garbage collection in the host as compared with a conventional host system. A use rate and power consumption of the central processing unit by the global garbage collection can be greatly reduced.
  • a limited number of storage devices can be connected to the storage controller 26 illustrated in FIG. 10 .
  • an expander may be added.
  • the inventive concepts of the present disclosure can be applied to the expanding controller.
  • FIG. 11 is a drawing illustrating a host system according to an exemplary embodiment of the inventive concepts of the present disclosure.
  • a host system 30 may include a host constituted by at least one central processing unit 32 and a main memory 34 , and a data storage system having a plurality of storage devices SSDs, a storage controller 36 and an expander 38 .
  • the storage device SSD of FIG. 11 may be configured as the storage device 1000 illustrated in FIG. 5 .
  • a middle medium for example, a storage controller, an expander
  • the global garbage collection of the present disclosure is not limited to the structure described above.
  • the inventive concepts of the present disclosure can be applied to a host system in which a host and a storage device are directly connected to each other.
  • FIG. 12 is a drawing illustrating a host system according to an exemplary embodiment of the inventive concepts of the present disclosure.
  • a host system 40 may include a host having at least one central processing unit 42 and a main memory 44 , and a plurality of storage devices NVMe.
  • the storage device NVMe of the present disclosure may be configured to issue or receive a multicast garbage collection command relevant to a global garbage collection using a point-to-point interface.
  • the storage devices NVMe can form two RAID groups RAID1, RAID2. Storage devices of each RAID group can issue and receive a global garbage collection message. After the global garbage collection is performed, a RAID may be rebuilt.
  • the host system of the present disclosure may be a structure used together with a hard disk drive (HDD).
  • HDD hard disk drive
  • FIG. 13 is a drawing illustrating a host system according to an exemplary embodiment of the inventive concepts of the present disclosure.
  • a host system 50 may include a host having at least one central processing unit 52 and a main memory 54 , RAIDs (RAID1, RAID2) having a plurality of storage devices NVMe, a storage controller 56 , and a RAID3 having a plurality of hard disks HDDs connected to the storage controller 56 .
  • RAIDs RAID1, RAID2
  • Each of the storage devices NVMe constituting the RAID1 and the RAID2 may be configured to issue and receive a multicast garbage collection command using a point-to-point interface.
  • inventive concepts of the present disclosure can embody a consistent low latency environment by completely removing a performance drop period by a garbage collection in a server environment.
  • the inventive concepts of the present disclosure can autonomously perform a global garbage collection without cooperation of a company using an SSD by performing the global garbage collection using only SSD internal resources.
  • the inventive concepts of the present disclosure can strengthen self-management performance in a server environment by establishing a network environment between SSDs included in the same RAID group using only SSD internal resources.
  • FIGS. 1 through 13 a global garbage collection with respect to a storage device supporting a multicast operation was described.
  • the present disclosure is not limited thereto.
  • any one storage device in a write group can receive a global garbage collection message from other storage devices and transfer the message to the remaining storage devices.
  • FIG. 14 is a drawing illustrating a global garbage collection method according to an exemplary embodiment of the inventive concepts of the present disclosure.
  • a first storage device SSD 1 may receive a global garbage message GC_MSG from a third storage device SSD 3 and may transfer the received global garbage message GC_MSG to second, third and fourth storage devices SSD 2 , SSD 3 , SSD 4 .
  • the second, third and fourth storage devices SSD 2 , SSD 3 , SSD 4 may start a garbage collection in response to the received global garbage message GC_MSG.
  • the memory system or the storage device can be mounted using various types of packages such as package on package (PoP), ball grid array (BGA), chip scale package (CSP), plastic leaded chip carrier (PLCC), plastic dual in-line package (PDIP), die in waffle pack, die in wafer form, chip on board (COB), ceramic dual in-line package (CERDIP), plastic metric quad flat pack (MQFP), thin quad flat pack (TQFP), small outline (SOIC), shrink small outline package (SSOP), thin small outline (TSOP), thin quad flatpack (TQFP), system in package (SIP), multi chip package (MCP), wafer-level fabricated package (WFP) and wafer-level processed stack package (WSP).
  • PoP package on package
  • BGA ball grid array
  • CSP chip scale package
  • PLCC plastic leaded chip carrier
  • PDIP plastic dual in-line package
  • COB chip on board
  • CERDIP ceramic dual in-line package
  • MQFP plastic metric quad flat pack
  • TQFP thin quad flat
  • a storage device in accordance with an exemplary embodiment of the inventive concepts of the present disclosure and a data storage system having the storage device can effectively manage data and obtain the optimum performance by performing a global garbage collection using a multicast operation.

Abstract

A garbage collection method of a data storage system having storage devices is provided. The method includes determining whether a garbage collection is needed in one of the storage devices, transferring a multicast garbage collection command from one of the storage devices to at least one other storage device in a write group through a multicast operation, and performing the garbage collection in one of the storage devices.

Description

CROSS-REFERENCE TO RELATED APPLICATION
The present U.S. non-provisional patent application claims under 35 U.S.C. §119 priority to and the benefit of Korean Patent Application No. 10-2014-0120149, filed on Sep. 11, 2014, the entire contents of which are incorporated by reference herein.
BACKGROUND
The present disclosure relates to a storage device, and a garbage collection method of a data storage system having the storage device.
A semiconductor memory device may be classified into a volatile memory device such as a dynamic random access memory (DRAM), a static random access memory (SRAM), and the like, and a nonvolatile memory device such as an electrically erasable programmable read only memory (EEPROM), a ferroelectric random access memory (FRAM), a phase-change random access memory (PRAM), a magnetoresistive random access memory (MRAM), a flash memory, and the like. The volatile memory device loses stored data when power is interrupted while the nonvolatile memory device can retain stored data even when power is interrupted. A flash memory has the advantages of high programming speed, low power consumption, high storage capacity. Thus, a data storage device based upon the flash memory is widely used. Examples of the data storage device based upon the flash memory include a solid state drive (SSD) replacing a conventional hard disk and a memory card such as a Secure Digital (SD) card, a MultiMediaCard (MMC), and the like.
SUMMARY
Exemplary embodiments of the inventive concepts of the present disclosure provide a garbage collection method of a data storage system having storage devices. The garbage collection method may include determining whether a garbage collection is needed in one of the storage devices, transferring a multicast garbage collection command from one of the storage devices to at least one other storage device in a write group through a multicast operation, and performing the garbage collection in one of the storage devices.
Exemplary embodiments of the inventive concepts of the present disclosure also provide storage devices. A storage device may include a plurality of nonvolatile memory devices, and a memory controller issuing a first multicast garbage collection command when a garbage collection is needed, transferring the first multicast garbage collection command to other storage devices in a write group through a multicast operation or receiving a second multicast garbage collection command from at least one of the other storage devices through a multicast operation, and performing a garbage collection in response to the first multicast garbage collection command or the second multicast garbage collection command.
Exemplary embodiments of the inventive concepts of the present disclosure also provide data storage systems. A data storage system may include a central processing unit (CPU), a root complex which is connected to the central processing unit and replaces a transaction of the central processing unit, a system memory storing data occurring during an operation of the central processing unit or the root complex, endpoint devices transmitting/receiving data through a peripheral component interconnect express (PCIe) interface, and an interface switch having an upstream port connected to the root complex, downstream ports connected to each of the endpoint devices and a virtual channel supporting a multicast operation. Each of the endpoint devices performs a global garbage collection through the multicast operation.
BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 is a drawing depicting inventive concepts of the present disclosure.
FIG. 2 is a block diagram illustrating an interface switch shown in FIG. 1.
FIG. 3 is a drawing depicting a multicast operation of the virtual channel illustrated in FIG. 2.
FIG. 4 is a drawing depicting a global garbage collection of a data storage system according to an exemplary embodiment of the inventive concepts of the present disclosure.
FIG. 5 is a block diagram illustrating a storage device according to an exemplary embodiment of the inventive concepts of the present disclosure.
FIG. 6 is a table illustrating a priority of a global garbage collection according to an exemplary embodiment of the inventive concepts of the present disclosure.
FIG. 7 is a flowchart illustrating a garbage collection method of a storage device according to an exemplary embodiment of the inventive concepts of the present disclosure.
FIG. 8 is a flowchart illustrating a garbage collection method of a storage device according to an exemplary embodiment of the inventive concepts of the present disclosure.
FIG. 9 is a flowchart illustrating a global garbage collection method of a data storage system according to an exemplary embodiment of the inventive concepts of the present disclosure.
FIG. 10 is a drawing illustrating a host system according to an exemplary embodiment of the inventive concepts of the present disclosure.
FIG. 11 is a drawing illustrating a host system according to an exemplary embodiment of the inventive concepts of the present disclosure.
FIG. 12 is a drawing illustrating a host system according to an exemplary embodiment of the inventive concepts of the present disclosure.
FIG. 13 is a drawing illustrating a host system according to an exemplary embodiment of the inventive concepts of the present disclosure.
FIG. 14 is a drawing illustrating a global garbage collection method according to an exemplary embodiment of the inventive concepts of the present disclosure.
DETAILED DESCRIPTION
Exemplary embodiments of the inventive concepts of the present disclosure will be described more fully hereinafter based upon the accompanying drawings, in which the exemplary embodiments of the inventive concepts of the present disclosure are shown. The inventive concepts of the present disclosure may, however, be configured in many different forms and should not be construed as limited to the embodiments set forth herein. Rather, these embodiments are provided so that the present disclosure will be thorough and complete, and will fully convey the scope of the inventive concepts to those skilled in the art. In the drawings, the size and relative sizes of layers and regions may be exaggerated for clarity. Like numbers refer to like elements throughout.
It will be understood that when an element or layer is referred to as being “on,” “connected to” or “coupled to” another element or layer, it can be directly on, connected or coupled 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” or “directly coupled to” another element or layer, there are no intervening elements or layers present. Like numerals refer to like elements throughout. 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, although the terms first, second, third, and the like, 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 present disclosure.
Spatially relative terms, such as “beneath,” “below,” “lower,” “above,” “upper” and the like, may be used herein for ease of description to describe one element's or feature's relationship to another element(s) or feature(s) as illustrated in the drawings. It will be understood that the spatially relative terms are intended to encompass different orientations of the device in use or operation in addition to the orientation depicted in the figures. For example, if the device in the drawings is turned over, elements described as “below” or “beneath” other elements or features would then be oriented “above” the other elements or features. Thus, the term “below” can encompass both an orientation of above and below. The device may be otherwise oriented (rotated 90 degrees or at other orientations) and the spatially relative descriptors used herein interpreted accordingly.
The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the inventive concepts of the present disclosure. 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,” if 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.
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 the present disclosure 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 will not be interpreted in an idealized or overly formal sense unless expressly so defined herein.
When an exemplary embodiment can be implemented differently, functions or operations described in a particular block may occur in a different way from the flow described in a flowchart. For example, two consecutive blocks may be performed simultaneously, or the blocks may be performed in reverse according to related functions or operations.
FIG. 1 is a drawing depicting inventive concepts of the present disclosure. Referring to FIG. 1, a data storage system 10 may include at least one central processing unit 100, a root complex 200, a system memory 300, an interface switch 400 and a plurality of endpoint devices 510, 520.
The central processing unit 100 may control the overall operation of the data storage system 10.
The root complex 200 may be connected to the central processing unit 100 through an internal bus. The root complex 200 can manage a transaction between the central processing unit 100 and the end point devices 510, 520. For example, the root complex 200 can rout messages related to the transaction. The root complex 200 may be directly connected to the end point devices 510, 520 or may be connected to the end point devices 510, 520 through at least one interface switch 400.
The root complex 200 may be configured as a device separated from the central processing unit 100 or may be configured to be integrated in the central processing unit 100.
The system memory 300 can store data needed to drive the central processing unit 100 and the root complex 200. The system memory 300 may be connected to the root complex 200 or the central processing unit 100. The system memory 300 may be a DRAM or a PRAM.
The interface switch 400 may connect the root complex 200 to the end point devices 510, 520. The interface switch 400 may be configured to support a multicast operation of the root complex 200 or a multicast operation between the end point devices 510, 520, the multicast operation meaning the transmission of one transmission packet to several places.
The interface switch 400 may include an upstream port UP and downstream ports DP1, DP2 that are connected to the end point devices 510, 520, respectively.
Each of the end point devices 510, 520 may store data. Each of the end point devices 510, 520 may be configured to support the multicast operation. Each of the end point devices 510, 520 may be a storage device configured as a nonvolatile memory device. For example, each of the end point devices 510, 520 may be an SSD, a universal flash storage (UFS), and the like.
The end point devices 510, 520 can share a message related to a garbage collection, that is, a multicast garbage collection command MC_GC_CMD by the multicast operation.
For example, when the garbage collection is urgently needed in the first end point device 510, the first end point device 510 may issue the multicast garbage collection command MC_GC_CMD including garbage collection information, and may transmit the issued multicast garbage collection command MC_GC_CMD to the interface switch 400. Whether the garbage collection is urgent or not may be determined depending upon the number of free blocks. For example, if the number of free blocks is smaller than a predetermined value, the garbage collection may be considered to be urgent. The interface switch 400 may transmit the transmitted multicast garbage collection command MC_GC_CMD to the second end point device 520 in the same group, for example, a redundant array of independent disks (RAID) as the first end point device 510.
After transmitting the multicast garbage collection command MC_GC_CMD to the interface switch 400, the first end point device 510 can perform the garbage collection. The second end point device 520 may receive the multicast garbage collection command MC_GC_CMD from the interface switch 400 and can perform a garbage collection needed in the second end point device 520. However, the garbage collection performed on the second end point device 520 may not be urgent. Consequently, the first and second end point devices 510, 520 can perform the garbage collection at the same time. This is called a global garbage collection.
The data storage system 10 can synchronize the global garbage collection on the basis of the multicast garbage collection command MC_GC_CMD transmitted by the multicast operation. The data storage system 10 can more effectively manage the garbage collection as compared with a conventional methodology by having the end point devices 510, 520 that input and output the multicast garbage collection command MC_GC_CMD.
In exemplary embodiments of the inventive concepts the interface switch 400 and the end point devices 510, 520 can have a peripheral component interconnect express (PCIe) and the end point devices 510, 520 are SSDs.
FIG. 2 is a block diagram illustrating the interface switch shown in FIG. 1. Referring to FIG. 2, the interface switch 400 may include at least one virtual channel 401 and downstream ports DP1, DP2, . . . DP4. The interface switch 400 may be configured according to a PCIe interface regulation.
The interface switch 400 may operate according to a traffic class (TC) and a virtual channel (VC) 401 by the PCIe interface regulation. The TC may include a tag according to importance of traffic. The virtual channel 401 may set virtual routing information and may transmit the traffic to a target channel. The virtual channel 401 may be divided into a plurality of queues according to the TC or may bypass the queue.
Each of storage devices 510, 520, 530, 540 may be connected to the virtual channel 401 through the downstream ports DP1, DP2, . . . DP4. Each of the storage devices 510, 520, 530, 540 may be configured to communicate according to the PCIe interface regulation.
As illustrated in FIG. 2, a multicast garbage collection command MC_GC_CMD generated in the first storage device 510 may be transmitted to the second through fourth SSDs 520, 530, 540 via the virtual channel 401.
FIG. 3 is a drawing depicting a multicast operation of a virtual channel illustrated in FIG. 2. Referring to FIGS. 2 and 3, the multicast operation of the virtual channel 401 is performed as follows. In an initial operation of the virtual channel 401, a multicast lookup table (LUT) according to a group ID may be set in advance. If a multicast garbage collection command MC_GC_CMD is input from any one storage device, the virtual channel 401 may search corresponding ports DP2, DP3 based upon the multicast lookup table LUT, copy the multicast garbage collection command MC_GC_CMD, and transmit the copied multicast garbage collection command MC_GC_CMD to the corresponding ports DP2, DP3.
The multicast garbage collection command MC_GC_CMD, as illustrated in FIG. 3, may include a header and a payload. The header may include a group ID, and the payload may include garbage collection time information.
FIG. 4 is a drawing depicting a global garbage collection of a data storage system according to an exemplary embodiment of the inventive concepts of the present disclosure. In FIG. 4, for convenience of description, in an exemplary embodiment one RAID has four storage devices SSD1, SSD2, SSD3, SSD4, the RAID being considered a virtual disk having a function.
A global garbage collection may be performed in garbage collection periods GCT1, GCT2 according to a multicast garbage collection command MC_GC_CMD. A length (i.e., time) of the garbage collection periods GCT1, GCT2 may be changed depending on garbage collection time information included in the multicast garbage collection command MC_GC_CMD.
As illustrated in FIG. 4, regarding first storage device SSD1, a garbage collection that is not completed in the first garbage collection period GCT1 may be performed in the second garbage collection period GCT2. Regarding third storage device SSD3, although the garbage collection is needed, if it is not urgent, the garbage collection may be performed in the second garbage collection period GCT2 after the multicast garbage collection command MC_GC_CMD is input. Regarding the fourth storage device SSD4, a part of the garbage collection may be performed in the first garbage collection period GCT1 after the multicast garbage collection command MC_GC_CMD is input.
A general data storage system is aligned at a storage device having the lowest performance. That is, performance of any one storage device having slow response time determines performance of a whole virtual driver. However, in the data storage device 10 of the present disclosure, the performance of the virtual driver may not be aligned at the performance of any one storage device by performing the garbage collection on the storage devices SSD1, SSD2, SSD3, SSD4 at the same time according to the multicast garbage collection command MC_GC_CMD.
The data storage system 10, as illustrated in FIG. 4, can prevent the performance of the virtual driver constituted by RAID from being degraded by managing the storage devices SSD1, SSD2, SSD3, SSD4 so that the garbage collection can be performed in the global garbage collection period in response to the multicast garbage collection command MC_GC_CMD.
FIG. 5 is a block diagram illustrating a storage device according to an exemplary embodiment of the inventive concepts of the present disclosure. Referring to FIG. 5, a storage device 1000 may include a plurality of nonvolatile memory devices 1100 and a memory controller 1200 controlling the nonvolatile memory devices. The storage device 1000 may be various types of storage devices such as an SSD, an embedded multimedia card (eMMC), an SD card, a universal serial bus (USB) device, and the like. The storage device 1000 can support a multicast operation.
Each nonvolatile memory device 1100 may include a plurality of memory blocks having memory cells storing at least one bit. Each nonvolatile memory device 1100 may be a NAND flash memory, a vertical NAND flash memory (VNAND), a NOR flash memory, a resistive random access memory (RRAM), a PRAM, an MRAM, an FRAM, a spin transfer torque random access memory (STT-RAM), and the like.
Each nonvolatile memory device 1100 may be configured as a three-dimensional array structure. In an exemplary embodiment of the present inventive concept, a three dimensional (3D) memory array is provided. The 3D memory array is monolithically formed in one or more physical levels of arrays of memory cells having an active area disposed above a silicon substrate and circuitry associated with the operation of those memory cells, whether such associated circuitry is above or within such substrate, term “monolithic” meaning that layers of each level of the array are directly deposited on the layers of each underlying level of the array.
In an exemplary embodiment of the present inventive concept, the 3D memory array includes vertical NAND strings that are vertically oriented such that at least one memory cell is located over another memory cell. The at least one memory cell may comprise a charge trap layer. Each vertical NAND string may include at least one select transistor located over memory cells, the at least one select transistor having a similar structure as the memory cells and being formed monolithically together with the memory cells.
The following patent documents, which are hereby incorporated by reference, describe suitable configurations for three-dimensional memory arrays, in which the three-dimensional memory array is configured as a plurality of levels, with word lines and/or bit lines shared between levels: U.S. Pat. Nos. 7,679,133; 8,553,466; 8,654,587; 8,559,235; and US Pat. Pub. No. 2011/0233648.
The inventive concepts of the present disclosure can be applied to not only a flash memory device of which a charge storage layer has a conductive floating gate but also a charge trap flash (CTF) of which a charge storage layer can be an insulating layer. The nonvolatile memory devices 1100 may be configured to optionally receive an external high voltage Vpp.
The memory controller 1200 may be connected to the nonvolatile memory devices 1100 through a plurality of channels CH1, CH2, . . . CHi (i being an integer of 2 or more). The memory controller 1200 may include at least processor 1210, a buffer memory 1220, an error correction circuit (ECC) 1230, a garbage collection management unit 1240, a storage interface (SIF) 1250, and a nonvolatile memory interface (NVM IF) 1260.
The processor 1210 can control the overall operation of the storage device 1000. The buffer memory 1220 may temporarily store data needed to drive the memory controller 1200. For example, the buffer memory 1220 can temporarily store input/output data when an input/output request of a host occurs. The buffer memory 1220, in a write operation, may temporarily store data input from external devices in order to program the data in the nonvolatile memory devices 1100. The buffer memory 1220, in a read operation, may temporarily store data read from the nonvolatile memory devices 1100 to output the data to the external devices. The buffer memory 1220 may include a plurality of memory lines storing data or a command. The memory lines may be mapped into cache lines that are directly accessed from the processor 1210 in a variety of ways. The cache lines may exist inside the processor 1210 or may separately exist outside the processor 1210.
The error correction circuit 1230 may be configured to detect and correct an error of input/output data. For example, the error correction circuit 1230 can calculate an error correction code value of data that is to be programmed in a write operation, correct an error of data read in a read operation on the basis of the error correction code value, and correct an error of data read from the nonvolatile memory device 1100 in a data restoration operation.
Although not illustrated, the storage device 1000 may further include a code memory storing code data needed to drive the memory controller 1200. The code memory may be configured as a nonvolatile memory device (for example, PRAM, MRAM, and the like).
The garbage collection management unit 1240 can internally perform a garbage collection, issue a multicast garbage collection command MC_GC_CMD for performing a global garbage collection if necessary, or perform a global garbage collection in response to the multicast garbage collection command MC_GC_CMD input from the external devices through the storage interface 1250. The multicast garbage collection command MC_GC_CMD may include garbage collection time information relevant to garbage collection performance time.
The garbage collection management unit 1240 may be configured in hardware, software and firmware.
The storage interface 1250 can provide an interface function with external devices. The storage interface 1250 may be changed to a data structure that can receive a global garbage collection command generated in the garbage collection management unit 1240 from another storage device, or may be configured to receive the multicast garbage collection command MC_GC_CMD issued from an external storage device. That is, the multicast garbage collection command MC_GC_CMD that is input/output in the storage interface 1250 may follow an interface rule supporting the multicast operation. For example, the storage interface 1250 may be a PCIe interface, or a thundervolt interface.
The nonvolatile memory interface 1260 can provide an interface function with the nonvolatile memory device 1100.
The storage device 1000 can issue and receive the multicast garbage collection command MC_GC_CMD relevant to the global garbage collection and, can perform the global garbage collection in response to the issued/received multicast garbage collection command MC_GC_CMD.
A priority with respect to the global garbage collection may be given according to the garbage collection time information included in the multicast garbage collection command MC_GC_CMD. The garbage collection time may be determined by the number (or the number of blocks) of merge operations and/or program operations needed in the garbage collection.
FIG. 6 is a table illustrating a priority of a global garbage collection according to an exemplary embodiment of the inventive concepts of the present disclosure. Referring to FIG. 6, the priority is given according to garbage collection time included in a multicast garbage collection command MC_GC_CMD. For example, when the garbage collection time needed in a garbage collection is greater than first time GCT1, the priority is low. When the garbage collection time is greater than second time GCT2, the priority is in the middle. When the garbage collection time is greater than third time GCT3, the priority is high. When the garbage collection time is greater than fourth time GCT4, the priority is urgent.
The priority of the global garbage collection illustrated in FIG. 6 is only illustrative. The global garbage collection of the present disclosure may be set by diversely subdividing the priority on the basis of at least one parameter relevant to time information needed in the garbage collection.
FIG. 7 is a flowchart illustrating an exemplary embodiment of a garbage collection method of a storage device according to an exemplary embodiment of the inventive concepts of the present disclosure. Referring to FIGS. 1 through 7, a garbage collection of the storage device 1000 is performed as follows. The garbage collection management unit 1240 of the storage device 1000 may determine whether the garbage collection is needed in the storage device 1000 (S110). If the garbage collection is needed, garbage collection time GCT needed in the garbage collection can be calculated. If the garbage collection is needed, a multicast garbage collection command MC_GC_CMD relevant to the garbage collection may be issued and transferred to other storage devices existing in the same group (S120). The multicast garbage collection command MC_GC_CMD may include garbage collection time information. After that, the garbage collection management unit 1240 may perform the garbage collection with respect to the storage device 1000.
The garbage collection method of the storage device 1000 may perform the garbage collection after transferring the multicast garbage collection command MC_GC_CMD.
FIG. 8 is a flowchart illustrating a garbage collection method of a storage device according to an exemplary embodiment of the inventive concepts of the present disclosure. Referring to FIGS. 1 through 6 and 8, a garbage collection of the storage device 1000 is performed as follows. At least one multicast garbage collection command MC_GC_CMD relevant to the garbage collection from at least one storage device in a write group may be input in the storage device 1000 (S210). The garbage collection management unit 1240 may determine whether the number of the multicast garbage collection commands MC_GC_CMD is greater than 1 (S220). If two or more multicast garbage collection commands MC_GC_CMD are input, a priority of the multicast garbage collection commands MC_GC_CMD may be determined. For example, a relatively high priority may be given to the multicast garbage collection commands MC_GC_CMD having long garbage collection time. The multicast garbage collection commands MC_GC_CMD may include garbage collection time information.
After that, the garbage collection may be performed during the garbage collection time included in the priority multicast garbage collection command. If only one multicast garbage collection command is input, the garbage collection may be performed during the garbage collection time included in the inputted multicast garbage collection command (S240).
The garbage collection method of the storage device 1000 can perform the garbage collection during the garbage collection time included in the inputted multicast garbage collection command MC_GC_CMD.
FIG. 9 is a flowchart illustrating a global garbage collection method of a data storage system according to an exemplary embodiment of the inventive concepts of the present disclosure. Referring to FIGS. 1 through 9, in the global garbage collection method, a multicast global garbage collection command MC_GC_CMD may be issued in any one storage device (S310). The issued multicast global garbage collection command MC_GC_CMD may be transferred to other storage devices using a multicast operation (S320). After that, the global garbage collection may be performed (S330).
The global garbage collection method of the present disclosure can perform the global garbage collection during a predetermined time in response to the multicast global garbage collection command MC_GC_CMD.
In the data storage system of the present disclosure, each storage device constituting RAID may share its garbage collection time and its needed information through the multicast operation, and thereby overall response time and an overall output can be increased.
A message can be diversely processed in a variety of ways. The data storage system of the present disclosure can perform a fast global collection synchronization by processing a message in a vendor specific interrupt service routine form. A PCI multicast group may be performed after registering a multicast group that fits PCI switch capability on the basis of a predetermined write group.
FIG. 10 is a drawing illustrating a host system according to an exemplary embodiment of the inventive concepts of the present disclosure. Referring to FIG. 10, a host system 20 may include a host having at least one central processing unit 22 and a main memory 24, and a data storage system having a plurality of storage devices SSDs and a storage controller 26.
The central processing unit 22 and the storage controller 26 may be connected to each other through a host bus 21. The storage device SSD of FIG. 10 may be configured as the storage device 1000 illustrated in FIG. 5.
Since the host system 20 autonomously performs a global garbage collection in the data storage system, the global garbage collection does not need to be considered in the host. Thus, the host system 20 can lighten the burden due to the global garbage collection in the host as compared with a conventional host system. A use rate and power consumption of the central processing unit by the global garbage collection can be greatly reduced.
A limited number of storage devices can be connected to the storage controller 26 illustrated in FIG. 10. Generally, to increase the number of storage devices connected to the storage controller 26, an expander may be added. The inventive concepts of the present disclosure can be applied to the expanding controller.
FIG. 11 is a drawing illustrating a host system according to an exemplary embodiment of the inventive concepts of the present disclosure. Referring to FIG. 11, a host system 30 may include a host constituted by at least one central processing unit 32 and a main memory 34, and a data storage system having a plurality of storage devices SSDs, a storage controller 36 and an expander 38. The storage device SSD of FIG. 11 may be configured as the storage device 1000 illustrated in FIG. 5.
In FIGS. 1 through 11, a middle medium (for example, a storage controller, an expander) may exist between the host and the storage device. However, the global garbage collection of the present disclosure is not limited to the structure described above. The inventive concepts of the present disclosure can be applied to a host system in which a host and a storage device are directly connected to each other.
FIG. 12 is a drawing illustrating a host system according to an exemplary embodiment of the inventive concepts of the present disclosure. Referring to FIG. 12, a host system 40 may include a host having at least one central processing unit 42 and a main memory 44, and a plurality of storage devices NVMe. The storage device NVMe of the present disclosure may be configured to issue or receive a multicast garbage collection command relevant to a global garbage collection using a point-to-point interface.
Referring to FIG. 12, the storage devices NVMe can form two RAID groups RAID1, RAID2. Storage devices of each RAID group can issue and receive a global garbage collection message. After the global garbage collection is performed, a RAID may be rebuilt.
The host system of the present disclosure may be a structure used together with a hard disk drive (HDD).
FIG. 13 is a drawing illustrating a host system according to an exemplary embodiment of the inventive concepts of the present disclosure. Referring to FIG. 13, a host system 50 may include a host having at least one central processing unit 52 and a main memory 54, RAIDs (RAID1, RAID2) having a plurality of storage devices NVMe, a storage controller 56, and a RAID3 having a plurality of hard disks HDDs connected to the storage controller 56. Each of the storage devices NVMe constituting the RAID1 and the RAID2 may be configured to issue and receive a multicast garbage collection command using a point-to-point interface.
The inventive concepts of the present disclosure can embody a consistent low latency environment by completely removing a performance drop period by a garbage collection in a server environment.
The inventive concepts of the present disclosure can autonomously perform a global garbage collection without cooperation of a company using an SSD by performing the global garbage collection using only SSD internal resources.
The inventive concepts of the present disclosure can strengthen self-management performance in a server environment by establishing a network environment between SSDs included in the same RAID group using only SSD internal resources.
In FIGS. 1 through 13, a global garbage collection with respect to a storage device supporting a multicast operation was described. However, the present disclosure is not limited thereto. In the present disclosure, any one storage device in a write group can receive a global garbage collection message from other storage devices and transfer the message to the remaining storage devices.
FIG. 14 is a drawing illustrating a global garbage collection method according to an exemplary embodiment of the inventive concepts of the present disclosure. Referring to FIG. 14, a first storage device SSD1 may receive a global garbage message GC_MSG from a third storage device SSD3 and may transfer the received global garbage message GC_MSG to second, third and fourth storage devices SSD2, SSD3, SSD4. The second, third and fourth storage devices SSD2, SSD3, SSD4 may start a garbage collection in response to the received global garbage message GC_MSG.
The memory system or the storage device according to an exemplary embodiment of the inventive concepts of the present disclosure can be mounted using various types of packages such as package on package (PoP), ball grid array (BGA), chip scale package (CSP), plastic leaded chip carrier (PLCC), plastic dual in-line package (PDIP), die in waffle pack, die in wafer form, chip on board (COB), ceramic dual in-line package (CERDIP), plastic metric quad flat pack (MQFP), thin quad flat pack (TQFP), small outline (SOIC), shrink small outline package (SSOP), thin small outline (TSOP), thin quad flatpack (TQFP), system in package (SIP), multi chip package (MCP), wafer-level fabricated package (WFP) and wafer-level processed stack package (WSP).
A storage device in accordance with an exemplary embodiment of the inventive concepts of the present disclosure and a data storage system having the storage device can effectively manage data and obtain the optimum performance by performing a global garbage collection using a multicast operation.
The foregoing is illustrative of the inventive concepts of the present disclosure and is not to be construed as limiting thereof. Although a few embodiments of the inventive concepts of the present disclosure have been described, those skilled in the art will readily appreciate that many modifications are possible in the embodiments without materially departing from the novel teachings and advantages of the inventive concepts of the present disclosure. Accordingly, all such modifications are intended to be included within the scope of the inventive concepts of the present disclosure as defined in the claims. The inventive concepts of the present disclosure is defined by the following claims, with equivalents of the claims to be included therein

Claims (16)

What is claimed is:
1. A garbage collection method of a data storage system having a plurality of storage devices, the method comprising:
determining whether a garbage collection is needed in a first storage device among the plurality of storage devices;
transferring one or more multicast garbage collection commands from the first storage device to at least one other storage device in a write group through a multicast operation; and
performing the garbage collection in the first storage device,
wherein each of the one or more multicast garbage collection commands comprises garbarge collection time information for performing the garbarge collection, and
wherein each of the one or more multicast garbage commands is a packet comprising a header and a payload, the header comprising an identification number with respect to the write group, the payload comprising the garbage collection time information.
2. The garbage collection method of claim 1, wherein the determining whether the garbage collection is needed comprises determining whether the number of free blocks is less than a predetermined value.
3. The garbage collection method of claim 1, wherein the transferring the one or more multicast garbage collection commands from the first storage device to the at least one other storage device further comprises:
transferring the one or more multicast garbage collection commands to a virtual channel; and
transferring the one or more multicast garbage collection commands from the virtual channel to at least one downstream port corresponding to the write group based upon a multicast lookup table, the at least one downstream port being connected to the at least one other storage device.
4. The garbage collection method of claim 3, wherein the transferring the one or more multicast garbage collection commands from the first storage device to the at least one other storage device further comprises:
copying the one or more multicast garbage collection commands; and
transferring the copied one or more multicast garbage collection commands to the at least one downstream port.
5. The garbage collection method of claim 1, wherein the garbage collection time information is determined by the number of memory blocks relevant to the garbage collection.
6. The garbage collection method of claim 1, wherein each of the one or more multicast garbage collection commands comprises time information of starting the garbage collection.
7. The garbage collection method of claim 1, further comprising receiving the one or more multicast garbage collection commands by the at least one other storage device.
8. The garbage collection method of claim 7, further comprising determining whether the one or more multicast garbage collection commands received by the at least one other storage device include two or more multicast garbage collection commands.
9. The garbage collection method of claim 7, further comprising performing the garbage collection with respect to the at least one other storage device.
10. A data storage system comprising:
a plurality of storage devices includes a first storage device and at least one other storage device; and
processor configured to perform garbage collection in the plurality of storage devices,
wherein the first storage device comprises:
a first garbage collection management unit configured to determine whether the garbage collection is needed in the first storage device;
a first storage interface configured to transfer one or more multicast garbage collection commands from the first storage device to the at least one other storage device in a write group through a multicast operation,
wherein the at least one other storage device comprises a second garbage collection management unit and a second storage interface configured to receive the one or more multicast garbage collection commands from the first storage device, and
wherein the second garbage collection management unit is configured to determine whether the one or more multicast garbage collection commands received by the at least one other storage device includes two or more multicast garbage collection commands, and determines a priority of the one or more multicast garbage collection commands if the one or more multicast garbage collection commands received by the at least one other storage device includes the two or more multicast garbage collection commands.
11. The data storage system of claim 10, wherein the second garbage collection management unit determines the priority depending on garbage collection time information included in each of the one or more multicast garbage collection commands.
12. A storage device comprising:
a plurality of nonvolatile memory devices; and
a memory controller configured to issue a first multicast garbage collection command when a garbage collection is needed, the memory controller being configured either to transfer the first multicast garbage collection command to other storage devices in a write group through a multicast operation or to receive a second multicast garbage collection command from at least one of the other storage devices through the multicast operation, and the memory controller being configured to perform the garbage collection in response to the first multicast garbage collection command or the second multicast garbage collection command,
wherein the memory controller comprises a garbage management unit configured in a firmware form, the memory controller being configured to issue the first multicast garbage collection command or to perform the garbage collection in response to the first and second multicast garbage collection commands.
13. The storage device of claim 12, wherein the garbage collection management unit determines a priority using garbage collection time information included in the first multicast garbage collection command and/or the second multicast garbage collection command.
14. The storage device of claim 12, further comprising a storage interface configured to input and output each of the first and second multicast garbage collection commands to an external device.
15. The storage device of claim 14, wherein the storage interface is a peripheral component interconnect express (PCIe) interface.
16. The storage device of claim 12, wherein each of the plurality of nonvolatile memory devices is a V-NAND flash memory device, and
the storage device is a solid state drive (SSD).
US14/735,834 2014-09-11 2015-06-10 Storage device and garbage collection method of data storage system having the storage device Active 2035-11-26 US9858182B2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020140120149A KR102330391B1 (en) 2014-09-11 2014-09-11 Storage device, data storage system having the same, and garbage collection method thereof
KR10-2014-0120149 2014-09-11

Publications (2)

Publication Number Publication Date
US20160077964A1 US20160077964A1 (en) 2016-03-17
US9858182B2 true US9858182B2 (en) 2018-01-02

Family

ID=55454886

Family Applications (1)

Application Number Title Priority Date Filing Date
US14/735,834 Active 2035-11-26 US9858182B2 (en) 2014-09-11 2015-06-10 Storage device and garbage collection method of data storage system having the storage device

Country Status (2)

Country Link
US (1) US9858182B2 (en)
KR (1) KR102330391B1 (en)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9983828B2 (en) * 2014-10-09 2018-05-29 Sandisk Technologies Llc Health indicator of a storage device
US9710165B1 (en) * 2015-02-18 2017-07-18 Pure Storage, Inc. Identifying volume candidates for space reclamation
US11042496B1 (en) * 2016-08-17 2021-06-22 Amazon Technologies, Inc. Peer-to-peer PCI topology
JP2018181281A (en) * 2017-04-21 2018-11-15 富士通株式会社 Storage system, control device and storage device
US10474611B2 (en) * 2017-09-19 2019-11-12 International Business Machines Corporation Aligning received bad data indicators (BDIS) with received data on a cross-chip link
KR102340287B1 (en) 2017-09-20 2021-12-20 삼성전자주식회사 Storage device communicating with host according to multicast communication protocol and communication method of host
JP2019074897A (en) * 2017-10-16 2019-05-16 富士通株式会社 Storage control device, and program
KR20190092054A (en) 2018-01-30 2019-08-07 에스케이하이닉스 주식회사 Memory system and operating method of memory system
WO2020052216A1 (en) * 2018-09-12 2020-03-19 华为技术有限公司 System garbage collection method and method for collecting garbage in solid state hard disk
CN110895513A (en) 2018-09-12 2020-03-20 华为技术有限公司 System garbage recycling method and garbage recycling method in solid state disk
KR102653659B1 (en) * 2019-07-05 2024-04-03 에스케이하이닉스 주식회사 Memory system, memory controller, and operating method

Citations (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6151685A (en) 1998-05-15 2000-11-21 International Business Machines Corporation System and method for recovering a segment directory for a log structured array
US20050027881A1 (en) * 2003-07-30 2005-02-03 Nortel Networks Limited Method and apparatus for direct frame switching using frame contained destination information
US6889254B1 (en) * 1999-03-30 2005-05-03 International Business Machines Corporation Scalable merge technique for information retrieval across a distributed network
US7657584B2 (en) 2005-07-15 2010-02-02 Hitachi, Ltd. Reorganization method of database and a database reorganization system
US7679133B2 (en) 2007-11-08 2010-03-16 Samsung Electronics Co., Ltd. Vertical-type non-volatile memory devices
US20100269015A1 (en) * 2009-04-08 2010-10-21 Google Inc. Data storage device
US20110233648A1 (en) 2010-03-26 2011-09-29 Samsung Electronics Co., Ltd. Three-Dimensional Semiconductor Memory Devices And Methods Of Fabricating The Same
US8032724B1 (en) * 2007-04-04 2011-10-04 Marvell International Ltd. Demand-driven opportunistic garbage collection in memory components
US20120068242A1 (en) * 2010-09-16 2012-03-22 Seung-Mok Shin Semiconductor devices and methods of fabricating the same
US8166269B2 (en) 2009-11-05 2012-04-24 Oracle America, Inc. Adaptive triggering of garbage collection
US8281050B2 (en) 2010-08-20 2012-10-02 Hitachi, Ltd. Method and apparatus of storage array with frame forwarding capability
US8312464B2 (en) 2007-08-28 2012-11-13 International Business Machines Corporation Hardware based dynamic load balancing of message passing interface tasks by modifying tasks
US8341342B1 (en) 2012-03-23 2012-12-25 DSSD, Inc. Storage system with incremental multi-dimensional RAID
US8352690B2 (en) 2009-09-23 2013-01-08 Lsi Corporation Cache synchronization for solid state disks
US20130067294A1 (en) * 2006-12-06 2013-03-14 Fusion-Io, Inc. Apparatus, system, and method for a front-end, distributed raid
US8402217B2 (en) 2009-09-15 2013-03-19 Marvell International Ltd. Implementing RAID in solid state memory
WO2013048451A1 (en) 2011-09-30 2013-04-04 Intel Corporation Presentation of direct accessed storage under a logical drive model
US8452911B2 (en) 2010-09-30 2013-05-28 Sandisk Technologies Inc. Synchronized maintenance operations in a multi-bank storage system
US20130191609A1 (en) * 2011-08-01 2013-07-25 Atsushi Kunimatsu Information processing device including host device and semiconductor memory device and semiconductor memory device
US8533372B2 (en) 2010-03-19 2013-09-10 Fujitsu Limited Information processing device and method of collection process of device information in the information processing device
US8553466B2 (en) 2010-03-04 2013-10-08 Samsung Electronics Co., Ltd. Non-volatile memory device, erasing method thereof, and memory system including the same
US8559235B2 (en) 2010-08-26 2013-10-15 Samsung Electronics Co., Ltd. Nonvolatile memory device, operating method thereof and memory system including the same
US8566549B1 (en) 2008-12-31 2013-10-22 Emc Corporation Synchronizing performance requirements across multiple storage platforms
US8601036B2 (en) 2011-03-23 2013-12-03 International Business Machines Corporation Handling persistent/long-lived objects to reduce garbage collection pause times
US20140013048A1 (en) 2012-07-03 2014-01-09 Violin Memory Inc. Synchronization of a dispersed raid group
US8654587B2 (en) 2010-08-11 2014-02-18 Samsung Electronics Co., Ltd. Nonvolatile memory devices, channel boosting methods thereof, programming methods thereof, and memory systems including the same
US8688899B2 (en) 2010-09-28 2014-04-01 Fusion-Io, Inc. Apparatus, system, and method for an interface between a memory controller and a non-volatile memory controller using a command protocol
US8713268B2 (en) 2010-08-05 2014-04-29 Ut-Battelle, Llc Coordinated garbage collection for raid array of solid state disks
US8886691B2 (en) 2011-08-11 2014-11-11 Pure Storage, Inc. Garbage collection in a storage system
US20140372698A1 (en) 2013-06-14 2014-12-18 Samsung Electronics Co., Ltd. Storage device and global garbage collection method of data storage system including the same

Patent Citations (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6151685A (en) 1998-05-15 2000-11-21 International Business Machines Corporation System and method for recovering a segment directory for a log structured array
US6889254B1 (en) * 1999-03-30 2005-05-03 International Business Machines Corporation Scalable merge technique for information retrieval across a distributed network
US20050027881A1 (en) * 2003-07-30 2005-02-03 Nortel Networks Limited Method and apparatus for direct frame switching using frame contained destination information
US7657584B2 (en) 2005-07-15 2010-02-02 Hitachi, Ltd. Reorganization method of database and a database reorganization system
US8601211B2 (en) 2006-12-06 2013-12-03 Fusion-Io, Inc. Storage system with front-end controller
US20130067294A1 (en) * 2006-12-06 2013-03-14 Fusion-Io, Inc. Apparatus, system, and method for a front-end, distributed raid
US8032724B1 (en) * 2007-04-04 2011-10-04 Marvell International Ltd. Demand-driven opportunistic garbage collection in memory components
US8312464B2 (en) 2007-08-28 2012-11-13 International Business Machines Corporation Hardware based dynamic load balancing of message passing interface tasks by modifying tasks
US7679133B2 (en) 2007-11-08 2010-03-16 Samsung Electronics Co., Ltd. Vertical-type non-volatile memory devices
US8566549B1 (en) 2008-12-31 2013-10-22 Emc Corporation Synchronizing performance requirements across multiple storage platforms
US20100269015A1 (en) * 2009-04-08 2010-10-21 Google Inc. Data storage device
US8402217B2 (en) 2009-09-15 2013-03-19 Marvell International Ltd. Implementing RAID in solid state memory
US8352690B2 (en) 2009-09-23 2013-01-08 Lsi Corporation Cache synchronization for solid state disks
US8166269B2 (en) 2009-11-05 2012-04-24 Oracle America, Inc. Adaptive triggering of garbage collection
US8553466B2 (en) 2010-03-04 2013-10-08 Samsung Electronics Co., Ltd. Non-volatile memory device, erasing method thereof, and memory system including the same
US8533372B2 (en) 2010-03-19 2013-09-10 Fujitsu Limited Information processing device and method of collection process of device information in the information processing device
US20110233648A1 (en) 2010-03-26 2011-09-29 Samsung Electronics Co., Ltd. Three-Dimensional Semiconductor Memory Devices And Methods Of Fabricating The Same
US8713268B2 (en) 2010-08-05 2014-04-29 Ut-Battelle, Llc Coordinated garbage collection for raid array of solid state disks
US8654587B2 (en) 2010-08-11 2014-02-18 Samsung Electronics Co., Ltd. Nonvolatile memory devices, channel boosting methods thereof, programming methods thereof, and memory systems including the same
US8281050B2 (en) 2010-08-20 2012-10-02 Hitachi, Ltd. Method and apparatus of storage array with frame forwarding capability
US8559235B2 (en) 2010-08-26 2013-10-15 Samsung Electronics Co., Ltd. Nonvolatile memory device, operating method thereof and memory system including the same
US20120068242A1 (en) * 2010-09-16 2012-03-22 Seung-Mok Shin Semiconductor devices and methods of fabricating the same
US8688899B2 (en) 2010-09-28 2014-04-01 Fusion-Io, Inc. Apparatus, system, and method for an interface between a memory controller and a non-volatile memory controller using a command protocol
US8452911B2 (en) 2010-09-30 2013-05-28 Sandisk Technologies Inc. Synchronized maintenance operations in a multi-bank storage system
US8601036B2 (en) 2011-03-23 2013-12-03 International Business Machines Corporation Handling persistent/long-lived objects to reduce garbage collection pause times
US20130191609A1 (en) * 2011-08-01 2013-07-25 Atsushi Kunimatsu Information processing device including host device and semiconductor memory device and semiconductor memory device
US8886691B2 (en) 2011-08-11 2014-11-11 Pure Storage, Inc. Garbage collection in a storage system
WO2013048451A1 (en) 2011-09-30 2013-04-04 Intel Corporation Presentation of direct accessed storage under a logical drive model
US20140189212A1 (en) 2011-09-30 2014-07-03 Thomas M. Slaight Presentation of direct accessed storage under a logical drive model
US8341342B1 (en) 2012-03-23 2012-12-25 DSSD, Inc. Storage system with incremental multi-dimensional RAID
US20140013048A1 (en) 2012-07-03 2014-01-09 Violin Memory Inc. Synchronization of a dispersed raid group
US20140372698A1 (en) 2013-06-14 2014-12-18 Samsung Electronics Co., Ltd. Storage device and global garbage collection method of data storage system including the same

Also Published As

Publication number Publication date
KR20160031099A (en) 2016-03-22
KR102330391B1 (en) 2021-11-24
US20160077964A1 (en) 2016-03-17

Similar Documents

Publication Publication Date Title
US9858182B2 (en) Storage device and garbage collection method of data storage system having the storage device
US10621081B2 (en) Storage device and global garbage collection method of data storage system including the same
KR102527992B1 (en) Data storage device and data processing system having the same
US20180322085A1 (en) Memory device for a hierarchical memory architecture
US9804801B2 (en) Hybrid memory device for storing write data based on attribution of data stored therein
US10037160B2 (en) Storage device dynamically allocating program area and program method thereof
US10521152B2 (en) Storage device storing data in raid manner
US10430330B2 (en) Handling of unaligned sequential writes
US20170017588A1 (en) Storage region mapping for a data storage device
US9189383B2 (en) Nonvolatile memory system and data processing method
US8688895B2 (en) Memory system and data management method of flash translation layer thereof
US20170262380A1 (en) Switch module and storage system
US10776268B2 (en) Priority addresses for storage cache management
US11567685B2 (en) Storage controller and storage device including the same
US11372543B2 (en) Zone-append command scheduling based on zone state
CN110928805B (en) Memory system and operating method thereof
US20220391089A1 (en) Dissimilar Write Prioritization in ZNS Devices
US20240094930A1 (en) Storage Controller Redirecting Write Operation And Operating Method Thereof
US10095433B1 (en) Out-of-order data transfer mechanisms for data storage systems
US20210382649A1 (en) Storage System and Method for Using Proactive Device Timeout information
US10515693B1 (en) Data storage apparatus and operating method thereof
US11650758B2 (en) Data storage device and method for host-initiated cached read to recover corrupted data within timeout constraints

Legal Events

Date Code Title Description
AS Assignment

Owner name: SAMSUNG ELECTRONICS CO., LTD., KOREA, REPUBLIC OF

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:CHANG, WOOSEOK;ROH, KANGHO;LEE, JONGWON;REEL/FRAME:035818/0197

Effective date: 20150402

STCF Information on status: patent grant

Free format text: PATENTED CASE

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Year of fee payment: 4