US20180158492A1 - Storage device operating differently according to temperature of memory - Google Patents
Storage device operating differently according to temperature of memory Download PDFInfo
- Publication number
- US20180158492A1 US20180158492A1 US15/626,574 US201715626574A US2018158492A1 US 20180158492 A1 US20180158492 A1 US 20180158492A1 US 201715626574 A US201715626574 A US 201715626574A US 2018158492 A1 US2018158492 A1 US 2018158492A1
- Authority
- US
- United States
- Prior art keywords
- nonvolatile memory
- memory
- temperature
- program operation
- nonvolatile
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/04—Arrangements for writing information into, or reading information out from, a digital store with means for avoiding disturbances due to temperature effects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/02—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements
- G11C11/16—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements using elements in which the storage effect is based on magnetic spin effect
- G11C11/165—Auxiliary circuits
- G11C11/1673—Reading or sensing circuits or methods
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/02—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements
- G11C11/16—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements using elements in which the storage effect is based on magnetic spin effect
- G11C11/165—Auxiliary circuits
- G11C11/1695—Protection circuits or methods
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/406—Management or control of the refreshing or charge-regeneration cycles
- G11C11/40626—Temperature related aspects of refresh operations
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/56—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
- G11C11/5621—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
- G11C11/5628—Programming or writing circuits; Data input circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C13/00—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
- G11C13/0002—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
- G11C13/0021—Auxiliary circuits
- G11C13/0069—Writing or programming circuits or methods
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/3418—Disturbance prevention or evaluation; Refreshing of disturbed memory data
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/349—Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2211/00—Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C2211/56—Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
- G11C2211/564—Miscellaneous aspects
- G11C2211/5641—Multilevel memory having cells with different number of storage levels
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1015—Read-write modes for single port memories, i.e. having either a random port or a serial port
- G11C7/1045—Read-write mode select circuits
Definitions
- the inventive concept relates to electronic devices, and more particularly, relates to configurations and operations of a storage device that may store and output data.
- An electronic device may include various electronic circuits, many of which are integrated circuits.
- the electronic device may perform its own function(s) and provide a service to a user, according to operations of the electronic circuits included in the electronic device.
- a storage device is an example of an electronic device.
- the storage device may include a memory element.
- the storage device may store data in the memory element, or may output data stored in the memory element.
- the storage device may provide a storage service to a user.
- the storage device including the semiconductor memory element may operate at high speed and may be resistant to damage from physical impact.
- the storage device including the semiconductor memory element still requires considerations of various factors such as lifespan, data reliability, power consumption, and the like.
- the storage device may operate with relatively large power consumption and operational performance of the storage device may be degraded.
- the temperature of the memory element of the storage device excessively increases, the memory element may be damaged and an error may occur in data stored in the storage device, and the data may be lost.
- damage to the memory element may cause a reduction in the lifespan of the storage device.
- Example embodiments of the inventive concept may provide a storage device which may operate differently according to the temperature of a memory.
- the storage device for example, according to the example embodiments of inventive concept may control different operational schemes according to the temperature of the memory such that the temperature of the memory does not excessively increase.
- a storage device may include a nonvolatile memory; and a memory controller configured to control a first program operation on the nonvolatile memory when a temperature of the nonvolatile memory is less than a first reference value and control a second program operation on the nonvolatile memory when the temperature of the nonvolatile memory is equal to or greater than the first reference value, in which the first program operation and the second program operation are performed on data stored in the nonvolatile memory.
- the second program operation consumes less power than the first program operation
- the memory controller is further configured to adjust an operational condition of the nonvolatile memory, such that bandwidth on the nonvolatile memory remains equivalent during the first and second program operations.
- the example embodiments of the inventive concept may provide a storage device including a memory and a controller.
- the controller may control first and second program operations on the memory such that data is stored in the memory.
- the controller may control execution of the first program operation.
- the controller may control execution of the second program operation.
- the second program operation may consume a smaller amount of power than the first program operation.
- the second program operation may include a smaller number of voltage applying operations than the first program operation.
- memory cells of the memory may include multi-level cells or triple-level cells.
- the first program operation may include a multi-level cell program operation or a triple-level cell program operation
- the second program operation may include a single-level cell program operation.
- the controller may adjust an operational condition of the memory such that bandwidth on the memory remains equivalent during the first and second program operations.
- the memory may include a plurality of memories, and the controller may transmit first data and second data to at least some of the plurality of memories. For example, when the temperature of a first memory among the plurality of memories is equal to or higher than a reference value, and the temperature of each of second and third memories among the plurality of memories is lower than the reference value, the controller may transmit (or re-transmit) the first data which is directed to the first memory to the second memory according to the second program operation, and may transmit (or re-transmit) the second data, which is directed to the second memory, to the third memory according to the first program operation.
- the controller may perform the second program operation of transmitting the first data to the second memory together with the first program operation of transmitting the second data to the third memory concurrently.
- a storage device includes a plurality of nonvolatile memories; a memory controller configured to receive instructions from a host, and to control read and write operations on data stored in the nonvolatile memories, and control at least a first program operation and a second program operation; and at least one temperature sensor being arranged substantially adjacent at least one nonvolatile memory of the plurality of nonvolatile memories, the at least one temperature sensor having an output connected to the memory controller to provide temperature information to the memory controller.
- the memory controller may determine a temperature of the at least one nonvolatile memory, and control execution of the first program operation when the determined temperature of the at least one nonvolatile memory is less than a first reference value.
- the memory controller controls execution of the second program operation when the determined temperature of the at least one nonvolatile memory is equal to or greater than the first reference value.
- the memory controller may decrease a bandwidth of the at least one nonvolatile memory when the determined temperature of the at least one nonvolatile memory is equal to or greater than a second reference value that is greater than the first reference value.
- the memory controller restores the bandwidth of the at least one nonvolatile memory upon a determination that the determined temperature of the at least one nonvolatile memory has decreased to a temperature at least less than the second reference value.
- the at least one temperature sensor comprises a plurality of temperature sensors in which each one temperature sensor is arranged substantially adjacent a respective nonvolatile memory of the plurality of nonvolatile memories.
- the memory controller may further include a delay buffer to delay data transmission to the at least one nonvolatile memory.
- the memory controller may be further configured to tune an operational condition of the at least one nonvolatile memory during a transition from the first program operation to the second program operation by transmitting data to the delay buffer.
- the memory controller may be further configured to tune an operational condition of the at least one nonvolatile memory during a transition from the first program operation to the second program operation by controlling a decrease in an operating frequency of the at least one nonvolatile memory.
- the storage device may consume a small amount of power, and data reliability may be increased. Further, the memory of the storage device may be prevented from being suddenly damaged due to heat, and thus lifespan of the storage device may not be rapidly shortened.
- FIG. 1 is a block diagram illustrating an example configuration of a computing device which includes a storage device according to some example embodiments.
- FIG. 2 is a block diagram illustrating an example configuration of a storage device of FIG. 1 .
- FIGS. 3A and 3B are conceptual diagrams illustrating example implementations of a storage device of FIG. 2 .
- FIG. 4 is a flowchart illustrating an example operation of a storage device of FIG. 2 .
- FIG. 5 is a graph illustrating an example operation of a storage device of FIG. 2 .
- FIG. 6 is a graph illustrating example program operations of a storage device of FIG. 2 .
- FIG. 7 is a graph illustrating an example operation of a storage device of FIG. 2 which employs example program operations of FIG. 6 .
- FIG. 8 is a table illustrating an example of information which is managed by a memory controller of FIG. 2 .
- FIGS. 9 and 10 are conceptual diagrams illustrating example methods of managing memory areas of nonvolatile memories of FIG. 2 .
- FIG. 11 is a conceptual diagram illustrating an example method of rearranging data which is stored in nonvolatile memories of FIG. 2 .
- FIG. 12 is a graph illustrating an example operation of a storage device of FIG. 2 .
- FIG. 13 is a conceptual diagram illustrating example program operations of a storage device of FIG. 2 .
- FIG. 14 is a graph illustrating an example operation of a storage device of FIG. 2 which employs example program operations of FIG. 13 .
- FIGS. 15 and 16 are conceptual diagrams illustrating example methods of migrating data which is stored in nonvolatile memories of FIG. 2 .
- FIG. 17 is a conceptual diagram illustrating an example operation of a storage device of FIG. 2 which employs example program operations of FIG. 13 .
- FIGS. 18 and 19 are flowcharts illustrating example operations of a storage device of FIG. 2 .
- FIG. 20 is a graph illustrating examples associated with temperature which is managed by a storage device of FIG. 2 .
- FIG. 1 is a block diagram illustrating an exemplary configuration of a computing device which includes a storage device according to at least one embodiment of the inventive concept.
- a computing device 1000 may include, for example, a central processing unit (CPU) 1100 , a working memory 1200 , a storage device 1300 , a communication block 1400 , a user interface 1500 , and a bus 1600 .
- the computing device 1000 may be one of various electronic devices including but in no way limited to a desktop computer, a laptop computer, a tablet computer, a smart phone, a wearable device, a video game console, a workstation, a server, and/or the like.
- the CPU 1100 may control overall operations of the computing device 1000 .
- the CPU 1100 may process various kinds of arithmetical operations and/or logical operations.
- the CPU 1100 comprises hardware such as, for example, a special-purpose logic circuit (e.g., field programmable gate arrays (FPGA), application specific integrated circuits (ASICs), and/or the like) which is configured to process the operations.
- a special-purpose logic circuit e.g., field programmable gate arrays (FPGA), application specific integrated circuits (ASICs), and/or the like
- the CPU 1100 may be implemented with a general-purpose processor or microprocessor, a special-purpose processor, and/or an application processor which includes one or more processor cores.
- the working memory 1200 may store data used in an operation of the computing device 1000 .
- the working memory 1200 may temporarily store data processed or to be processed by the CPU 1100 .
- the working memory 1200 may be used, for example, as a buffer or a cache of the computing device 1000 .
- the working memory 1200 may include a volatile memory, such as a static random access memory (SRAM), a dynamic RAM (DRAM), a synchronous DRAM (SDRAM), and/or the like, and/or a nonvolatile memory, such as a flash memory, a phase-change RAM (PRAM), a magneto-resistive RAM (MRAM), a resistive RAM (ReRAM), a ferro-electric RAM (FRAM), and/or the like.
- SRAM static random access memory
- DRAM dynamic RAM
- SDRAM synchronous DRAM
- FRAM ferro-electric RAM
- the storage device 1300 may include one or more nonvolatile memories and a memory controller.
- the nonvolatile memories of the storage device 1300 may store data regardless of whether or not power is being continuously supplied.
- the storage device 1300 may include a nonvolatile memory, such as a flash memory, a PRAM, a MRAM, a ReRAM, a FRAM, and/or the like.
- the storage device 1300 may include a storage medium, such as a solid state drive (SSD), a card storage, an embedded storage, and/or the like.
- SSD solid state drive
- the communication block 1400 may communicate with an external device/system of the computing device 1000 .
- the communication block 1400 may include one or more interfaces that may support at least one of various wireless communication protocols, such as long term evolution (LTE), Worldwide
- WIMAX Microwave Access
- GSM global system for mobile communication
- CDMA code division multiple access
- NFC near field communication
- Wi-Fi wireless fidelity
- RFID radio frequency identification
- TCP/IP transfer control protocol/Internet protocol
- USB universal serial bus
- Firewire Firewire
- the user interface 1500 may facilitate a communication between a user and the computing device 1000 .
- the user interface 1500 may include, for example, an input interface, such as a keyboard, a mouse, a keypad, a button, a touch panel, a touch screen, a touch pad, a touch ball, a camera, a microphone, a gyroscope sensor, a vibration sensor, and/or the like.
- the user interface 1500 may include an output interface, such as a liquid crystal display (LCD), a light emitting diode (LED) display, an organic LED (OLED) display, an active matrix OLED (AMOLED) display, a speaker, a motor, and/or the like.
- LCD liquid crystal display
- LED light emitting diode
- OLED organic LED
- AMOLED active matrix OLED
- the bus 1600 is arranged to provide communication paths between components of the computing device 1000 .
- the components of the computing device 1000 may exchange data with one another based on the format of the bus 1600 .
- the bus format may include at least one of various interface protocols, such as USB, small computer small interface (SCSI), peripheral component interconnect express (PCIe), mobile PCIe (M-PCIe), advanced technology attachment (ATA), parallel ATA (PATA), serial ATA (SATA), serial attached SCSI (SAS), integrated drive electronics (IDE), enhanced IDE (EIDE), nonvolatile memory express (NVMe), universal flash storage (UFS), and/or the like, just to name some non-limiting possibilities.
- SCSI small computer small interface
- PCIe peripheral component interconnect express
- M-PCIe mobile PCIe
- ATA advanced technology attachment
- PATA parallel ATA
- SATA serial ATA
- SAS serial attached SCSI
- IDE integrated drive electronics
- EIDE enhanced IDE
- NVMe nonvolatile memory express
- UFS universal
- the storage device 1300 may be implemented according to at least one of the exemplary embodiments of the present disclosure.
- the storage device 1300 may differently operate depending on temperature of a nonvolatile memory included therein.
- the storage device 1300 may control and/or activate different operational schemes depending on the temperature of the nonvolatile memory such that the temperature of the nonvolatile memory does not excessively increase.
- Example configurations and example operations of the storage device 1300 will now be described with reference to FIGS. 2 to 20 .
- the storage device 1300 and the nonvolatile memory are provided in the following descriptions, the exemplary embodiments of the inventive concept are not limited thereto.
- the inventive concept may be employed in any type of device which includes a memory device.
- the example embodiments of the inventive concept may also be applied to operations of the volatile memory and/or the nonvolatile memory included in the working memory 1200 .
- the following descriptions are provided to facilitate better understanding, and are not intended to limit the present disclosure.
- FIG. 2 is a block diagram illustrating an exemplary configuration of a storage device of FIG. 1 .
- the CPU 1100 may communicate with the storage device 1300 through the bus 1600 .
- an object which is capable of access to the storage device 1300 may be referred to as a “host”.
- the CPU 1100 is one example of objects that may become the host, and may be referred to as a host 1100 below.
- the host 1100 may exchange data with the storage device 1300 .
- the storage device 1300 may provide a storage service to the host 1100 in response to a command received from the host 1100 .
- the host 1100 may transmit to the storage device 1300 a write command and data which includes write data.
- the storage device 1300 may store requested write data in response to the write command.
- the host 1100 may transmit a read command to the storage device 1300 .
- the storage device 1300 may output read data to the host 1100 in response to receiving the read command.
- the storage device 1300 may include one or more nonvolatile memories 1310 and a memory controller 1330 .
- a person of ordinary skill in the art should understand and appreciate that he number of nonvolatile memories included in the storage device 1300 shown in FIG. 2 may be variously changed or modified.
- each of the nonvolatile memories 1311 , 1312 , and 1313 may store data requested by the host 1100 .
- each of the nonvolatile memories 1311 , 1312 , and 1313 may include memory areas to store data.
- each of the nonvolatile memories 1311 , 1312 , and 1313 may include a memory cell array formed along a plurality of word lines and a plurality of bit lines.
- a type and a configuration of each of the nonvolatile memories 1311 , 1312 , and 1313 may be variously changed or modified from the arrangement shown in the drawings.
- the memory controller 1330 which comprises hardware such as integrated circuits, may control overall operations of the storage device 1300 .
- the memory controller 1330 may schedule operations of the nonvolatile memories 1311 , 1312 , and 1313 , and/or may encode and decode signals/data read from the storage device 1300 .
- the memory controller 1330 may control a program operation on the nonvolatile memories 1311 , 1312 , and 1313 , and thus data requested by the host 1100 may be stored in the nonvolatile memories 1311 , 1312 , and 1313 .
- Each of the nonvolatile memories 1311 , 1312 , and 1313 may output data requested by the host 1100 .
- a read operation may be performed on data stored in the nonvolatile memories 1311 , 1312 , and 1313 under control of the memory controller 1330 .
- data stored in the nonvolatile memories 1311 , 1312 , and 1313 may be provided to the host 1100 .
- an internal management operation (e.g., a read reclaim, a garbage collection, and/or the like) may be performed on data stored in the nonvolatile memories 1311 , 1312 , and 1313 under control of the memory controller 1330 .
- the memory controller 1330 may manage a wear level of each of the nonvolatile memories 1311 , 1312 , and 1313 .
- the wear level may be associated with the number of times where a specific nonvolatile memory has been accessed, and thus a high wear level may indicate that the remaining lifespan of the specific nonvolatile memory is relatively short.
- the memory controller may use this information regarding the wear level to utilize other nonvolatile memories with a relatively lower wear level to as much as possible, substantially equalize usage. It is possible, for example, to move heavily accessed data to another nonvolatile memory with a lower wear level than the specific nonvolatile memory.
- the storage device 1300 may operate with larger power consumption than when the temperatures of the nonvolatile memories are lower, and operational performance of the storage device 1300 may be degraded at the increased temperatures.
- the temperature of the nonvolatile memories 1311 , 1312 , and 1313 may excessively increase to the point where the nonvolatile memories 1311 , 1312 , and 1313 may be physically damaged. This excessive increase in temperature may cause an error or loss of data stored in the nonvolatile memories 1311 , 1312 , and 1313 and may shorten the overall lifespan of the storage device 1300 .
- the storage device 1300 may manage the temperature of the nonvolatile memories 1311 , 1312 , and 1313 under control of the memory controller 1330 .
- One way the temperature may be managed is to restrict usage of the nonvolatile memories to reduce the amount of heat that may be generated.
- the reduction in usage may be realized in different manners. For example, there can be fewer overall operations to read/write data from the nonvolatile memories, or the types of operations performed on the nonvolatile memories may be changed to reduce the generation of heat, at least until the temperature of the nonvolatile memories 1312 , 1312 , 1313 is reduced to an amount where any restrictions on usage can be withdrawn.
- the memory controller 1330 may collect information associated with the temperature of the nonvolatile memories 1311 , 1312 , and 1313 .
- the memory controller 1330 may change operations of the nonvolatile memories 1311 , 1312 , and 1313 .
- FIG. 3A is a conceptual diagram illustrating an example implementation of a storage device of FIG. 2 .
- the storage device 1300 of FIG. 2 may be implemented like a storage device 1300 a of FIG. 3A .
- the nonvolatile memories 1311 , 1312 , and 1313 and the memory controller 1330 of the storage device 1300 a may be mounted or assembled on a printed circuit board (PCB) 1301 .
- PCB printed circuit board
- the memory controller 1330 may be connected to the nonvolatile memories 1311 , 1312 , and 1313 through conductive patterns which are provided on the PCB 1301 .
- the conductive pattern may include conductive material, such as a wire pattern, a trace pattern, and/or the like.
- the storage device 1300 a may include temperature sensors 1351 , 1352 , and 1353 .
- temperature sensors 1351 , 1352 , and 1353 may be mounted or assembled on the PCB 1301 .
- the temperature sensors 1351 , 1352 , and 1353 may be connected to the memory controller 1330 through conductive patterns which are provided on the PCB 1301 .
- the temperature sensors 1351 , 1352 , and 1353 may be disposed around (e.g., beside, adjacent) the nonvolatile memories 1311 , 1312 , and 1313 respectively.
- some or all of the temperature sensors 1351 , 1352 , and 1353 may be disposed on or inside of respective nonvolatile memories 1311 , 1312 , and 1313 .
- the temperature sensors 1351 , 1352 , and 1353 may provide the memory controller 1330 with information associated with the temperature of the respective nonvolatile memories 1311 , 1312 , and 1313 .
- the memory controller 1330 may measure, estimate, and/or predict the temperature of each of the nonvolatile memories 1311 , 1312 , and 1313 .
- FIG. 3B is a conceptual diagram illustrating an example of an implementation of a storage device such as shown in FIG. 2 .
- the storage device 1300 of FIG. 2 may be implemented with a construction of a storage device 1300 b shown in FIG. 3B .
- the nonvolatile memories 1311 , 1312 , and 1313 and the memory controller 1330 of the storage device 1300 b may be mounted or assembled on a PCB 1301 .
- the memory controller 1330 may be connected to the nonvolatile memories 1311 , 1312 , and 1313 through conductive patterns which are provided on the PCB 1301 .
- the storage device 1300 b may include at least one temperature sensor 1351 .
- the temperature sensor 1351 may be mounted or assembled on the PCB 1301 .
- the temperature sensor 1351 may be connected to the memory controller 1330 through conductive patterns which are provided on the PCB 1301 .
- the storage device 1300 b may include only one temperature sensor 1351 .
- the memory controller 1330 may receive information associated with temperature from the temperature sensor 1351 .
- the memory controller 1330 may estimate or predict temperature of each of the nonvolatile memories 1311 , 1312 , and 1313 , based on the received information from the temperature sensor 1351 .
- the memory controller 1330 may obtain information associated with at least one offset between the temperature measured by the temperature sensor 1351 and a temperature of each of the nonvolatile memories 1311 , 1312 , and 1313 in advance (e.g., in advance before the storage device 1300 operates).
- the memory controller 1330 may estimate or predict the temperature of each of the nonvolatile memories 1311 , 1312 , and 1313 , based on the temperature measured by the temperature sensor 1351 and the offset information.
- the offset information may be different depending on location/disposition/characteristic of each of the nonvolatile memories 1311 , 1312 , and 1313 .
- the offset information may be obtained through an experiment, a test and/or a simulation before the storage device 1300 operates.
- the offset information may be corrected or compensated by taking into account various factors, such as a surrounding condition, a spatial disposition, an element characteristic, an operational performance, and/or the like, of the components on the PCB 1301 .
- factors such as a surrounding condition, a spatial disposition, an element characteristic, an operational performance, and/or the like, of the components on the PCB 1301 .
- actual temperature of the nonvolatile memory 1311 which is in an idle state may be 35 ⁇ and actual temperature of the nonvolatile memory 1311 which operates with maximum performance may be 70 ⁇ .
- the memory controller 1330 may manage a variety of information to estimate or predict the temperature of each of the nonvolatile memories 1311 , 1312 , and 1313 .
- FIG. 3B illustrates that one temperature sensor 1351 is disposed near the nonvolatile memory 1311 .
- the number of temperature sensors and location of the temperature sensors may be variously changed or modified.
- the temperature sensor 1351 may be disposed around another nonvolatile memory, or may be disposed on or inside the nonvolatile memory 1311 .
- One or more additional temperature sensors may be further provided.
- the storage device 1300 b may be equipped, mounted, or assembled on a main board 1001 .
- the storage device 1300 b may be connected to a port 1010 through a wire cable, or may be equipped in a slot 1020 through a connector.
- the storage device 1300 b may communicate with the CPU 1100 , which is mounted or assembled on the main board 1001 , according to various constructions.
- the temperature sensor 1030 may be mounted or assembled on the main board 1001 . There may be one or more temperature sensors on the storage device 1300 b as well as being arranged on the main board.
- the temperature sensor 1030 may be provided outside the storage device 1300 b, and may measure or estimate overall temperature of a system on the main board 1001 .
- the memory controller 1330 may receive information associated with temperature from the temperature sensor 1030 , to estimate or predict the temperature of each of the nonvolatile memories 1311 , 1312 , and 1313 .
- the memory controller 1330 may use the temperature measured by the temperature sensor 1030 to estimate the temperature of each of the nonvolatile memories 1311 , 1312 , and 1313 , taking into account spatial disposition of the storage device 1300 b and the temperature sensor 1030 .
- the storage device 1300 a may also be mounted or assembled on the main board 1001 in a same or similar manner as the storage device 1300 b shown in FIG. 3B .
- the memory controller 1330 may receive temperature information from the temperature sensors 1030 , 1351 , 1352 , and/or 1353 of FIGS. 3A and 3B periodically or if appropriate in view of certain specified conditions. For example, when a particular condition is satisfied (e.g., when a command is received from the host 1100 of FIG. 2 ), the memory controller 1330 may receive the temperature information from one or more of the temperature sensors 1030 , 1351 , 1352 , and/or 1353 of FIGS. 3A and 3B .
- these examples are provided to facilitate understanding of the inventive concept, and the example embodiments may be variously changed or modified.
- FIG. 4 is a flowchart describing an example of an operation of a storage device of FIG. 2 .
- FIGS. 2 and 4 will be referred to together.
- the memory controller 1330 of the storage device 1300 may receive data from the host 1100 .
- the received data may include a write command and write data.
- the memory controller 1330 may determine (or estimate) temperature of a target nonvolatile memory.
- the target nonvolatile memory may refer to a nonvolatile memory which is selected, from among the nonvolatile memories 1311 , 1312 , and 1313 , by the memory controller 1330 to store data requested by the host 1100 .
- the memory controller 1330 may determine the temperature of the target nonvolatile memory based on a temperature measured by at least one of the temperature sensors 1030 , 1351 , 1352 , and/or 1353 (such as shown in FIGS. 3A and 3B ).
- the memory controller 1330 may compare the determined temperature of the target nonvolatile memory with a reference value Tref 1 .
- the reference value Tref 1 may indicate a reference temperature of a case where the temperature of the target nonvolatile memory is increasing and attention is recommended.
- the memory controller 1330 may take corrective measures associated with decreasing the temperature of the target nonvolatile memory to be explained herein below.
- the reference value Tref 1 may be selected to have a suitable value to prevent damage on the target nonvolatile memory. In other words, the value may be sufficiently low so that if the measured (or estimated) temperature is greater than Tref 1 , there would be sufficient time to undertake corrective action that may prevent heat-related damage from occurring to the storage device 1300 .
- the value selected for the reference value Tref 1 may be varied according to need and/or in view of previously-measured (or estimated) data.
- a first program operation S 135 may be performed.
- the memory controller 1330 may control a first program operation such that data is stored in the target nonvolatile memory.
- the first program operation may be, for example, any operation typically associated with the nonvolatile memory of the storage device 1300 .
- operation S 140 may be performed.
- the memory controller 1330 may compare the determined temperature of the target nonvolatile memory with another reference value Tref 2 to ascertain whether the determined temperature is sufficiently high (e.g. greater than Tref 2 ) to warrant actions that would provide for a more substantial decrease in the temperature of the target nonvolatile memory.
- the reference value Tref 2 may be greater than the reference value Tref 1 , and for example, may indicate the temperature of a case where the temperature of the target nonvolatile memory has excessively increased. At the reference value Tref 2 , it may be likely that the target nonvolatile memory is damaged or is about to be damaged.
- the reference value Tref 2 may also be variously selected and changed to have a suitable value below a temperature that may cause damage the target nonvolatile memory so as to permit time to take correction actions which may include controlling a second program operation to be described below.
- operation S 145 may be performed.
- the memory controller 1330 may control a second program operation such that data is stored in the target nonvolatile memory.
- the second program operation performed in S 145 may include a program operation that consumes a smaller amount of power than the first program operation of operation S 135 .
- the second program operation may use less power than a current operation, and less power than the first program operation, and a reduced temperature of the target nonvolatile memory may result.
- a program operation performed on the target nonvolatile memory consumes a relatively large amount of power, the temperature of the target nonvolatile memory may continuously increase.
- the second program operation may be performed to prevent the temperature of the target nonvolatile memory from excessively increasing (e.g. increasing to be equal to or greater than the reference value Tref 2 ).
- the second program operation may result in the temperature of the nonvolatile memory decreasing faster than if the first program operation is performed.
- the operation of the nonvolatile memory according to the second program operation may be performed in terms of power consumption, data reliability, and lifespan of the target nonvolatile memory.
- the first program operation may be performed on the target nonvolatile memory.
- the first program operation may be performed without consideration of the determined temperature of the target nonvolatile memory.
- operation S 150 may be performed.
- the memory controller 1330 may control the target nonvolatile memory to decrease a bandwidth for the target nonvolatile memory.
- the bandwidth for the target nonvolatile memory decreases, an amount of power consumed by the target nonvolatile memory may be reduced, A reduced bandwidth may result in the temperature of the target nonvolatile memory decreasing to a level where other operations may be performed.
- the storage device 1300 may operate differently depending on the temperature of the target nonvolatile memory.
- the memory controller 1330 may change an operational scheme to decrease the temperature of the target nonvolatile memory below a certain reference value.
- the inventive concept may prevent the temperature of the target nonvolatile memory from excessively increasing.
- Decreasing the bandwidth in operation S 150 may effectively decrease the temperature of the target nonvolatile memory. However, decreasing the bandwidth may degrade overall performance of the storage device 1300 and may be disadvantageous for a user. Thus, in the example embodiments, such as shown in the flowchart in FIG. 4 , the memory controller 1330 may try to control the second program operation in operation S 145 , prior to decreasing the bandwidth. As will be described below, the second program operation (e.g. S 145 ) may be selected so as to refrain from a degrading a performance of the storage device 1300 .
- FIGS. 6 and 13 will illustrate some examples associated with the first program operation and the second program operation, to facilitate understanding of the inventive concept by a person of ordinary skill in the art.
- the inventive concept is not limited to the examples shown and described herein, and there can be various changes or modifications made to manage the temperature of the nonvolatile memory.
- Operation S 160 may be performed after the operations S 135 , S 145 , and S 150 .
- the memory controller 1330 may determine whether storing data is finished. When storing data is not finished, the memory controller 1330 may successively determine the temperature of the target nonvolatile memory in operation S 120 . On the other hand, when storing data is finished, the example operation of FIG. 4 may be ended.
- FIG. 5 illustrates an example of a operation of a storage device such as shown in FIG. 2 .
- FIGS. 2 and 5 will be referred to together.
- the temperature of the target nonvolatile memory may be ‘Tb’.
- the bandwidth of the target nonvolatile memory which is a rate at which data may be written to or read from, may be restricted to reduce the power consumed by the target nonvolatile memory, and result in a decreased temperature of the storage device 1300 .
- the bandwidth for the target nonvolatile memory may increase and the temperature of the target nonvolatile memory may also increase to ‘Tc’.
- the temperature ‘Tc’ may be a temperature sufficiently high that may cause damage to the target nonvolatile memory.
- the memory controller 1330 may decrease the bandwidth for the target nonvolatile memory (refer to operation S 150 of FIG. 4 ).
- the temperature of the target nonvolatile memory may decrease to ‘Td’.
- the memory controller 1330 may recognize decrease in the temperature of the target nonvolatile memory, and at time ‘t 3 ’, may increase the bandwidth for the target nonvolatile memory again. Thus, the temperature of the target nonvolatile memory may increase to the ‘Tc’ again. At time ‘t 4 ’ and time ‘t 5 ’, the increase/decrease in the temperature of the target nonvolatile memory and increase/decrease in the bandwidth for the target nonvolatile memory may be repeated. Thus, there can be a fluctuation during the operative periods, such as during t 2 through t 5 , both in temperature, and in bandwidth, with a resultant fluctuation in performance due to the bandwidth being varied.
- Decreasing the bandwidth may be effective to decrease the temperature of the target nonvolatile memory, but as previously indicated herein above, may also degrade performance of the storage device 1300 .
- decreasing the bandwidth may be performed, for example, when a condition is indicative that damage and data lost may occur (e.g. a “dangerous condition”).
- the memory controller 1330 may first try to perform other operation (e.g., the second program operation of operation S 145 of FIG. 4 ) that consumes a smaller amount of power prior to decreasing the bandwidth of the target nonvolatile memory. In this way, a temperature of the target nonvolatile memory may be decreased sufficiently before performing a more restrictive action, which is to decrease the bandwidth.
- FIG. 6 is a graph illustrating some example program operations of a storage device such as shown in FIG. 2 . A first program operation and a second program operation are discussed.
- the nonvolatile memories 1311 , 1312 , and 1313 of FIG. 2 may include flash memories.
- a memory cell of the flash memory may be a single-level cell (SLC) capable of storing one (1) bit, a multi-level cell (MLC) capable of storing two (2) bits, or a triple-level cell (TLC) capable of storing three (3) bits.
- memory cells of the nonvolatile memories 1311 , 1312 , and 1313 may include TLCs or MLCs.
- a first case illustrates a voltage distribution with regards to the states of the triple-level cell TLC.
- the triple level cell has 3 bits, there are 2 3 states (e.g. 8 states) shown in case 1 .
- the TLC may have one state among an erase state E 0 and program states P 1 to P 7 according to a threshold voltage.
- a second case of FIG. 6 illustrates a voltage distribution in regards to states of the MLC.
- the MLC is capable of storing two (2) bits (e.g. 4 states)
- the MLC may have one state among an erase state E 0 and program states P 1 to P 3 according to a threshold voltage.
- a third case of FIG. 6 illustrates a voltage distribution in regards to states of the SLC.
- the SLC is capable of storing one bit (e.g. 2 states)
- the SLC may have an erase state E 0 or a program state P 1 according to a threshold voltage.
- program operations may be preformed to cause the various flash memories have a specific state.
- a triple-level cell program operation may be performed to make the TLC have a specific state.
- a multi-level cell program operation may be performed to make the MLC have a specific state.
- a single-level cell program operation may be performed to make the SLC have a specific state.
- the SLC program operation may be performed even on the TLC or the MLC.
- the TLC or the MLC may be programmed to have only the program state P 1 , instead of having one among several program states P 1 to P 7 or P 1 to P 3 respectively.
- the first program operation, the TLC and the MLC may have the larger number of states than the SLC.
- a margin between states of the TLC and a margin between states of the MLC may be smaller than a margin between states of the SLC.
- the TLC program operation and the MLC program operation may accompany the large number of times of voltage applying operations, to precisely make the TLC and the MLC have a specific state. Consequently, the TLC program operation and the MLC program operation may consume a larger amount of power than the SLC program operation.
- the first program operation of operation S 135 of FIG. 4 may include the TLC program operation or the MLC program operation.
- the second program operation of operation S 145 of FIG. 4 may include the SLC program operation.
- the second program operation may result in a lesser quantity of times voltage applying operations occur than when compared with the first program operation.
- the second program operation may consume a smaller amount of power than the first program operation.
- the second program operation is different from the first program operation in terms of a manner for storing data, and but the second program operation may not provide a lower performance than the first program operation.
- FIG. 7 is a graph illustrating an example of an operation of a storage device of FIG. 2 which employs example program operations of FIG. 6 .
- the temperature of the target nonvolatile memory may be ‘Tb’.
- the target nonvolatile memory begins to operate from time ‘t 1 ’, the bandwidth for the target nonvolatile memory and the temperature of the target nonvolatile memory may increase.
- the memory controller 1330 of FIG. 2 may control the first program operation (e.g., the TLC or MLC program operation) on the target nonvolatile memory, until the temperature of the target nonvolatile memory reaches ‘Tc’.
- the temperature of the target nonvolatile memory may increase to the ‘Tc’.
- the memory controller 1330 may control the second program operation (e.g., the SLC program operation) on the target nonvolatile memory, to prevent the temperature of the target nonvolatile memory from excessively increasing.
- the second program operation may be continued until the temperature of the target nonvolatile memory reaches ‘Td’ at time ‘t 3 ’.
- the memory controller 1330 may control the first program operation again on the target nonvolatile memory. In this manner, increase/decrease in the temperature of the target nonvolatile memory may be repeated at time ‘t 4 ’ and time ‘t 5 ’, and thus the first program operation and the second program operation may be alternately performed.
- the bandwidth for the target nonvolatile memory may somewhat increase along a dotted line G 2 . This increase occurs because an amount of bits transmitted according to the second program operation is smaller than an amount of bits transmitted according to the first program operation and thus additional bits may occupy a portion of bandwidth.
- an increase in the bandwidth may not be desirable when the second program operation is executed in part to decrease the temperature of the target nonvolatile memory.
- the memory controller 1330 may tune an operating condition of the target nonvolatile memory while changing from the first program operation to the second program operation.
- the memory controller 1330 may tune the operating condition of the target nonvolatile memory such that the bandwidth for the target nonvolatile memory remains equivalent during the first program operation and the second program operation (refer to a solid line G 1 ).
- the phrase “the bandwidth remains equivalent” should not be interpreted as meaning that the bandwidth for the target nonvolatile memory remains physically constant. Rather, the phrase “the bandwidth remains equivalent” refers to a bandwidth for the target nonvolatile memory during the first program operation may be substantially equal to a bandwidth for the target nonvolatile memory during the second program operation, and the bandwidth for the target nonvolatile memory may not greatly vary during the first program operation and the second program operation.
- the memory controller 1330 may delay data transmission to the target nonvolatile memory to tune the operating condition of the target nonvolatile memory.
- the memory controller 1330 may include a delay buffer.
- the memory controller 1330 may adjust (e.g., decrease) an operating frequency of the target nonvolatile memory, to tune the operating condition of the target nonvolatile memory.
- the bandwidth for the target nonvolatile memory may remain equivalent (along the solid line G 1 ) even if the first program operation is changed to the second program operation.
- the temperature of the target nonvolatile memory may decrease more effectively.
- the bandwidth for the target nonvolatile memory may not decrease in the case of FIG. 7 , and thus performance of the storage device 1300 of FIG. 2 may not be degraded.
- FIG. 8 is a table illustrating an example of information which is managed by a memory controller of FIG. 2 . To facilitate understanding of this embodiment, FIG. 2 will be referred to together with FIG. 8 .
- the memory controller 1330 may manage information INF in regards to which data is stored in the nonvolatile memories 1311 , 1312 , and 1313 , which address area data is stored in, and which program operation is controlled to store data.
- the information INF may include information associated with a correspondence relationship between data stored in the nonvolatile memories 1311 , 1312 , and 1313 and an address of a memory area in which the data is stored.
- the information INF may include information associated with whether the data of the nonvolatile memories 1311 , 1312 , and 1313 is stored according to the first program operation or according to the second program operation.
- Some pieces of data may be stored according to a single manner of program operation. For example, as shown in FIG. 8 , data DAT 1 may be stored according to the first program operation, and data DAT 3 may be stored according to the second program operation. Some pieces of data may be stored according to several program operations. For example, a portion of the data DAT 2 may be stored according to the first program operation, and the other portion of the data DAT 2 may be stored according to the second program operation.
- each TLC may be programmed at only one program state P 1 even though each TLC may have several program states P 1 to P 7 (refer to FIG. 6 ).
- the SLC program operation on the TLC may require a larger size (e.g., a larger storage capacity) of a memory area to store the same data.
- additional management operations may be provided to manage data stored according to the second program operation. The management operations will be described with reference to FIGS. 9 to 11 .
- FIG. 9 is a conceptual diagram illustrating an example method of managing memory areas of nonvolatile memories of FIG. 2 .
- the memory controller 1330 of FIG. 2 may limit a size of a memory area which is programmed according to the second program operation in the nonvolatile memories 1311 , 1312 , and 1313 .
- the memory controller 1330 may control the nonvolatile memories 1311 , 1312 , and 1313 such that the size of the memory area programmed according to the second program operation in the nonvolatile memories 1311 , 1312 , and 1313 does not exceed the limited size.
- the memory controller 1330 may allow only 20% memory area of each of the nonvolatile memories 1311 , 1312 , and 1313 to be programmed according to the second program operation. For example, when the 20% memory area of each of the nonvolatile memories 1311 , 1312 , and 1313 is programmed according to the second program operation, the memory controller 1330 may allow only a first program operation for the remaining 80% memory area of each of the nonvolatile memories 1311 , 1312 , and 1313 .
- the memory area When the size of the memory area programmed according to the second program operation is limited, the memory area may be prevented from being rapidly run out, and efficiency of memory management may be increased. Further, it may be possible to prevent lifespan of the nonvolatile memories 1311 , 1312 , and 1313 from being rapidly shortened.
- an absolute and/or relative size of a memory area programmed according to the second program operation may be variously changed or modified. Further, location (e.g., address) of the memory area programmed according to the second program operation may be fixed or may dynamically vary for each nonvolatile memory. In some example embodiments, some nonvolatile memories may be configured so as not to be programmed according to the second program operation.
- a size of a memory area programmed according to the first program operation may be equally or differently selected for each nonvolatile memory.
- the size of the memory area programmed according to the first program operation may be individually selected for each nonvolatile memory, or may be selected taking into account the whole size of the nonvolatile memories 1311 , 1312 , and 1313 .
- FIG. 10 is a conceptual diagram illustrating an example of a method of managing memory areas of nonvolatile memories of FIG. 2 . To facilitate better understanding, FIG. 2 will be referred to together with FIG. 10 .
- the second program operation may require a larger size of a memory area of the nonvolatile memories 1311 , 1312 , and 1313 to store the same data.
- the second program operation may further affect the lifespan of the nonvolatile memories 1311 , 1312 , and 1313 .
- the second program operation may be performed on a memory area which has a relatively lower wear level than a memory area on which the first program operation is performed.
- the first program operation may be performed on a memory area which has a relatively higher wear level. For example, when a wear level of a first memory area of the nonvolatile memory 1311 is lower than a wear level of a second memory area of the nonvolatile memory 1311 , the memory controller 1330 may control the nonvolatile memory 1311 such that the second program operation is performed on the first memory area.
- a memory area having a wear level which is higher than a reference value may be programmed according to only the first program operation.
- the lifespan of the nonvolatile memories 1311 , 1312 , and 1313 may be more uniformly managed in general, and this approach may be helpful to extend the whole lifespan of the storage device 1300 .
- FIG. 10 illustrates two memory areas having different wear levels within one nonvolatile memory 1311 .
- controlling a program operation based on a wear level may be considered between separate nonvolatile memories (e.g., between the nonvolatile memory 1311 and the nonvolatile memory 1312 ), rather than portions of the same one nonvolatile memory.
- the second program operation may be performed mainly on the nonvolatile memory 1311 .
- FIG. 11 is a conceptual diagram illustrating an example of a method of rearranging data which is stored in nonvolatile memories of FIG. 2 . To facilitate better understanding, FIG. 2 will be referred to along with FIG. 11 .
- the nonvolatile memory 1311 may store data according to the second program operation.
- the memory controller 1330 may control the nonvolatile memories 1311 , 1312 , and 1313 such that data stored in the nonvolatile memory 1311 according to the second program operation is rearranged according to the first program operation.
- the rearranging operation may be performed during an idle time period where the components of the storage device 1300 do not operate.
- the rearranging operation may be performed together with the internal management operation during a management time period in which the memory controller 1330 performs the internal management operation.
- the memory controller 1330 may read the stored data and may store the read data in the nonvolatile memory 1311 according to the TLC or MLC program operation, during the idle time period or the management time period.
- the memory controller 1330 may read the stored data and may store the read data in the nonvolatile memory 1311 according to the TLC or MLC program operation, during the idle time period or the management time period.
- the second program operation may require a larger size of a memory area of the nonvolatile memories 1311 , 1312 , and 1313 to store the same data.
- the efficiency of memory management may decline and the lifespan of the nonvolatile memories 1311 , 1312 , and 1313 may be rapidly shortened. Further, reading data from the larger size of the memory area may degrade performance of a read operation.
- rearranging the data, which is stored according to the second program operation, according to the first program operation may increase storage efficiency, lifespan, and operational performance.
- One of the reasons for the aforementioned increases may be that when the data stored according to the second program operation is rearranged according to the first program operation, the rearranged data may be stored in a smaller size of a memory area.
- FIG. 11 illustrates that data stored in the nonvolatile memory 1311 is rearranged within the same nonvolatile memory (e.g. nonvolatile memory 1311 ).
- the rearranging operation may be considered between separate nonvolatile memories (e.g., between the nonvolatile memory 1311 and the nonvolatile memory 1312 ).
- data stored in the nonvolatile memory 1311 according to the second program operation may be rearranged in the nonvolatile memory 1312 according to the first program operation.
- the memory controller 1330 may analyze various factors, such as a size of a memory area being programmed according to the second program operation in each nonvolatile memory, a wear level of each nonvolatile memory, and/or the like.
- FIG. 12 is a graph illustrating an example operation of a storage device of FIG. 2 . Two nonvolatile memories will be considered with reference to the graph of FIG. 12 .
- the temperature of each of the nonvolatile memories may be ‘Tb’ while the two nonvolatile memories are not operational before time ‘t 11 ’. As the nonvolatile memories begin to operate from time “t 11 ’, the temperature of each of the nonvolatile memories may increase, as shown in FIG. 12 .
- the temperature of the first nonvolatile memory may increase to ‘Tc 1 ’.
- the temperature ‘Tc 1 ’ may be temperature that causes damage on the nonvolatile memories.
- the memory controller 1330 of FIG. 2 may control operations of the nonvolatile memories (e.g., may decrease a bandwidth for each of the nonvolatile memories) such that the temperature of each of the nonvolatile memories does not increase.
- the temperature of the first nonvolatile memory may decrease to ‘Td 1 ’.
- the memory controller 1330 may control the nonvolatile memories such that the bandwidth for each of the nonvolatile memories increases again, and thus the temperature of each of the nonvolatile memories may increase again. In this manner, increase/decrease in the temperature of each of the nonvolatile memories may be repeated at time ‘t 14 ’ and time ‘t 16 ’.
- the temperature of the second nonvolatile memory may increase to ‘Tc 2 ’ while the temperature of the first nonvolatile memory increases to ‘Tc 1 ’.
- the temperature of the second nonvolatile memory does not reach a level that may cause damage on the second nonvolatile memory.
- the memory controller 1330 controls the operations of the nonvolatile memories such that the temperature of each of the nonvolatile memories does not increase, and thus a bandwidth for the second nonvolatile memory may decrease.
- the operational performance of the second nonvolatile memory may be degraded in conjunction with decrease in the bandwidth for the first nonvolatile memory.
- the bandwidth for the second nonvolatile memory may increase again, after the temperature of the first nonvolatile memory decreases to the ‘Td 1 ’ and the temperature of the second nonvolatile memory reaches ‘Td 2 ’ at time ‘t 13 ’.
- FIG. 12 illustrates that a desired result in terms of performance may not always be achieved when uniform control of operations of the plurality of nonvolatile memories occur.
- the operations of the plurality of nonvolatile memories may be independently controlled based on their respective temperature.
- FIG. 13 is a conceptual diagram illustrating an example of program operations of a storage device such as shown in FIG. 2 .
- a current temperature of the nonvolatile memory 1311 may be higher than the reference value Tref 1 .
- current temperature of each of the nonvolatile memories 1312 and 1313 may be lower than the reference value Tref 1 .
- the current temperature of the nonvolatile memory 1312 may be lower than the current temperature of the nonvolatile memory 1313 .
- the memory controller 1330 may transmit data DAT 11 and data DAT 12 to at least one of the nonvolatile memories 1311 , 1312 , and/or 1313 .
- the memory controller 1330 may select the nonvolatile memory 1311 as a target nonvolatile memory to store the data DAT 11 .
- the data DAT 11 may be directed to the nonvolatile memory 1311 .
- the memory controller 1330 may determine that the current temperature of the nonvolatile memory 1311 is higher than the reference value Tref 1 . In this case, the memory controller 1330 may transmit the data DAT 11 to the nonvolatile memory 1312 instead of transmitting the data DAT 11 to the nonvolatile memory 1311 . For example, when the current temperature of the nonvolatile memory 1311 is equal to or higher than the reference value Tref 1 , the memory controller 1330 may transmit the data DAT 11 to the nonvolatile memory 1312 which has the temperature lower than the reference value Tref 1 .
- the memory controller 1330 may communicate with other nonvolatile memory 1312 prior to and/or instead of decreasing a bandwidth for the nonvolatile memory 1311 . Accordingly, the operational performance of the storage device 1300 of FIG. 2 may not be degraded. Further, communicating with the nonvolatile memory 1312 which has lower temperature than the nonvolatile memory 1311 may be advantageous in terms of power consumption, lifespan, and data reliability.
- the memory controller 1330 may select the nonvolatile memory 1313 as a target nonvolatile memory to store the data DAT 12 .
- the data DAT 12 may be directed to the nonvolatile memory 1313 .
- the current temperature of the nonvolatile memory 1313 is lower than the reference value Tref 1 , and thus it may be allowable to store the data DAT 12 in the nonvolatile memory 1313 .
- the memory controller 1330 may transmit the data DAT 12 to the nonvolatile memory 1313 .
- the first program operation of operation S 135 of FIG. 4 may include transmitting data to a nonvolatile memory which has temperature lower than the reference value Tref 1 .
- the second program operation of operation S 145 of FIG. 4 may include transmitting data to a nonvolatile memory which has temperature lower than the reference value Tref 1 instead of transmitting the data to a nonvolatile memory which has temperature equal to or higher than the reference value Tref 1 .
- the second program operation may be performed on a nonvolatile memory having a relatively low temperature.
- the second program operation may consume a small amount of power, which may account for the relative low temperature.
- the second program operation accompanies a change of the target nonvolatile memory, and does not to provide lower performance than the first program operation.
- the memory controller 1330 may perform the first program operation and the second program operation together. For example, transmitting the data DAT 12 to the nonvolatile memory 1313 may be performed together with transmitting the data DAT 11 to the nonvolatile memory 1312 instead of the nonvolatile memory 1311 (when the nonvolatile memory 1311 may have a temperature higher than a reference value).
- “performing together” may include not only performing at the same time (e.g., simultaneously) but also non-exclusively performing during different time periods (e.g., concurrently or in parallel).
- FIG. 14 is a graph illustrating an example of an operation of a storage device of FIG. 2 which employs example program operations of FIG. 13 . To facilitate better understanding, FIG. 2 will be referred to together with FIG. 14 .
- the first program operation of FIG. 13 may be performed together with the second program operation of FIG. 13 .
- an operation of the nonvolatile memory 1311 , an operation of the nonvolatile memory 1312 , and an operation of the nonvolatile memory 1313 may be independently controlled based on the temperature of nonvolatile memory 1311 , the temperature of nonvolatile memory 1312 , and the temperature of nonvolatile memory 1313 respectively.
- the memory controller 1330 may control the first nonvolatile memory such that the temperature of the first nonvolatile memory decreases.
- the memory controller 1330 may independently control a second nonvolatile memory based on temperature of the second nonvolatile memory irrespective of the temperature of the first nonvolatile memory.
- an operation of the second nonvolatile memory may not be changed at time ‘t 12 ’.
- the temperature of the second nonvolatile memory may increase until the temperature of the second nonvolatile memory reaches ‘Tc 1 ’ at time ‘t 15 ’.
- the memory controller 1330 may control the second nonvolatile memory such that the temperature of the second nonvolatile memory decreases.
- the memory controller 1330 may allow the temperature of the second nonvolatile memory to increase.
- FIG. 14 illustrates that independent control of the operations of the plurality of nonvolatile memories may contribute to an increase in terms of operational performance.
- FIG. 15 is a conceptual diagram illustrating an example of a method of migrating data which is stored in nonvolatile memories of FIG. 2 .
- the data DAT 11 directed to the nonvolatile memory 1311 may be transmitted to the nonvolatile memory 1312 .
- the nonvolatile memory 1312 may not store the data DAT 11 .
- the memory controller 1330 of FIG. 2 may secure the available memory area of the nonvolatile memory 1312 in advance.
- the memory controller 1330 may control the nonvolatile memories 1312 and 1313 such that data stored in the nonvolatile memory 1312 migrates to other nonvolatile memory (e.g., the nonvolatile memory 1313 ).
- the available memory area of the nonvolatile memory 1312 may be secured.
- the memory controller 1330 may determine an alternative nonvolatile memory which has a relatively low temperature and is available to receive data instead of another nonvolatile memory.
- the memory controller 1330 may control nonvolatile memories such that data stored in the determined alternative nonvolatile memory migrates to other nonvolatile memory in advance. Accordingly, the available memory area of the alternative nonvolatile memory may be secured. For example, such a migration operation may be performed during an idle time period or a management time period.
- FIG. 16 is a conceptual diagram illustrating an example of a method of migrating data which is stored in nonvolatile memories of FIG. 2 .
- the memory controller 1330 may trace average temperature of each of the nonvolatile memories 1311 , 1312 , and 1313 during a reference time period. The memory controller 1330 may determine that average temperature of the nonvolatile memory 1311 is higher than average temperature of each of the nonvolatile memories 1312 and 1313 . In this case, before data stored in the nonvolatile memory 1311 is read, the memory controller 1330 may move the data stored in the nonvolatile memory 1311 to the nonvolatile memory 1313 . Thus, the memory controller 1330 may read the data from the nonvolatile memory 1313 .
- Data stored in a nonvolatile memory having excessive high temperature may have a higher error rate, and/or such data may be lost/corrupted.
- the memory controller 1330 may control nonvolatile memories such that data stored in a nonvolatile memory having a higher average temperature migrates to a nonvolatile memory having a lower average temperature. This data migration may increase data reliability. For example, such a migration operation may be performed during an idle time period or a management time period before data is read.
- FIG. 17 is a conceptual diagram illustrating an example of an operation of a storage device of FIG. 2 which employs example program operations of FIG. 13 .
- the memory controller 1330 may transmit data DAT 13 to the nonvolatile memories 1311 , 1312 , and 1313 .
- the memory controller 1330 may select the nonvolatile memory 1311 as a target nonvolatile memory to store the data DAT 13 .
- the data DAT 13 may be directed to the nonvolatile memory 1311 .
- the memory controller 1330 may determine that current temperature of the nonvolatile memory 1311 is higher than the reference value Tref 1 . In some example embodiments, as described with reference to FIG. 13 , the memory controller 1330 may transmit the data DAT 13 to the nonvolatile memory 1312 instead of transmitting the data DAT 13 to the nonvolatile memory 1311 when it is determined that the nonvolatile memory 1312 has a lower temperature that does not, for example, exceed a reference value.
- the temperature of the nonvolatile memory 1312 was lower than the reference value Tref 1 initially, but the temperature of the nonvolatile memory 1312 may be changed to be equal to or higher than the reference value Tref 1 while the data DAT 13 is transmitted to the nonvolatile memory 1312 .
- the temperature of the nonvolatile memory 1312 may increase to be higher than the reference value Tref 1 .
- the memory controller 1330 may transmit the remaining portion R of the data DAT 13 to the nonvolatile memory 1313 . Since the temperature of the nonvolatile memory 1313 is lower than the reference value Tref 1 , it may be advisable to store the remaining portion R of the data DAT 13 in the nonvolatile memory 1313 in terms of power consumption, lifespan, and data reliability.
- the memory controller 1330 may first change a program operation on the nonvolatile memory 1312 instead of immediately transmitting the remaining portion R of the data DAT 13 to the nonvolatile memory 1313 .
- the memory controller 1330 may change a TLC or MLC program operation on the nonvolatile memory 1312 to an SLC program operation, as described with reference to FIGS. 6 and 7 .
- a nonvolatile memory controlled according to the SLC program operation may co-exist with a nonvolatile memory controlled according to the TLC or MLC program operation.
- the remaining portion R of the data DAT 13 may be stored in the nonvolatile memory 1312 .
- the remaining portion R of the data DAT 13 may be transmitted to the nonvolatile memory 1313 .
- the migration of data to a lower temperature nonvolatile memory has a lesser impact on a user than reducing the bandwidth of the current nonvolatile memory in which the data is stored to reduce a temperature via reduced power consumption.
- first program operation and the second program operation have been provided for illustrative purposes.
- first and second program operations may be variously changed or modified to suitably manage the temperature of the nonvolatile memories 1311 , 1312 , and 1313 .
- the above example embodiments are not independent of one another, and may be complementarily employed as will be described with reference to FIGS. 18 and 19 .
- FIG. 18 is a flowchart illustrating an example of an operation of a storage device of FIG. 2 . To facilitate the explanation of the flowchart in FIG. 18 , FIG. 2 will be referred to in conjunction with FIG. 18 .
- the memory controller 1330 may receive data from the host 1100 .
- the memory controller 1330 may determine temperature of a target nonvolatile memory.
- the memory controller 1330 may compare the determined temperature of the target nonvolatile memory with a reference value Tref 1 . When the determined temperature of the target nonvolatile memory is lower than the reference value Tref 1 , operation S 240 may be performed.
- the memory controller 1330 may control the first program operation (e.g., a TLC or MLC program operation) such that data is stored in the target nonvolatile memory.
- the memory controller 1330 may determine whether storing data is finished. When storing data is not finished, the memory controller 1330 may successively determine the temperature of the target nonvolatile memory in operation S 220 each time operation S 220 is performed. On the other hand, when storing data is finished, the example operation of FIG. 18 may end.
- operation S 250 may be performed.
- the memory controller 1330 may control the second program operation (e.g., a SLC program operation) such that data is stored in the target nonvolatile memory.
- the memory controller 1330 may determine whether storing data is finished. When storing data is finished, the example operation of FIG. 18 may end.
- the memory controller 1330 may determine the temperature of the target nonvolatile memory.
- the memory controller 1330 may compare the determined temperature of the target nonvolatile memory with a reference value Tref 3 .
- the reference value Tref 3 may be greater than the reference value Tref 1 , and may indicate temperature of a case where the temperature of the target nonvolatile memory is excessively increasing.
- the memory controller 1330 may determine whether storing data is finished in operation S 255 .
- the memory controller 1330 may transmit data to another nonvolatile memory, as described with reference to FIG. 13 , in operation S 280 . Afterwards, the memory controller 1330 may determine whether storing data is finished in operation S 245 .
- FIG. 19 is a flowchart illustrating an example of an operation of a storage device of FIG. 2 . To facilitate better understanding, FIG. 2 will be referred to together with FIG. 19 .
- the memory controller 1330 may receive data from the host 1100 .
- the memory controller 1330 may determine the temperature of a target nonvolatile memory.
- the memory controller 1330 may compare the determined temperature of the target nonvolatile memory with a reference value Tref 1 . When the determined temperature of the target nonvolatile memory is lower than the reference value Tref 1 , operation S 340 may be performed.
- the memory controller 1330 may transmit data to the target nonvolatile memory according to the first program operation.
- the memory controller 1330 may determine whether storing data is finished. When storing data is not finished, the memory controller 1330 may successively determine the temperature of the target nonvolatile memory in operation S 320 . On the other hand, when storing data is finished, the example operation of FIG. 19 may be end.
- operation S 350 may be performed.
- the memory controller 1330 may transmit the data to other nonvolatile memory according to the second program operation.
- the other nonvolatile memory may be provided as a new target nonvolatile memory.
- operation S 355 the memory controller 1330 may determine whether storing data is finished. When storing data is finished, the example operation of FIG. 19 may be ended.
- the memory controller 1330 may determine the temperature of the (new) target nonvolatile memory in operation S 360 .
- the memory controller 1330 may compare the determined temperature of the target nonvolatile memory with a reference value Tref 4 .
- the reference value Tref 4 may indicate temperature of a case where the temperature of the target nonvolatile memory is increasing and attention is recommended.
- the memory controller 1330 may control the SLC program operation, described with reference to FIGS. 6 and 7 , in operation S 380 .
- the memory controller 1330 may control the TLC or MLC program operation, such as, for example, described with reference to FIGS. 6 and 7 , in operation S 390 .
- the memory controller 1330 may determine whether storing data is finished in operation S 345 .
- FIG. 20 is a graph illustrating examples associated with temperature which is managed by a storage device of FIG. 2 . To facilitate better understanding, FIG. 2 will be referred to together with FIG. 20 .
- the temperature of the nonvolatile memory described above may be associated with an absolute value of temperature.
- the memory controller 1330 may control an operation of the nonvolatile memory such that an absolute value of the temperature of the nonvolatile memory does not exceed ‘Tc’.
- the temperature of the nonvolatile memory described above may be associated with a rate of increase on temperature per reference time “tref”. For example, when a rate of increase on temperature of a target nonvolatile memory per the reference time tref is equal to or greater than a reference value, it is likely that the temperature of the target nonvolatile memory increases to ‘Tc’ in a short time. Thus, the rate of increase on the temperature of the nonvolatile memory per the reference time tref may be used as a suitable measure for managing the temperature of the nonvolatile memory.
- the reference time tref may be variously selected or changed taking into account various factors, such as thermal capacity of each of the nonvolatile memories 1311 , 1312 , and 1313 , operation performance of the storage device 1300 , a surrounding condition, and/or the like.
- the memory controller 1330 may change the first program operation on the target nonvolatile memory to the second program operation, or may prepare changing an operation of the target nonvolatile memory.
- the memory controller 1330 may allow the temperature of the target nonvolatile memory to further increase.
- the memory controller 1330 may consider both the absolute value of the temperature of the nonvolatile memory and the rate of increase on the temperature of the nonvolatile memory per the reference time tref. For example, when the rate of increase on the temperature of the target nonvolatile memory per the reference time tref is equal to or greater than the reference value, the memory controller 1330 may change the first program operation on the target nonvolatile memory to the second program operation. Nevertheless, when the absolute value of the temperature of the target nonvolatile memory reaches a dangerous level, the memory controller 1330 may decrease a bandwidth for the target nonvolatile memory or may operate other nonvolatile memory.
- the example embodiments may be variously changed or modified based on the aforementioned descriptions.
- the above descriptions are to provide specific example embodiments for implementing the inventive concepts of the present disclosure.
- the present disclosure would include not only the example embodiments described above, but also other example embodiments obtained by simply changing or easily modifying the designs of the above-described example embodiments.
- the present disclosure would also include technologies which would be implemented in the future by simply changing or easily modifying the designs of the above-described example embodiments.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Human Computer Interaction (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
A storage device includes memories and a controller. The controller controls first and second program operations on the memory. When a temperature of the memory is lower than a reference value, the controller controls execution of the first program operation. When the temperature of the memory is equal to or higher than the reference value, the controller controls execution of the second program operation which consumes a smaller amount of power than the first program operation. The controller adjusts an operational condition of the memory such that bandwidth on the memory remains equivalent during the first and second program operations.
Description
- This U.S. non-provisional patent application claims priority under 35 U.S.C. § 119 from Korean Patent Application No. 10-2016-0164550, filed on Dec. 5, 2016, the entire contents of which are incorporated by reference herein.
- The inventive concept relates to electronic devices, and more particularly, relates to configurations and operations of a storage device that may store and output data.
- Various types of electronic devices are being used these days. An electronic device may include various electronic circuits, many of which are integrated circuits. The electronic device may perform its own function(s) and provide a service to a user, according to operations of the electronic circuits included in the electronic device.
- A storage device is an example of an electronic device. The storage device may include a memory element. The storage device may store data in the memory element, or may output data stored in the memory element. Thus, the storage device may provide a storage service to a user.
- As technologies such as electronic circuit design and a semiconductor fabrication continue to develop, a storage device including a semiconductor memory element is being widely used. The storage device including the semiconductor memory element may operate at high speed and may be resistant to damage from physical impact. However, the storage device including the semiconductor memory element still requires considerations of various factors such as lifespan, data reliability, power consumption, and the like.
- For example, when temperature of a memory element of a storage device increases, the storage device may operate with relatively large power consumption and operational performance of the storage device may be degraded. In a worst case, when the temperature of the memory element of the storage device excessively increases, the memory element may be damaged and an error may occur in data stored in the storage device, and the data may be lost. Moreover, damage to the memory element may cause a reduction in the lifespan of the storage device.
- Example embodiments of the inventive concept may provide a storage device which may operate differently according to the temperature of a memory. The storage device, for example, according to the example embodiments of inventive concept may control different operational schemes according to the temperature of the memory such that the temperature of the memory does not excessively increase.
- According to an example embodiment of the inventive concept, a storage device may include a nonvolatile memory; and a memory controller configured to control a first program operation on the nonvolatile memory when a temperature of the nonvolatile memory is less than a first reference value and control a second program operation on the nonvolatile memory when the temperature of the nonvolatile memory is equal to or greater than the first reference value, in which the first program operation and the second program operation are performed on data stored in the nonvolatile memory. The second program operation consumes less power than the first program operation, and wherein the memory controller is further configured to adjust an operational condition of the nonvolatile memory, such that bandwidth on the nonvolatile memory remains equivalent during the first and second program operations.
- The example embodiments of the inventive concept may provide a storage device including a memory and a controller. The controller may control first and second program operations on the memory such that data is stored in the memory. When temperature of the memory is lower than a reference value, the controller may control execution of the first program operation. When the temperature of the memory is equal to or higher than the reference value, the controller may control execution of the second program operation. The second program operation may consume a smaller amount of power than the first program operation.
- In some example embodiments of the inventive concept, the second program operation may include a smaller number of voltage applying operations than the first program operation. For example, memory cells of the memory may include multi-level cells or triple-level cells. In such an example, the first program operation may include a multi-level cell program operation or a triple-level cell program operation, and the second program operation may include a single-level cell program operation. The controller may adjust an operational condition of the memory such that bandwidth on the memory remains equivalent during the first and second program operations.
- In some example embodiments of the inventive concept, the memory may include a plurality of memories, and the controller may transmit first data and second data to at least some of the plurality of memories. For example, when the temperature of a first memory among the plurality of memories is equal to or higher than a reference value, and the temperature of each of second and third memories among the plurality of memories is lower than the reference value, the controller may transmit (or re-transmit) the first data which is directed to the first memory to the second memory according to the second program operation, and may transmit (or re-transmit) the second data, which is directed to the second memory, to the third memory according to the first program operation. The controller may perform the second program operation of transmitting the first data to the second memory together with the first program operation of transmitting the second data to the third memory concurrently.
- In an embodiment of the inventive concept, a storage device includes a plurality of nonvolatile memories; a memory controller configured to receive instructions from a host, and to control read and write operations on data stored in the nonvolatile memories, and control at least a first program operation and a second program operation; and at least one temperature sensor being arranged substantially adjacent at least one nonvolatile memory of the plurality of nonvolatile memories, the at least one temperature sensor having an output connected to the memory controller to provide temperature information to the memory controller. The memory controller may determine a temperature of the at least one nonvolatile memory, and control execution of the first program operation when the determined temperature of the at least one nonvolatile memory is less than a first reference value. The memory controller controls execution of the second program operation when the determined temperature of the at least one nonvolatile memory is equal to or greater than the first reference value.
- The memory controller may decrease a bandwidth of the at least one nonvolatile memory when the determined temperature of the at least one nonvolatile memory is equal to or greater than a second reference value that is greater than the first reference value.
- According to an embodiment of the inventive concept, subsequent to the bandwidth of the at least one nonvolatile memory being decreased, the memory controller restores the bandwidth of the at least one nonvolatile memory upon a determination that the determined temperature of the at least one nonvolatile memory has decreased to a temperature at least less than the second reference value.
- According to an embodiment of the inventive concept, the at least one temperature sensor comprises a plurality of temperature sensors in which each one temperature sensor is arranged substantially adjacent a respective nonvolatile memory of the plurality of nonvolatile memories.
- The memory controller may further include a delay buffer to delay data transmission to the at least one nonvolatile memory.
- The memory controller may be further configured to tune an operational condition of the at least one nonvolatile memory during a transition from the first program operation to the second program operation by transmitting data to the delay buffer.
- The memory controller may be further configured to tune an operational condition of the at least one nonvolatile memory during a transition from the first program operation to the second program operation by controlling a decrease in an operating frequency of the at least one nonvolatile memory.
- According to the example embodiments of the inventive concept, it may be possible to minimize performance degradation of the storage device while preventing the temperature of the memory from excessively increasing. Accordingly, the storage device may consume a small amount of power, and data reliability may be increased. Further, the memory of the storage device may be prevented from being suddenly damaged due to heat, and thus lifespan of the storage device may not be rapidly shortened.
-
FIG. 1 is a block diagram illustrating an example configuration of a computing device which includes a storage device according to some example embodiments. -
FIG. 2 is a block diagram illustrating an example configuration of a storage device ofFIG. 1 . -
FIGS. 3A and 3B are conceptual diagrams illustrating example implementations of a storage device ofFIG. 2 . -
FIG. 4 is a flowchart illustrating an example operation of a storage device ofFIG. 2 . -
FIG. 5 is a graph illustrating an example operation of a storage device ofFIG. 2 . -
FIG. 6 is a graph illustrating example program operations of a storage device ofFIG. 2 . -
FIG. 7 is a graph illustrating an example operation of a storage device ofFIG. 2 which employs example program operations ofFIG. 6 . -
FIG. 8 is a table illustrating an example of information which is managed by a memory controller ofFIG. 2 . -
FIGS. 9 and 10 are conceptual diagrams illustrating example methods of managing memory areas of nonvolatile memories ofFIG. 2 . -
FIG. 11 is a conceptual diagram illustrating an example method of rearranging data which is stored in nonvolatile memories ofFIG. 2 . -
FIG. 12 is a graph illustrating an example operation of a storage device ofFIG. 2 . -
FIG. 13 is a conceptual diagram illustrating example program operations of a storage device ofFIG. 2 . -
FIG. 14 is a graph illustrating an example operation of a storage device ofFIG. 2 which employs example program operations ofFIG. 13 . -
FIGS. 15 and 16 are conceptual diagrams illustrating example methods of migrating data which is stored in nonvolatile memories ofFIG. 2 . -
FIG. 17 is a conceptual diagram illustrating an example operation of a storage device ofFIG. 2 which employs example program operations ofFIG. 13 . -
FIGS. 18 and 19 are flowcharts illustrating example operations of a storage device ofFIG. 2 . -
FIG. 20 is a graph illustrating examples associated with temperature which is managed by a storage device ofFIG. 2 . - Herein below, at least one embodiment of the inventive concept will be described clearly and in detail with reference to the accompanied drawings, so that a person of ordinary skill in the art to which the present disclosure belongs would readily implement the inventive concepts.
-
FIG. 1 is a block diagram illustrating an exemplary configuration of a computing device which includes a storage device according to at least one embodiment of the inventive concept. - A
computing device 1000 may include, for example, a central processing unit (CPU) 1100, a workingmemory 1200, astorage device 1300, acommunication block 1400, auser interface 1500, and abus 1600. Thecomputing device 1000 may be one of various electronic devices including but in no way limited to a desktop computer, a laptop computer, a tablet computer, a smart phone, a wearable device, a video game console, a workstation, a server, and/or the like. - The
CPU 1100 may control overall operations of thecomputing device 1000. TheCPU 1100 may process various kinds of arithmetical operations and/or logical operations. To this end, theCPU 1100 comprises hardware such as, for example, a special-purpose logic circuit (e.g., field programmable gate arrays (FPGA), application specific integrated circuits (ASICs), and/or the like) which is configured to process the operations. For example, theCPU 1100 may be implemented with a general-purpose processor or microprocessor, a special-purpose processor, and/or an application processor which includes one or more processor cores. - The working
memory 1200 may store data used in an operation of thecomputing device 1000. For example, the workingmemory 1200 may temporarily store data processed or to be processed by theCPU 1100. The workingmemory 1200 may be used, for example, as a buffer or a cache of thecomputing device 1000. For example, the workingmemory 1200 may include a volatile memory, such as a static random access memory (SRAM), a dynamic RAM (DRAM), a synchronous DRAM (SDRAM), and/or the like, and/or a nonvolatile memory, such as a flash memory, a phase-change RAM (PRAM), a magneto-resistive RAM (MRAM), a resistive RAM (ReRAM), a ferro-electric RAM (FRAM), and/or the like. - With continued reference to
FIG. 1 , thestorage device 1300 may include one or more nonvolatile memories and a memory controller. The nonvolatile memories of thestorage device 1300 may store data regardless of whether or not power is being continuously supplied. For example, thestorage device 1300 may include a nonvolatile memory, such as a flash memory, a PRAM, a MRAM, a ReRAM, a FRAM, and/or the like. For example, thestorage device 1300 may include a storage medium, such as a solid state drive (SSD), a card storage, an embedded storage, and/or the like. - The
communication block 1400 may communicate with an external device/system of thecomputing device 1000. For example, thecommunication block 1400 may include one or more interfaces that may support at least one of various wireless communication protocols, such as long term evolution (LTE), Worldwide - Interoperability for Microwave Access (WIMAX), global system for mobile communication (GSM), code division multiple access(CDMA), Bluetooth, near field communication (NFC), wireless fidelity (Wi-Fi), radio frequency identification (RFID), and/or the like, and/or at least one of various wired communication protocols, such as transfer control protocol/Internet protocol (TCP/IP), universal serial bus (USB), Firewire, and/or the like.
- With continued reference to
FIG. 1 , theuser interface 1500 may facilitate a communication between a user and thecomputing device 1000. For example, theuser interface 1500 may include, for example, an input interface, such as a keyboard, a mouse, a keypad, a button, a touch panel, a touch screen, a touch pad, a touch ball, a camera, a microphone, a gyroscope sensor, a vibration sensor, and/or the like. For example, theuser interface 1500 may include an output interface, such as a liquid crystal display (LCD), a light emitting diode (LED) display, an organic LED (OLED) display, an active matrix OLED (AMOLED) display, a speaker, a motor, and/or the like. - The
bus 1600 is arranged to provide communication paths between components of thecomputing device 1000. In addition, the components of thecomputing device 1000 may exchange data with one another based on the format of thebus 1600. For example, the bus format may include at least one of various interface protocols, such as USB, small computer small interface (SCSI), peripheral component interconnect express (PCIe), mobile PCIe (M-PCIe), advanced technology attachment (ATA), parallel ATA (PATA), serial ATA (SATA), serial attached SCSI (SAS), integrated drive electronics (IDE), enhanced IDE (EIDE), nonvolatile memory express (NVMe), universal flash storage (UFS), and/or the like, just to name some non-limiting possibilities. - The
storage device 1300 may be implemented according to at least one of the exemplary embodiments of the present disclosure. For example, thestorage device 1300 may differently operate depending on temperature of a nonvolatile memory included therein. For example, thestorage device 1300 may control and/or activate different operational schemes depending on the temperature of the nonvolatile memory such that the temperature of the nonvolatile memory does not excessively increase. Example configurations and example operations of thestorage device 1300 will now be described with reference toFIGS. 2 to 20 . - Although the
storage device 1300 and the nonvolatile memory are provided in the following descriptions, the exemplary embodiments of the inventive concept are not limited thereto. The inventive concept may be employed in any type of device which includes a memory device. The example embodiments of the inventive concept may also be applied to operations of the volatile memory and/or the nonvolatile memory included in the workingmemory 1200. The following descriptions are provided to facilitate better understanding, and are not intended to limit the present disclosure. -
FIG. 2 is a block diagram illustrating an exemplary configuration of a storage device ofFIG. 1 . - As described with reference to
FIG. 1 , theCPU 1100 may communicate with thestorage device 1300 through thebus 1600. In the present disclosure, an object which is capable of access to thestorage device 1300 may be referred to as a “host”. TheCPU 1100 is one example of objects that may become the host, and may be referred to as ahost 1100 below. - The
host 1100 may exchange data with thestorage device 1300. Thestorage device 1300 may provide a storage service to thehost 1100 in response to a command received from thehost 1100. - For example, the
host 1100 may transmit to thestorage device 1300 a write command and data which includes write data. Thestorage device 1300 may store requested write data in response to the write command. For example, thehost 1100 may transmit a read command to thestorage device 1300. Thestorage device 1300 may output read data to thehost 1100 in response to receiving the read command. - The
storage device 1300 may include one or morenonvolatile memories 1310 and amemory controller 1330. A person of ordinary skill in the art should understand and appreciate that he number of nonvolatile memories included in thestorage device 1300 shown inFIG. 2 may be variously changed or modified. - With continued reference to
FIG. 2 , each of thenonvolatile memories host 1100. To this end, each of thenonvolatile memories nonvolatile memories nonvolatile memories nonvolatile memories - The
memory controller 1330, which comprises hardware such as integrated circuits, may control overall operations of thestorage device 1300. For example, thememory controller 1330 may schedule operations of thenonvolatile memories storage device 1300. For example, thememory controller 1330 may control a program operation on thenonvolatile memories host 1100 may be stored in thenonvolatile memories - Each of the
nonvolatile memories host 1100. For example, a read operation may be performed on data stored in thenonvolatile memories memory controller 1330. Thus, data stored in thenonvolatile memories host 1100. - In addition, for example, an internal management operation (e.g., a read reclaim, a garbage collection, and/or the like) may be performed on data stored in the
nonvolatile memories memory controller 1330. For example, thememory controller 1330 may manage a wear level of each of thenonvolatile memories - Meanwhile, when the temperature of the
nonvolatile memories storage device 1300 may operate with larger power consumption than when the temperatures of the nonvolatile memories are lower, and operational performance of thestorage device 1300 may be degraded at the increased temperatures. - Moreover, the temperature of the
nonvolatile memories nonvolatile memories nonvolatile memories storage device 1300. - Accordingly, in an example embodiment of the inventive concept, the
storage device 1300 may manage the temperature of thenonvolatile memories memory controller 1330. One way the temperature may be managed is to restrict usage of the nonvolatile memories to reduce the amount of heat that may be generated. The reduction in usage may be realized in different manners. For example, there can be fewer overall operations to read/write data from the nonvolatile memories, or the types of operations performed on the nonvolatile memories may be changed to reduce the generation of heat, at least until the temperature of thenonvolatile memories - For example, the
memory controller 1330 may collect information associated with the temperature of thenonvolatile memories nonvolatile memories memory controller 1330 may change operations of thenonvolatile memories -
FIG. 3A is a conceptual diagram illustrating an example implementation of a storage device ofFIG. 2 . In some example embodiments, thestorage device 1300 ofFIG. 2 may be implemented like astorage device 1300 a ofFIG. 3A . - The
nonvolatile memories memory controller 1330 of thestorage device 1300 a may be mounted or assembled on a printed circuit board (PCB) 1301. However, there are many ways to mount the nonvolatile memories and the memory controller to thePCB 1301 than shown inFIG. 3A . Thememory controller 1330 may be connected to thenonvolatile memories PCB 1301. For example, the conductive pattern may include conductive material, such as a wire pattern, a trace pattern, and/or the like. - In some example embodiments of the inventive concept, the
storage device 1300 a may includetemperature sensors temperature sensors PCB 1301. Thetemperature sensors memory controller 1330 through conductive patterns which are provided on thePCB 1301. - For example, the
temperature sensors nonvolatile memories FIG. 3A , some or all of thetemperature sensors nonvolatile memories temperature sensors memory controller 1330 with information associated with the temperature of the respectivenonvolatile memories memory controller 1330 may measure, estimate, and/or predict the temperature of each of thenonvolatile memories -
FIG. 3B is a conceptual diagram illustrating an example of an implementation of a storage device such as shown inFIG. 2 . In some example embodiments, thestorage device 1300 ofFIG. 2 may be implemented with a construction of astorage device 1300 b shown inFIG. 3B . - The
nonvolatile memories memory controller 1330 of thestorage device 1300 b may be mounted or assembled on aPCB 1301. Thememory controller 1330 may be connected to thenonvolatile memories PCB 1301. In some example embodiments of the inventive concept, thestorage device 1300 b may include at least onetemperature sensor 1351. Thetemperature sensor 1351 may be mounted or assembled on thePCB 1301. Thetemperature sensor 1351 may be connected to thememory controller 1330 through conductive patterns which are provided on thePCB 1301. - Unlike the
storage device 1300 a ofFIG. 3A , thestorage device 1300 b may include only onetemperature sensor 1351. Thememory controller 1330 may receive information associated with temperature from thetemperature sensor 1351. Thememory controller 1330 may estimate or predict temperature of each of thenonvolatile memories temperature sensor 1351. - For example, the
memory controller 1330 may obtain information associated with at least one offset between the temperature measured by thetemperature sensor 1351 and a temperature of each of thenonvolatile memories storage device 1300 operates). Thememory controller 1330 may estimate or predict the temperature of each of thenonvolatile memories temperature sensor 1351 and the offset information. - The offset information may be different depending on location/disposition/characteristic of each of the
nonvolatile memories temperature sensor 1351 indicates temperature of 50 □, actual temperature of thenonvolatile memory 1311 which is nearest to thetemperature sensor 1351 may be 49 □ (offset=1) and the actual temperature of thenonvolatile memory 1313 which is farthest from thetemperature sensor 1351 may be 40 □ (offset=10). For example, the offset information may be obtained through an experiment, a test and/or a simulation before thestorage device 1300 operates. - For example, the offset information may be corrected or compensated by taking into account various factors, such as a surrounding condition, a spatial disposition, an element characteristic, an operational performance, and/or the like, of the components on the
PCB 1301. For example, when thetemperature sensor 1351 indicates temperature of 50 □, actual temperature of thenonvolatile memory 1311 which is in an idle state may be 35 □ and actual temperature of thenonvolatile memory 1311 which operates with maximum performance may be 70 □. Thus, an analysis of the various factors that can impact the output of thetemperature sensor 1351 will assist in effective management of thestorage device 1300. Thememory controller 1330 may manage a variety of information to estimate or predict the temperature of each of thenonvolatile memories -
FIG. 3B illustrates that onetemperature sensor 1351 is disposed near thenonvolatile memory 1311. However, a person of ordinary skill in the art should understand and appreciate that the number of temperature sensors and location of the temperature sensors may be variously changed or modified. For example, thetemperature sensor 1351 may be disposed around another nonvolatile memory, or may be disposed on or inside thenonvolatile memory 1311. One or more additional temperature sensors may be further provided. - The
storage device 1300 b may be equipped, mounted, or assembled on amain board 1001. For example, thestorage device 1300 b may be connected to aport 1010 through a wire cable, or may be equipped in aslot 1020 through a connector. Thus, thestorage device 1300 b may communicate with theCPU 1100, which is mounted or assembled on themain board 1001, according to various constructions. - In some example embodiments of the inventive concept, the
temperature sensor 1030 may be mounted or assembled on themain board 1001. There may be one or more temperature sensors on thestorage device 1300 b as well as being arranged on the main board. - In addition, the
temperature sensor 1030 may be provided outside thestorage device 1300 b, and may measure or estimate overall temperature of a system on themain board 1001. Thememory controller 1330 may receive information associated with temperature from thetemperature sensor 1030, to estimate or predict the temperature of each of thenonvolatile memories memory controller 1330 may use the temperature measured by thetemperature sensor 1030 to estimate the temperature of each of thenonvolatile memories storage device 1300 b and thetemperature sensor 1030. - With reference to
FIG. 3A , thestorage device 1300 a may also be mounted or assembled on themain board 1001 in a same or similar manner as thestorage device 1300 b shown inFIG. 3B . For example, thememory controller 1330 may receive temperature information from thetemperature sensors FIGS. 3A and 3B periodically or if appropriate in view of certain specified conditions. For example, when a particular condition is satisfied (e.g., when a command is received from thehost 1100 ofFIG. 2 ), thememory controller 1330 may receive the temperature information from one or more of thetemperature sensors FIGS. 3A and 3B . However, these examples are provided to facilitate understanding of the inventive concept, and the example embodiments may be variously changed or modified. -
FIG. 4 is a flowchart describing an example of an operation of a storage device ofFIG. 2 . For ease of explanation,FIGS. 2 and 4 will be referred to together. - In operation S110, the
memory controller 1330 of thestorage device 1300 may receive data from thehost 1100. For example, the received data may include a write command and write data. - In operation S120, the
memory controller 1330 may determine (or estimate) temperature of a target nonvolatile memory. Herein, the target nonvolatile memory may refer to a nonvolatile memory which is selected, from among thenonvolatile memories memory controller 1330 to store data requested by thehost 1100. Thememory controller 1330 may determine the temperature of the target nonvolatile memory based on a temperature measured by at least one of thetemperature sensors FIGS. 3A and 3B ). - In operation S130, the
memory controller 1330 may compare the determined temperature of the target nonvolatile memory with a reference value Tref1. For example, the reference value Tref1 may indicate a reference temperature of a case where the temperature of the target nonvolatile memory is increasing and attention is recommended. Thememory controller 1330 may take corrective measures associated with decreasing the temperature of the target nonvolatile memory to be explained herein below. The reference value Tref1 may be selected to have a suitable value to prevent damage on the target nonvolatile memory. In other words, the value may be sufficiently low so that if the measured (or estimated) temperature is greater than Tref1, there would be sufficient time to undertake corrective action that may prevent heat-related damage from occurring to thestorage device 1300. The value selected for the reference value Tref1 may be varied according to need and/or in view of previously-measured (or estimated) data. - When the determined temperature of the target nonvolatile memory is smaller than the reference value Tref1, a first program operation S135 may be performed. In operation S135, the
memory controller 1330 may control a first program operation such that data is stored in the target nonvolatile memory. When the determined temperature at operation S130 is not greater than Tref1, the first program operation may be, for example, any operation typically associated with the nonvolatile memory of thestorage device 1300. - With continued reference to operation S130 in
FIG. 4 , when the determined temperature of the target nonvolatile memory is equal to or greater than the reference value Tref1, operation S140 may be performed. In operation S140, thememory controller 1330 may compare the determined temperature of the target nonvolatile memory with another reference value Tref2 to ascertain whether the determined temperature is sufficiently high (e.g. greater than Tref2) to warrant actions that would provide for a more substantial decrease in the temperature of the target nonvolatile memory. - According to the inventive concept, the reference value Tref2 may be greater than the reference value Tref1, and for example, may indicate the temperature of a case where the temperature of the target nonvolatile memory has excessively increased. At the reference value Tref2, it may be likely that the target nonvolatile memory is damaged or is about to be damaged. The reference value Tref2 may also be variously selected and changed to have a suitable value below a temperature that may cause damage the target nonvolatile memory so as to permit time to take correction actions which may include controlling a second program operation to be described below.
- When the determined temperature of the target nonvolatile memory is smaller than the reference value Tref2, operation S145 may be performed. In operation S145, the
memory controller 1330 may control a second program operation such that data is stored in the target nonvolatile memory. - For example, the second program operation performed in S145 may include a program operation that consumes a smaller amount of power than the first program operation of operation S135. The second program operation may use less power than a current operation, and less power than the first program operation, and a reduced temperature of the target nonvolatile memory may result. When a program operation performed on the target nonvolatile memory consumes a relatively large amount of power, the temperature of the target nonvolatile memory may continuously increase. Thus, when the determined temperature of the target nonvolatile memory is equal to or greater than the reference value Tref1, the second program operation may be performed to prevent the temperature of the target nonvolatile memory from excessively increasing (e.g. increasing to be equal to or greater than the reference value Tref2). The second program operation may result in the temperature of the nonvolatile memory decreasing faster than if the first program operation is performed. The operation of the nonvolatile memory according to the second program operation may be performed in terms of power consumption, data reliability, and lifespan of the target nonvolatile memory.
- On the other hand, when the determined temperature of the target nonvolatile memory is smaller than the reference value Tref1, the first program operation may be performed on the target nonvolatile memory. The first program operation may be performed without consideration of the determined temperature of the target nonvolatile memory.
- Furthermore, when the determined temperature of the target nonvolatile memory is equal to or greater than the reference value Tref2, operation S150 may be performed. In operation S150, the
memory controller 1330 may control the target nonvolatile memory to decrease a bandwidth for the target nonvolatile memory. When the bandwidth for the target nonvolatile memory decreases, an amount of power consumed by the target nonvolatile memory may be reduced, A reduced bandwidth may result in the temperature of the target nonvolatile memory decreasing to a level where other operations may be performed. - According to the example embodiments of the inventive concept, the
storage device 1300 may operate differently depending on the temperature of the target nonvolatile memory. When the temperature of the target nonvolatile memory increases, thememory controller 1330 may change an operational scheme to decrease the temperature of the target nonvolatile memory below a certain reference value. Thus, the inventive concept may prevent the temperature of the target nonvolatile memory from excessively increasing. - Decreasing the bandwidth in operation S150 may effectively decrease the temperature of the target nonvolatile memory. However, decreasing the bandwidth may degrade overall performance of the
storage device 1300 and may be disadvantageous for a user. Thus, in the example embodiments, such as shown in the flowchart inFIG. 4 , thememory controller 1330 may try to control the second program operation in operation S145, prior to decreasing the bandwidth. As will be described below, the second program operation (e.g. S145) may be selected so as to refrain from a degrading a performance of thestorage device 1300. - With continued reference to
FIG. 4 , the first program operation of operation S135 and the second program operation of operation S145 may be variously changed or modified.FIGS. 6 and 13 will illustrate some examples associated with the first program operation and the second program operation, to facilitate understanding of the inventive concept by a person of ordinary skill in the art. However, the inventive concept is not limited to the examples shown and described herein, and there can be various changes or modifications made to manage the temperature of the nonvolatile memory. - Operation S160 may be performed after the operations S135, S145, and S150. In operation S160, the
memory controller 1330 may determine whether storing data is finished. When storing data is not finished, thememory controller 1330 may successively determine the temperature of the target nonvolatile memory in operation S120. On the other hand, when storing data is finished, the example operation ofFIG. 4 may be ended. -
FIG. 5 illustrates an example of a operation of a storage device such as shown inFIG. 2 . To facilitate better understanding,FIGS. 2 and 5 will be referred to together. - Referring to
FIG. 5 , when the target nonvolatile memory is not operating (e.g. time before time ‘t1’), the temperature of the target nonvolatile memory may be ‘Tb’. The bandwidth of the target nonvolatile memory, which is a rate at which data may be written to or read from, may be restricted to reduce the power consumed by the target nonvolatile memory, and result in a decreased temperature of thestorage device 1300. - As the target nonvolatile memory begins to operate from time ‘t1’, the bandwidth for the target nonvolatile memory may increase and the temperature of the target nonvolatile memory may also increase to ‘Tc’. For example, the temperature ‘Tc’ may be a temperature sufficiently high that may cause damage to the target nonvolatile memory.
- For example, after time ‘t2’, the
memory controller 1330 may decrease the bandwidth for the target nonvolatile memory (refer to operation S150 ofFIG. 4 ). Thus, the temperature of the target nonvolatile memory may decrease to ‘Td’. - The
memory controller 1330 may recognize decrease in the temperature of the target nonvolatile memory, and at time ‘t3’, may increase the bandwidth for the target nonvolatile memory again. Thus, the temperature of the target nonvolatile memory may increase to the ‘Tc’ again. At time ‘t4’ and time ‘t5’, the increase/decrease in the temperature of the target nonvolatile memory and increase/decrease in the bandwidth for the target nonvolatile memory may be repeated. Thus, there can be a fluctuation during the operative periods, such as during t2 through t5, both in temperature, and in bandwidth, with a resultant fluctuation in performance due to the bandwidth being varied. - Decreasing the bandwidth may be effective to decrease the temperature of the target nonvolatile memory, but as previously indicated herein above, may also degrade performance of the
storage device 1300. Thus, in the example embodiments, decreasing the bandwidth may be performed, for example, when a condition is indicative that damage and data lost may occur (e.g. a “dangerous condition”). Instead, according to the inventive concept, thememory controller 1330 may first try to perform other operation (e.g., the second program operation of operation S145 ofFIG. 4 ) that consumes a smaller amount of power prior to decreasing the bandwidth of the target nonvolatile memory. In this way, a temperature of the target nonvolatile memory may be decreased sufficiently before performing a more restrictive action, which is to decrease the bandwidth. -
FIG. 6 is a graph illustrating some example program operations of a storage device such as shown inFIG. 2 . A first program operation and a second program operation are discussed. - For example, the
nonvolatile memories FIG. 2 may include flash memories. A memory cell of the flash memory may be a single-level cell (SLC) capable of storing one (1) bit, a multi-level cell (MLC) capable of storing two (2) bits, or a triple-level cell (TLC) capable of storing three (3) bits. For example, memory cells of thenonvolatile memories - With reference to
FIG. 6 , a first case illustrates a voltage distribution with regards to the states of the triple-level cell TLC. As the triple level cell has 3 bits, there are 23 states (e.g. 8 states) shown incase 1. The TLC may have one state among an erase state E0 and program states P1 to P7 according to a threshold voltage. - A second case of
FIG. 6 illustrates a voltage distribution in regards to states of the MLC. As the MLC is capable of storing two (2) bits (e.g. 4 states), the MLC may have one state among an erase state E0 and program states P1 to P3 according to a threshold voltage. - A third case of
FIG. 6 illustrates a voltage distribution in regards to states of the SLC. As the SLC is capable of storing one bit (e.g. 2 states), the SLC may have an erase state E0 or a program state P1 according to a threshold voltage. - Accordingly, program operations may be preformed to cause the various flash memories have a specific state. For example, a triple-level cell program operation (TLC program operation) may be performed to make the TLC have a specific state. A multi-level cell program operation (MLC program operation) may be performed to make the MLC have a specific state. A single-level cell program operation (SLC program operation) may be performed to make the SLC have a specific state.
- In some cases, the SLC program operation may be performed even on the TLC or the MLC. In such cases, the TLC or the MLC may be programmed to have only the program state P1, instead of having one among several program states P1 to P7 or P1 to P3 respectively.
- As shown in
FIG. 6 , the first program operation, the TLC and the MLC may have the larger number of states than the SLC. Moreover, a margin between states of the TLC and a margin between states of the MLC may be smaller than a margin between states of the SLC. Thus, the TLC program operation and the MLC program operation may accompany the large number of times of voltage applying operations, to precisely make the TLC and the MLC have a specific state. Consequently, the TLC program operation and the MLC program operation may consume a larger amount of power than the SLC program operation. - In some example embodiments of the inventive concept, the first program operation of operation S135 of
FIG. 4 may include the TLC program operation or the MLC program operation. Further, the second program operation of operation S145 ofFIG. 4 may include the SLC program operation. - In these example embodiments of the inventive concept, the second program operation may result in a lesser quantity of times voltage applying operations occur than when compared with the first program operation. Thus, the second program operation may consume a smaller amount of power than the first program operation. Meanwhile, the second program operation is different from the first program operation in terms of a manner for storing data, and but the second program operation may not provide a lower performance than the first program operation.
-
FIG. 7 is a graph illustrating an example of an operation of a storage device ofFIG. 2 which employs example program operations ofFIG. 6 . - While the target nonvolatile memory in this example is not operational before time ‘t1’, the temperature of the target nonvolatile memory may be ‘Tb’. As shown in
FIG. 7 , the target nonvolatile memory begins to operate from time ‘t1’, the bandwidth for the target nonvolatile memory and the temperature of the target nonvolatile memory may increase. Thememory controller 1330 ofFIG. 2 may control the first program operation (e.g., the TLC or MLC program operation) on the target nonvolatile memory, until the temperature of the target nonvolatile memory reaches ‘Tc’. - At time ‘t2’, the temperature of the target nonvolatile memory may increase to the ‘Tc’. The
memory controller 1330 may control the second program operation (e.g., the SLC program operation) on the target nonvolatile memory, to prevent the temperature of the target nonvolatile memory from excessively increasing. The second program operation may be continued until the temperature of the target nonvolatile memory reaches ‘Td’ at time ‘t3’. - When the temperature of the target nonvolatile memory decreases to the ‘Td’, the
memory controller 1330 may control the first program operation again on the target nonvolatile memory. In this manner, increase/decrease in the temperature of the target nonvolatile memory may be repeated at time ‘t4’ and time ‘t5’, and thus the first program operation and the second program operation may be alternately performed. - Meanwhile, for example, when the
memory controller 1330 simply changes the first program operation to the second program operation at time ‘t2’, the bandwidth for the target nonvolatile memory may somewhat increase along a dotted line G2. This increase occurs because an amount of bits transmitted according to the second program operation is smaller than an amount of bits transmitted according to the first program operation and thus additional bits may occupy a portion of bandwidth. However, an increase in the bandwidth may not be desirable when the second program operation is executed in part to decrease the temperature of the target nonvolatile memory. - Thus, the
memory controller 1330 may tune an operating condition of the target nonvolatile memory while changing from the first program operation to the second program operation. Thememory controller 1330 may tune the operating condition of the target nonvolatile memory such that the bandwidth for the target nonvolatile memory remains equivalent during the first program operation and the second program operation (refer to a solid line G1). - Herein, the phrase “the bandwidth remains equivalent” should not be interpreted as meaning that the bandwidth for the target nonvolatile memory remains physically constant. Rather, the phrase “the bandwidth remains equivalent” refers to a bandwidth for the target nonvolatile memory during the first program operation may be substantially equal to a bandwidth for the target nonvolatile memory during the second program operation, and the bandwidth for the target nonvolatile memory may not greatly vary during the first program operation and the second program operation.
- For example, the
memory controller 1330 may delay data transmission to the target nonvolatile memory to tune the operating condition of the target nonvolatile memory. To this end, in some example embodiments, thememory controller 1330 may include a delay buffer. In some example embodiments, thememory controller 1330 may adjust (e.g., decrease) an operating frequency of the target nonvolatile memory, to tune the operating condition of the target nonvolatile memory. However, these example embodiments are provided to facilitate understanding by a person of ordinary skill in the art, and the inventive concept is not limited in this regard. - When the operating condition of the target nonvolatile memory is tuned, the bandwidth for the target nonvolatile memory may remain equivalent (along the solid line G1) even if the first program operation is changed to the second program operation. Thus, the temperature of the target nonvolatile memory may decrease more effectively. Further, as compared with the case of
FIG. 5 , the bandwidth for the target nonvolatile memory may not decrease in the case ofFIG. 7 , and thus performance of thestorage device 1300 ofFIG. 2 may not be degraded. -
FIG. 8 is a table illustrating an example of information which is managed by a memory controller ofFIG. 2 . To facilitate understanding of this embodiment,FIG. 2 will be referred to together withFIG. 8 . - The
memory controller 1330 may manage information INF in regards to which data is stored in thenonvolatile memories - The information INF may include information associated with a correspondence relationship between data stored in the
nonvolatile memories nonvolatile memories - Some pieces of data may be stored according to a single manner of program operation. For example, as shown in
FIG. 8 , data DAT1 may be stored according to the first program operation, and data DAT3 may be stored according to the second program operation. Some pieces of data may be stored according to several program operations. For example, a portion of the data DAT2 may be stored according to the first program operation, and the other portion of the data DAT2 may be stored according to the second program operation. - For example, when the
nonvolatile memories FIG. 6 ). Thus, as compared with a TLC program operation on the TLC, the SLC program operation on the TLC may require a larger size (e.g., a larger storage capacity) of a memory area to store the same data. In some example embodiments of the inventive concept, additional management operations may be provided to manage data stored according to the second program operation. The management operations will be described with reference toFIGS. 9 to 11 . -
FIG. 9 is a conceptual diagram illustrating an example method of managing memory areas of nonvolatile memories ofFIG. 2 . - In some example embodiments, the
memory controller 1330 ofFIG. 2 may limit a size of a memory area which is programmed according to the second program operation in thenonvolatile memories memory controller 1330 may control thenonvolatile memories nonvolatile memories - For example, as illustrated in
FIG. 9 , thememory controller 1330 may allow only 20% memory area of each of thenonvolatile memories nonvolatile memories memory controller 1330 may allow only a first program operation for the remaining 80% memory area of each of thenonvolatile memories - When the size of the memory area programmed according to the second program operation is limited, the memory area may be prevented from being rapidly run out, and efficiency of memory management may be increased. Further, it may be possible to prevent lifespan of the
nonvolatile memories - However, the value of 20% is provided for illustrative purposes, and is not intended to limit the inventive concept. An absolute and/or relative size of a memory area programmed according to the second program operation may be variously changed or modified. Further, location (e.g., address) of the memory area programmed according to the second program operation may be fixed or may dynamically vary for each nonvolatile memory. In some example embodiments, some nonvolatile memories may be configured so as not to be programmed according to the second program operation.
- For example, a size of a memory area programmed according to the first program operation may be equally or differently selected for each nonvolatile memory. For example, the size of the memory area programmed according to the first program operation may be individually selected for each nonvolatile memory, or may be selected taking into account the whole size of the
nonvolatile memories -
FIG. 10 is a conceptual diagram illustrating an example of a method of managing memory areas of nonvolatile memories ofFIG. 2 . To facilitate better understanding,FIG. 2 will be referred to together withFIG. 10 . - As described above, as compared with the first program operation, the second program operation may require a larger size of a memory area of the
nonvolatile memories nonvolatile memories - In some example embodiments, the second program operation may be performed on a memory area which has a relatively lower wear level than a memory area on which the first program operation is performed. The first program operation may be performed on a memory area which has a relatively higher wear level. For example, when a wear level of a first memory area of the
nonvolatile memory 1311 is lower than a wear level of a second memory area of thenonvolatile memory 1311, thememory controller 1330 may control thenonvolatile memory 1311 such that the second program operation is performed on the first memory area. - In some example embodiments of the inventive concept, a memory area having a wear level which is higher than a reference value may be programmed according to only the first program operation. When the second program operation is performed on a memory area which has a lower wear level, the lifespan of the
nonvolatile memories storage device 1300. -
FIG. 10 illustrates two memory areas having different wear levels within onenonvolatile memory 1311. However, in some example embodiments, controlling a program operation based on a wear level may be considered between separate nonvolatile memories (e.g., between thenonvolatile memory 1311 and the nonvolatile memory 1312), rather than portions of the same one nonvolatile memory. For example, when wear levels of memory areas of thenonvolatile memory 1311 are lower than wear levels of memory areas of thenonvolatile memory 1312, the second program operation may be performed mainly on thenonvolatile memory 1311. -
FIG. 11 is a conceptual diagram illustrating an example of a method of rearranging data which is stored in nonvolatile memories ofFIG. 2 . To facilitate better understanding,FIG. 2 will be referred to along withFIG. 11 . - For example, the
nonvolatile memory 1311 may store data according to the second program operation. In some example embodiments, thememory controller 1330 may control thenonvolatile memories nonvolatile memory 1311 according to the second program operation is rearranged according to the first program operation. For example, the rearranging operation may be performed during an idle time period where the components of thestorage device 1300 do not operate. For example, the rearranging operation may be performed together with the internal management operation during a management time period in which thememory controller 1330 performs the internal management operation. - For example, when certain data is stored in the
nonvolatile memory 1311 according to the SLC program operation, thememory controller 1330 may read the stored data and may store the read data in thenonvolatile memory 1311 according to the TLC or MLC program operation, during the idle time period or the management time period. Thus, only a manner for storing data may be changed while maintaining contents of data, and the data may be rearranged. - As described above, as compared with the first program operation, the second program operation may require a larger size of a memory area of the
nonvolatile memories nonvolatile memories - Thus, rearranging the data, which is stored according to the second program operation, according to the first program operation may increase storage efficiency, lifespan, and operational performance. One of the reasons for the aforementioned increases may be that when the data stored according to the second program operation is rearranged according to the first program operation, the rearranged data may be stored in a smaller size of a memory area.
-
FIG. 11 illustrates that data stored in thenonvolatile memory 1311 is rearranged within the same nonvolatile memory (e.g. nonvolatile memory 1311). However, the rearranging operation may be considered between separate nonvolatile memories (e.g., between thenonvolatile memory 1311 and the nonvolatile memory 1312). For example, data stored in thenonvolatile memory 1311 according to the second program operation may be rearranged in thenonvolatile memory 1312 according to the first program operation. For example, to perform the rearranging operation, thememory controller 1330 may analyze various factors, such as a size of a memory area being programmed according to the second program operation in each nonvolatile memory, a wear level of each nonvolatile memory, and/or the like. -
FIG. 12 is a graph illustrating an example operation of a storage device ofFIG. 2 . Two nonvolatile memories will be considered with reference to the graph ofFIG. 12 . - The temperature of each of the nonvolatile memories may be ‘Tb’ while the two nonvolatile memories are not operational before time ‘t11’. As the nonvolatile memories begin to operate from time “t11’, the temperature of each of the nonvolatile memories may increase, as shown in
FIG. 12 . - For example, taking into account a first nonvolatile memory, at time ‘t12’, the temperature of the first nonvolatile memory may increase to ‘Tc1’. For example, the temperature ‘Tc1’ may be temperature that causes damage on the nonvolatile memories. Thus, from time ‘t12’, the
memory controller 1330 ofFIG. 2 may control operations of the nonvolatile memories (e.g., may decrease a bandwidth for each of the nonvolatile memories) such that the temperature of each of the nonvolatile memories does not increase. - Afterwards, at time ‘t13’, the temperature of the first nonvolatile memory may decrease to ‘Td1’. Thus, the
memory controller 1330 may control the nonvolatile memories such that the bandwidth for each of the nonvolatile memories increases again, and thus the temperature of each of the nonvolatile memories may increase again. In this manner, increase/decrease in the temperature of each of the nonvolatile memories may be repeated at time ‘t14’ and time ‘t16’. - Meanwhile, taking into account the second nonvolatile memory, the temperature of the second nonvolatile memory may increase to ‘Tc2’ while the temperature of the first nonvolatile memory increases to ‘Tc1’. At time ‘t12’, the temperature of the second nonvolatile memory does not reach a level that may cause damage on the second nonvolatile memory. Nevertheless, the
memory controller 1330 controls the operations of the nonvolatile memories such that the temperature of each of the nonvolatile memories does not increase, and thus a bandwidth for the second nonvolatile memory may decrease. - In this case, even though it is permissible to further increase the temperature of the second nonvolatile memory, from time ‘t12’, the operational performance of the second nonvolatile memory may be degraded in conjunction with decrease in the bandwidth for the first nonvolatile memory. The bandwidth for the second nonvolatile memory may increase again, after the temperature of the first nonvolatile memory decreases to the ‘Td1’ and the temperature of the second nonvolatile memory reaches ‘Td2’ at time ‘t13’.
-
FIG. 12 illustrates that a desired result in terms of performance may not always be achieved when uniform control of operations of the plurality of nonvolatile memories occur. Thus, in the example embodiments, the operations of the plurality of nonvolatile memories may be independently controlled based on their respective temperature. -
FIG. 13 is a conceptual diagram illustrating an example of program operations of a storage device such as shown inFIG. 2 . - As an example to facilitate understanding by a person of ordinary skill in the art, a current temperature of the
nonvolatile memory 1311 may be higher than the reference value Tref1. On the other hand, current temperature of each of thenonvolatile memories nonvolatile memory 1312 may be lower than the current temperature of thenonvolatile memory 1313. - The
memory controller 1330 may transmit data DAT11 and data DAT12 to at least one of thenonvolatile memories memory controller 1330 may select thenonvolatile memory 1311 as a target nonvolatile memory to store the data DAT11. For example, the data DAT11 may be directed to thenonvolatile memory 1311. - However, the
memory controller 1330 may determine that the current temperature of thenonvolatile memory 1311 is higher than the reference value Tref1. In this case, thememory controller 1330 may transmit the data DAT11 to thenonvolatile memory 1312 instead of transmitting the data DAT11 to thenonvolatile memory 1311. For example, when the current temperature of thenonvolatile memory 1311 is equal to or higher than the reference value Tref1, thememory controller 1330 may transmit the data DAT11 to thenonvolatile memory 1312 which has the temperature lower than the reference value Tref1. - In some example embodiments, when the temperature of the
nonvolatile memory 1311 is equal to or higher than the reference value Tref1, thememory controller 1330 may communicate with othernonvolatile memory 1312 prior to and/or instead of decreasing a bandwidth for thenonvolatile memory 1311. Accordingly, the operational performance of thestorage device 1300 ofFIG. 2 may not be degraded. Further, communicating with thenonvolatile memory 1312 which has lower temperature than thenonvolatile memory 1311 may be advantageous in terms of power consumption, lifespan, and data reliability. - Meanwhile, the
memory controller 1330 may select thenonvolatile memory 1313 as a target nonvolatile memory to store the data DAT12. For example, the data DAT12 may be directed to thenonvolatile memory 1313. The current temperature of thenonvolatile memory 1313 is lower than the reference value Tref1, and thus it may be allowable to store the data DAT12 in thenonvolatile memory 1313. Thus, thememory controller 1330 may transmit the data DAT12 to thenonvolatile memory 1313. - In some example embodiments, the first program operation of operation S135 of
FIG. 4 may include transmitting data to a nonvolatile memory which has temperature lower than the reference value Tref1. Further, the second program operation of operation S145 ofFIG. 4 may include transmitting data to a nonvolatile memory which has temperature lower than the reference value Tref1 instead of transmitting the data to a nonvolatile memory which has temperature equal to or higher than the reference value Tref1. - In these example embodiments, the second program operation may be performed on a nonvolatile memory having a relatively low temperature. The second program operation may consume a small amount of power, which may account for the relative low temperature. On the other hand, the second program operation accompanies a change of the target nonvolatile memory, and does not to provide lower performance than the first program operation.
- Further, in these example embodiments, the
memory controller 1330 may perform the first program operation and the second program operation together. For example, transmitting the data DAT12 to thenonvolatile memory 1313 may be performed together with transmitting the data DAT11 to thenonvolatile memory 1312 instead of the nonvolatile memory 1311 (when thenonvolatile memory 1311 may have a temperature higher than a reference value). Herein, “performing together” may include not only performing at the same time (e.g., simultaneously) but also non-exclusively performing during different time periods (e.g., concurrently or in parallel). -
FIG. 14 is a graph illustrating an example of an operation of a storage device ofFIG. 2 which employs example program operations ofFIG. 13 . To facilitate better understanding,FIG. 2 will be referred to together withFIG. 14 . - As described above, the first program operation of
FIG. 13 may be performed together with the second program operation ofFIG. 13 . For example, an operation of thenonvolatile memory 1311, an operation of thenonvolatile memory 1312, and an operation of thenonvolatile memory 1313 may be independently controlled based on the temperature ofnonvolatile memory 1311, the temperature ofnonvolatile memory 1312, and the temperature ofnonvolatile memory 1313 respectively. - Thus, referring to
FIG. 14 , when the temperature of a first nonvolatile memory increases to ‘Tc1’ at time ‘t12’, thememory controller 1330 may control the first nonvolatile memory such that the temperature of the first nonvolatile memory decreases. However, thememory controller 1330 may independently control a second nonvolatile memory based on temperature of the second nonvolatile memory irrespective of the temperature of the first nonvolatile memory. Thus, unlike as illustrated inFIG. 12 , an operation of the second nonvolatile memory may not be changed at time ‘t12’. - The temperature of the second nonvolatile memory may increase until the temperature of the second nonvolatile memory reaches ‘Tc1’ at time ‘t15’. At time ‘t15’, the
memory controller 1330 may control the second nonvolatile memory such that the temperature of the second nonvolatile memory decreases. After the temperature of the second nonvolatile memory decreases to ‘Td1’ at time ‘t17’, thememory controller 1330 may allow the temperature of the second nonvolatile memory to increase.FIG. 14 illustrates that independent control of the operations of the plurality of nonvolatile memories may contribute to an increase in terms of operational performance. -
FIG. 15 is a conceptual diagram illustrating an example of a method of migrating data which is stored in nonvolatile memories ofFIG. 2 . - As described with reference to
FIG. 13 , the data DAT11 directed to thenonvolatile memory 1311 may be transmitted to thenonvolatile memory 1312. However, when a size of the remaining available memory area of thenonvolatile memory 1312 is insufficient, thenonvolatile memory 1312 may not store the data DAT11. - Thus, for example, before transmitting the data DAT11 to the
nonvolatile memory 1312, thememory controller 1330 ofFIG. 2 may secure the available memory area of thenonvolatile memory 1312 in advance. For example, to secure the available memory area of thenonvolatile memory 1312, thememory controller 1330 may control thenonvolatile memories nonvolatile memory 1312 migrates to other nonvolatile memory (e.g., the nonvolatile memory 1313). Thus, the available memory area of thenonvolatile memory 1312 may be secured. - In some example embodiments, the
memory controller 1330 may determine an alternative nonvolatile memory which has a relatively low temperature and is available to receive data instead of another nonvolatile memory. Thememory controller 1330 may control nonvolatile memories such that data stored in the determined alternative nonvolatile memory migrates to other nonvolatile memory in advance. Accordingly, the available memory area of the alternative nonvolatile memory may be secured. For example, such a migration operation may be performed during an idle time period or a management time period. -
FIG. 16 is a conceptual diagram illustrating an example of a method of migrating data which is stored in nonvolatile memories ofFIG. 2 . - For example, the
memory controller 1330 may trace average temperature of each of thenonvolatile memories memory controller 1330 may determine that average temperature of thenonvolatile memory 1311 is higher than average temperature of each of thenonvolatile memories nonvolatile memory 1311 is read, thememory controller 1330 may move the data stored in thenonvolatile memory 1311 to thenonvolatile memory 1313. Thus, thememory controller 1330 may read the data from thenonvolatile memory 1313. - Data stored in a nonvolatile memory having excessive high temperature may have a higher error rate, and/or such data may be lost/corrupted. Thus, in some example embodiments, the
memory controller 1330 may control nonvolatile memories such that data stored in a nonvolatile memory having a higher average temperature migrates to a nonvolatile memory having a lower average temperature. This data migration may increase data reliability. For example, such a migration operation may be performed during an idle time period or a management time period before data is read. -
FIG. 17 is a conceptual diagram illustrating an example of an operation of a storage device ofFIG. 2 which employs example program operations ofFIG. 13 . - The
memory controller 1330 may transmit data DAT13 to thenonvolatile memories memory controller 1330 may select thenonvolatile memory 1311 as a target nonvolatile memory to store the data DAT13. For example, the data DAT13 may be directed to thenonvolatile memory 1311. - However, the
memory controller 1330 may determine that current temperature of thenonvolatile memory 1311 is higher than the reference value Tref1. In some example embodiments, as described with reference toFIG. 13 , thememory controller 1330 may transmit the data DAT13 to thenonvolatile memory 1312 instead of transmitting the data DAT13 to thenonvolatile memory 1311 when it is determined that thenonvolatile memory 1312 has a lower temperature that does not, for example, exceed a reference value. - Meanwhile, the temperature of the
nonvolatile memory 1312 was lower than the reference value Tref1 initially, but the temperature of thenonvolatile memory 1312 may be changed to be equal to or higher than the reference value Tref1 while the data DAT13 is transmitted to thenonvolatile memory 1312. For example, as a portion DAT13′ of the data DAT13 is stored in thenonvolatile memory 1312, the temperature of thenonvolatile memory 1312 may increase to be higher than the reference value Tref1. - Since the temperature of the
nonvolatile memory 1312 increases, completely storing the remaining portion R of the data DAT13 (e.g. remaining part) in thenonvolatile memory 1312 may not be warranted in terms of power consumption, lifespan, and data reliability. Thus, in some example embodiments, thememory controller 1330 may transmit the remaining portion R of the data DAT13 to thenonvolatile memory 1313. Since the temperature of thenonvolatile memory 1313 is lower than the reference value Tref1, it may be advisable to store the remaining portion R of the data DAT13 in thenonvolatile memory 1313 in terms of power consumption, lifespan, and data reliability. - In some example embodiments, the
memory controller 1330 may first change a program operation on thenonvolatile memory 1312 instead of immediately transmitting the remaining portion R of the data DAT13 to thenonvolatile memory 1313. For example, when the temperature of thenonvolatile memory 1312 is changed to be equal to or higher than the reference value Tref1, thememory controller 1330 may change a TLC or MLC program operation on thenonvolatile memory 1312 to an SLC program operation, as described with reference toFIGS. 6 and 7 . In some cases, a nonvolatile memory controlled according to the SLC program operation may co-exist with a nonvolatile memory controlled according to the TLC or MLC program operation. - When a change of the program operation allows the temperature of the
nonvolatile memory 1312 to decrease, the remaining portion R of the data DAT13 may be stored in thenonvolatile memory 1312. However, when the temperature of thenonvolatile memory 1312 does not decrease to be lower than the reference value Tref1 despite the change of the program operation, the remaining portion R of the data DAT13 may be transmitted to thenonvolatile memory 1313. The migration of data to a lower temperature nonvolatile memory has a lesser impact on a user than reducing the bandwidth of the current nonvolatile memory in which the data is stored to reduce a temperature via reduced power consumption. - In the above descriptions, some example embodiments of the first program operation and the second program operation have been provided for illustrative purposes. However, the above example embodiments are provided to facilitate understanding by a person of ordinary skill in the art, and the first and second program operations may be variously changed or modified to suitably manage the temperature of the
nonvolatile memories FIGS. 18 and 19 . -
FIG. 18 is a flowchart illustrating an example of an operation of a storage device ofFIG. 2 . To facilitate the explanation of the flowchart inFIG. 18 ,FIG. 2 will be referred to in conjunction withFIG. 18 . - In operation S210, the
memory controller 1330 may receive data from thehost 1100. In operation S220, thememory controller 1330 may determine temperature of a target nonvolatile memory. In operation S230, thememory controller 1330 may compare the determined temperature of the target nonvolatile memory with a reference value Tref1. When the determined temperature of the target nonvolatile memory is lower than the reference value Tref1, operation S240 may be performed. - In operation S240, the
memory controller 1330 may control the first program operation (e.g., a TLC or MLC program operation) such that data is stored in the target nonvolatile memory. In operation S245, thememory controller 1330 may determine whether storing data is finished. When storing data is not finished, thememory controller 1330 may successively determine the temperature of the target nonvolatile memory in operation S220 each time operation S220 is performed. On the other hand, when storing data is finished, the example operation ofFIG. 18 may end. - When the temperature of the target nonvolatile memory is equal to or higher than the reference value Tref1, operation S250 may be performed. In operation S250, the
memory controller 1330 may control the second program operation (e.g., a SLC program operation) such that data is stored in the target nonvolatile memory. In operation S255, thememory controller 1330 may determine whether storing data is finished. When storing data is finished, the example operation ofFIG. 18 may end. - On the other hand when storing data is not finished, then in operation S260 the
memory controller 1330 may determine the temperature of the target nonvolatile memory. In operation S270, thememory controller 1330 may compare the determined temperature of the target nonvolatile memory with a reference value Tref3. The reference value Tref3 may be greater than the reference value Tref1, and may indicate temperature of a case where the temperature of the target nonvolatile memory is excessively increasing. - When the determined temperature of the target nonvolatile memory is lower than the reference value Tref3, the
memory controller 1330 may determine whether storing data is finished in operation S255. On the other hand, when at operation S255 the determined temperature of the target nonvolatile memory is equal to or higher than the reference value Tref3, thememory controller 1330 may transmit data to another nonvolatile memory, as described with reference toFIG. 13 , in operation S280. Afterwards, thememory controller 1330 may determine whether storing data is finished in operation S245. -
FIG. 19 is a flowchart illustrating an example of an operation of a storage device ofFIG. 2 . To facilitate better understanding,FIG. 2 will be referred to together withFIG. 19 . - In operation S310, the
memory controller 1330 may receive data from thehost 1100. In operation S320, thememory controller 1330 may determine the temperature of a target nonvolatile memory. In operation S330, thememory controller 1330 may compare the determined temperature of the target nonvolatile memory with a reference value Tref1. When the determined temperature of the target nonvolatile memory is lower than the reference value Tref1, operation S340 may be performed. - In operation S340, the
memory controller 1330 may transmit data to the target nonvolatile memory according to the first program operation. In operation S345, thememory controller 1330 may determine whether storing data is finished. When storing data is not finished, thememory controller 1330 may successively determine the temperature of the target nonvolatile memory in operation S320. On the other hand, when storing data is finished, the example operation ofFIG. 19 may be end. - When the determined temperature of the target nonvolatile memory is to be equal to or higher than the reference value Tref1, operation S350 may be performed. In operation S350, the
memory controller 1330 may transmit the data to other nonvolatile memory according to the second program operation. The other nonvolatile memory may be provided as a new target nonvolatile memory. In operation S355, thememory controller 1330 may determine whether storing data is finished. When storing data is finished, the example operation ofFIG. 19 may be ended. - On the other hand, when storing data is not finished, the
memory controller 1330 may determine the temperature of the (new) target nonvolatile memory in operation S360. In operation S370, thememory controller 1330 may compare the determined temperature of the target nonvolatile memory with a reference value Tref4. For example, the reference value Tref4 may indicate temperature of a case where the temperature of the target nonvolatile memory is increasing and attention is recommended. - When the determined temperature of the target nonvolatile memory is equal to or higher than the reference value Tref4, the
memory controller 1330 may control the SLC program operation, described with reference toFIGS. 6 and 7 , in operation S380. On the other hand, when the determined temperature of the target nonvolatile memory is lower than the reference value Tref4, thememory controller 1330 may control the TLC or MLC program operation, such as, for example, described with reference toFIGS. 6 and 7 , in operation S390. Afterwards, thememory controller 1330 may determine whether storing data is finished in operation S345. -
FIG. 20 is a graph illustrating examples associated with temperature which is managed by a storage device ofFIG. 2 . To facilitate better understanding,FIG. 2 will be referred to together withFIG. 20 . - In some example embodiments, the temperature of the nonvolatile memory described above may be associated with an absolute value of temperature. For example, the
memory controller 1330 may control an operation of the nonvolatile memory such that an absolute value of the temperature of the nonvolatile memory does not exceed ‘Tc’. - In some example embodiments, the temperature of the nonvolatile memory described above may be associated with a rate of increase on temperature per reference time “tref”. For example, when a rate of increase on temperature of a target nonvolatile memory per the reference time tref is equal to or greater than a reference value, it is likely that the temperature of the target nonvolatile memory increases to ‘Tc’ in a short time. Thus, the rate of increase on the temperature of the nonvolatile memory per the reference time tref may be used as a suitable measure for managing the temperature of the nonvolatile memory. The reference time tref may be variously selected or changed taking into account various factors, such as thermal capacity of each of the
nonvolatile memories storage device 1300, a surrounding condition, and/or the like. - For example, when the rate of increase on the temperature of the target nonvolatile memory per the reference time tref is equal to or greater than the reference value, the
memory controller 1330 may change the first program operation on the target nonvolatile memory to the second program operation, or may prepare changing an operation of the target nonvolatile memory. On the other hand, when the rate of increase on the temperature of the target nonvolatile memory per the reference time tref is smaller than the reference value, thememory controller 1330 may allow the temperature of the target nonvolatile memory to further increase. - In some example embodiments, the
memory controller 1330 may consider both the absolute value of the temperature of the nonvolatile memory and the rate of increase on the temperature of the nonvolatile memory per the reference time tref. For example, when the rate of increase on the temperature of the target nonvolatile memory per the reference time tref is equal to or greater than the reference value, thememory controller 1330 may change the first program operation on the target nonvolatile memory to the second program operation. Nevertheless, when the absolute value of the temperature of the target nonvolatile memory reaches a dangerous level, thememory controller 1330 may decrease a bandwidth for the target nonvolatile memory or may operate other nonvolatile memory. The example embodiments may be variously changed or modified based on the aforementioned descriptions. - The above descriptions are to provide specific example embodiments for implementing the inventive concepts of the present disclosure. The present disclosure would include not only the example embodiments described above, but also other example embodiments obtained by simply changing or easily modifying the designs of the above-described example embodiments. The present disclosure would also include technologies which would be implemented in the future by simply changing or easily modifying the designs of the above-described example embodiments.
Claims (20)
1. A storage device comprising:
a nonvolatile memory; and
a memory controller configured to:
control a first program operation on the nonvolatile memory when a temperature of the nonvolatile memory is less than a first reference value, and
control a second program operation on the nonvolatile memory when the temperature of the nonvolatile memory is equal to or greater than the first reference value, in which the first program operation and the second program operation are performed on data stored in the nonvolatile memory,
wherein the second program operation consumes less power than the first program operation,
wherein the memory controller is further configured to adjust an operational condition of the nonvolatile memory, such that bandwidth on the nonvolatile memory remains equivalent during the first and second program operations, and
wherein the second program operation includes a smaller number of voltage applying operations than the first program operation.
2. The storage device of claim 1 , wherein:
the nonvolatile memory includes memory cells comprising multi-level cells or triple-level cells, and
the first program operation comprises a multi-level cell program operation or a triple-level cell program operation, and the second program operation comprises a single-level cell program operation.
3. The storage device of claim 1 , wherein:
adjusting the operational condition of the nonvolatile memory comprises delaying data transmission to the nonvolatile memory and adjusting an operating frequency of the nonvolatile memory.
4. The storage device of claim 1 , wherein:
the memory controller is further configured to manage information associated with whether data of the nonvolatile memory is stored according to the first program operation or the second program operation.
5. The storage device of claim 1 , wherein:
the memory controller is further configured to limit a size of a memory area of the nonvolatile memory programmed according to the second program operation.
6. The storage device of claim 1 , wherein:
when a wear level of a first memory area in the nonvolatile memory is lower than a wear level of a second memory area in the nonvolatile memory, the memory controller is further configured to control the nonvolatile memory to perform the second program operation on the first memory area.
7. The storage device of claim 1 , wherein:
the memory controller is further configured to control the nonvolatile memory such that data stored in the nonvolatile memory according to the second program operation is rearranged according to the first program operation during an idle time period or a management time period.
8. The storage device of claim 1 , wherein:
when the temperature of the nonvolatile memory is equal to or higher than a second reference value which is greater than the first reference value, the memory controller is further configured to control the nonvolatile memory such that the bandwidth on the nonvolatile memory decreases.
9. The storage device of claim 1 , wherein:
the nonvolatile memory comprises a plurality of nonvolatile memories, and
when a first temperature of a first nonvolatile memory among the plurality of nonvolatile memories is equal to or higher than the first reference value and a second temperature of a second nonvolatile memory among the plurality of nonvolatile memories is lower than the first reference value, the memory controller is further configured to transmit data which is directed to the first nonvolatile memory to the second nonvolatile memory according to the second program operation.
10. A storage device comprising:
a plurality of nonvolatile memories; and
a memory controller configured to transmit first data and second data to the plurality of nonvolatile memories,
wherein, when a first temperature of a first nonvolatile memory among the plurality of nonvolatile memories is equal to or higher than a reference value and a second temperature of a second nonvolatile memory and a third temperature of a third nonvolatile memory from among the plurality of nonvolatile memories are each lower than the reference value, the memory controller is further configured to:
transmit the first data which is directed to the first nonvolatile memory to the second nonvolatile memory, and
transmit the second data which is directed to the third nonvolatile memory to the third nonvolatile memory, and
wherein the memory controller is further configured to transmit the first data to the second nonvolatile memory together with transmitting the second data to the third nonvolatile memory.
11. The storage device of claim 10 , wherein:
the memory controller is further configured to control the plurality of nonvolatile memories such that data stored in the second nonvolatile memory migrates to a fourth nonvolatile memory among the plurality of nonvolatile memories prior to transmitting the first data to the second nonvolatile memory.
12. The storage device of claim 10 , wherein:
when an average temperature of a fifth nonvolatile memory among the plurality of nonvolatile memories is higher than average temperature of a sixth nonvolatile memory among the plurality of nonvolatile memories during a reference time period, the memory controller is further configured to control the plurality of nonvolatile memories such that data stored in the fifth nonvolatile memory migrates to the sixth nonvolatile memory during an idle time period or a management time period.
13. The storage device of claim 10 , wherein:
when a temperature of the second nonvolatile memory is changed to become equal to or higher than the reference value while the memory controller transmits the first data to the second nonvolatile memory, the memory controller is further configured to:
change a first program operation on the second nonvolatile memory to a second program operation which accompanies a smaller number of voltage applying operations than the first program operation, or
transmit a remaining part of the first data to a seventh nonvolatile memory having temperature which is lower than the reference value.
14. The storage device of claim 10 , wherein the first temperature of the first nonvolatile memory, the second temperature of the second nonvolatile memory, and the third temperature the third nonvolatile memory are each associated with at least one of an absolute value of temperature or a rate of increase on temperature per reference time.
15. A storage device comprising:
a plurality of nonvolatile memories;
a memory controller configured to:
control read and write operations on data stored in the nonvolatile memories, and
control at least a first program operation and a second program operation; and
at least one temperature sensor being arranged substantially adjacent at least one nonvolatile memory of the plurality of nonvolatile memories, the at least one temperature sensor having an output connected to the memory controller to provide temperature information to the memory controller,
wherein the memory controller determines a temperature of the at least one nonvolatile memory, and controls execution of the first program operation when the determined temperature of the at least one nonvolatile memory is less than a first reference value,
wherein the memory controller controls execution of the second program operation when the determined temperature of the at least one nonvolatile memory is equal to or greater than the first reference value, and
wherein the memory controller decreases a bandwidth of the at least one nonvolatile memory when the determined temperature of the at least one nonvolatile memory is equal to or greater than a second reference value that is greater than the first reference value.
16. The storage device according to claim 15 , wherein subsequent to the bandwidth of the at least one nonvolatile memory being decreased, the memory controller restores the bandwidth of the at least one nonvolatile memory upon a determination that the determined temperature of the at least one nonvolatile memory has decreased to a temperature at least less than the second reference value.
17. The storage device according to claim 15 , wherein the at least one temperature sensor comprises a plurality of temperature sensors in which each one temperature sensor is arranged substantially adjacent a respective nonvolatile memory of the plurality of nonvolatile memories.
18. The storage device according to claim 15 , wherein the memory controller further includes a delay buffer to delay data transmission to the at least one nonvolatile memory.
19. The storage device according to claim 18 , wherein the memory controller is further configured to tune an operational condition of the at least one nonvolatile memory during a transition from the first program operation to the second program operation by transmitting data to the delay buffer.
20. The storage device according to claim 15 , wherein the memory controller is further configured to tune an operational condition of the at least one nonvolatile memory during a transition from the first program operation to the second program operation by controlling a decrease in an operating frequency of the at least one nonvolatile memory.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020160164550A KR102669687B1 (en) | 2016-12-05 | 2016-12-05 | Storage device operating differently according to temperature of memory |
KR10-2016-0164550 | 2016-12-05 |
Publications (2)
Publication Number | Publication Date |
---|---|
US9990964B1 US9990964B1 (en) | 2018-06-05 |
US20180158492A1 true US20180158492A1 (en) | 2018-06-07 |
Family
ID=62235588
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US15/626,574 Active US9990964B1 (en) | 2016-12-05 | 2017-06-19 | Storage device operating differently according to temperature of memory |
Country Status (2)
Country | Link |
---|---|
US (1) | US9990964B1 (en) |
KR (1) | KR102669687B1 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112823388A (en) * | 2018-09-06 | 2021-05-18 | 美光科技公司 | Operating temperature management of memory subsystem |
US11567668B1 (en) * | 2021-09-08 | 2023-01-31 | International Business Machines Corporation | Data flow management in a heterogeneous memory device using a thermal profile |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6819377B2 (en) * | 2017-03-14 | 2021-01-27 | オムロン株式会社 | RFID data management equipment, RFID data management methods, and RFID data management programs |
US10339983B1 (en) * | 2017-12-29 | 2019-07-02 | Micron Technology, Inc. | Temperature-based memory operations |
KR102568896B1 (en) * | 2018-04-19 | 2023-08-21 | 에스케이하이닉스 주식회사 | Memory controller and memory system having the same |
KR20200069905A (en) * | 2018-12-07 | 2020-06-17 | 삼성전자주식회사 | Storage system and operating method of storage system |
KR20210015331A (en) * | 2019-08-01 | 2021-02-10 | 삼성전자주식회사 | A memory device, a memory controller and a memory system including the same for performing state shaping operation |
US11892928B2 (en) | 2020-12-28 | 2024-02-06 | Western Digital Technologies, Inc. | Delayed thermal throttling and associated data routing techniques |
CN116055897B (en) * | 2022-08-25 | 2024-02-27 | 荣耀终端有限公司 | Photographing method and related equipment thereof |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120287711A1 (en) * | 2011-05-09 | 2012-11-15 | Samsung Electronics Co., Ltd. | Flash memory device and memory system including the same |
US20140359242A1 (en) * | 2013-06-03 | 2014-12-04 | Samsung Electronics Co., Ltd. | Memory device with relaxed timing parameter according to temperature, operating method thereof, and memory controller and memory system using the memory device |
US20150301932A1 (en) * | 2014-04-21 | 2015-10-22 | Moon-wook OH | Nonvolatile memory system and method of performing operation of the nonvolatile memory system |
Family Cites Families (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20010039014A1 (en) | 2000-01-11 | 2001-11-08 | Maxygen, Inc. | Integrated systems and methods for diversity generation and screening |
US20040003132A1 (en) | 2000-12-06 | 2004-01-01 | Biosentients, Inc. | Data pool architecture, system, and method for intelligent object data in heterogeneous data environments |
DE602004026291D1 (en) | 2004-07-30 | 2010-05-12 | St Microelectronics Srl | Color interpolation with data-dependent triangulation |
KR101497073B1 (en) * | 2008-02-29 | 2015-03-02 | 삼성전자주식회사 | Apparatus for determining number of bits of data storing in memory |
US8407400B2 (en) | 2008-11-12 | 2013-03-26 | Micron Technology, Inc. | Dynamic SLC/MLC blocks allocations for non-volatile memory |
US8266503B2 (en) | 2009-03-13 | 2012-09-11 | Fusion-Io | Apparatus, system, and method for using multi-level cell storage in a single-level cell mode |
US9245653B2 (en) | 2010-03-15 | 2016-01-26 | Intelligent Intellectual Property Holdings 2 Llc | Reduced level cell mode for non-volatile memory |
US8548639B2 (en) | 2010-07-15 | 2013-10-01 | Seagate Technology Llc | Temperature monitoring systems and methods |
US8472274B2 (en) * | 2011-03-02 | 2013-06-25 | Apple Inc. | Using temperature sensors with a memory device |
US20120327829A1 (en) | 2011-06-24 | 2012-12-27 | Broadcom Corporation | Method and System for Allocating Bandwidth for Data Transmissions Between High-Speed Wireless Devices |
WO2013048518A1 (en) | 2011-09-30 | 2013-04-04 | Intel Corporation | Dynamic operations for 3d stacked memory using thermal data |
US9152568B1 (en) | 2011-12-05 | 2015-10-06 | Seagate Technology Llc | Environmental-based device operation |
US8873323B2 (en) | 2012-08-16 | 2014-10-28 | Transcend Information, Inc. | Method of executing wear leveling in a flash memory device according to ambient temperature information and related flash memory device |
US9355024B2 (en) | 2012-10-10 | 2016-05-31 | Apple Inc. | Systems and methods for nonvolatile memory performance throttling |
US9053036B2 (en) | 2012-11-26 | 2015-06-09 | Avago Technologies General Ip (Singapore) Pte Ltd | System and method for providing a flash memory cache input/output throttling mechanism based upon temperature parameters for promoting improved flash life |
US8995184B2 (en) | 2012-12-06 | 2015-03-31 | Sandisk Technologies Inc. | Adaptive operation of multi level cell memory |
US9396755B2 (en) | 2013-02-20 | 2016-07-19 | Kabushiki Kaisha Toshiba | Temperature-defined data-storage policy for a hybrid disk drive |
US9342443B2 (en) | 2013-03-15 | 2016-05-17 | Micron Technology, Inc. | Systems and methods for memory system management based on thermal information of a memory system |
US20150092488A1 (en) | 2013-09-27 | 2015-04-02 | Yogesh Wakchaure | Flash memory system endurance improvement using temperature based nand settings |
KR102244618B1 (en) * | 2014-02-21 | 2021-04-26 | 삼성전자 주식회사 | Flash memory device and controlling method of flash memory device |
US9275741B1 (en) | 2014-09-10 | 2016-03-01 | Western Digital Technologies, Inc. | Temperature compensation management in solid-state memory |
US9996297B2 (en) | 2014-11-14 | 2018-06-12 | SK Hynix Inc. | Hot-cold data separation method in flash translation layer |
US9489146B2 (en) | 2014-12-09 | 2016-11-08 | Sandisk Technologies Llc | Memory system and method for selecting memory dies to perform memory access operations in based on memory die temperatures |
-
2016
- 2016-12-05 KR KR1020160164550A patent/KR102669687B1/en active IP Right Grant
-
2017
- 2017-06-19 US US15/626,574 patent/US9990964B1/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120287711A1 (en) * | 2011-05-09 | 2012-11-15 | Samsung Electronics Co., Ltd. | Flash memory device and memory system including the same |
US20140359242A1 (en) * | 2013-06-03 | 2014-12-04 | Samsung Electronics Co., Ltd. | Memory device with relaxed timing parameter according to temperature, operating method thereof, and memory controller and memory system using the memory device |
US20150301932A1 (en) * | 2014-04-21 | 2015-10-22 | Moon-wook OH | Nonvolatile memory system and method of performing operation of the nonvolatile memory system |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112823388A (en) * | 2018-09-06 | 2021-05-18 | 美光科技公司 | Operating temperature management of memory subsystem |
US11132037B2 (en) * | 2018-09-06 | 2021-09-28 | Micron Technology, Inc. | Operating temperature management of a memory sub-system |
US20210397233A1 (en) * | 2018-09-06 | 2021-12-23 | Micron Technology, Inc. | Operating temperature management of a memory sub-system |
US11841753B2 (en) * | 2018-09-06 | 2023-12-12 | Micron Technology, Inc. | Operating temperature management of a memory sub-system |
US11567668B1 (en) * | 2021-09-08 | 2023-01-31 | International Business Machines Corporation | Data flow management in a heterogeneous memory device using a thermal profile |
Also Published As
Publication number | Publication date |
---|---|
US9990964B1 (en) | 2018-06-05 |
KR20180064617A (en) | 2018-06-15 |
KR102669687B1 (en) | 2024-05-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9990964B1 (en) | Storage device operating differently according to temperature of memory | |
KR101870062B1 (en) | Storage module and method for adaptive burst mode | |
KR102098697B1 (en) | Non-volatile memory system, system having the same and method for performing adaptive user storage region adjustment in the same | |
TW201621912A (en) | System and method for configuring and controlling non-volatile cache | |
KR102351660B1 (en) | Solid state memory system with power management mechanism and method of operation thereof | |
US10254979B1 (en) | Relocating or aborting a block of data by a host, based on media policies managed by a storage device | |
US11132143B2 (en) | Universal flash storage (UFS) device and computing device and computing device including storage UFS device for reporting buffer size based on reuse time after erase | |
US20190220397A1 (en) | Memory system and operating method thereof | |
US20170038969A1 (en) | Data storage device and operating method thereof | |
US11537315B2 (en) | Apparatus and method for erasing data programmed in a non-volatile memory block in a memory system | |
US11720493B2 (en) | Cache management based on memory device over-provisioning | |
US20170038974A1 (en) | Storage device changing condition parameter value based on aging level and method for managing the same | |
US11467750B2 (en) | Adjustable physical or logical capacity criteria for write cache replenishment based on temperature or program erase cycles of the memory device | |
JP7293458B1 (en) | Storage system and method for quantifying storage fragmentation and predicting performance degradation | |
US20210294407A1 (en) | Setting a power mode based on a workload level in a memory sub-system | |
US11971772B2 (en) | Unified sequencer concurrency controller for a memory sub-system | |
US11892928B2 (en) | Delayed thermal throttling and associated data routing techniques | |
US11797190B2 (en) | Data storage device and method for providing a temperature-driven variable storage capacity point | |
US10019162B2 (en) | Storage device managing nonvolatile memory differently depending on tendency of interruption of power supply | |
US20160062688A1 (en) | Flash memory device, flash memory system, and operating method | |
US11379154B2 (en) | Storage device and operating method thereof | |
US20240061589A1 (en) | Code rate as function of logical saturation | |
US20230064781A1 (en) | Dynamic buffer limit for at-risk data | |
US20230251696A1 (en) | Thermal islanding heatsink | |
US20200117390A1 (en) | Data storage device and operating method thereof |
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:LEE, SANGSU;CINAR, YUSUF;KIM, NAM-HOON;AND OTHERS;REEL/FRAME:042747/0743 Effective date: 20170529 |
|
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 |