A claim for priority under 35 U.S.C. §119 is made to Korean Patent Application No. 10-2014-0065309 filed May 29, 2014, the subject matter of which is hereby incorporated by reference.
The inventive concept relates generally to storage systems, and more particularly, to flash memory based storage systems and associated operating methods.
A storage system includes at least a host and a storage device. The host and storage device are connected via one or more standardized interfaces, such as a serial ATA (SATA), universal flash storage (UFS), small computer small interface (SCSI), serial attached SCSI (SAS), embedded MMC (eMMC), and the like. Within the storage system, the storage device includes at least a nonvolatile memory and a device controller. The nonvolatile memory may be implemented using one or more semiconductor memory chips such as flash memory, MRAM, PRAM, FeRAM, etc.
It is well understood that various forms of nonvolatile memory such as flash memory do not support a direct data overwrite operation. Thus, in order to accomplish the same result, flash memory must perform an erase-before-write operation. This functional characteristic of flash memory necessitates so-called periodic garbage collection operations, where each garbage collection operation generate one or more additional “free blocks” of memory. A typical garbage collection operation includes the steps of selecting a victim block, copying valid pages of data from the victim block to an existing free block, and then erasing the victim block to generate a “new” free block.
Unfortunately, during execution of a garbage collection operation, the number of copy operations increases in proportion to the number of valid pages stored in the victim block and this necessity reduces overall storage device performance. Additionally, the useful life of certain storage devices is reduced by repeated execution of garbage collection operations.
In one aspect certain embodiments of the inventive concept provide a flash memory based storage system comprising; a host configured to request erase unit size from a storage device including a flash memory, wherein the storage device is configured to provide the erase unit size related to the flash memory to the host in response to the request for erase unit size, wherein the host is further configured to partition a logical address using a multiple of the erase unit size to generate a plurality of host blocks.
In another aspect certain embodiments of the inventive concept provide an operating method of a flash memory based storage device including a host and a storage device including a flash memory. The method comprises; requesting that erase unit size related to the flash memory be communicated from the storage device to the host and receiving the erase unit size information in the host, and partitioning a logical address using a multiple of the erase unit size to generate a plurality of host blocks.
In another aspect certain embodiments of the inventive concept provide an operating method of a flash memory based storage device including a host storing a logical address and a storage device including a flash memory divided into a plurality of erase units. The method comprises; requesting that erase unit size related to the flash memory be communicated from the storage device to the host, and receiving the erase unit size information in the host and using an integer multiple of the erase unit size to partition the logical address to generate a plurality of host blocks, wherein each one of the host blocks respectively corresponds to at least one of the plurality erase units.
The above and other objects and features will become apparent from the following description of exemplary embodiments with reference to the following drawings in which:
Certain embodiments of the inventive concept will now be described in detail in some additional detail with reference to the accompanying drawings. The inventive concept, however, may be embodied in various different forms, and should not be construed as being limited to only the illustrated embodiments. Rather, these embodiments are provided as examples so that this disclosure will be thorough and complete, and will fully convey the concept of the inventive concept to those skilled in the art. Unless otherwise noted, like reference numbers and label are used to denote like or similar elements throughout the drawings and written description.
It will be understood that, although the terms “first”, “second”, “third”, etc., may be used herein to describe various elements, components, regions, layers and/or sections, these elements, components, regions, layers and/or sections should not be limited by these terms. These terms are only used to distinguish one element, component, region, layer or section from another region, layer or section. Thus, a first element, component, region, layer or section discussed below could be termed a second element, component, region, layer or section without departing from the teachings of the inventive concept.
Spatially relative terms, such as “beneath”, “below”, “lower”, “under”, “above”, “upper” and the like, may be used herein for ease of description to describe one element or feature's relationship to another element(s) or feature(s) as illustrated in the figures. 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 figures is turned over, elements described as “below” or “beneath” or “under” other elements or features would then be oriented “above” the other elements or features. Thus, the exemplary terms “below” and “under” 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. In addition, it will also be understood that when a layer is referred to as being “between” two layers, it can be the only layer between the two layers, or one or more intervening layers may also be present.
The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the inventive concept. As used herein, the singular forms “a”, “an” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms “comprises” and/or “comprising,” when used in this specification, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof. As used herein, the term “and/or” includes any and all combinations of one or more of the associated listed items. Also, the term “exemplary” is intended to refer to an example or illustration.
It will be understood that when an element or layer is referred to as being “on”, “connected to”, “coupled to”, or “adjacent to” another element or layer, it can be directly on, connected, coupled, or adjacent to the other element or layer, or intervening elements or layers may be present. In contrast, when an element is referred to as being “directly on,” “directly connected to”, “directly coupled to”, or “immediately adjacent to” another element or layer, there are no intervening elements or layers present.
Unless otherwise defined, all terms (including technical and scientific terms) used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this inventive concept belongs. It will be further understood that terms, such as those defined in commonly used dictionaries, should be interpreted as having a meaning that is consistent with their meaning in the context of the relevant art and/or the present specification and will not be interpreted in an idealized or overly formal sense unless expressly so defined herein.
Figure (
As illustrated in
The application 1110 may be one or many different software programs designed for execution by the host 1100. The file system 1115 organizes to store files or data in one or more designated areas of the buffer memory 1140, and/or the storage device 1200. The file system 1115 may be used according to a specific operating system running on the host 1100.
The device driver 1120 may include one or more drivers associated with peripheral device(s) that are used through connection with the host 1100. Thus, the device driver 1120 may be used to drive the operation of the storage device 1200. The application 1110, file system 1115, and device driver 1120 may be implemented using software and/or firmware. The host controller 1130 exchanges data with the storage device 1200 via the host interface 1101.
Not only may the buffer memory 1140 be used as a main memory and/or cache memory for the host 1100, but it may also be used as a drive memory for software being executed by the host 1100, such as the application 1110, file system 1115, and device driver 1120.
The storage device 1200 is connected to the host 1100 through the device interface 1201. The storage device 1200 illustrated in
The buffer memory 1240 may be used to temporarily store data read from, or to be written to, the nonvolatile memory 1210. The buffer memory 1240 may be implemented using volatile memory and/or nonvolatile memory.
The storage system 1000 of
As before, the host 2100 is configured to run an application 2110, file system 2115, and/or device driver 2120 using a host controller 2130 and buffer RAM 2140. Further, the host controller 2130 includes a command manager 2131, host DMA 2132 and power manager 2133. The command manager 2131, host DMA 2132, and power manager 2133 may be variously implemented as operating algorithm(s), software routine(s), and/or firmware capable of being executed using host controller 2130 resources.
A command, such as a write command, generated by the application 2110, file system 2115, or device driver 2120 may be managed in its provision of and response to the host 2100 using the command manager 2131 of the host controller 2130. The command manager 2131 may sequentially manage commands to be provided to the storage device 2200 using the host DMA 2132. The host DMA 2132 sends the commands to the storage device 2200 via a host interface 2101.
In
The command manager 2234, buffer manager 2235, FTL 2236, and flash manager 2237 may be implemented in algorithm, software, and/or firmware form for execution by the device controller 2230.
A command provided from the host 2100 to storage device 2200 is provided to the device DMA 2232 via a device interface 2201. The device DMA 2232 communicates the input command to the command manager 2234. The command manager 2234 allocates the buffer RAM 2240 to receive data via the buffer manager 2235. Once ready to transfer data, the command manager 2234 will send a transmission ready complete signal to the host 2100.
The host 2100 may send data to the storage device 2200 in response to the transmission ready complete signal. The data may be sent to the storage device 2200 through the host DMA 2132 and the host interface 2101. The storage device 2200 stores the received data in the buffer RAM 2240 through the device DMA 2232 and the buffer manager 2235. The data stored in the buffer RAM 2240 is provided to the flash manger 2237 via the flash DMA 2233. The flash manager 2237 stores data at a selected address of the flash memory 2210 in accordance with address mapping information provided by the FTL 2236.
Once a data transfer operation and program operation associated with a command are completed, the storage device 2200 will send a response signal to the host 2100 via an interface in order to inform the host 2100 that the command has been completed. Based on a response signal, the host 2100 informs the device driver 2120, file system 2115, and application 2110 whether or not the received command is complete and terminates operation(s) associated with the command.
The memory cell array 110 contains a plurality of memory blocks BLK1 to BLKn, each of which is formed of a plurality of pages. Each page may be formed of a plurality of memory cells. The flash memory 2210 performs an erase operation by the memory block and a write or a read operation by the page.
Each memory cell may be used to store single-bit data (i.e., a single-level memory cell or SLC) or multi-bit data (i.e., a multi-level memory cell or MLC). Each SLC will have an erase state or a program state based on its threshold voltage.
Each MLC will have an erase state or one of a plurality of program states based on its threshold voltage. The flash memory 2210 may include SLC and/or MLC.
The data I/O circuit 120 is connected with the memory cell array 110 via a plurality of bit lines. Thus, during a program operation, the data I/O circuit 120 receives “program data” from an external device to be programmed to a selected page 111 of the memory cell array 110, and during a read operation, the data I/O circuit 120 will read data from the selected page 111 to thereafter provide to an external device.
The address decoder 130 is connected with the memory cell array 110 via a plurality of word lines. The address decoder 130 selects a memory block or a page in response to an address ADDR. Herein, an address for selecting a memory block may be named a block address, and an address for selecting a page may be named a page address. Below, it is assumed that one page 111 of a first memory block BLK1 is selected.
The control logic 140 may be used to control programming, erasing, and reading of data in relation to the flash memory 1000. For example, during a program operation, the control logic 140 controls the address decoder 130 such that a program voltage is supplied to a selected word line and the data I/O circuit 120 such that data is programmed at the selected page 111. The control logic 140 controls the programming, erasing, and reading of data in relation to the flash memory 1000 in accordance with one or more control signals CTRL received from the device controller 2230. (See,
A word line (e.g., WLi) is connected with a plurality of memory cells. A set of memory cells that are connected to the selected word line WLi and are simultaneously programmed is named “page”. In
Returning to
Regardless of actual erase unit size, the host 2100 receives information indicating the erase unit size from the storage device 2200 and partitions at least one logical address (step S240). A logical address partition unit of the host 2100 may correspond to the erase unit size provided from the storage device 2200. The host 2100 uses the erase unit size or ‘N’ times the erase unit size, where N is an integer greater than 1, as a basic unit to partition a logical address. Hereafter, each of partitioned areas of the logical address will be referred to as a “host block”.
Referring to
Referring to
Hence, the fourth host block illustrated in
In the storage system 2000 of
In the foregoing context, the host block may be set up during an initialization procedure that is executed (e.g.,) when the storage device 2200 is connected to the host 2100. Further, the host block may be assigned one state from a group of states comprising; an open state, a write state, an invalidate state, and a close state. Here, the host block will be assigned a state according to the state of the corresponding erase unit, and the host 2100 may perform different operations depending on the particular state of the host block.
Upon receiving a request for transition to an open state, the storage device 2200 may newly allocate an erase unit.
In
That the source host block no longer includes valid data may mean that no valid data exists in an erase unit allocated to the source host block. For this reason, the storage system 2000 of
Herein, to invalidate valid data of the second erase unit means to remove a mapping relationship between logical addresses and physical addresses that is registered in a mapping table.
Referring to
Referring to
At the write state, if filled with new data, the fourth host block may be allocated to a new erase block, for example, a first erase block. In this case, since mapping information is updated, valid data of the second erase unit is invalidated. The second erase unit is made into a free block only through an erase operation without a valid data copying operation.
The host 2100 invalidates a source host block by moving valid data of the source host block into a target host block or providing a trim command. At this time, an erase unit allocated to the source host block is perfectly invalidated, which enables generating a free block without a valid data copying operation of garbage collection.
As described above, a new command may be defined between a host and a storage device to prevent garbage collection from being performed in the storage device. This may be called an “anti-garbage command”. In the anti-garbage command, the host requests erase unit size information, and the storage device provides the erase unit size information in relation to its constituent memory form, e.g., flash memory. The host partitions a logical address using the erase unit size information, and sets the partitioned segments to host blocks, respectively. Each host block may experience state transitions according to a defined state transition order, such as: Open state→Write state→Close state→Invalidate state.
Garbage collection according to certain embodiments of the inventive concept need not cause a valid page copying operation because no valid pages remain in an erase unit, thereby preventing the reduction of memory system performance due to garbage collection and the commensurate reduction in memory cell lifetime.
Not only is a user device according to an embodiment of the inventive concept applied to a two-dimensional flash memory, but it is applied to a three-dimensional flash memory.
The data input/output circuit 220 is connected with the 3D cell array 210 via a plurality of bit lines. The data input/output circuit 220 receives data from an external device or outputs data read from the 3D cell array 210 to the external device. The address decoder 230 is connected with the 3D cell array 210 via a plurality of word lines and selection lines GSL and SSL. The address decoder 230 selects a word line in response to an address ADDR.
The control logic 240 controls operations of the flash memory 2210 including a read operation, a program operation, an erase operation, and so on. For example, at a program operation, the control logic 240 controls the address decoder 230 such that a program voltage is supplied to a selected word line and the data input/output circuit 220 such that data is programmed.
A gate electrode layer and an insulation layer are deposited above the substrate SUB in turn. An information storage layer is formed between the gate electrode layers and the insulation layers.
V-shaped pillars are formed when the gate electrode layer and the insulation layer are patterned in a vertical direction. The pillars are in contact with the substrate SUB via the gate electrode layers and the insulation layers. In each pillar, an outer portion may be a vertical active pattern and may be formed of channel semiconductor and an inner portion may be a filling dielectric pattern and may be formed of an insulation material such as silicon oxide.
The gate electrode layers of the memory block BLK1 may be connected with a ground selection line GSL, a plurality of word lines WL1 to WL8, and a string selection line SSL. The pillars of the memory block BLK1 are connected with a plurality of bit lines BL1 to BL3. In
The string selection transistors SST are connected with string selection lines SSL1 to SSL3. The memory cells MC1 to MC8 are connected with corresponding word lines WL1 to WL8, respectively. The ground selection transistors GST are connected with a ground selection line GSL. In each cell string, the string selection transistor SST is connected with a bit line, and the ground selection transistor GST is connected with the common source line CSL.
Memory cells MC1 to MC8 are connected to corresponding word lines WL1 to WL8, and a group of memory cells that are connected to a word line and are simultaneously programmed are named a page. The memory block BLK1 is constituted by a plurality of pages. Also, a word line is connected with a plurality of pages. Referring to
Meanwhile, a user device according to an embodiment of the inventive concept may be applied to or used in various products. The user device according to an embodiment of the inventive concept may be implemented in electronic devices, such as, but not limited to, a personal computer, a digital camera, a camcorder, a handheld phone, an MP3 player, a PMP, a PSP, a PDA, and so on. A storage medium of the user device may be implemented with storage devices, such as, but not limited to, a memory card, a USB memory, a solid state drive (SSD), and so on.
The host 3100 writes data at the memory card 3200 and reads data from the memory card 3200. The host controller 3110 provides the memory card 3200 with a command (e.g., a write command), a clock signal CLK generated from a clock generator (not shown) in the host 3100, and data through the host connection unit 3120.
The card controller 3220 stores data at the flash memory 3230 in response to a command input through the card connection unit 3210. The data is stored in synchronization with a clock signal generated from a clock generator (not shown) in the card controller 3220. The flash memory 3230 stores data transferred from the host 3100. For example, in case the host 3100 is a digital camera, the memory card 3200 may store image data.
The SSD 4200 exchanges signals SGL with the host 4100 through a signal connector 4211 and is supplied with a power through a power connector 4221. The SSD 4200 includes a plurality of flash memories 4201 to 420n, an SSD controller 4210, and an auxiliary power supply 4220.
The plurality of flash memories 4201 to 420n may be used as a storage medium of the SSD 4200. Not only may the SSD 4200 employ the flash memory, but it may employ nonvolatile memory devices. The flash memories 4201 to 420n are connected with the SSD controller 4210 through a plurality of channels CH1 to CHn. One channel is connected with one or more flash memories. Flash memories connected with one channel may be connected with the same data bus.
The SSD controller 4210 exchanges signals SGL with the host 4100 through the signal connector 4211. The signals SGL may include a command, an address, data, and so on. The SSD controller 4210 is adapted to write or read out data to or from a corresponding flash memory according to a command of the host 4100. The SSD controller 4210 will be more fully described with reference to
The auxiliary power supply 4220 is connected with the host 4100 through the power connector 4221. The auxiliary power supply 4220 is charged by a power PWR from the host 4100. The auxiliary power supply 4220 may be placed inside or outside the SSD 4200. For example, the auxiliary power supply 4220 may be put on a main board to supply an auxiliary power to the SSD 4200.
The NVM interface 4211 may scatter data transferred from the buffer memory 4215 into channels CH1 to CHn. The NVM interface 4211 transmits data read from flash memories 4201 to 420n to the buffer memory 4215. The NVM interface 4211 may use a flash memory interface manner, for example. That is, the SSD controller 4210 may perform a read, a write, and an erase operation according to the flash memory interface manner.
The host interface 4212 may provide an interface with an SSD 4200 according to the protocol of the host 4100. The host interface 4212 may communicate with the host 4100 using USB (Universal Serial Bus), SCSI (Small Computer System Interface), PCI express, ATA, PATA (Parallel ATA), SATA (Serial ATA), SAS (Serial Attached SCSI), or the like. The host interface 4212 may also perform a disk emulation function which enables the host 4100 to recognize the SSD 4200 as a hard disk drive (HDD).
The ECC circuit 4213 may generate an error correction code ECC using data transferred to the flash memory 4201 to 420n. The error correction code ECC thus generated may be stored at a spare area of the flash memory 4201 to 420n. The ECC circuit 4213 may detect an error of data read from the flash memory 4201 to 420n. If the detected error is correctable, the ECC circuit 4213 may correct the detected error.
The CPU 4214 may analyze and process signals received from a host 4100 (refer to
The buffer memory 4215 may temporarily store write data provided from the host 4100 or data read from a flash memory. Also, the buffer memory 4215 may store metadata to be stored in the flash memories 4201 to 420n or cache data. At sudden power-off, metadata or cache data stored at the buffer memory 4215 may be stored in the flash memories 4201 to 420n. The buffer memory 4215 may be implemented with a DRAM, an SRAM, and so on.
Referring to
While the inventive concept has been described with reference to exemplary embodiments, it will be apparent to those skilled in the art that various changes and modifications may be made without departing from the scope of the following claims.
Number | Date | Country | Kind |
---|---|---|---|
10-2014-0065309 | May 2014 | KR | national |