This application claims priority from Korean Patent Application No. 10-2020-0153813 filed on Nov. 17, 2020 in the Korean Intellectual Property Office, and all the benefits accruing therefrom under 35 U.S.C. 119, the contents of which in its entirety are herein incorporated by reference.
The present disclosure relates to a storage device, a server device including the storage device and a method of operating the storage device.
In general, a large number of storage devices are applied to a server device. In recent server devices, the concept of server disaggregation is applied in which a sled is implemented by separating each function, and examples of such sleds are CPU sleds for a plurality of operations, network sleds for communication with other server devices, accelerator sleds for fast operation processing, and a plurality of storage sleds for data storage, and the like.
In order to improve the efficiency and reduce the cost of the server device, research has recently been conducted to integrate more storage devices into a storage sled unit. In this case, since the number of storage devices disposed in the storage sled unit increases, heat management of the storage device is emerging as a very important problem.
It is an aspect to provide a storage device with improved operating performance.
It is another aspect to provide a server device with improved operating performance.
It is yet another aspect to provide a method of operating a storage device with improved operating performance.
According to an aspect of one or more embodiments, there is provided a storage device comprising a temperature sensor; a nonvolatile memory configured to store first control information related to a first temperature range and second control information related to a second temperature range different from the first temperature range; and a storage controller configured to receive a temperature sensed from the temperature sensor, determine a target temperature by processing the temperature, select one of the first control information and the second control information based on the target temperature, and perform a memory operation on the nonvolatile memory using the one of the first control information and the second control information.
According to another aspect of one or more embodiments, there is provided a server device comprising a first storage device disposed at a first position within the server device and including a first nonvolatile memory; a second storage device disposed at a second position within the server device different from the first position and including a second nonvolatile memory; and a first storage server including at least one of the first storage device and the second storage device, wherein the first storage device receives first control information related to a first temperature range and second control information related to a second temperature range different from the first temperature range, the first storage device includes a first storage controller configured to select one of the first control information and the second control information, and perform a memory operation on the first nonvolatile memory using the one of the first control information and the second control information selected by the first storage controller, the second storage device includes a second storage controller configured to receive the first control information and the second control information, select one of the first control information and the second control information, and perform a memory operation on the second nonvolatile memory using the one of the first control information and the second control information selected by the second storage controller, the first storage controller performs the memory operation on the first nonvolatile memory using the first control information, and the second storage controller performs the memory operation on the second nonvolatile memory using the second control information.
According to yet another aspect of one or more embodiments, there is provided a method of operating a storage device, the method comprising providing a nonvolatile memory configured to store first control information related to a first temperature range and second control information related to a second temperature range different from the first temperature range; receiving a temperature sensed from a temperature sensor; determining a target temperature by processing the temperature; selecting one of the first control information and the second control information based on the target temperature; and performing a memory operation on the nonvolatile memory using the one of the first control information and the second control information.
The above and other aspects will become more apparent by describing in detail exemplary embodiments thereof with reference to the attached drawings, in which:
Various aspects discussed above are not restricted to those set forth herein. The above and other aspects will become more apparent to one of ordinary skill in the art to which the present disclosure pertains by referencing the detailed description of the present disclosure given below.
Hereinafter, embodiments of the present disclosure will be described with reference to the accompanying drawings.
A host-storage system 10 may include a host 100 and a storage device 200. In some embodiments, the storage device 200 may include a storage controller 210 and a nonvolatile memory (NVM) 220. In some embodiments, the host 100 may include a host controller 110 and a host memory 120. The host memory 120 may function as a buffer memory for temporarily storing data to be transmitted to the storage device 200 or data transmitted from the storage device 200.
The storage device 200 may include storage media for storing data according to a request from the host 100. For example, the storage device 200 may be at least one of a solid state drive (SSD), an embedded memory, and a removable external memory. When the storage device 200 is an SSD, the storage device 200 may be a device conforming to the nonvolatile memory express (NVMe) standard.
When the storage device 200 is an embedded memory or an external memory, the storage device 200 may be a device conforming to universal flash storage (UFS) or embedded multi-media card (eMMC) standards. Each of the host 100 and the storage device 200 may generate and transmit a packet according to the adopted standard protocol.
When the nonvolatile memory 220 of the storage device 200 includes a flash memory, the flash memory may include a 2D NAND memory array or a 3D (or vertical) NAND (VNAND) memory array. As another example, the storage device 200 may include other various types of nonvolatile memories. For example, the storage device 200 may be applied with magnetic RAM (MRAM), spin-transfer torque MRAM, conductive bridging RAM (CBRAM), ferroelectric RAM (FeRAM), phase RAM (PRAM), resistive RAM, and various other types of memories.
In some embodiments, the host controller 110 and the host memory 120 may be implemented as separate semiconductor chips. Alternatively, in some embodiments, the host controller 110 and the host memory 120 may be integrated on the same semiconductor chip. As an example, the host controller 110 may be any one of a plurality of modules included in an application processor, and such an application processor may be implemented as a system on chip (SoC). In addition, the host memory 120 may be an embedded memory included in the application processor, or a nonvolatile memory or memory module disposed outside the application processor.
The host controller 110 may manage the operation of storing data (e.g., write data) of the buffer area in the nonvolatile memory 220 or storing data (e.g., read data) of the nonvolatile memory 220 in the buffer area.
The storage controller 210 may include a host interface (I/F) 211, a memory interface (I/F) 212, and a central processing unit (CPU) 213. In addition, the storage controller 210 may further include a flash translation layer (FTL) 214, a packet manager 215, a buffer memory 216, an error correction code (ECC) engine 217, and an advanced encryption standard (AES) engine 218.
The storage controller 210 may further include a working memory (not illustrated) into which the flash translation layer (FTL) 214 is loaded, and data write and read operations to the nonvolatile memory may be controlled by the CPU 213 executing the flash translation layer 214 loaded into the working memory.
The host interface (I/F) 211 may transmit and receive a packet to and from the host 100. The packet transmitted from the host 100 to the host interface 211 may include a command or data to be written to the nonvolatile memory 220, or the like, and the packet transmitted from the host interface 211 to the host 100 may include a response to the command, data read from the nonvolatile memory 220, or the like.
The memory interface (I/F) 212 may transmit data to be written to the nonvolatile memory (NVM) 220 to the nonvolatile memory (NVM) 220 or may receive data read from the nonvolatile memory (NVM) 220. Such memory interface 212 may be implemented to comply with standard conventions such as toggle or ONFI.
The flash translation layer (FTL) 214 may perform various functions such as address mapping, wear-leveling, and garbage collection. The address mapping operation denotes an operation of converting a logical address received from a host into a physical address used to actually store data in the nonvolatile memory 220. Wear-leveling denotes a technology for preventing excessive deterioration of a specific block by allowing the blocks in the nonvolatile memory 220 to be used evenly, and may be exemplarily implemented through a firmware technology that balances erase counts of physical blocks. Garbage collection denotes a technology for securing usable capacity in the nonvolatile memory 220 by copying valid data of a block to a new block and then erasing the existing block.
The packet manager 215 may generate a packet according to a protocol of an interface negotiated with the host 100, or may parse various types of information from a packet received from the host 100. In addition, the buffer memory 216 may temporarily store data to be written to the nonvolatile memory 220 or data to be read from the nonvolatile memory 220. The buffer memory 216 may be configured to be provided in the storage controller 210, but may be disposed outside the storage controller 210.
The ECC engine 217 may perform an error detection and correction function for the read data read from the nonvolatile memory 220. More specifically, the ECC engine 217 may generate parity bits for write data to be written to the nonvolatile memory 220, and the parity bits generated as described above may be stored in the nonvolatile memory 220 together with the write data. When reading data from the nonvolatile memory 220, the ECC engine 217 may correct the error of the read data using the parity bits read from the nonvolatile memory 220 together with the read data, and may output the read data in which the error is corrected.
The AES engine 218 may perform at least one of an encryption operation or a decryption operation for data inputted to the storage controller 210 using a symmetric-key algorithm.
The storage device 200 may further include a temperature sensor (TS) 230. The temperature sensor 230 may sense the temperature of the storage device 200 and provide the sensed temperature as sensed temperature information to the storage controller 210. Specifically, the temperature sensor 230 may sense an operating temperature of the storage device 200 and/or a temperature of the surrounding environment of the storage device 200, or the like, and may provide the operating temperature and/or the temperature of the surrounding environment as the sensed temperature information to the storage controller 210.
The nonvolatile memory (NVM) 220 may include first to eighth pins P11 to P18, the memory interface circuit 212b, a control logic circuit 510, and a memory cell array 520.
The memory interface (I/F) circuit 212b may receive a chip enable signal nCE from the storage controller 210 through the first pin P11. The memory interface circuit 212b may transmit and receive signals to and from the storage controller 210 through the second to eighth pins P12 to P18 according to the chip enable signal nCE. For example, when the chip enable signal nCE is in an enable state (e.g., a low level), the memory interface circuit 212b may transmit and receive signals to and from the storage controller 210 through the second to eighth pins P12 to P18.
The memory interface (I/F) circuit 212b may receive a command latch enable signal CLE, an address latch enable signal ALE, and a write enable signal nWE from the storage controller 210 through the second to fourth pins P12 to P14, respectively. The memory interface circuit 212b may receive a data signal DQ from the storage controller 210 through the seventh pin P17 or transmit the data signal DQ to the storage controller 210. A command CMD, an address ADDR, and data may be transmitted through the data signal DQ. For example, the data signal DQ may be transmitted through a plurality of data signal lines. In this case, the seventh pin P17 may include a plurality of pins corresponding to a plurality of data signals.
The memory interface (I/F) circuit 212b may obtain the command CMD from the data signal DQ received in an enable interval (e.g., a high level state) of the command latch enable signal CLE based on toggle timings of the write enable signal nWE. The memory interface circuit 212b may obtain the address ADDR from the data signal DQ received in an enable interval (e.g., a high level state) of the address latch enable signal ALE based on toggle timings of the write enable signal nWE.
In some embodiments, the write enable signal nWE may be toggled between a high level and a low level while maintaining a static state (e.g., a high level or a low level). For example, the write enable signal nWE may be toggled in an interval in which the command CMD or the address ADDR is transmitted. Accordingly, the memory interface circuit 212b may obtain the command CMD or the address ADDR based on the toggle timings of the write enable signal nWE.
The memory interface (I/F) circuit 212b may receive a read enable signal nRE from the storage controller 210 through the fifth pin P15. The memory interface circuit 212b may receive a data strobe signal DQS from the storage controller 210 through the sixth pin P16 or transmit the data strobe signal DQS to the storage controller 210.
In the output operation of the data DATA of the nonvolatile memory 220, the memory interface circuit 212b may receive the read enable signal nRE toggling through the fifth pin P15 before outputting the data DATA. The memory interface circuit 212b may generate the data strobe signal DQS toggling based on toggling of the read enable signal nRE. For example, the memory interface circuit 212b may generate the data strobe signal DQS that starts toggling after a predetermined delay (e.g., tDQSRE) based on the toggling start time of the read enable signal nRE. The memory interface circuit 212b may transmit the data signal DQ including the data DATA based on a toggle timing of the data strobe signal DQS. Accordingly, the data DATA may be aligned with the toggle timing of the data strobe signal DQS and transmitted to the storage controller 210.
When the data signal DQ including the data DATA is received from the storage controller 210 in the input operation of the data DATA of the nonvolatile memory 220, the memory interface circuit 212b may receive the data strobe signal DQS toggling together with the data DATA from the storage controller 210. The memory interface circuit 212b may acquire the data DATA from the data signal DQ based on the toggle timing of the data strobe signal DQS. For example, the memory interface circuit 212b may obtain the data DATA by sampling the data signal DQ at the rising and falling edges of the data strobe signal DQS.
The memory interface (I/F) circuit 212b may transmit a ready/busy output signal nR/B to the storage controller 210 through the eighth pin P18. The memory interface circuit 212b may transmit state information of the nonvolatile memory 220 to the storage controller 210 through the ready/busy output signal nR/B. When the nonvolatile memory 220 is in a busy state (that is, when internal operations of the nonvolatile memory 220 are being performed), the memory interface circuit 212b may transmit the ready/busy output signal nR/B indicating a busy state to the storage controller 210. When the nonvolatile memory 220 is in a ready state (that is, when internal operations of the nonvolatile memory 220 are not performed or completed), the memory interface circuit 212b may transmit the ready/busy output signal nR/B indicating a ready state to the storage controller 210.
For example, when the nonvolatile memory (NVM) 220 reads the data DATA from the memory cell array 520 in response to a page read command, the memory interface circuit 212b may transmit the ready/busy output signal nR/B indicating a busy state (e.g., a low level) to the storage controller 210. For example, when the nonvolatile memory 220 programs the data DATA into the memory cell array 520 in response to a program command, the memory interface circuit 212b may transmit the ready/busy output signal nR/B indicating a busy state to the storage controller 210.
The control logic circuit 510 may overall control various operations of the nonvolatile memory 220. The control logic circuit 510 may receive the command/address CMD/ADDR obtained from the memory interface circuit 212b. The control logic circuit 510 may generate control signals for controlling other components of the nonvolatile memory 220 according to the received command/address CMD/ADDR. For example, the control logic circuit 510 may generate various control signals for programming the data DATA in the memory cell array 520 or reading the data DATA from the memory cell array 520.
The memory cell array 520 may store the data DATA obtained from the memory interface circuit 212b under the control of the control logic circuit 510. The memory cell array 520 may output the stored data DATA to the memory interface circuit 212b under the control of the control logic circuit 510.
The memory cell array 520 may include a plurality of memory cells. For example, the plurality of memory cells may be flash memory cells. However, embodiments are not limited thereto, and the memory cells may include resistive random access memory (RRAM) cells, ferroelectric random access memory (FRAM) cells, phase change random access memory (PRAM) cells, thyristor random access memory (TRAM) cell, and magnetic random access memory (MRAM) cells, or the like. Hereinafter, embodiments will be described focusing on an embodiment in which the memory cells are NAND flash memory cells.
The storage controller 210 may include first to eighth pins P21 to P28 and the controller interface (I/F) circuit 212a. The first to eighth pins P21 to P28 may correspond respectively to the first to eighth pins P11 to P18 of the nonvolatile memory 220.
The controller interface (I/F) circuit 212a may transmit the chip enable signal nCE to the nonvolatile memory 220 through the first pin P21. The controller interface circuit 212a may transmit and receive signals to and from the nonvolatile memory 220 selected through the chip enable signal nCE through the second to eighth pins P22 to P28.
The controller interface (I/F) circuit 212a may transmit the command latch enable signal CLE, the address latch enable signal ALE, and the write enable signal nWE to the nonvolatile memory 220 through the second to fourth pins P22 to P24. The controller interface circuit 212a may transmit the data signal DQ to the nonvolatile memory 220 through the seventh pin P27 or may receive the data signal DQ from the nonvolatile memory 220.
The controller interface (I/F) circuit 212a may transmit the data signal DQ including the command CMD or the address ADDR to the nonvolatile memory 220 together with the write enable signal nWE to be toggled. The controller interface circuit 212a may transmit the data signal DQ including the command CMD to the nonvolatile memory 220 as the command latch enable signal CLE having an enable state is transmitted, and may transmit the data signal DQ including the address ADDR to the nonvolatile memory 220 as the address latch enable signal ALE having an enable state is transmitted.
The controller interface (I/F) circuit 212a may transmit the read enable signal nRE to the nonvolatile memory 220 through the fifth pin P25. The controller interface circuit 212a may receive the data strobe signal DQS from the nonvolatile memory 220 or transmit the data strobe signal DQS to the nonvolatile memory 220, through the sixth pin P26.
In the output operation of the data DATA of the nonvolatile memory 220, the controller interface circuit 212a may generate the read enable signal nRE toggling, and transmit the read enable signal nRE to the nonvolatile memory 220. For example, the controller interface circuit 212a may generate the read enable signal nRE that changes from a fixed state (e.g., a high level or a low level) to a toggle state before the data DATA is outputted. Accordingly, the data strobe signal DQS that toggles based on the read enable signal nRE may be generated in the nonvolatile memory 220. The controller interface circuit 212a may receive the data signal DQ including the data DATA together with the data strobe signal DQS toggling from the nonvolatile memory 220. The controller interface circuit 212a may obtain the data DATA from the data signal DQ based on the toggle timing of the data strobe signal DQS.
In the input operation of the data DATA of the nonvolatile memory 220, the controller interface circuit 212a may generate the data strobe signal DQS toggling. For example, the controller interface circuit 212a may generate the data strobe signal DQS that changes from a fixed state (e.g., a high level or a low level) to a toggle state before transmitting the data DATA. The controller interface circuit 212a may transmit the data signal DQ including the data DATA to the nonvolatile memory 220 based on toggle timings of the data strobe signal DQS.
The controller interface (I/F) circuit 212a may receive the ready/busy output signal nR/B from the nonvolatile memory 220 through the eighth pin P28. The controller interface circuit 212a may determine state information of the nonvolatile memory 220 based on the ready/busy output signal nR/B.
Referring to
Among the plurality of storage units 220a to 220n, one of the plurality of storage units 220a to 220n, for example, the storage unit 220n in the embodiment illustrated in
The storage unit from among the plurality of storage units 220a to 220n in which the temperature history 221, the control information 222, and the transition compensation table 223 are stored may be specified by the storage controller 210. That is, the storage controller 210 may know which storage unit of the plurality of storage units 220a to 220n stores the temperature history 221, the control information 222, and the transition compensation table 223.
The temperature history (TH) 221 may receive and store the temperature (or temperature information) sensed from the temperature sensor 230. That is, in the temperature history 221, as illustrated in
The control information (CoI) 222 may include information related to a memory operation performed in a specific temperature range. The memory operation may include one or more of a read operation in which the storage controller 210 reads data stored in the nonvolatile memory 220, a write operation in which the storage controller 210 writes data to the nonvolatile memory 220, and an erase operation in which the storage controller 210 erases at least a part of the nonvolatile memory 220, but embodiments are not limited thereto.
That is, the control information 222 may include information related to a read operation performed in a specific temperature range, information related to a write operation performed in a specific temperature range, and/or information related to an erase operation performed in a specific temperature range, but embodiments are not limited thereto.
Specifically, referring to
In some embodiments, the control information 222 may include m (where m is a natural number) temperature ranges, and operation parameters OP1 to OPm and defense codes DC1 to DCm, corresponding to the respective temperature ranges.
For example, an operation parameter OP1 and a defense code DC1 may be the operation parameter and the defense code that are used when the storage device performs a memory operation in the temperature range T0 to T1, an operation parameter OP2 and a defense code DC2 may be the operation parameter and the defense code that are used when the storage device performs a memory operation in the temperature range T1 to T2, and an operation parameter OPm and a defense code DCm may be the operation parameter and the defense code that are used when the storage device performs a memory operation in the temperature range T(m−1) to Tm.
In some embodiments, the operation parameter OP may include a read level voltage for sensing data stored in a memory cell.
Referring to
The read level voltage is provided as an example of the operation parameter OP, but embodiments are not limited thereto. The operation parameter OP may include other information (not illustrated) that determines a memory operation performed in a specific temperature range.
The defense code DC may include an algorithm for optimizing a memory operation performed in a specific temperature range. Such an example may include a read-retry algorithm or the like, but embodiments are not limited thereto.
The transition compensation table (TCT) 223 may include compensation information for compensating a memory operation when the storage device transitions from operating in the first temperature range to operating in the second temperature range.
Specifically, referring to
For example, when data is written to the nonvolatile memory 220 in the temperature range T0 to T1 and the operation of reading the written data is to be performed in the temperature range T1 to T2, the compensation information CI may include information (e.g., information on a change in a read level voltage, information on a change in a read-retry algorithm, or the like) for improving the reliability of such a read operation. For example, the transition compensation table may include compensation information CI1 corresponding to a transition from the temperature range T0 to T1 to the temperature range T1 to T2.
Specifically, referring to
For example, when the target temperature of the storage device operating at T1 is changed to T2, an offset of a millivolts (mV) may be added as a program offset, a read offset, and a defense code offset. When the target temperature of the storage device operating at T1 is changed to T3, an offset of b mV may be added as a program offset, a read offset, and a defense code offset. When the target temperature of the storage device operating at T1 is changed to T4, an offset of c mV may be added as a program offset, a read offset, and a defense code offset.
Conversely, when the target temperature of the storage device operating at T4 is changed to T3, an offset of a mV may be reduced as a program offset, a read offset, and a defense code offset. The transition compensation table 223 may store offset values according to a change in operating temperature as described above.
In the above description, only an example in which the control information 222 and the transition compensation table 223 are stored in the nonvolatile memory 220 has been described, but embodiments are not limited thereto. For example, in some embodiments, the control information 222 and the transition compensation table 223 may be stored in a storage area (e.g., a cloud storage or the like) other than the nonvolatile memory 220, and the storage controller 210 may use the control information and the transition compensation table that have been provided through, for example, a network or the like. In addition, in some embodiments, the storage controller 210 may receive the control information 222 and the transition compensation table 223 through, for example, a network or the like, may store the control information and the transition compensation table in the nonvolatile memory of the storage device 200 such as the buffer memory 216, and then may use the control information and the transition compensation table.
Referring to
In some embodiments, the target temperature determination module 214a, the operation parameter selection module 214b, and the defense code selection module 214c may be implemented in software, for example. When the CPU 213 executes the target temperature determination module 214a, the operation parameter selection module 214b, and the defense code selection module 214c, the storage controller 210 may perform the operation implemented in each module. However, embodiments are not limited thereto.
The target temperature determination module (TTDM) 214a may receive the temperature sensed from the temperature sensor 230 and process the sensed temperature to determine the target temperature. A detailed description of the processing of the target temperature determination module 214a will be given later.
The operation parameter selection module (OPSM) 214b may select an operation parameter corresponding to the target temperature among the operation parameters (e.g., OP1 to OPm in
The defense code selection module (DCSM) 214c may select a defense code corresponding to the target temperature among the defense codes (e.g., DC1 to DCm in FIG. 4) stored in the nonvolatile memory 220 based on the target temperature determined by the target temperature determination module 214a.
When the operation parameter and the defense code corresponding to the target temperature are selected in this way, the storage controller 210 may request the selected operation parameter and defense code from the nonvolatile memory 220, and the nonvolatile memory 220 may provide the selected operation parameter and defense code to the storage controller 210.
Referring to
Subsequently, it is checked whether a mode enable signal is received (step S200).
When the mode enable signal is received (or the signal level of the mode enable signal is the first level) (Yes in step S200), the storage device operates in a first mode (step S300). In contrast, when the mode enable signal is not received (or when the signal level of the mode enable signal is the second level) (No in step S200), the storage device operates in a second mode (step S400).
Referring to
That is, the first mode may be a mode in which a memory operation is performed using control information corresponding to the operating temperature sensed by the temperature sensor 230, and the second mode may be a mode in which a memory operation is performed irrespective of the operating temperature sensed by the temperature sensor and instead is performed according to the control information that has already been set at the time of manufacture in consideration of the operating temperature and environment of the storage device. However, the operation of the second mode is not limited thereto, and detailed operations of the second mode may be modified and implemented.
Hereinafter, the first mode operation will be described in more detail with reference to
Referring to
Referring back to
Referring to
Referring to
Referring to
Although
Referring to
Referring to
Referring to
In some embodiments, processing the temperatures to determine the target temperature by the storage controller 210 that has received the temperatures within the window may include, for example, calculating a weighted moving average of the temperatures within the window and determining the calculated weighted moving average as the target temperature by the storage controller 210.
In this case, the weighted moving average St may be calculated using, for example, the following Eq. 1:
where β may be changed with a tuning parameter. Increasing the β value makes the weighted moving average St less sensitive to temperature changes, and decreasing the β value makes the weighted moving average St more sensitive to changes in temperature values.
When the target temperature is determined in this way, the storage controller 210 may check which temperature interval of
Referring to
For example, referring to
However, in a case where the target temperature determined at the time point t−1 belongs to the temperature range T0 to T1 but the target temperature determined at the current time point belongs to the temperature range T1 to T2, the storage controller 210 may not use the operation parameter OP1 and defense code DC1 that have been used for the memory operation at the time point t−1, for the memory operation at the current time point. Rather, it is necessary to compensate for the memory operation according to the temperature range change (transition). Accordingly, this case is a case where the new control information CoI is necessary (Yes in step S312).
When such new control information CoI is necessary, the storage controller 210 requests the new control information CoI and the compensation information CI from the nonvolatile memory 220 (step S314). In response thereto, the nonvolatile memory 220 transmits the new control information CoI and the compensation information CI to the storage controller 210 (step S316).
Referring to
The storage controller 210, which has been provided with the new control information CoI and the compensation information CI, uses the new control information CoI (e.g., new operation parameters and defense codes) and the compensation information CI to perform the memory operation (step S318).
The operation described above will be described using the example illustrated in
Referring to
At the next time point t2, the calculated target temperature TT belongs to the interval T1 to T2. However, before the time point t2, the calculated target temperature TT has belonged to the interval T0 to T1. Accordingly, the storage controller may read the operation parameter OP2, the defense code DC2, and the compensation information CI1 from the nonvolatile memory, and may perform a memory operation using the operation parameter OP2, the defense code DC2, and the compensation information CI1 that have been read.
At the next time point t3, the calculated target temperature TT belongs to the interval T1 to T2, and even before the time point t3, the calculated target temperature TT belongs to the interval T1 to T2. Accordingly, the storage controller may perform a memory operation using the operation parameter OP2, the defense code DC2, and the compensation information CI1. That is, the storage controller does not need to read new information.
That is, a storage device C that has been operated at a first position having a low temperature (e.g., 15° C. to 20° C.) environment has been continuously operated in a low temperature environment, and a storage device A that has been operated at a second position having a high temperature (e.g., 75° C. to 80° C.) environment has been continuously operated in a high temperature environment. In addition, the operating temperature of a storage device B, which has been operated at a third position having an environment between low temperature and high temperature, also does not change significantly.
In general, the control information used for the memory operation of the storage device, at the manufacturing stage of the storage device, is set to exhibit at least average performance even in a position within the server that has an extreme environment, assuming that the operating temperature of the storage device randomly changes within the range of, for example, 15° C. to 80° C.
However, when the control information is set and the memory operation is performed in this way, in the operating environment as illustrated in
Accordingly, in the embodiment of
Hereinafter, like reference numerals refer to like components and a redundant description of the embodiment of
Referring to
In some embodiments, the target temperature determination module 214d and machine learning module 214e may be implemented in software, for example. The storage controller 210 of
The machine learning module (MLM) 214e may perform machine learning based on the temperatures that are sensed from the temperature sensor 230 in
In some embodiments, the machine learning module (MLM) 214e may perform machine learning based on not only the temperatures stored in the temperature history 221 but also the operating characteristic information of the nonvolatile memory 220 in
Specifically, referring to
As the input layer, learning data Time for each time point from the past time point k to the current time point t described above may be provided. The learning data Time at each time point may include operation temperature information TI of the storage device and operation characteristic information OCI of the nonvolatile memory at the corresponding operation temperature.
The learning data Time of the input layer may be provided to the hidden layer to be learned. In the embodiment illustrated in
When the learning is completed, a prediction operating temperature at a time point t+1, which is a future time point of the current time point t, may be calculated as an output layer. The output layer may use a multi-layer perceptron (MLP), but embodiments are not limited thereto.
Hereinafter, operations of the storage device according to some other embodiments will be described with reference to
In the storage device according to the embodiment of
Accordingly, when the new control information CoI is necessary according to the determined target temperature (Yes in step S312), the new control information CoI is not immediately necessary as in the embodiment illustrated in
Accordingly, the storage controller 210 may request the nonvolatile memory 220 for the control information CoI corresponding to the target temperature in consideration of an input/output (I/O) command provided to the storage controller 210.
Specifically, referring to
When, as in the example illustrated in
However, as in the example illustrated in
Referring to
The application server 3100 may include at least one processor 3110 and at least one memory 3120. Similarly, the storage server 3200 may include at least one processor 3210 and at least one memory 3220. When describing the storage server 3200 as an example, the processor 3210 may control the overall operation of the storage server 3200, and access the memory 3220 to execute commands and/or data loaded in the memory 3220. The memory 3220 may be double data rate synchronous DRAM (DDR SDRAM), high bandwidth memory (HBM), hybrid memory cube (HMC), dual in-line memory module (DIMM), optane DIMM or nonvolatile DIMM (NVMDIMM). Depending on the embodiment, the number of processors 3210 and the number of memories 3220 included in the storage server 3200 may be variously selected.
In some embodiments, the processor 3210 and the memory 3220 may provide a processor-memory pair. In some embodiments, the number of processors 3210 and the number of memories 3220 may be different from each other. The processor 3210 may include a single core processor or a multiple core processor. The description of the storage server 3200 may be similarly applied to the application server 3100. Depending on the embodiment, the application server 3100 may omit the storage device 3150. The storage server 3200 may include at least one storage device 3250. The number of storage devices 3250 included in the storage server 3200 may be variously selected according to the embodiment.
The application servers 3100 to 3100n and the storage servers 3200 to 3200m may communicate with each other through the network 3300. The network 3300 may be implemented using fiber channel (FC) or Ethernet or the like. In this case, FC is a medium used for relatively high-speed data transmission, and an optical switch that provides high performance/high availability may be used. The storage servers 3200 to 3200m may be provided as a file storage, a block storage, or an object storage according to an access method of the network 3300.
In some embodiments, the network 3300 may be a storage-only network such as a storage area network (SAN). For example, the SAN may be an FC-SAN that uses an FC network and is implemented according to the FC protocol (FCP). For another example, the SAN may be an IP-SAN that uses a TCP/IP network and is implemented according to an iSCSI (SCSI over TCP/IP or Internet SCSI) protocol. In other embodiments, a network 1300 may be a general network such as a TCP/IP network. For example, the network 1300 may be implemented according to protocols such as FC over Ethernet (FCoE), network attached storage (NAS), and NVMe over fabrics (NVMe-oF).
Hereinafter, a description will be given focusing on the application server 3100 and the storage server 3200. The description of the application server 3100 may be applied to the other application server 3100n, and the description of the storage server 3200 may be applied to the other storage server 3200m.
The application server 3100 may store data requested to be stored by a user or a client in one of the storage servers 3200 to 3200m through the network 3300. In addition, the application server 3100 may acquire data requested to be read by a user or a client from one of the storage servers 3200 to 3200m through the network 3300. For example, the application server 3100 may be implemented as a web server or a database management system (DBMS), or the like.
The application server 3100 may access the memory 3120n or the storage device 3150n included in the other application server 3100n through the network 3300, or may access the memories 3220 to 3220m or the storage devices 3250 to 3250m included in the storage servers 3200 to 3200m through the network 3300. Accordingly, the application server 3100 may perform various operations on data stored in the application servers 3100 to 3100n and/or the storage servers 3200 to 3200m. For example, the application server 3100 may execute a command for moving or copying data between the application servers 3100 to 3100n and/or the storage servers 3200 to 3200m. At this time, the data may be moved from the storage devices 3250 to 3250m of the storage servers 3200 to 3200m, to the memories 3120 to 3120n of the application servers 3100 to 3100n, either through the memories 3220 to 3220m of the storage servers 3200 to 3200m or directly. The data moving through the network 3300 may be encrypted data for security or privacy.
Referring to the storage server 3200 as an example, an interface (I/F) 3254 may provide a physical connection between the processor 3210 and a controller 3251 and a physical connection between a network interface controller (NIC) 3240 and the controller 3251. For example, the interface 3254 may be implemented in a direct attached storage (DAS) method in which the storage device 3250 is directly connected with a dedicated cable. In addition, for example, the interface 3254 may be implemented as various types of interfaces, such as advanced technology attachment (ATA), serial ATA (SATA), external SATA (e-SATA), small computer small interface (SCSI), serial attached SCSI (SAS), peripheral component interconnection (PCI), PCI express (PCIe), NVM express (NVMe), IEEE 1394, universal serial bus (USB), secure digital (SD) card, multi-media card (MMC), embedded multi-media card (eMMC), universal flash storage (UFS), embedded universal flash storage (eUFS), and compact flash (CF) card.
The storage server 3200 may further include a switch 3230 and the NIC 3240. The switch 3230 may selectively connect the processor 3210 to the storage device 3250 or may selectively connect the NIC 3240 to the storage device 3250 under the control of the processor 3210.
In some embodiments, the NIC 3240 may include a network interface card, a network adapter, or the like. The NIC 3240 may be connected to the network 3300 through a wired interface, a wireless interface, a Bluetooth interface, an optical interface, or the like. The NIC 3240 may include an internal memory, a DSP, a host bus interface, or the like, and may be connected to the processor 3210 and/or the switch 3230, or the like through a host bus interface. The host bus interface may be implemented as one of the examples of the interface 3254 described above. In some embodiments, the NIC 3240 may be integrated with at least one of the processor 3210, the switch 3230, and the storage device 3250.
In the storage servers 3200 to 3200m or the application servers 3100 to 3100n, the processor may send a command to the storage devices 3130 to 3130n, 3250 to 3250m or the memories 3120 to 3120n, 3220 to 3220m to program or read data. In this case, the data may be data that has been error-corrected through an error correction code (ECC) engine. The data may be data that has been processed by data bus inversion (DBI) or data masking (DM), and may include cyclic redundancy code (CRC) information. The data may be encrypted data for security or privacy.
The storage devices 3150 to 3150m and 3250 to 3250m may transmit a control signal and a command/address signal to NAND flash memory devices 3252 to 3252m in response to a read command received from the processor. Accordingly, when data is read from the NAND flash memory device 3252 to 3252m, a read enable (RE) signal may serve to be inputted as a data output control signal and to output data to the DQ bus. The data strobe signal (DQS) may be generated by using the RE signal. The command and address signals may be latched in the page buffer according to the rising edge or falling edge of a write enable (WE) signal.
The controller 3251 may overall control the operation of the storage device 3250. In some embodiments, the controller 3251 may include a static random access memory (SRAM). The controller 3251 may write data to the NAND flash 3252 in response to a write command, or read data from the NAND flash 3252 in response to a read command. For example, the write command and/or the read command may be provided from the processor 3210 in the storage server 3200, the processor 3210m in another storage server 3200m, or the processors 3110 and 3110n in the application servers 3100 and 3100n. The DRAM 3253 may temporarily store (buffer) data to be written to the NAND flash 3252 or data read from the NAND flash 3252. In addition, the DRAM 3253 may store metadata. Here, the metadata may be data generated by the controller 3251 to manage the user data or the NAND flash 3252. The storage device 3250 may include a secure element (SE) for security or privacy.
In some embodiments, the storage device 3250 of the storage server 3200 to the storage device 3250m of the storage server 3200m may employ the storage devices described above.
However, the storage device 3250 may continue to be operated in a first temperature range due to the mounting position thereof, the disposition shape of the storage server 3200, or the like, and the storage device 3250m may continue to be operated in a second temperature range different from the first temperature range due to the mounting position thereof, the disposition shape of the storage server 3200m, or the like. In this case, although the first control information and the second control information are stored in the nonvolatile memory of the storage device 3250, the storage device 3250 may continue to operate using the first control information, and although the first control information and the second control information are also stored in the nonvolatile memory of the storage device 3250m, the storage device 3250m may continue to operate using the second control information.
In addition, the storage device 3250 mounted at the first position of the storage server 3200 and the storage device 3250 mounted at the second position of the storage server 3200 may also continue to operate in different temperature ranges due to the dispositions thereof or the like. Even in this case, although the first control information and the second control information are stored in the nonvolatile memory of the storage device 3250 mounted at the first position of the storage server 3200, the storage device 3250 mounted at the first position of the storage server 3200 may continue to operate using the first control information, and although the first control information and the second control information are also stored in the nonvolatile memory of the storage device 3250 mounted at the second position of the storage server 3200, the storage device 3250 mounted at the second position of the storage server 3200 may continue to operate using the second control information.
Those skilled in the art will appreciate that many variations and modifications may be made to the embodiments without substantially departing from the principles of the present disclosure. Therefore, the disclosed embodiments of the disclosure are used in a generic and descriptive sense only and not for purposes of limitation.
Number | Date | Country | Kind |
---|---|---|---|
10-2020-0153813 | Nov 2020 | KR | national |
Number | Name | Date | Kind |
---|---|---|---|
8947928 | Kim et al. | Feb 2015 | B2 |
9330790 | Kim et al. | May 2016 | B2 |
9500535 | Urban | Nov 2016 | B1 |
9535620 | Kim et al. | Jan 2017 | B2 |
9786336 | Woo et al. | Oct 2017 | B2 |
9996281 | Sharon et al. | Jun 2018 | B2 |
10446217 | Park | Oct 2019 | B2 |
10509583 | Hsiao | Dec 2019 | B1 |
10656875 | Hung | May 2020 | B2 |
10679704 | Muchherla et al. | Jun 2020 | B2 |
10698460 | Ping | Jun 2020 | B2 |
20170285944 | Wang | Oct 2017 | A1 |
20180090218 | Takada | Mar 2018 | A1 |
20180122484 | Jin | May 2018 | A1 |
20180293029 | Achtenberg | Oct 2018 | A1 |
20190265764 | Ping | Aug 2019 | A1 |
20190278510 | Kaynak et al. | Sep 2019 | A1 |
20200013470 | Nishikawa | Jan 2020 | A1 |
20200073451 | Nowell | Mar 2020 | A1 |
20200202938 | Reina | Jun 2020 | A1 |
20200219568 | Tan | Jul 2020 | A1 |
20210073066 | Bielby | Mar 2021 | A1 |
20210081109 | Wang | Mar 2021 | A1 |
20210190362 | Ko | Jun 2021 | A1 |
Number | Date | Country |
---|---|---|
10-2013-0072712 | Jul 2013 | KR |
Number | Date | Country | |
---|---|---|---|
20220155994 A1 | May 2022 | US |