Operating methods of storage devices and operating methods of storage systems
By performing limiting operations on the flash memory device and setting operating parameters according to the limiting level requested by the host, the problem of performance fluctuations in the flash memory device is solved, achieving optimized performance and stability and improving the efficiency of the computing system.
Patent Information
- Application Number
- CN202010757922.2
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2019-08-02
- Filing Date
- 2020-07-31
- Publication Date
- 2025-10-28
- Estimated Expiration
- 2040-07-31
AI Technical Summary
Existing flash memory devices may experience performance fluctuations due to physical characteristics and environmental variables when performing management operations, resulting in inconsistent performance and impacting the efficiency of computing systems.
Storage devices that communicate with external devices via interface channels perform limiting operations based on the limiting level corresponding to the host request among multiple limiting levels, and set operating parameters to provide optimized performance and stable I/O speed.
This enables storage devices to provide optimized performance and reduce performance fluctuations under different conditions, meet various functional requirements of the host, and improve the stability and efficiency of the computing system.
Smart Images

Figure CN112306400B_ABST
Abstract
Description
[0001] Cross-references to related applications
[0002] This application claims priority to Korean Patent Application No. 10-2019-0094235, filed on August 2, 2019, with the Korean Intellectual Property Office, the disclosure of which is incorporated herein by reference in its entirety. Technical Field
[0003] The embodiments of the inventive concept described herein relate to a semiconductor memory, and more specifically, to a method of operating a memory device and a method of operating a memory system including a host device and a memory device. Background Technology
[0004] Semiconductor memory devices are classified into volatile memory devices or non-volatile memory devices. In volatile memory devices, the stored data is lost when power is turned off, such as static random access memory (SRAM) or dynamic random access memory (DRAM). In non-volatile memory devices, the stored data is retained even when power is turned off, such as flash memory devices, phase change RAM (PRAM), magnetic RAM (MRAM), resistive RAM (RRAM), or ferroelectric RAM (FRAM).
[0005] Flash memory devices are being widely used as high-capacity storage media in computing systems. Due to the physical characteristics of flash memory (e.g., erase-after-write), various management operations are performed on flash memory-based high-capacity storage media. The performance of flash memory-based high-capacity storage media may be altered by these management operations. Summary of the Invention
[0006] Embodiments of the present invention provide a method of operating a storage device that can provide improved performance by performing a limiting operation based on a limiting level corresponding to a request from a host device among a plurality of limiting levels. Embodiments of the present invention also provide a method of operating a storage system including the host device and the storage device.
[0007] According to an example embodiment, a method of operating a storage device configured to communicate with an external device via an interface channel includes: receiving an indicator of a first restriction level from a plurality of restriction levels from the external device; setting a first operating parameter based on a restriction predefined table (PDT) including relationships between the plurality of restriction levels and a plurality of restriction performances, such that the interface channel has a first restriction performance among the plurality of restriction performances, the first restriction performance corresponding to the first restriction level; receiving a first input / output (I / O) request from the external device via the interface channel having the first restriction performance, wherein setting the first operating parameter results in the first restriction performance; and processing a first operation corresponding to the first I / O request via the interface channel having the first restriction performance.
[0008] According to an example embodiment, an operation method for a storage device configured to communicate with an external device via an interface channel includes: receiving an indicator of an external constraint level from the external device; determining an internal constraint level among a plurality of internal constraint levels based on an internal policy, the internal constraint level corresponding to the current state of the storage device, the internal policy including relationships between a plurality of states of the storage device and the plurality of internal constraint levels; determining a final constraint level based on the external constraint level and the internal constraint level; setting operation parameters based on a constraint predetermining table (PDT) including relationships between the plurality of constraint levels and a plurality of constraint performances, such that the interface channel has a constraint performance among the plurality of constraint performances, the constraint performance corresponding to the final constraint level; receiving a first input / output (I / O) request from the external device through the interface channel with the constraint performance, wherein the constraint performance is caused by setting the operation parameters; and processing a first operation corresponding to the first I / O request through the interface channel with the constraint performance.
[0009] According to an example embodiment, an operation method of a storage system including a host device and a storage device communicating with the host device via an interface channel includes: executing a first application having a first priority via the host device; selecting a first restriction level corresponding to the first priority via the host device based on a restriction predefined table (PDT); transmitting an indicator of the first restriction level to the storage device via the host device; setting first operating parameters via the storage device based on the restriction PDT, such that the interface channel has a first restriction performance corresponding to the first restriction level; transmitting a first input / output (I / O) request generated by the first application to the storage device via the interface channel having the first restriction performance via the host device, wherein the first restriction performance is caused by setting the first operating parameters; and processing a first operation corresponding to the first I / O request via the interface channel having the first restriction performance via the storage device. Attached Figure Description
[0010] The above and other aspects and features of the inventive concept will become clear from the following detailed description of exemplary embodiments with reference to the accompanying drawings.
[0011] Figure 1 This is a block diagram illustrating a storage system according to an embodiment of the concept of the present invention;
[0012] Figure 2 This illustrates an example embodiment. Figure 1 A block diagram of the software layer of the storage system;
[0013] Figure 3 This illustrates an example embodiment. Figure 1 A block diagram of the controller for the storage device;
[0014] Figure 4 This illustrates an example embodiment. Figure 1 A block diagram of a non-volatile memory device;
[0015] Figure 5A and Figure 5B This is a diagram illustrating the operation of a storage device for each of a plurality of restriction levels, according to an example embodiment;
[0016] Figure 6 This illustrates an example embodiment. Figure 1 A flowchart of the operation of the storage system;
[0017] 7A to 7D It is used to describe the basis according to the example embodiments. Figure 6 The flowchart of the operation;
[0018] Figure 8 This illustrates an example embodiment. Figure 1 A flowchart of the operation of the storage system;
[0019] Figure 9 It is used to describe the basis according to the example embodiments. Figure 8 A flowchart illustrating the operation of the process;
[0020] Figure 10 This is a block diagram illustrating a storage system according to an embodiment of the concept of the present invention;
[0021] Figure 11 It is used to describe according to the example embodiments Figure 10 A diagram illustrating the operation of the internal strategy;
[0022] Figure 12 This illustrates an example embodiment. Figure 10 A flowchart of the operation of the storage device;
[0023] Figures 13A to 13CIt is used to describe the basis according to the example embodiments. Figure 10 A diagram illustrating the internal policy selection of internal constraint levels for the storage device.
[0024] Figure 14 This is a block diagram illustrating an electronic device employing a storage system based on the concept of the present invention;
[0025] Figure 15 This is a block diagram illustrating an SSD system that applies a storage system based on the concept of the present invention;
[0026] Figure 16 This is a block diagram illustrating a user interface applied to a storage system based on the concept of the present invention. Detailed Implementation
[0027] The embodiments of the inventive concept will now be described in detail and clearly to the extent that those skilled in the art can readily implement the inventive concept.
[0028] The terms “unit”, “module”, etc., used in the specification may be implemented in the form of hardware, software, or a combination thereof, and are configured to perform the various functions described in the specification.
[0029] Figure 1 This is a block diagram illustrating a storage system according to an embodiment of the concept of the present invention. (Refer to...) Figure 1 The storage system 1000 may include a host 1100 and a storage device 1200. In an example embodiment, the storage system 1000 may be a computing system configured to process various types of information, such as a personal computer (PC), a laptop computer, a desktop computer, a server, a workstation, a tablet PC, and a smartphone.
[0030] The host 1100 can be configured to control the overall operation of the storage system 1000. The storage device 1200 can be used as a high-capacity storage medium for the storage system 1000. In an example embodiment, the storage device 1200 can be a solid-state drive (SSD) installed on the host 1100. Alternatively, the storage device 1200 can be an embedded memory card integrated into the host 1100 or a memory card removable from the host 1100.
[0031] Storage device 1200 may include controller 1210 and non-volatile memory device 1220. In response to a request from host 1100, controller 1210 may store data in non-volatile memory device 1220 or may read data stored in non-volatile memory device 1220.
[0032] Under the control of the controller 1210, the non-volatile memory device 1220 can store data, or can provide the data stored therein to the controller 1210. In an example embodiment, the non-volatile memory device 1220 may be a NAND flash memory device, but the inventive concept is not limited thereto.
[0033] In the example embodiment, host 1100 and storage device 1200 can exchange data via interface channel IF. For example, via interface channel IF, host 1100 can transfer data to or receive data from storage device 1200. In the example embodiment, the data transfer rate via interface channel IF (or the amount of data exchanged per unit time) can be used as a performance factor for storage device 1200.
[0034] For ease of description, the term "performance of storage device 1200" is used below. Unless otherwise specified, the performance of storage device 1200 may refer to the data transfer rate or the amount of data exchanged between storage device 1200 and host 1100 per unit time. The performance of storage device 1200 can be expressed using various metrics such as random read, random write, sequential write, and sequential read.
[0035] In the example embodiment, the performance of storage device 1200 may not be uniform under specific circumstances or conditions. For example, the write time to complete the operation corresponding to the same write request may vary depending on the physical characteristics of the non-volatile memory device 1220 or various environmental variables (e.g., the size of the buffer memory and the available memory capacity in the non-volatile memory device). This difference in write time can lead to performance fluctuations in storage device 1200. For example, performance fluctuations may occur in storage device 1200 depending on various environmental variables.
[0036] Storage device 1200 can perform throttling operations to provide uniform performance. Throttling operations refer to actions taken to maintain the performance of storage device 1200 uniformly by adjusting various operating parameters within storage device 1200. In an example embodiment, these parameters may refer to various parameters for components (such as buffer memories, command queues, and host interfaces) associated with the performance of storage device 1200 (i.e., the I / O speed exchanged via interface channel IF). Storage device 1200 can perform throttling operations to provide uniform performance by controlling the various parameters described above.
[0037] In the example embodiment, because conventional storage devices perform restrictive operations based on given conditions, they cannot provide optimal performance for the various functions implemented at host 1100.
[0038] The storage device 1200 according to an embodiment of the present invention can perform a throttling operation based on a throttling level corresponding to a request from the host 1100 among a plurality of throttling levels. In this case, the storage device 1200 can provide performance optimized for the request from the host 1100. Furthermore, because the storage device 1200 performs the throttling operation based on one of the plurality of throttling levels, the storage device 1200 can provide optimized performance fluctuations for various conditions.
[0039] For example, host 1100 may include storage management module 1101. Storage management module 1101 may be configured to manage or control the performance of storage device 1200. In an example embodiment, storage management module 1101 may be a program or device driver provided in software form by the manufacturer of storage device 1200. Storage management module 1101 may be driven by the processor of host 1100.
[0040] Storage management module 1101 may receive a Limit Predetermined Table (PDT) 1211 from controller 1210 under specific operating conditions of host 1100. In an example embodiment, specific operating conditions of host 1100 may include various conditions such as initialization operations, execution of a specific application, or the occurrence of a limit requirement. The limit PDT 1211 may include information about the performance fluctuation level and target performance of each of a plurality of limit levels.
[0041] Storage management module 1101 can select, based on limitation PDT 1211, the limitation level corresponding to the optimal performance required for the current situation from the plurality of limitation levels. Storage management module 1101 can transmit information about the selected limitation level to storage device 1200.
[0042] The controller 1210 of storage device 1200 may further include a limit manager 1212. The limit manager 1212 can set various operating parameters of storage device 1200 based on the limit level received from the storage management module 1101 of host 1100. Then, storage device 1200 can communicate with host 1100 via interface channel IF based on the set operating parameters. In this case, storage device 1200 can support performance corresponding to the limit level determined by the storage management module 1101 of host 1100.
[0043] As described above, the storage device 1200 according to an embodiment of the present invention can communicate with the host 1100 based on a restriction level corresponding to a request from the host 1100 among the plurality of restriction levels. Therefore, a storage device 1200 with improved performance and improved reliability is achieved. The operation methods of the host 1100 and the storage device 1200 according to an embodiment of the present invention will be described more fully below with reference to the accompanying drawings.
[0044] Figure 2 This illustrates an example embodiment. Figure 1 A block diagram of the software layer of the storage system. Figure 2 The block diagram illustrates the software layer of the storage system 1000, but the inventive concept is not limited thereto. For example, Figure 2 All or part of the components shown may be implemented as software, hardware or a combination thereof.
[0045] Reference Figure 1 and Figure 2 The software layer of storage system 1000 may include storage management module 1101, application 1110, file system 1120, device driver 1130, and flash translation layer 1201. In an example embodiment, storage management module 1101, application 1110, file system 1120, and device driver 1130 may be included in host 1100, or may be executed by any other component(s) (e.g., processor) included in host 1100.
[0046] Application 1110 may include various applications driven on host 1100. File system 1120 may organize the files or data used by application 1110. For example, file system 1120 may manage the storage space of storage device 1200 by using logical addresses. In an example embodiment, file system 1120 may have a type that varies depending on the operating system driven on host 1100. For example, file system 1120 may include one of various file systems such as FAT (File Allocation Table), FAT32, NTFS (NT File System), HFS (Hierarchical File System), JSF2 (Journaled File System 2), XFS, ODS-5 (Disk Structure-5), UDF, ZFS, UFS (Unix File System), ext2, ext3, ext4, ReiserFS, Reiser4, ISO 9660, Gnome VFS, BFS, and WinFS.
[0047] Device driver 1130 can perform operations that convert information managed by file system 1120 into information recognizable by storage device 1200.
[0048] Storage management module 1101 can be configured to manage information about application 1110, file system 1120, and device driver 1130. For example, storage management module 1101 can manage attribute information about application 1110 running on host 1100. Storage management module 1101 can manage logical addresses managed by file system 1120 based on various conditions of storage device 1200 (e.g., storage capacity and over-provisioning capacity). Storage management module 1101 can be configured to manage device driver 1130 based on the type of interface channel IF between host 1100 and storage device 1200.
[0049] The flash translation layer 1201 can be driven on the controller 1210 of the storage device 1200. The flash translation layer 1201 can be configured to map logical addresses managed by the file system 1120 of the host 1100 to physical addresses of the non-volatile memory device 1220, and to manage mapping information. The flash translation layer 1201 can be configured to perform various operations of the non-volatile memory device 1220, such as garbage collection operations, wear leveling operations, bad block replacement operations, region mapping operations, and mapping table management operations.
[0050] Figure 3 This illustrates an example embodiment. Figure 1 A block diagram of the controller for the storage device is provided. The terms "limiting level," "limiting performance of storage device 1200," and "fluctuation level" are used below to readily describe embodiments of the inventive concept. The limiting level can indicate the level of limited operation supported by storage device 1200. The limiting performance of storage device 1200 can be defined as the average or minimum speed of I / O between storage device 1200 and host 1100 relative to the relevant limiting level. The fluctuation level can be defined as the difference between the maximum and minimum performance of I / O between storage device 1200 and host 1100 relative to the relevant limiting level.
[0051] In the example embodiment, it is assumed that the degree of restriction increases with the restriction level. A stronger restriction means that the restriction performance and fluctuation level of the storage device 1200 decreases. That is, as the restriction weakens, the performance of the storage device 1200 can be relatively improved; as the restriction strengthens, the storage device 1200 can provide relatively uniform or stable performance.
[0052] Unless otherwise specified, the terms above can be understood as described above. However, the terms are used to more easily describe embodiments of the inventive concept, and the inventive concept is not limited thereto, and other terms may be used to interpret the same concepts.
[0053] Reference Figure 1 and Figure 3The controller 1210 of the storage device 1200 may include a limiting PDT 1211, a limiting manager 1212, a processor 1213, random access memory (RAM) 1214, a management module 1215, a host interface circuit 1216, and a non-volatile memory (NVM) interface circuit 1217.
[0054] Limiting PDT 1211 may include information regarding the limiting performance and fluctuation level of each of a plurality of limiting levels. For example, as described above, the storage device 1200 according to an embodiment of the present invention may perform a limiting operation based on one of the plurality of limiting levels. Specifically, when the storage device 1200 performs a limiting operation based on a first limiting level, the performance of the storage device 1200 (e.g., I / O speed) may be a first limiting performance, and the performance fluctuation level may be a first fluctuation level. When the storage device 1200 performs a limiting operation based on a second limiting level, the performance of the storage device 1200 (e.g., I / O speed) may be a second limiting performance, and the performance fluctuation level may be a second fluctuation level.
[0055] In the above embodiments, when the second limitation level is higher than the first limitation level, the second limitation performance may be lower than the first limitation performance, but the second fluctuation level may be less than the first fluctuation level. For example, as the limitation level increases, the performance or average performance of the storage device 1200 may decrease (e.g., lower speed), but the performance fluctuation level may decrease. Therefore, as the limitation level increases, the performance of the storage device 1200 can remain more stable or more uniform.
[0056] Limit manager 1212 can be configured to control the limiting operations of storage device 1200. For example, limit manager 1212 can receive information about the selected limit level from host 1100. Limit manager 1212 can control various operating parameters of storage device 1200 to perform limiting operations corresponding to the selected limit level.
[0057] Processor 1213 can control the overall operation of controller 1210. RAM 1214 can be used as working memory, cache memory, or buffer memory of controller 1210. RAM 1214 can store or manage various information required for the operation of controller 1210. In an example embodiment, limit PDT 1211 and limit manager 1212 can be implemented in software, and the software-implemented limit PDT 1211 and limit manager 1212 can be stored in RAM 1214. The limit PDT 1211 and limit manager 1212 stored in RAM 1214 can be driven, executed, or managed by processor 1213.
[0058] The management module 1215 can be configured to perform various management operations required for the operation of the storage device 1200. For example, the management module 1215 may include the flash translation layer 1201 as described above. The management module 1215 can perform various management operations, such as garbage collection operations, bad block replacement operations, wear leveling operations, and mapping table management operations, so that the storage device 1200 can be used efficiently.
[0059] Controller 1210 can communicate with host 1100 via host interface circuit 1216. In an example embodiment, host interface circuit 1216 can be implemented based on a communication scheme corresponding to interface channel IF. For example, host interface circuit 1216 may include at least one of various interfaces such as SATA (Serial ATA) interface, PCIe (Peripheral Component Interconnect High Speed) interface, SAS (Serial Attached SCSI) interface, NVMe (Non-Volatile Memory High Speed) interface, and UFS (Universal Flash Storage) interface. In an example embodiment, when limiting operations are to be performed, various operating parameters of host interface circuit 1216 can be controlled to meet limiting performance or fluctuation levels. That is, various operating parameters may include information for controlling the operation of host interface circuit 1216.
[0060] The controller 1210 can communicate with the non-volatile memory device 1220 via the non-volatile memory interface circuit 1217. In an example embodiment, the non-volatile memory interface circuit 1217 can be implemented based on a NAND interface. The non-volatile memory interface circuit 1217 can exchange commands CMD, addresses ADDR, data “DATA”, or control signals CTRL with the non-volatile memory device 1220.
[0061] Figure 4 This illustrates an example embodiment. Figure 1 A block diagram of a non-volatile memory device. Figure 4 In some embodiments, the non-volatile memory device 1220 may be a NAND flash memory device, but the inventive concept is not limited thereto.
[0062] Reference Figure 1 , Figure 3 and Figure 4The non-volatile memory device 1220 may include a memory cell array 1221, an address decoder 1222, a page buffer 1223, input / output (I / O) circuitry 1224, control logic, and voltage generation circuitry 1225. The memory cell array 1221 may include multiple memory blocks. Each of the multiple memory blocks may include multiple cell strings, and each of the multiple cell strings includes multiple cell transistors connected in series between a bit line and a common-source line. The multiple cell transistors may be connected to a string select line SSL, a word line WL, and a ground select line GSL.
[0063] Address decoder 1222 can be connected to memory cell array 1221 via serial select line SSL, word line WL, and ground select line GSL. Address decoder 1222 can receive address ADDR from controller 1210. Address decoder 1222 can decode address ADDR and control the voltage of serial select line SSL, word line WL, and ground select line GSL based on the decoding result.
[0064] Page buffer 1223 can be connected to memory cell array 1221 via bit line BL. Page buffer 1223 can be configured to temporarily store data to be stored in memory cell array 1221 or data read from memory cell array 1221.
[0065] The input / output circuit 1224 can provide data “DATA” received from the controller 1210 to the page buffer 1223 via the data line DL, or it can provide data “DATA” received from the page buffer 1223 to the controller 1210 via the data line DL. In an example embodiment, the input / output circuit 1224 can exchange data “DATA” with the memory controller 1210 synchronously with a data strobe signal (DQS) (not shown).
[0066] The control logic and voltage generation circuit 1225 can control the overall operation of the non-volatile memory device 1220. For example, the control logic and voltage generation circuit 1225 can control the components of the non-volatile memory device 1220 based on the command CMD or control signal CTRL from the controller 1210, so that the non-volatile memory device 1220 performs various operations (e.g., programming operations, reading operations, and erasing operations).
[0067] Figure 5A and Figure 5B This is a diagram illustrating the operation of a storage device for each of a plurality of restriction levels according to an example embodiment. (Refer to...) Figure 5A describe Figure 1 Limitations of PDT1211, and refer to Figure 5B Describes the operation of storage device 1200 according to the limit level. Figure 5B In the diagram, the horizontal axis represents time, and the vertical axis represents the I / O speed of the storage device 1200. The I / O speed can be the read speed or the write speed of the storage device 1200, and is expressed in MB / s. The time unit can be seconds. However, the present invention is not limited thereto. For simplicity, in... Figure 5B In the embodiments shown, performance graphs are illustrated for some of the multiple limit levels THLV_0 to THLV_3, but the inventive concept is not limited thereto.
[0068] Reference Figure 1 , Figure 3 , Figure 5A and Figure 5B The controller 1210's limiting PDT 1211 may include Figure 5A The information shown. For example, limiting PDT 1211 may include information about the fluctuation levels FL_0 to FL_n and the limiting performance Perf_0 to Perf_n of the plurality of limiting levels THLV_0 to THLV_n. The limiting levels may be indicated based on the fluctuation and performance levels of the storage device 1200.
[0069] like Figure 5B As shown, the storage device 1200 can perform a limiting operation based on a limiting level THLV_0 during a time period from time 0 to time t1. In this case, the performance (e.g., average performance) of the storage device 1200 can be the limiting performance Perf_0, and the fluctuation level can be the fluctuation level FL_0. In an example embodiment, the limiting level THLV_0 can represent the case where no limiting operation is performed (i.e., limiting is off). In an example embodiment, the interface channel IF can have normal performance when no limiting operation is performed. In an example embodiment, the average performance of the interface channel IF with normal performance can be higher than the average performance of the interface channel IF after the limiting operation is performed, and the fluctuation level of the interface channel IF with normal performance can be higher than the fluctuation level of the interface channel IF after the limiting operation is performed.
[0070] Then, at a first time t1, the limit level can be changed to a first limit level THLV_1 by a request from host 1100, and storage device 1200 can perform a limit operation based on the first limit level THLV_1. In this case, the performance (i.e., average performance) of storage device 1200 can be the first limit performance Perf_1, and the fluctuation level can be the first fluctuation level FL_1.
[0071] Then, at a second time t2, the limit level can be changed to a second limit level THLV_2 upon request from host 1100, and storage device 1200 can perform a limit operation based on the second limit level THLV_2. In this case, the performance (i.e., average performance) of storage device 1200 can be the second limit performance Perf_2, and the fluctuation level can be the second fluctuation level FL_2.
[0072] Then, at a third time t3, the limit level can be changed to a third limit level THLV_3 upon request from host 1100, and storage device 1200 can perform limit operations based on the third limit level THLV_3 during the time period from the third time t3 to the fourth time t4. In this case, the performance (i.e., average performance) of storage device 1200 can be the third limit performance Perf_3. In an example embodiment, the third limit level THLV_3 can indicate a level that allows the performance of storage device 1200 to be maintained uniformly. In this case, the fluctuation level can be "0".
[0073] In the example embodiment, the first restriction level THLV_1 can be higher than the zero restriction level THLV_0, the second restriction level THLV_2 can be higher than the first restriction level THLV_1, and the third restriction level THLV_3 can be higher than the second restriction level THLV_2. In this case, as... Figure 5B As shown, the first fluctuation level FL_1 can be less than the 0th fluctuation level FL_0, and the second fluctuation level FL_2 can be less than the first fluctuation level FL_1. Furthermore, the first limiting performance Perf_1 can be lower than the 0th limiting performance Perf_0, the second limiting performance Perf_2 can be lower than the first limiting performance Perf_1, and the third limiting performance Perf_3 can be lower than the second limiting performance Perf_2. Therefore, as the limiting level increases, the limiting performance and fluctuation level can decrease, thus making the performance of the storage device 1200 more uniform.
[0074] As described above, the storage device 1200 according to an embodiment of the present invention can perform limiting operations based on the plurality of limiting levels THLV_0 to THLV_n according to a request from the host 1100. Therefore, since optimal performance can be set relative to various functions of the host 1100 (e.g., maximum performance priority or consistency priority), a storage device 1200 with selectable and most desired performance is provided.
[0075] Figure 6 This illustrates an example embodiment. Figure 1 A flowchart illustrating the operation of the storage system. (Refer to...) Figure 1 , Figure 5A , Figure 5B and Figure 6 In operation S110, host 1100 can determine whether limiting is required. For example, host 1100 can manage the priority of each of multiple applications. If storage device 1200 does not perform a limiting operation, host 1100 can execute the first application whose priority is associated with performance consistency. In this case, because the first application is associated with or requires performance consistency, host 1100 can identify that a limiting operation is needed. In an example embodiment, if performance consistency is required, a limiting operation based on a relatively high limiting level may be necessary.
[0076] In operation S120, host 1100 may request storage device 1200 to limit PDT 1211. In operation S130, storage device 1200 may determine information regarding the limitation of PDT 1211. For example, as shown in reference... Figure 5A As described, the limitation PDT 1211 can be stored in the RAM 1214 of the controller 1210 of the storage device 1200. The controller 1210 can read all or part of the limitation PDT 1211 stored in the RAM 1214.
[0077] In an example embodiment, the limiting PDT 1211 may be predetermined during the manufacturing process of the storage device 1200 or during initialization. Alternatively, the limiting PDT 1211 may be updated or reconfigured under specific conditions while the storage device 1200 is being driven or operated. For example, the controller 1210 may periodically monitor the performance of the storage device 1200 and may selectively update the limiting PDT 1211 based on the monitored performance.
[0078] In operation S140, storage device 1200 may transmit information about restriction PDT 1211 to host 1100. In operation S150, host 1100 may select one of the plurality of restriction levels THLV_1 to THLV_n based on restriction PDT 1211.
[0079] For example, when a first application whose priority is associated with performance consistency is executed, host 1100 can select the highest or relatively high limit level from the multiple limit levels THLV_1 to THLV_n included in limit PDT 1211. Alternatively, when an application whose priority is associated with maximum performance is executed, host 1100 can select the lowest limit level from the multiple limit levels THLV_1 to THLV_n included in limit PDT 1211. Alternatively, when a limit operation whose priority is associated with specific or higher performance and specific or lower volatility is required, host 1100 can select a limit level from the multiple limit levels THLV_1 to THLV_n included in limit PDT 1211 that matches the above conditions. In this way, and in some embodiments, the limit level serves as an indicator for the operational settings of storage device 1200, wherein different limit levels are associated with different combinations of volatility and performance levels (e.g., a higher limit level may be associated with a lower volatility and lower performance, and vice versa).
[0080] In operation S160, host 1100 may transmit information about the selected limit level THLV_s to storage device 1200. In operation S170, storage device 1200 may set one or more operating parameters based on the selected limit level THLV_s. For example, based on the selected limit level THLV_s, storage device 1200 may set or reset (or remove) various operating parameters of components related to the performance of storage device 1200 or various operating parameters of host interface circuit 1216, such as buffer release time, response delivery time, data transfer width, and command queue. In an example embodiment, as storage device 1200 sets its operating parameters, the performance of storage device 1200 (e.g., interface channel IF) may have limited performance corresponding to the selected limit level THLV_s.
[0081] In operation S180, host 1100 and storage device 1200 can perform I / O operations based on set operating parameters. For example, host 1100 can transfer data to storage device 1200 to store data in storage device 1200, or it can provide data from storage device 1200 to host 1100. In this case, because the operating parameters of storage device 1200 are set according to the limit level THLV_s selected by host 1100, storage device 1200 can provide performance and fluctuation levels corresponding to the selected limit level THLV_s. Therefore, storage device 1200 can provide performance optimized for the requests of host 1100.
[0082] 7A to 7DIt is used to describe the basis according to the example embodiments. Figure 6 The flowchart below illustrates the operation of the process. For ease of description, it is assumed that host 1100 selects the limiting level for storage device 1200 based on the priority of the application to be driven. However, the inventive concept is not limited thereto. For example, host 1100 may select the limiting level for storage device 1200 based on various other environment variables and application priorities.
[0083] For ease of description, details about the above components and related descriptions will be omitted. 7A to 7D Description of unnecessary components in the embodiments.
[0084] Reference 7A to 7D The storage system 1000 may include a host 1100 and a storage device 1200. The host 1100 may include a storage management module 1101, and the storage device 1200 may include a limiting PDT 1211 and a limiting manager 1212. The host 1100, storage management module 1101, storage device 1200, limiting PDT 1211, and limiting manager 1212 have been described above; therefore, additional descriptions will be omitted to avoid redundancy.
[0085] like Figure 7A As shown, host 1100 can execute first application APP1 to third application APP3. First application APP1 to third application APP3 can generate first I / O I / O_1 to third I / O I / O_3 respectively.
[0086] Host 1100 can manage the priority (PR) for each of the first application APP1 to the third application APP3. For example, the priority of the first application APP1 can be performance (Perf). That is, the first I / O (I / O_1) generated from the first application APP1 may require high performance or high average performance in communication with storage device 1200. The priority of the second application APP2 can be latency. That is, the second I / O (I / O_2) generated from the second application APP2 may require low latency in communication with storage device 1200. The priority of the third application APP3 can be performance consistency. That is, the third I / O (I / O_3) generated from the third application APP3 may require a uniform level of performance in communication with storage device 1200. The priority of each of the first application APP1 to the third application APP3 can be managed by host 1100.
[0087] In an example embodiment, although not shown in the accompanying drawings, the host 1100 may include a priority management module configured to manage the priority of each of the first application APP1 to the third application APP3. The priority management module can manage the priority of each of the multiple applications running on the host 1100. The priority management module can manage or change the priority of each of the multiple applications according to user requests. Alternatively, the priority management module can learn the execution method or execution environment of each of the multiple applications and manage or change the priority of each of the multiple applications based on the learning results.
[0088] like Figure 7B As shown, the first application APP1 can be executed on host 1100 (see reference). Figure 7B [1]). In response to the execution of the first application APP1 on the host 1100, the storage management module 1101 may request the storage device 1200 to limit PDT1211 (RQ PDT, see [1]). Figure 7B [2]). In response to a request RQ PDT for restriction PDT 1211, storage device 1200 may provide information about restriction PDT 1211 to storage management module 1101 (PDT, see [2]) of host 1100. Figure 7B [3]). In the example embodiment, where the storage management module 1101 includes information restricting PDT 1211, the information based on [3] may be omitted. Figure 7B The operation of the embodiment.
[0089] like Figure 7C As shown, the storage management module 1101 can select the limit level THLV_s (refer to) corresponding to the priority PR of the first application APP1 based on the limit PDT 1211. Figure 7C [4]). For example, the priority PR of the first application APP1 can be related to the performance Perf. In this case, as referenced Figure 5A and Figure 5B The description allows you to select the 0th limit level THLV_0, which corresponds to the highest average performance, as the limit level THLV_s.
[0090] Storage management module 1101 can transmit information about the selected limit level THLV_s (e.g., an indicator of the selected limit level THLV_s) to storage device 1200 (see reference). Figure 7C [5]). The limit manager 1212 of the storage device 1200 can set the operating parameters of the storage device 1200 based on the selected limit level THLV_s (see [5]). Figure 7C[6]). For example, the limit manager 1212 can set or reset the operating parameters of the storage device 1200 to meet the average performance and fluctuation levels corresponding to the selected limit level THLV_s.
[0091] Then, the host 1100 and the storage device 1200 can perform operations on the first I / O I / O_1 generated by the first application APP1 (see reference). Figure 7C [7]). In this case, because the storage device 1200 is in a state where the operating parameters are set based on the limit level THLV_s selected by the host 1100, the storage device 1200 can provide or support the fluctuation level or limit performance of the priority PR applicable to the first application APP1.
[0092] like Figure 7D As shown, the third application APP3 can be executed simultaneously with or after the first application APP1 has finished executing (see reference). Figure 7D [8]). In response to the execution of the third application APP3, the storage management module 1101 can change the selected limit level THLV_s (see [8]). Figure 7D [9]). For example, the priority PR of the third application APP3 can be related to performance consistency Cons. In this case, a relatively high level of constraint may be required (e.g., Figure 5B The third restriction level (THLV_3). In this way, the storage management module 1101 can select a relatively high restriction level as the selected restriction level (THLV_s).
[0093] Storage management module 1101 can transmit information about the changed selected limit level THLV_s (e.g., an indicator of the changed limit level THLV_s) to storage device 1200 (see reference 1200). Figure 7D
[10] ), and the limit manager 1212 of the storage device 1200 can set or reset operating parameters based on the selected limit level THLV_s (see
[10] ). Figure 7D
[11] ). Then, the host 1100 and the storage device 1200 can execute the third I / O I / O_3 generated by the third application APP3.
[0094] exist Figure 7D In the illustrated embodiment, even when the third application APP3 is executed, the storage management module 1101 may not request the restriction PDT 1211 from the storage device 1200. This is because the storage management module 1101 already includes information about the restriction PDT 1211, as shown in reference... Figure 7BAlternatively, even if the storage management module 1101 already includes the restriction PDT 1211, because the restriction PDT 1211 can be updated, the storage management module 1101 can request the restriction PDT 1211 from the storage device 1200. The method of exchanging the restriction PDT 1211 can be determined by a given policy between the host 1100 and the storage device 1200.
[0095] In an example embodiment, the exchange of information segments required for setting restriction levels (e.g., requesting restriction PDT 1211, receiving restriction PDT 1211, or transmitting information about the selected restriction level THLV_s) between the host 1100 and the storage device 1200 can be performed via the in-band or main channel of the interface channel IF between the host 1100 and the storage device 1200. These segments are generated by the first application APP1 to the third application APP3.
[0096] Alternatively, the first I / OI / O_1 to the third I / OI / O_3 generated by the first application APP1 to the third application APP3 can be transmitted through the in-band or main channel of the interface channel IF, and the information segments required to set the limit level can be exchanged through the sideband or sub-channel of the interface channel IF or through an auxiliary interface separate from the interface channel IF.
[0097] exist 7A to 7D In the embodiments described, priority levels (PRs) for applications APP1 to APP3 managed by host 1100 are provided, but the inventive concept is not limited thereto. For example, host 1100 may specify and manage the limit level of each of multiple applications based on the limit PDT 1211 from storage device 1200. In this case, storage management module 1101 of host 1100 may directly check the limit level corresponding to the application being executed or generating I / O.
[0098] Figure 8 This illustrates an example embodiment. Figure 1 The flowchart of the operation of the storage system. Figure 9 It is used to describe the basis according to the example embodiments. Figure 8 The flowchart illustrates the operation of the process. For simplicity and ease of description, details regarding the description are omitted. Figure 8 and Figure 9 The embodiments do not contain unnecessary components, therefore, additional descriptions will be omitted to avoid redundancy.
[0099] For ease of description, it is assumed that the storage management module 1101 already includes information about the limit PDT 1211. For example, during the initialization operation of the storage system 1000, the storage management module 1101 can receive the limit PDT 1211 from the storage device 1200. Alternatively, the storage management module 1101 may periodically or randomly request the limit PDT 1211 from the storage device 1200 (e.g., in response to a request based on specific conditions), and may receive or update information about the limit PDT 1211 from the storage device 1200.
[0100] Reference Figure 1 , Figure 8 and Figure 9 In operation S210, the host 1100 can determine whether a first I / O has occurred. For example, as Figure 9 As shown, host 1100 can execute a first application APP1 and a second application APP2. First application APP1 and second application APP2 can generate a first I / O I / O_1 and a second I / O I / O_2, respectively. Host 1100 can recognize that the first I / O I / O_1 is generated from the first application APP1. If the first I / O I / O_1 is not generated, host 1100 may not perform a detach operation.
[0101] When it is determined that the first I / O I / O_1 has occurred, in operation S211, the host 1100 can determine the first limit level THLV1 as the selected limit level THLV_s. For example, as Figure 9 As shown, the priority PR of the first application APP1 can be related to the performance Perf. In this case, as described above, the first I / O I / O_1 generated from the first application APP1 may require high performance or high average performance in the communication between the host 1100 and the storage device 1200. Thus, regarding the first I / O I / O_1, the storage management module 1101 of the host 1100 can determine a relatively low first limit level THLV1 as the selected limit level THLV_s.
[0102] In operation S212, host 1100 may pass a first I / O request to storage device 1200. In this case, the first I / O request may include information about a first limit level THLV1 determined to be the selected limit level THLV_s. For example, information about the first limit level THLV1 may be included in a specific field of the first I / O request, and the first I / O request including information about the first limit level THLV1 may be provided to storage device 1200 via interface channel IF. In an example embodiment, the request may be made via device driver 1130 (see reference 1101) according to a request from storage management module 1101. Figure 2The operation includes information about the first limit level THLV1 in the first I / O request.
[0103] In operation S213, the storage device 1200 can set its operating parameters based on the first limit level THLV1. In operation S213, the host 1100 and the storage device 1200 can perform operations corresponding to the first I / O request. In this case, the host 1100 and the storage device 1200 can perform operations corresponding to the first I / O request based on the fluctuation level and limit performance corresponding to the first limit level THLV1.
[0104] Then, in operation S220, the host 1100 can determine whether a second I / O (I / O_2) has been generated. For example, as... Figure 9 As shown, the second I / O I / O_2 can be generated by a second application driven on host 1100. The storage management module 1101 of host 1100 can recognize that the second I / O I / O_2 is generated from the second application APP2. If the second I / O I / O_2 is not generated, host 1100 may not perform a detach operation.
[0105] In operation S221, host 1100 can determine the second restriction level THLV2 as the selected restriction level THLV_s. For example, as Figure 9 As shown, the priority PR of the second application APP2 can be related to performance consistency Cons. In this case, the second I / O I / O_2 generated from the second application APP2 can require uniform performance processing. The host 1100 can select a second limit level THLV2 as the selected limit level THLV_s for the second I / O I / O_2.
[0106] In the example embodiment, the second restriction level THLV2 can be higher than the first restriction level THLV1. That is, restriction operations based on the second restriction level THLV2 can provide more stable or more uniform performance than restriction operations based on the first restriction level THLV1.
[0107] The host 1100 and the storage device 1200 can perform operations S222 to S224. Figure 8 Operations S222 to S224 are similar to operations S212 to S214, except that the selected restriction level THLV_s is the second restriction level THLV2, so additional descriptions will be omitted to avoid redundancy.
[0108] As described above, in an embodiment of the storage system 1000 according to the present invention, the host 1100 can determine a selected limit level for each generated I / O and can provide information about the selected limit level along with the I / O request to the storage device 1200. The storage device 1200 can process the I / O based on the selected limit level provided from the host 1100. Therefore, optimal performance can be provided relative to each of the plurality of I / Os.
[0109] exist Figure 8 and Figure 9 In the embodiments described, one configuration of host 1100 determining a selected restriction level for each of a plurality of I / Os is illustrated, but the inventive concept is not limited thereto. For example, host 1100 may classify the plurality of I / Os using flow identifiers, and, for example, may perform restriction operations based on different restriction levels using the flow identifier of each of the plurality of I / Os.
[0110] Figure 10 This is a block diagram illustrating a storage system according to an embodiment of the concept of the present invention. (Refer to...) Figure 10 The storage system 2000 may include a host 2100 and a storage device 2200. The host 2100 and the storage device 2200 can communicate via an interface channel IF. The host 2100 may include a storage management module 2101. The storage device 2200 may include a controller 2210 and a non-volatile memory device 2220. The controller 2210 may include a limiting PDT 2211, a limiting manager 2212, and an internal policy 2217. The host 2100, storage management module 2101, storage device 2200, controller 2210, non-volatile memory device 2220, limiting PDT 2211, and limiting manager 2212 have been described above; therefore, further descriptions will be omitted to avoid redundancy.
[0111] Figure 10 The controller 2210 may also include an internal policy 2217. The internal policy 2217 may include information on the level of restrictions based on various operating modes performed in the storage device 2200. In an example embodiment, the internal policy 2217 may be stored in RAM included in the controller 2210 (see reference). Figure 3 In or in separate storage circuits.
[0112] For example, in reference Figures 1 to 4 , Figure 5A , Figure 5B , Figure 6 , 7A to 7D , Figure 8 and Figure 9 In the described embodiments, the limitation level of the storage device can be determined by the host. Conversely, Figure 10The storage device 2200 can determine a final limit level based on a selected limit level provided by the host 2100 and an internal limit level determined by internal policy 2217. In an example embodiment, the final limit level may be the same as the selected limit level determined by the host 2100. Alternatively, under certain conditions, the final limit level may differ from the selected limit level determined by the host 2100. The following description will be more fully detailed with reference to the accompanying drawings. Figure 10 The operation of the storage device 2200.
[0113] Figure 11 It is used to describe according to the example embodiments Figure 10 A diagram illustrating the internal strategy operations. (Refer to...) Figure 10 and Figure 11 Internal strategy 2217 may include Figure 11 The table shown. Internal policy 2217 may include the relationship between state information State and the plurality of restriction levels THLV_0 to THLV_3.
[0114] Limit manager 2212 can select an internal limit level based on internal policy 2217. For example, when the state of storage device 2200 is state 0 (ST_0), limit manager 2212 can select limit level 0 (THLV_0) as the internal limit level. State 0 (ST_0) can indicate that all operations being performed or awaited at storage device 2200 are write operations (WR). In an example embodiment, all operations being performed or awaited at storage device 2200 can indicate operations between controller 2210 and non-volatile memory device 2220.
[0115] When the storage device 2200 is in the first state ST_1, the limit manager 2212 can select a first limit level THLV_1 as the internal limit level. The first state ST_1 can indicate that a portion (e.g., 50%) of the operations being performed or awaited at the storage device 2200 is a write operation WR.
[0116] When the storage device 2200 is in the second state ST_2, the limit manager 2212 can select the second limit level THLV_2 as the internal limit level. The second state ST_2 can indicate that a portion (e.g., 10%) of the operations being performed or awaited at the storage device 2200 is a write operation WR.
[0117] When the storage device 2200 is in the third state ST_3, the limit manager 2212 can select the third limit level THLV_3 as the internal limit level. The third state ST_3 can indicate the state of all operations being performed or waiting at the storage device 2200, which are read operations RD.
[0118] As described above, the limit manager 2212 of the controller 2210 of the storage device 2200 can determine an internal limit level corresponding to the state of the storage device 2200 based on an internal policy 2217. The internal policy 2217 described above is merely an example for describing an embodiment of the inventive concept, and the inventive concept is not limited thereto. The state information included in the internal policy 2217 can be implemented through a combination of one or more factor information, such as command queue depth, write amplification factor (WAF), data sector size and temperature information, and command ratio.
[0119] Figure 12 This illustrates an example embodiment. Figure 10 A flowchart illustrating the operation of a storage device. For simplicity and ease of description, Figure 12 The operation in which the host 2100 (or storage management module 2101) determines the selected restriction level is omitted. However, the inventive concept is not limited thereto. For example, according to reference... Figures 1 to 4 , Figure 5A , Figure 5B , Figure 6 , 7A to 7D , Figure 8 and Figure 9 The described operating method allows the host 2100 to determine a selected limit level for the storage device 2200 and to transmit information about the selected limit level to the storage device 2200.
[0120] Hereinafter, for the purpose of clearly describing embodiments of the inventive concept, the selected restriction level received from host 2100 will be referred to as "external restriction level THLV_ext", and the restriction level determined based on internal policy 2217 will be referred to as "internal restriction level THLV_int". Furthermore, the restriction level determined based on either external restriction level THLV_ext or internal restriction level THLV_int will be referred to as "final restriction level THLV_fin". The restriction manager 2212 of storage device 2200 can perform restriction operations based on the final restriction level THLV_fin.
[0121] Reference Figures 10 to 12 In operation S310, storage device 2200 can receive information about the external limit level THLV_ext from host 2100. Operation S310 is related to... Figures 1 to 4 , Figure 5A , Figure 5B , Figure 6 , 7A to 7D , Figure 8 and Figure 9 The operation of host 1100 in determining the selected limit level THLV_s and transmitting information about the selected limit level THLV_s is similar, so additional description will be omitted to avoid redundancy.
[0122] In operation S320, storage device 2200 may determine the internal limit level THLV_int based on internal policy 2217. For example, as referred to Figure 11 As described, the limit manager 2212 of storage device 2200 can determine the internal limit level THLV_int based on the internal policy 2217 and the state of storage device 2200.
[0123] In operation S330, storage device 2200 can compare the internal limit level THLV_int with the external limit level THLV_ext. When the external limit level THLV_ext and the internal limit level THLV_int are the same, in operation S340, storage device 2200 can determine the external limit level THLV_ext or the internal limit level THLV_int as the final limit level THLV_fin.
[0124] When the external limit level THLV_ext and the internal limit level THLV_int are different, in operation S350, the storage device 2200 can determine the final limit level THLV_fin based on given conditions. For example, the limit manager 2212 can determine whether the metric associated with the external limit level THLV_ext satisfies the metric associated with the internal limit level THLV_int.
[0125] In some examples, the external limit level THLV_ext can be higher than the internal limit level THLV_int. That is, host 2100's priority for performance consistency can be higher than its performance limit. In this case, when the fluctuation level of the internal limit level THLV_int meets the fluctuation level of the external limit level THLV_ext and the performance limit of the internal limit level THLV_int is higher than the performance limit of the external limit level THLV_ext, the limit manager 2212 can determine the internal limit level THLV_int as the final limit level THLV_fin. Alternatively, when the fluctuation level of the internal limit level THLV_int does not meet the fluctuation level of the external limit level THLV_ext, the limit manager 2212 can determine the external limit level THLV_ext as the final limit level THLV_fin. In other words, the limit manager 2212 can choose the final limit level THLV_fin to satisfy specific conditions of the external limit level THLV_ext selected by host 2100.
[0126] However, the inventive concept is not limited thereto. For example, the storage device 2200 according to an embodiment of the inventive concept can determine the final limit level THLV_fin through various means or conditions. For example, the host 2100 can provide information about the external limit level THLV_ext and priority to the storage device 2200, and the storage device 2200 can determine the final limit level THLV_fin such that the priority-related indicators in the indicators of the external limit level THLV_ext are preferentially satisfied.
[0127] Then, storage device 2200 can execute operations S360 and S370. Except for using the final limit level THLV_fin, operations S360 and S370 can be combined with... Figure 6 Operations S170 and S180 Figure 8 Operations S213 and S214, or Figure 8 Operations S223 and S224 are similar, so additional descriptions will be omitted to avoid redundancy.
[0128] Figures 13A to 13C It is used to describe based on Figure 10 A diagram illustrating the operation of selecting internal limit levels for the internal policy of the storage device. For ease of description, components unnecessary for describing the operation of selecting internal limit levels based on the internal policy of storage device 2200 will be omitted, as will additional descriptions related to the aforementioned components. Figure 13C In the diagram, the horizontal axis represents the number of program / erase (P / E) cycles of the non-volatile memory device 2220.
[0129] Reference Figure 10and Figure 13A The controller 2210 of storage device 2200 may include a limit manager 2212, an internal policy 2217, and a command (CMD) queue CQ. The command queue CQ may include information about commands to be executed on storage device 2200 or about pending commands.
[0130] The limit manager 2212 can select an internal limit level THLV_int based on the internal policy 2217 and the command queue CQ. For example, the command queue CQ may include information about the type and priority of the first command CMD1 through the sixth command CMD6. The limit manager 2212 can determine the state of the storage device 2200 based on the command queue CQ.
[0131] In some examples, the limit manager 2212 may determine the state of the storage device 2200 based on the number of write commands among multiple commands CMD1 to CMD6 included in the command queue CQ, or the ratio of the write commands among multiple commands CMD1 to CMD6. Alternatively, the limit manager 2212 may select commands with a specific priority from multiple commands CMD1 to CMD6, and may determine the state of the storage device 2200 based on the number of write commands in the selected commands. Alternatively, the limit manager 2212 may determine the state of the storage device 2200 based on the command depth of the command queue CQ.
[0132] The above examples are provided to readily describe embodiments of the inventive concept, and the inventive concept is not limited thereto. For example, the limit manager 2212 may determine the state of the storage device 2200 based on various information from the command queue CQ. Then, the limit manager 2212 may determine the final limit level THLV_fin based on the external limit level THLV_ext and the internal limit level THLV_int.
[0133] Reference Figure 10 and Figure 13B The controller 2210 of the storage device 2200 may include a limit manager 2212, an internal policy 2217, and a management module 2215. (See reference...) Figure 3 As described, the management module 2215 can perform various management operations (e.g., garbage collection (GC) operations, wear leveling operations, and bad block replacement operations) for the efficient use of the storage device 2200.
[0134] In the example embodiment, when management operations are performed by management module 2215, the performance of storage device 2200 may be degraded or its volatility may increase because operations associated with non-volatile memory device 2220 are performed. For example, when management module 2215 performs garbage collection (GC) operations, non-volatile memory device 2220 may repeatedly perform read and write operations. This situation can be recognized by host 2100 as the performance of storage device 2200 degrades or its volatility increases. To reduce the volatility, limit manager 2212 can select a relatively high limit level as the internal limit level THLV_int.
[0135] For example, limit manager 2212 can determine the state of storage device 2200 based on various management operations performed by management module 2215, and can select internal limit level THLV_int based on the determined state. Limit manager 2212 can determine final limit level THLV_fin based on external limit level THLV_ext and internal limit level THLV_int.
[0136] Reference Figure 10 and Figure 13C The non-volatile memory device 2220 of storage device 2200 can have a lifetime based on the number of P / E cycles. In the example embodiment, as the number of P / E cycles of the non-volatile memory device 2220 increases, various internal operations can be repeatedly performed. This may lead to a decrease in the average performance of storage device 2200 or an increase in the level of fluctuation. In this case, storage device 2200 may change the external limit level THLV_ext according to the number of P / E cycles of the non-volatile memory device 2220.
[0137] For example, suppose the external restriction level THLV_ext provided by host 2100 is one of external restriction level 0 THLV0_ext to third external restriction level THLV3_ext. In this case, the third external restriction level THLV3_ext can be higher than the second external restriction level THLV2_ext, the second external restriction level THLV2_ext can be higher than the first external restriction level THLV1_ext, and the first external restriction level THLV1_ext can be higher than the external restriction level 0 THLV0_ext.
[0138] As described above, the fluctuation level of the memory device 2200 can increase as the number of P / E cycles of the non-volatile memory device 2220 increases. In this case, in order to compensate for the increase in fluctuation level according to the number of P / E cycles, it may be necessary to use a limit level higher than the external limit level THLV_ext.
[0139] In an example embodiment, during the interval of use of storage device 2200 (i.e., P / E0 to P / E1), the third external limit level THLV3_ext can be determined as the third limit level THLV3, the second external limit level THLV2_ext can be determined as the second limit level THLV2, the first external limit level THLV1_ext can be determined as the first limit level THLV1, and the 0th external limit level THLV0_ext can be determined as the 0th limit level THLV0.
[0140] Then, in the next time period in which the number of P / E cycles increases (i.e., P / E1 to P / E2), the third external constraint level THLV3_ext can be determined as the (3+a) constraint level THLV3+a, the second external constraint level THLV2_ext can be determined as the third constraint level THLV3, the first external constraint level THLV1_ext can be determined as the second constraint level THLV2, and the 0th external constraint level THLV0_ext can be determined as the first constraint level THLV1. In the example embodiment, the (3+a) constraint level THLV3+a can be higher than the third constraint level THLV3.
[0141] In the next time intervals P / E2 to P / E3 and P / E3 to EOL, the multiple external constraint levels THLV3_ext to THLV0_ext can be determined as multiple constraint levels THLV3+c, THLV3+b, THLV3+a, THLV3, THLV2, etc. That is, as the number of P / E cycles increases, a higher constraint level can be determined relative to the same external constraint level.
[0142] As described above, the storage device according to embodiments of the present invention can support restricted operation based on multiple restriction levels. Therefore, a restriction level can be selected according to an explicit request from the host, and the storage device can provide optimal performance to the host based on the selected restriction level.
[0143] Figure 14 This is a block diagram illustrating an electronic device employing a storage system based on the concept of the present invention. (Refer to...) Figure 14The electronic device 3000 may include a touch panel 3100, a touch driver integrated circuit (TDI) 3102, a display panel 3200, a display driver integrated circuit (DDI) 3202, a system memory 3400, a storage device 3500, an image processor 3600, a communication block 3700, an audio processor 3800, and a main processor 3900. In an example embodiment, the electronic device 3000 may be one of various electronic devices such as a portable communication terminal, a personal digital assistant (PDA), a portable media player (PMP), a digital camera, a smartphone, a tablet computer, a laptop computer, and a wearable device.
[0144] Touch driver integrated circuit 3102 can be configured to control touch panel 3100. Touch panel 3100 can be configured to sense user touch input under the control of touch driver integrated circuit 3102. Display driver integrated circuit 3202 can be configured to control display panel 3200. Display panel 3200 can be configured to display image information under the control of display driver integrated circuit 3202.
[0145] System memory 3400 can store data used for the operation of electronic device 3000. For example, system memory 3400 can temporarily store data that is processed by main processor 3900 or will be processed by main processor 3900. For example, system memory 3400 may include volatile memory such as static random access memory (SRAM), dynamic RAM (DRAM), or synchronous DRAM (SDRAM) and / or non-volatile memory such as phase change RAM (PRAM), magnetoresistive RAM (MRAM), resistive RAM (ReRAM), or ferroelectric RAM (FRAM).
[0146] Storage device 3500 can store data regardless of whether power is supplied. For example, storage device 3500 may include at least one of various non-volatile memories such as flash memory, PRAM, MRAM, ReRAM, and FRAM. For example, storage device 3500 may include the built-in memory and / or removable memory of electronic device 3000. In an example embodiment, storage device 3500 may be a reference... Figures 1 to 4 , Figure 5A , Figure 5B , Figure 6 , 7A to 7D , Figures 8 to 12 and Figures 13A to 13C The described storage device 1200 or 2200, or storage device 3500, may be based on reference Figures 1 to 4 , Figure 5A , Figure 5B , Figure 6 , 7A to 7D , Figures 8 to 12and Figures 13A to 13C The described operation method.
[0147] The image processor 3600 can receive light through the lens 3610. The image device 3620 and image signal processor (ISP) 3630 included in the image processor 3600 can generate image information about external objects based on the received light.
[0148] Communication block 3700 can exchange signals with external devices / systems via antenna 3710. The transceiver 3720 and modulator / demodulator (MODEM) 2730 of communication block 3700 can process the signals exchanged with external devices / systems according to at least one of various wireless communication protocols, including: Long Term Evolution (LTE), Global Microwave Access Interoperability (WiMax), Global System for Mobile Communications (GSM), Code Division Multiple Access (CDMA), Bluetooth, Near Field Communication (NFC), Wi-Fi, and Radio Frequency Identification (RFID).
[0149] The audio processor 3800 can process audio signals using the audio signal processor 3810. The audio processor 3800 can receive audio input via the microphone 3820 or provide audio output via the speaker 3830.
[0150] The main processor 3900 can control the overall operation of the electronic device 3000. The main processor 3900 can control / manage the operation of the components of the electronic device 3000. The main processor 3900 can handle various operations used to operate the electronic device 3000. In the example embodiment, Figure 14 Some components can be implemented as a system-on-a-chip and can be configured as an application processor (AP) of electronic device 3000. In an example embodiment, the main processor 3900 may be a reference... Figures 1 to 4 , Figure 5A , Figure 5B , Figure 6 , 7A to 7D , Figures 8 to 12 and Figures 13A to 13C The described host 1100 or 2100, or main processor 3900, can be based on the reference. Figures 1 to 4 , Figure 5A , Figure 5B , Figure 6 , 7A to 7D , Figures 8 to 12 and Figures 13A to 13C The described operation method.
[0151] Figure 15 This is a block diagram illustrating an SSD system employing a storage system based on the concept of the present invention. (Refer to...) Figure 15The storage system 4000 may include a host 4100 and a storage device 4200. In an example embodiment, the host 4100 and the storage device 4200 may be referenced... Figures 1 to 4 , Figure 5A , Figure 5B , Figure 6 , 7A to 7D , Figures 8 to 12 and Figures 13A to 13C The described host 1100 or 2100 and storage device 1200 or 2200, or host 4100 and storage device 4200, can be based on references. Figures 1 to 4 , Figure 5A , Figure 5B , Figure 6 , 7A to 7D , Figures 8 to 12 and Figures 13A to 13C The described operation method.
[0152] Storage device 4200 exchanges signals SIG with host 4100 via signal connector 4201 and supplies power PWR to storage device 4200 via power connector 4202. Storage device 4200 includes solid-state drive (SSD) controller 4210, multiple non-volatile memories 4221 to 422n, auxiliary power supply 4230, and buffer memory 4240.
[0153] SSD controller 4210 can control non-volatile memories 4221 to 422n in response to the SIG signal received from host 4100. Non-volatile memories 4221 to 422n can operate under the control of SSD controller 4210. Auxiliary power supply 4230 is connected to host 4100 via power connector 4202. Auxiliary power supply 4230 can be charged by power PWR supplied from host 4100. When there is no stable power supply PWR from host 4100, auxiliary power supply 4230 can power storage device 4200.
[0154] The buffer memory 4240 can be used as a buffer memory. In an example embodiment, the storage device 4200 can perform the above-mentioned limiting operations by controlling the operating parameters associated with the buffer memory, but the inventive concept is not limited thereto.
[0155] Figure 16 This is a block diagram illustrating a user interface applied to a storage system according to the present invention. (Refer to...) Figure 16The user interface (UI) of the storage system 5000 can display an adaptation constraint control box. This control box can be configured to prioritize each application based on user-specific settings. For example, a user can set the priority of the first application (APP1) for performance (Perf.) in the adaptation constraint control box of the UI. In this case, when the first application (APP1) is executed, the storage management module 5101 can determine the constraint level corresponding to the user-selected performance (i.e., Perf.) priority and provide the determined constraint level (THLV) to the storage device 5200. The storage device 5200 can perform adaptation constraint operations based on one of the above embodiments or a combination of at least two of the above embodiments.
[0156] According to embodiments of the present invention, the storage device can perform adaptive limiting operations or dynamic limiting operations based on multiple limiting levels according to an explicit request from the host device. The storage device can provide optimized performance to the host device, thus providing an operating method for a storage device with improved performance, and an operating method for a storage system including the host device and the storage device.
[0157] Although the inventive concept has been described with reference to exemplary embodiments thereof, those skilled in the art will clearly recognize that various changes and modifications may be made thereto without departing from the spirit and scope of the inventive concept as set forth in the appended claims.
Claims
1. A method of operating a storage device, the storage device being configured to communicate with an external device via an interface channel, the method comprising: Receive an indicator of the first restriction level from the external device among multiple restriction levels; A first operating parameter is set based on a restriction pre-defined table that includes the relationship between the plurality of restriction levels and the plurality of restriction performances, such that the interface channel has a first restriction performance among the plurality of restriction performances, the first restriction performance corresponding to the first restriction level; A first input / output request is received from the external device through the interface channel having the first limiting performance, wherein the first limiting performance is caused by setting the first operating parameters; as well as The first operation corresponding to the first input / output request is processed through the interface channel having the first performance limitation. The method further includes: Receive an indicator of the second restriction level from the plurality of restriction levels from the external device; The first operating parameters are reset based on the restricted predefined table, so that the interface channel has a second restricted performance among the plurality of restricted performances, the second restricted performance corresponding to the second restriction level; Receive a second input / output request from the external device via the interface channel having the second limiting performance, wherein the second limiting performance is caused by resetting the first operating parameters; and The second operation corresponding to the second input / output request is processed through the interface channel having the second limited performance.
2. The method according to claim 1, further comprising: Receive a request for the restriction reservation table from the external device; as well as In response to the request, the restriction reservation table is transmitted to the external device.
3. The method according to claim 1, wherein, The first average performance and the first minimum performance of the interface channel having the first limiting performance are different from the second average performance and the second minimum performance of the interface channel having the second limiting performance.
4. The method according to claim 1, wherein, The first fluctuation level is different from the second fluctuation level, wherein the first fluctuation level is the difference between the first maximum performance and the first minimum performance of the interface channel having the first limiting performance, and the second fluctuation level is the difference between the second maximum performance and the second minimum performance of the interface channel having the second limiting performance.
5. The method according to claim 1, wherein, The first fluctuation level is greater than the second fluctuation level, wherein the first fluctuation level is the difference between the first maximum performance and the first minimum performance of the interface channel having the first limiting performance, and the second fluctuation level is the difference between the second maximum performance and the second minimum performance of the interface channel having the second limiting performance. Wherein, the first average performance and the first maximum performance of the interface channel with the first limiting performance are respectively greater than the second average performance and the second maximum performance of the interface channel with the second limiting performance.
6. The method according to claim 1, wherein, The first performance limitation is associated with at least one of the random read speed, random write speed, sequential read speed, and sequential write speed through the interface channel.
7. The method according to claim 1, wherein, The storage device includes a host interface circuit configured to communicate with the external device via the interface channel. The first operating parameter includes information for controlling the operation of the host interface circuit.
8. The method according to claim 1, further comprising: Before receiving the indicator for the first restriction level, a 0th input / output request is received from the external device via the interface channel with normal performance, and a 0th operation corresponding to the 0th input / output request is processed. Among them, the 0th average performance of the interface channel with the normal performance is higher than the first average performance with the first limiting performance, and Wherein, the 0th fluctuation level is greater than the first fluctuation level, wherein the 0th fluctuation level is the difference between the 0th maximum performance and the 0th minimum performance of the interface channel with the normal performance, and the first fluctuation level is the difference between the first maximum performance and the first minimum performance of the interface channel with the first limiting performance.
9. A method of operating a storage device, the storage device being configured to communicate with an external device via an interface channel, the method comprising: Receive an indicator of the external limit level from the external device; An internal limit level is determined based on an internal policy, which corresponds to the current state of the storage device. The internal policy includes the relationship between the multiple states of the storage device and the multiple internal limit levels. The final restriction level is determined based on the external restriction level and the internal restriction level; Operating parameters are set based on a constraint pre-defined table that includes the relationship between multiple constraint levels and multiple constraint performances, such that the interface channel has a constraint performance among the multiple constraint performances, and the constraint performance corresponds to the final constraint level; A first input / output request is received from the external device through the interface channel having the aforementioned limiting performance, wherein the limiting performance is caused by setting the operating parameters; and The first operation corresponding to the first input / output request is processed through the interface channel having the aforementioned performance limitations.
10. The method according to claim 9, wherein, The current state of the storage device is determined based on multiple commands waiting in the command queue.
11. The method of claim 9, further comprising: Management operations are performed through the management module of the storage device. These management operations include garbage collection, wear leveling, or bad block replacement. The current state of the storage device is determined based on the execution of the management operation.
12. The method according to claim 9, wherein, Determining the final limit level includes: Compare the external constraint level with the internal constraint level; When the external constraint level and the internal constraint level are the same, the external constraint level or the internal constraint level is determined as the final constraint level; and When the external restriction level and the internal restriction level are different from each other, one of the external restriction level, the internal restriction level, and the different restriction levels is determined as the final restriction level.
13. The method according to claim 9, wherein, The performance limitation is associated with at least one of the random read speed, random write speed, sequential read speed, or sequential write speed through the interface channel.
14. The method of claim 9, further comprising: Receive a request for the restriction reservation table from the external device; as well as In response to the request, the restriction reservation table is transmitted to the external device.
15. The method according to claim 9, wherein, The storage device includes a host interface circuit configured to communicate with the external device via the interface channel. The operating parameters include information for controlling the operation of the host interface circuit.
16. A method of operating a storage system, the storage system comprising a host device and a storage device communicating with the host device via an interface channel, the method comprising: The host device executes a first application with a first priority. The host device selects a first restriction level corresponding to the first priority based on a restriction pre-defined table; The host device transmits the indicator of the first restriction level to the storage device; The storage device sets first operating parameters based on the restriction predefined table, so that the interface channel has a first restriction performance corresponding to the first restriction level; The host device transmits a first input / output request generated by the first application to the storage device through the interface channel having the first performance limitation, wherein the first performance limitation is caused by setting the first operating parameters; as well as The storage device processes the first operation corresponding to the first input / output request through the interface channel having the first limited performance.
17. The method of claim 16, further comprising: The host device executes a second application with a second priority. The host device selects a second restriction level corresponding to the second priority based on the restriction reservation table; The host device transmits the indicator of the second restriction level to the storage device; The storage device resets the first operating parameters based on the restriction predefined table, so that the interface channel has a second restriction performance corresponding to the second restriction level; The host device transmits a second input / output request generated by the second application to the storage device through the interface channel having the second limiting performance, wherein the second limiting performance is caused by resetting the first operating parameters; as well as The storage device processes the second operation corresponding to the second input / output request through the interface channel having the second limited performance.
18. The method according to claim 17, wherein, The first priority is associated with performance, and the second priority is associated with performance consistency. Wherein, the second fluctuation level is less than the first fluctuation level, wherein the second fluctuation level is the difference between the second maximum performance and the second minimum performance of the interface channel having the second limiting performance, and the first fluctuation level is the difference between the first maximum performance and the first minimum performance of the interface channel having the first limiting performance; and The first average performance of the interface channel with the first limiting performance is higher than the second average performance of the interface channel with the second limiting performance.
19. The method of claim 16, wherein, The storage device includes a host interface circuit configured to communicate with the host device via the interface channel. The first operating parameter includes information for controlling the operation of the host interface circuit.
Citation Information
Patent Citations
Custom digital components
KR1020190094235A
Configurable storage drive
US10055144B1
Storage device which can perform stable communication between host and storage device, and method of controlling the same
US20130238837A1
Uniform performance monitor for a data storage device and method of operation
US20190114276A1