Storage device including test storage block and computing system
By introducing test storage blocks into the storage device and eliminating their impact during background operations, the problem of data processing performance degradation caused by storage device operation latency was solved, thereby improving the overall performance of the storage device and the host device.
Patent Information
- Application Number
- CN202411518343.7
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2024-05-08
- Filing Date
- 2024-10-29
- Publication Date
- 2025-11-11
AI Technical Summary
The operational latency of storage devices leads to a decrease in the data processing performance of host devices, and existing technologies are insufficient to effectively improve the operational performance of storage devices in order to enhance the data processing performance of external devices.
By introducing test storage blocks into the storage device, the host device can allocate normal storage blocks and test storage blocks of different sizes for performance measurement and optimization. The controller excludes test storage blocks when operating in the background, thereby improving the operating efficiency of the storage device.
This improves the operational performance of the storage device, thereby enhancing the data processing performance of the external device and enabling efficient data processing between the storage device and the host device.
Smart Images

Figure CN120929005A_ABST
Abstract
Description
[0001] Cross-references to related applications
[0002] This application claims priority to Korean Patent Application No. 10-2024-0060228, filed with the Korean Intellectual Property Office on May 8, 2024, the entire disclosure of which is incorporated herein by reference. Technical Field
[0003] The various embodiments of the disclosed technology generally relate to a storage device and a computing system. Background Technology
[0004] The storage device may include at least one memory for storing data. The storage device may include a controller for controlling the operation of the at least one memory. The controller can control the operation of writing data to or reading data written to the memory. The controller can control the operation of the memory based on commands received from an external device.
[0005] The external device can be a host device. The host device can access the memory through a controller included in the storage device and can use the memory to perform data processing. The data processing performance of the host device may be degraded due to the operational latency caused by the storage device. Summary of the Invention
[0006] Various embodiments of the disclosed technology are intended to provide a measure in which an external device using a storage device to perform data processing can effectively utilize the storage device, and the storage device can support the external device in improving data processing performance.
[0007] In an embodiment, the storage device may include: at least one memory including a plurality of storage blocks; and a controller configured to allocate a first normal storage block of a first size in response to a first allocation request from a host device, allocate a test storage block of a second size different from the first size in response to a second allocation request from a host device, and allocate a second normal storage block of the same third size as the first or second size in response to a third allocation request from a host device.
[0008] In an embodiment, the storage device may include: at least one memory including a plurality of storage blocks; and a controller configured to allocate a first normal storage block of a first size in response to a first allocation request from a host device, and to allocate a test storage block of a second size different from the first size in response to a second allocation request from the host device, the test storage block being excluded from background operations.
[0009] In an embodiment, the computing system may include: a storage device including a plurality of storage blocks; and a host device configured to send a first allocation request to the storage device requesting the allocation of a normal storage block of a first size for writing user data, and to send a second allocation request to the storage device requesting the allocation of a test storage block of a second size different from the first size for writing virtual data.
[0010] According to embodiments of the disclosed technology, an external device using a storage device can perform data processing by effectively improving the operational performance of the storage device, thereby improving both the operational performance of the storage device and the data processing performance of the external device. Attached Figure Description
[0011] Figure 1 This is a diagram illustrating a schematic configuration of a storage device according to an embodiment of the present disclosure.
[0012] Figure 2 This is a diagram illustrating a normal storage block of a management storage device according to an embodiment of the present disclosure.
[0013] Figure 3 This is a diagram illustrating a test storage block of a management storage device according to an embodiment of the present disclosure.
[0014] Figure 4 This is a diagram illustrating a test storage block of a storage device for writing data according to an embodiment of the present disclosure.
[0015] Figure 5 This is a diagram illustrating reading data from a test storage block of a storage device according to an embodiment of the present disclosure.
[0016] Figure 6 This is a diagram illustrating background operations of a storage device according to an embodiment of the present disclosure.
[0017] Figure 7 This is a diagram illustrating the writing of virtual data for testing to a storage device according to an embodiment of the present disclosure.
[0018] Figure 8A and Figure 8B This is a diagram illustrating a test storage block of a deallocation storage device according to an embodiment of the present disclosure.
[0019] Figure 9 This is a diagram illustrating the allocation of normal storage blocks after the test storage block of the storage device has been disposed of, according to an embodiment of the present disclosure.
[0020] Figure 10 This is a diagram illustrating a method of operating a host device in an operating computing system according to an embodiment of the present disclosure.
[0021] Figure 11This is a diagram illustrating a method of operating a storage device in a computing system according to an embodiment of the present disclosure. Detailed Implementation
[0022] In the following description of examples or embodiments of this disclosure, reference will be made to the accompanying drawings, which illustrate specific examples or embodiments that may be implemented, and in which the same reference numerals and symbols may be used to denote the same or similar components even if the same reference numerals and symbols are shown in different drawings. Furthermore, in the following description of examples or embodiments of this disclosure, descriptions of well-known functions and components incorporated herein will be omitted where it is determined that such detailed descriptions might obscure the subject matter of some embodiments of this disclosure. Terms such as “comprising,” “having,” “including,” “constituting,” “forming,” “comprise,” and “form” as used herein are generally intended to allow for the addition of additional components unless used in conjunction with the term “only.” As used herein, the singular forms are intended to include the plural forms unless the context explicitly indicates otherwise.
[0023] Terms such as “first,” “second,” “A,” “B,” “(A),” or “(B)” may be used herein to describe elements of this disclosure. Each of these terms is not used to define the nature, order, sequence, or number of elements, but only to distinguish the corresponding element from other elements.
[0024] When referring to the first element and the second element as "connected or joined," "in contact or overlapping," etc., it should be explained that not only can the first element be "directly connected or joined" or "directly in contact or overlapping" with the second element, but a third element can also be "inserted" between the first element and the second element, or the first element and the second element can be "connected or joined," "in contact or overlapping," etc., through a fourth element. Here, the second element can be included in at least one of two or more elements that are "connected or joined," "in contact or overlapping," etc., with each other.
[0025] When time-relative terms such as “after,” “following,” “next,” “before,” etc., are used to describe a process or operation of an element or configuration, or a flow or step in an operation, processing, or manufacturing method, these terms may also be used to describe discontinuous or non-sequential processes or operations, unless they are used in conjunction with the terms “directly” or “immediately.”
[0026] Furthermore, when referring to any size, relative size, etc., even if no specific description is specified, the numerical value or corresponding information of the component or feature (e.g., grade, range, etc.) should be taken into account, including tolerances or error margins that may be caused by various factors (e.g., process factors, internal or external influences, noise, etc.). Further, the term "may" fully encompasses all the meanings of the term "can".
[0027] In the following description, various embodiments of the present disclosure will be described with reference to the accompanying drawings.
[0028] Figure 1 This is a diagram illustrating a schematic configuration of a storage device according to an embodiment of the present disclosure.
[0029] Reference Figure 1 The storage device 100 may include at least one memory 110. The storage device 100 may include a controller 120 for controlling the operation of the memory 110.
[0030] Memory 110 may be, for example, volatile memory such as DRAM, SDRAM, DDR SDRAM, and LPDDR SDRAM, but embodiments of the disclosed technology are not limited thereto. For example, memory 110 may be non-volatile memory such as NAND flash memory, 3D NAND flash memory, and NOR flash memory, and additionally, a portion of memory 110 included in storage device 100 may be volatile memory, while another portion may be non-volatile memory.
[0031] The memory 110 can be one of various types of memory, such as resistive RAM, phase-change memory, magnetoresistive memory, ferroelectric memory, and spin-transfer torque random access memory. The memory 110 can be a processing-in-memory that includes computing or data processing functions.
[0032] The memory 110 may include multiple memory blocks. Each of the multiple memory blocks may include multiple memory cells.
[0033] The controller 120 can receive commands from an external source and control the operation of the memory 110 based on the received commands. The controller 120 can also control the operation of the memory 110 based on internally generated commands.
[0034] For example, controller 120 can control the operation of writing data to memory 110. Controller 120 can also control the operation of reading data written to memory 110.
[0035] Depending on the type of memory 110, controller 120 can control data saving operations (e.g., refresh operations or patrol scrub operations) or erasure operations performed on data written to memory 110.
[0036] The controller 120 can control the operation of the memory 110 based on commands received from the external host device 200. The controller 120 can provide the host device 200 with the processing results of the operations corresponding to the commands. The controller 120 can send data or response signals to the host device 200.
[0037] To maintain and improve the operational performance of storage device 100, controller 120 may execute background operations associated with memory 110 based on external commands received from host device 200 or based on internal commands. Background operations may include at least one of, for example, garbage collection, wear leveling, read reclamation, and bad block management operations.
[0038] For example, host device 200 can be a computer, ultra-mobile PC (UMPC), workstation, personal digital assistant (PDA), tablet, mobile phone, smartphone, e-book reader, portable multimedia player (PMP), portable game console, navigation device, black box, digital camera, digital multimedia broadcasting (DMB) player, smart TV, digital audio recorder, digital audio player, digital image recorder, digital image player, digital video recorder, digital video player, storage device for configuring a data center, one of various electronic devices for configuring a home network, one of various electronic devices for configuring a telematics network, RFID (Radio Frequency Identification) device, mobile device capable of driving or driving autonomously under human control (e.g., vehicle, robot, or drone), etc. Optionally, host device 200 can be a virtual reality / augmented reality device that provides 2D or 3D virtual reality images or augmented reality images. Additionally, host device 200 can be any of various electronic devices, each of which requires a storage device 100 capable of storing data.
[0039] In this specification, storage device 100 and host device 200 may be collectively referred to as a computing system.
[0040] The host device 200 may include at least one operating system. The operating system can manage and control the overall functions and operation of the host device 200, and can control the interoperability between the host device 200 and the storage device 100. Based on the mobility of the host device 200, the operating system can be divided into general-purpose operating systems and mobile operating systems.
[0041] The controller 120 and the host device 200 can be separate devices, or they can be integrated into a single device, or some components or functions of the controller 120 can be implemented by including them in the host device 200. Hereinafter, for ease of explanation, by way of example, the controller 120 and the host device 200 will be described as separate devices.
[0042] The controller 120 can allocate memory blocks of the memory 110 according to the request of the host device 200. The controller 120 can control the operation of writing data to the memory blocks allocated according to the request of the host device 200 or reading data written to the allocated memory blocks.
[0043] For example, controller 120 can manage storage blocks allocated to host device 200 by mapping and managing logical addresses received from host device 200 and physical addresses of memory 110. To efficiently manage data to be stored in storage device 100, host device 200 can set up partitions of predetermined sizes and manage data in units of partitions. Storage device 100 can allocate storage blocks of sizes corresponding to the partitions to host device 200 and can provide these storage blocks for data processing by host device 200.
[0044] Figure 2 This is a diagram illustrating a normal storage block of a management storage device according to an embodiment of the present disclosure.
[0045] Reference Figure 2 To manage data, the host device 200 can set up and manage multiple normal partitions 201. Each normal partition 201 can have a predetermined size. For example, the first normal partition (Z_1) 201a, the second normal partition (Z_2) 201b, and the third normal partition (Z_3) 201c set up by the host device 200 can have the same size.
[0046] Some of the multiple normal partitions 201 can have different sizes. The host device 200 can manage data by setting normal partitions 201 with a first size and normal partitions 201 with a second size different from the first size.
[0047] The host device 200 can set up partitions for managing data and can request the storage device 100 to allocate storage blocks in the memory 110 corresponding to the partitions.
[0048] The controller 120 of storage device 100 can allocate normal storage blocks 111 in response to an allocation request from host device 200. The memory 110 of storage device 100 may include multiple storage blocks. The controller 120 can allocate the multiple storage blocks included in memory 110 as normal storage blocks 111 corresponding to the size of normal partition 201 set by host device 200.
[0049] For example, controller 120 can allocate a first normal storage block (BLK_nor_1) 111a, a second normal storage block (BLK_nor_2) 111b, and a third normal storage block (BLK_nor_3) 111c corresponding to the first normal partition 201a, the second normal partition 201b, and the third normal partition 201c of host device 200, respectively.
[0050] The sizes of the first normal storage block 111a, the second normal storage block 111b, and the third normal storage block 111c can be constant.
[0051] For example, when the host device 200 processes and manages the data in the first normal partition 201a, the host device 200 can send corresponding commands to the storage device 100. Based on the commands received from the host device 200, the controller 120 of the storage device 100 can perform operations to write data to the first normal storage block 111a corresponding to the first normal partition 201a or to read the data written to the first normal storage block 111a.
[0052] The host device 200 can manage the normal partition 201 and perform data processing when setting or changing the size of the normal partition 201 in various ways. When changing the size of the normal partition 201, the host device 200 can determine the optimal size of the normal partition 201 that improves data processing performance through testing, and the storage device 100 can support this testing.
[0053] Figure 3 This is a diagram illustrating a test storage block of a management storage device according to an embodiment of the present disclosure.
[0054] Reference Figure 3 The host device 200 can manage data by setting a first normal partition 201a. For example, the first normal partition 201a can have a first size. The host device 200 can request the storage device 100 to allocate storage blocks corresponding to the first normal partition 201a.
[0055] The controller 120 of the storage device 100 can allocate a first normal storage block 111a corresponding to the first normal partition 201a. The size of the first normal storage block 111a can correspond to the first size of the first normal partition 201a. According to the commands of the host device 200, the controller 120 can control the operation of writing data to the first normal storage block 111a or reading data written to the first normal storage block 111a.
[0056] To improve data processing performance or facilitate management, the host device 200 can change the size of the partition. Before changing the size of the partition, the host device 200 can set a test partition 202 and use the test partition 202 to determine the size of the partition to be changed.
[0057] For example, host device 200 may set a first test partition (Z_test_1) 202a. The first test partition 202a may have a second size that is different from the first normal partition 201a. For example, the second size may be smaller than the first size.
[0058] Optionally, the host device 200 may configure a second test partition (Z_test_2) 202b. The second test partition 202b may have a third size that is different from the first normal partition 201a. For example, the third size may be larger than the first size.
[0059] The host device 200 can perform tests using one test partition 202, or it can perform tests using at least two test partitions 202.
[0060] After setting up test partition 202, host device 200 can request storage device 100 to allocate storage blocks corresponding to test partition 202.
[0061] Based on the allocation request from the host device 200, the controller 120 of the storage device 100 can allocate a test storage block 112 corresponding to the test partition 202. For example, the controller 120 can allocate a first test storage block (BLK_test_1) 112a corresponding to a first test partition 202a having a second size. The controller 120 can allocate a second test storage block (BLK_test_2) 112b corresponding to a second test partition 202b having a third size.
[0062] The first test storage block 112a and the second test storage block 112b can be allocated during different test periods. Alternatively, the first test storage block 112a and the second test storage block 112b can be allocated sequentially during the ongoing test. Or, the first test storage block 112a and the second test storage block 112b can be allocated during the same test period.
[0063] After allocating test storage block 112, controller 120 can maintain the allocated state of test storage block 112 until it receives a deallocation request from host device 200. Controller 120 can fix the physical location corresponding to test storage block 112 until test storage block 112 is deallocated.
[0064] For example, controller 120 can maintain the area in memory 110 allocated as test memory block 112 until a deallocation request for test memory block 112 is received. Since test memory block 112 is an area used for testing, controller 120 can maintain the allocation state of test memory block 112 without changing the physical location of test memory block 112 or the location of the data stored in test memory block 112 until a deallocation request is received from host device 200.
[0065] The host device 200 can measure the operational performance of the storage device 100 when writing predetermined data to or reading data written to the allocated test storage block 112. By performing performance measurements using the test storage block 112, which corresponds to a test partition 202 of a different size than the normal partition 201, the host device 200 can determine whether to change the size of the normal partition 201.
[0066] Although embodiments of this disclosure describe the allocation of storage blocks according to partitions set by the host device 200, other embodiments may feature a host device 200 that does not set partitions and changes the size of the set storage blocks.
[0067] The host device 200 can measure the operational performance of the storage device 100 through the test storage block 112. The storage device 100 can maintain the allocation state of the test storage block 112 during the test and adjust the internal operation of the storage device 100 according to the allocation state of the test storage block 112.
[0068] Figure 4 This is a diagram illustrating a test storage block of a storage device for writing data according to an embodiment of the present disclosure.
[0069] Reference Figure 4 The host device 200 sets up a first test partition 202a, the size of which is smaller than the previously set normal partition 201. After setting up the first test partition 202a, the host device 200 can request the storage device 100 to allocate a storage block corresponding to the first test partition 202a.
[0070] The controller 120 can allocate a first test storage block 112a corresponding to the first test partition 202a.
[0071] To measure performance, the host device 200 may send a command to the storage device 100 requesting that virtual data be written to the first test storage block 112a. In this specification, the data written to the normal storage block 111 may be referred to as user data, and the data written to the test storage block 112 may be referred to as virtual data.
[0072] When a write command is received, the controller 120 can write virtual data into the first test storage block 112a according to the write command.
[0073] For example, when a write command is received from the host device 200, the controller 120 may send a response signal to the host device 200. The controller 120 may write the virtual data received in response to the response signal into the first test storage block 112a. The controller 120 may also send a response signal to the host device 200 indicating that the write operation has been completed.
[0074] The host device 200 can measure the operational performance of the storage device 100 based on response signals received from the storage device 100. For example, the host device 200 can measure the operational performance of the storage device 100 based on the amount of time before receiving a response signal corresponding to a write command or based on a response signal indicating that a write operation has been completed.
[0075] The host device 200 can measure operational performance by comparing the time taken to use the test storage block 112 with the time required to write data of the same size as the virtual data to an existing normal storage block 111. For example, the time required to write x MB of data to a normal storage block 111 of a first size can be compared with the time required to write x MB of data to a test storage block 112 of a second size, and the host device 200 can use the result to measure or predict performance and to determine whether to set the size of the normal partition 201 to the second size.
[0076] The controller 120 can write virtual data to the first test storage block 112a according to the write command from the host device 200. When the virtual data has been written to the entire area of the first test storage block 112a, the controller 120 can perform a deletion operation on the virtual data written to the first test storage block 112a. The controller 120 can delete the virtual data immediately after it has been written to the entire area of the first test storage block 112a, or it can delete the virtual data after a predetermined time has elapsed.
[0077] In some embodiments, the controller 120 can control whether to delete virtual data written to the first test storage block 112a for testing. For example, the controller 120 can ignore or not receive deletion requests from the host device 200 and observe the status of virtual data being written to the first test storage block 112a.
[0078] In other embodiments, controller 120 may receive a deletion request from host device 200 and delete the virtual data written to the first test storage block 112a.
[0079] In another embodiment, the controller 120 may delete the virtual data written to the first test storage block 112a based on a new write command received from the host device 200.
[0080] For example, controller 120 can receive a write command from host device 200 while virtual data has been written to at least a portion of the first test storage block 112a. When virtual data has been written to the area requested by host device 200, controller 120 can delete the previously written virtual data and write new virtual data to the first test storage block 112a according to the new write command from host device 200.
[0081] Even after deleting the virtual data written to the first test storage block 112a, the controller 120 can maintain the allocation state of the first test storage block 112a. Before receiving a deallocation request for the first test storage block 112a from the host device 200, the controller 120 can maintain the allocation state while fixing the physical location of the first test storage block 112a.
[0082] By performing a write operation on the first test storage block 112a, the host device 200 can measure the operating performance of the storage device 100 and determine whether to change the size of the normal partition 201.
[0083] The host device 200 can determine whether to change the size of the normal partition 201 based on read operations on virtual data written to the first test storage block 112a.
[0084] Figure 5 This is a diagram illustrating reading data from a test storage block of a storage device according to an embodiment of the present disclosure.
[0085] Reference Figure 5 The host device 200 sets up a first normal partition 201a and a first test partition 202a.
[0086] The controller 120 can allocate a first normal storage block 111a corresponding to the first normal partition 201a and a first test storage block 112a corresponding to the first test partition 202a in the memory 110.
[0087] User data can be written to the first normal storage block 111a. Virtual data can be written to the first test storage block 112a.
[0088] Based on a read command from the host device 200, data written to the first normal storage block 111a or the first test storage block 112a can be read. The host device 200 may or may not perform the operation of reading user data written to the first normal storage block 111a while performing a test on the first test storage block 112a.
[0089] Based on a read command from the host device 200, the controller 120 can perform the operation of reading and writing virtual data to the first test storage block 112a. The controller 120 can read and write the virtual data to the first test storage block 112a and provide the read virtual data to the host device 200.
[0090] The operation of controller 120 reading and writing virtual data in the first test storage block 112a and providing the read virtual data to host device 200 may be different from the operation of controller 120 reading and writing user data in the first normal storage block 111a and providing the read user data to host device 200.
[0091] For example, when an error is detected while reading or writing virtual data to the first test storage block 112a, the controller 120 may not correct at least a portion of the detected error. When an error is detected while reading or writing user data to the first normal storage block 111a, the controller 120 may perform an operation to correct the detected error. The controller 120 may provide the error-corrected user data to the host device 200. When an uncorrectable error is detected, the controller 120 may provide the corresponding information to the host device 200.
[0092] When virtual data is provided to host device 200, controller 120 may provide virtual data with uncorrected errors to host device 200, and may provide only information about detected errors to host device 200. Host device 200 may use first test storage block 112 to measure performance based on response time to read commands and the provided information about detected errors, and determine whether to change the size of normal partition 201.
[0093] The controller 120 can perform read retry operations, which are executed when a read operation fails, and the execution method depends on the type of storage block.
[0094] For example, the number of read retry operations performed by the controller 120 when a read operation on the first test memory block 112a fails can be less than the number of read retry operations performed by the controller 120 when a read operation on the first normal memory block 111a fails. The size or number of read retry tables used in the read retry operation on the first test memory block 112a can be less than the size or number of read retry tables used in the read retry operation on the first normal memory block 111a.
[0095] The controller 120 can reduce the time set for the read retry operation of the first test storage block 112a and provide the read retry operation setting information to the host device 200. Using the read retry operation setting information for the first test storage block 112a, the number of detected errors, etc., the host device 200 can predict the time required for the read operation if the size of the normal storage block 111 is changed to the size of the test storage block 112. Using this prediction information, the host device 200 can determine whether to change the size of the normal partition 201 to the size of the test partition 202.
[0096] The controller 120 can perform background operations while the host device 200 is performing performance measurements. When performing background operations, the controller 120 can exclude the test storage block 112 from the target of the background operations.
[0097] Figure 6 This is a diagram illustrating background operations of a storage device according to an embodiment of the present disclosure.
[0098] Reference Figure 6 The host device 200 can configure a first normal partition 201a and a second normal partition 201b. The host device 200 can also configure a first test partition 202a. The size of the first test partition 202a can differ from the sizes of the first normal partition 201a and the second normal partition 201b. For example, the size of the first test partition 202a can be smaller than the sizes of the first normal partition 201a and the second normal partition 201b.
[0099] The controller 120 can allocate a first normal storage block 111a and a second normal storage block 111b corresponding to the first normal partition 201a and the second normal partition 201b, respectively. The controller 120 can allocate a first test storage block 112a corresponding to the first test partition 202a.
[0100] According to commands from the host device 200, the controller 120 can control the operation of writing virtual data to or reading virtual data from the first test storage block 112a.
[0101] While maintaining the allocation state of the first test memory block 112a, the controller 120 may perform background operations on at least some of the other memory blocks included in the memory 110. As illustrated in the example above, the background operations may be at least one of garbage collection, wear leveling, read reclamation, and bad block management operations.
[0102] For example, during garbage collection or read-and-recycle operations, data written to some storage blocks can be copied to other storage blocks depending on the type of background operation.
[0103] For example, during a garbage collection operation, data from a sacrificed storage block can be copied to a target storage block. During a read reclamation operation, data from a storage block with a read count equal to or greater than a preset count can be copied to another storage block.
[0104] When performing background operations, controller 120 can exclude the first test storage block 112a from the background operations. Therefore, when performing background operations, controller 120 can copy user data from at least one normal storage block 111 to another normal storage block 111 while excluding the first test storage block 112a.
[0105] For example, controller 120 can copy valid user data written to the user data in the first normal storage block 111a to the second normal storage block 111b.
[0106] When the controller 120 performs background operations, the first test storage block 112a can maintain a physically fixed position. The first test storage block 112a can be excluded from the selection of background operation targets, or excluded as a target for a background operation to be performed. Therefore, the host device 200 can perform performance measurements using the first test storage block 112a while maintaining its allocation state before receiving a deallocation request from the host device 200.
[0107] When the first test memory block 112a is in the allocation state, the controller 120 can perform background operations on memory blocks other than the first test memory block 112a, thereby maintaining and improving the performance of the memory 110.
[0108] Depending on the type of virtual data provided by the host device 200, the virtual data may or may not be written to the memory 110. When the virtual data is of the type that is not written to the memory 110, the host device 200 can perform performance measurements without writing the virtual data to the test storage block 112 of the memory 110.
[0109] Figure 7 This is a diagram illustrating the writing of virtual data for testing to a storage device according to an embodiment of the present disclosure.
[0110] Reference Figure 7 The storage device 100 may include a buffer memory 130. The buffer memory 130 may be volatile memory. The buffer memory 130 may be located outside the controller 120, but in other embodiments, the buffer memory 130 may be located inside the controller 120. The buffer memory 130 may include a plurality of buffer blocks 131.
[0111] exist Figure 7In this process, a first test storage block 112a of the memory 110 can be allocated to correspond to the first test partition 202a set by the host device 200.
[0112] The controller 120 can write virtual data to the allocated first test storage block 112a according to a write command from the host device 200. The controller 120 can also write at least a portion of the virtual data to the buffer block 131 of the buffer memory 130 according to a write command from the host device 200.
[0113] The data written by the host device 200 to the storage device 100 may include data written to the memory 110 and data written only to the buffer memory 130 but not to the memory 110. When the host device 200 writes virtual data to the first test storage block 112a, the virtual data may include virtual data types written only to the buffer memory 130 and virtual data types written only to the buffer block 131 of the buffer memory 130.
[0114] The controller 120 can write virtual data to the buffer memory 130 in response to a command from the host device 200, and the host device 200 can measure the performance of the storage device 100 based on the response to the operation of writing virtual data to the buffer memory 130.
[0115] The performance of the test storage block 112 can be measured by comparing the performance when writing a portion of virtual data to memory 110 and another portion to buffer memory 130 according to a write command from host device 200 with the performance when using user data.
[0116] The controller 120 can control the allocation, write and read operations of the test storage block 112 according to the request from the host device 200, and can also release the test storage block 112 according to the request from the host device 200.
[0117] Figure 8A and Figure 8B This is a diagram illustrating the deallocation of a test storage block of a storage device according to an embodiment of the present disclosure.
[0118] Reference Figure 8A The host device 200 can set a first test partition 202a. Corresponding to the first test partition 202a, a first test storage block 112a of the memory 110 can be allocated.
[0119] The host device 200 can set a second test partition 202b, and corresponding to the second test partition 202b, a second test storage block 112b of the memory 110 can be allocated.
[0120] The first test storage block 112a and the second test storage block 112b can be allocated during a separate test period, or they can be allocated simultaneously or sequentially during the same test period.
[0121] When the performance measurement of storage device 100 based on test partition 202 is completed, host device 200 can cancel the setting of test partition 202. Host device 200 can request storage device 100 to release test storage block 112.
[0122] When a deallocation request is received from the host device 200, the controller 120 can deallocate the test storage block 112.
[0123] The test storage block 112, which is released from allocation by the controller 120, can become a free storage block. When the test storage block 112 becomes a free storage block, it can be allocated as a new normal storage block 111 according to the allocation request from the host device 200.
[0124] In this way, the controller 120 can maintain the allocation state of the test storage block 112 until it receives a deallocation request for the test storage block 112 from the host device 200. The controller 120 can then deallocate the test storage block 112 according to the deallocation request from the host device 200.
[0125] In an embodiment, when a sudden power failure occurs after the test storage block 112 has been allocated, the controller 120 may release the test storage block 112.
[0126] For example, a sudden power outage may occur after the test storage block 112 has been allocated. The controller 120 can perform a recovery operation to restore power after the sudden power outage. When the controller 120 restores power after the sudden power outage, it can start the storage device 100. When the storage device 100 starts, the controller 120 can release the test storage block 112.
[0127] In one embodiment, the controller 120 can release the test storage block 112 without receiving a release request from the host device 200.
[0128] Additionally, refer to Figure 8B When there is no access to test storage block 112 within a predetermined time period, controller 120 may release test storage block 112.
[0129] The controller 120 can maintain the allocation state of the test storage block 112 until it receives a deallocation request from the host device 200. When the host device 200 does not access the test storage block 112 for a period of time exceeding a preset time, it can deallocate the test storage block 112 and change the test storage block 112 to an idle storage block.
[0130] Based on a new allocation request from the host device 200, the controller 120 may allocate a normal storage block 111 from among the storage blocks including the test storage block 112, which was previously converted to an idle storage block.
[0131] Figure 9 This is a diagram illustrating the allocation of normal storage blocks after the test storage block of the storage device has been disposed of, according to an embodiment of the present disclosure.
[0132] Reference Figure 9 For example, host device 200 may set a first normal partition 201a of a first size and may request storage device 100 to allocate a normal storage block 111 corresponding to the first normal partition 201a. Controller 120 may allocate the first normal storage block 111a corresponding to the first normal partition 201a.
[0133] The host device 200 can set a first test partition 202a of a second size, different from the first size. The host device 200 can request the storage device 100 to allocate a test storage block corresponding to the first test partition 202a. The controller 120 can allocate a first test storage block 112a corresponding to the first test partition 202a.
[0134] The controller 120 can maintain the allocation state of the first test storage block 112a while the host device 200 is performing tests.
[0135] By performing performance measurements based on write or read operations on the first test storage block 112a, the host device 200 can determine whether to change the size of the normal partition 201.
[0136] When the performance measurement using the first test storage block 112a is completed, the host device 200 can cancel the setting of the first test partition 202a. The host device 200 can request the storage device 100 to release the first test storage block 112a. Upon the release request from the host device 200, the storage device 100 can release the first test storage block 112a.
[0137] In some embodiments, the host device 200 may determine whether to change the size of the normal partition 201 based on the test results of performance measurements. For example, the host device 200 may change the size of the normal partition 201 from a first size to a second size, namely the size of the first test partition 202a. The host device 200 may set a second normal partition 201b and a third normal partition 201c of the second size.
[0138] In other embodiments, when the performance measurement result based on the first test storage block 112a is not better than the performance measured using the existing normal storage block 111, the host device 200 may configure the size of the new normal region 201 to a first size, which is the size of the existing normal region 201.
[0139] In another embodiment, the host device 200 may perform tests using a test partition 202 of a second size and a test partition 202 of a third size, and change the size of the normal partition 201 to the second size or the third size.
[0140] When the host device 200 changes the size of the normal partition 201 and sets it to the second largest size based on the test results of the performance measurement, the host device 200 can request the storage device 100 to allocate normal storage blocks 111 corresponding to the second normal partition 201b and the third normal partition 201c respectively.
[0141] Based on the allocation request from the host device 200, the controller 120 of the storage device 100 can allocate a second normal storage block 111b and a third normal storage block 111c, respectively corresponding to the sizes of the second normal partition 201b and the third normal partition 201c.
[0142] The controller 120 may allocate a new normal storage block 111, which includes at least a portion of the deallocated first test storage block 112a. Optionally, the controller 120 may allocate the deallocated first test storage block 112a as a new normal storage block 111.
[0143] The controller 120 can maintain a first normal storage block 111a, the size of which differs from the sizes of the second normal storage block 111b and the third normal storage block 111c. Optionally, the controller 120 can copy only the valid user data written to the first normal storage block 111a to another normal storage block 111, thereby managing only the valid user data. The size of the other normal storage block 111 can be the same as the size of the second normal storage block 111b and the third normal storage block 111c. The operation of copying the user data written to the first normal storage block 111a can be performed upon request from the host device 200.
[0144] In some embodiments, the storage device 100 may receive a deallocation request for the first test storage block 112a and may allocate a normal storage block 111 of a different size according to the allocation request of the normal storage block 111 of the host device 200.
[0145] In other embodiments, storage device 100 may receive a request to allocate a new normal storage block 111 without receiving a request from host device 200 to release the first test storage block 112a.
[0146] When a request is received for the allocation of a normal storage block 111 whose size is set to be different from that of an existing normal storage block 111, the controller 120 can allocate the normal storage block 111 according to the corresponding allocation request, and then release the first test storage block 112a. The controller 120 can determine that the test of setting the size of the partition of the host device 200 has been completed, and can release the first test storage block 112a.
[0147] In this way, when the host device 200 receives an allocation request for a normal storage block 111 corresponding to a normal partition 201 of a new size, the controller 120 can release the first test storage block 112a.
[0148] Figure 10 This is a diagram illustrating a method of operating a host device in an operating computing system according to an embodiment of the present disclosure.
[0149] Reference Figure 10 The host device 200 may request the storage device 100 to allocate a normal storage block 111 of the first size (S1000).
[0150] The host device 200 may request the storage device 100 to allocate a test storage block 112 of the second size (S1010).
[0151] The host device 200 can send a command to the storage device 100 to write virtual data to the allocated test storage block 112 or to read the virtual data written to the allocated test storage block 112 (S1020).
[0152] The host device 200 can measure performance by performing operations on the test storage block 112 (S1030). The host device 200 can check whether the measured performance is greater than a preset threshold (S1040).
[0153] When the measured performance is greater than a preset threshold, the host device 200 can set the size of the normal storage block 111 to the second size, that is, the size of the test storage block 112 (S1050). When the measured performance is equal to or less than the preset threshold, the host device 200 can maintain the size of the normal storage block 111 at the first size, that is, the existing size of the normal storage block 111 (S1060).
[0154] In this way, by performing performance measurements based on test partition 202 and the test storage block 112 corresponding to test partition 202, host device 200 can set up a normal storage block 111 of a size that can improve the data processing performance of storage device 100.
[0155] Storage device 100 can support the allocation of test storage blocks 112 for performance measurement by host device 200.
[0156] Figure 11 This is a diagram illustrating a method of operating a storage device in a computing system according to an embodiment of the present disclosure.
[0157] Reference Figure 11 Storage device 100 may allocate a normal storage block 111 of a first size according to a request from host device 200 (S1100).
[0158] Storage device 100 may allocate a second-sized test storage block 112 according to a request from host device 200 (S1110).
[0159] Storage device 100 can check whether a sudden power failure has occurred (S1120). When a sudden power failure occurs, storage device 100 can release the test storage block 112 upon startup after recovery (S1150).
[0160] When no sudden power failure occurs, the storage device 100 can check whether it has received a request from the host device 200 to deallocate the test storage block 112 (S1130). When a deallocation request is received from the host device 200, the storage device 100 can deallocate the test storage block 112 (S1150).
[0161] Storage device 100 can maintain the allocation state of test storage block 112 until it receives a deallocation request from host device 200 (S1140).
[0162] The storage device 100 can support the host device 200 in using the test storage block 112 for performance measurement while maintaining the allocation state of the test storage block 112. The storage device 100 can maintain the test storage block 112 in a physically fixed location and can exclude the test storage block 112 from the target of background operations (S1160).
[0163] Storage device 100 can maintain and improve the performance of memory 110 through background operations, and can support the performance measurement to be performed by host device 200 by excluding test memory block 112 from background operations and maintaining the allocation state of test memory block 112.
[0164] Although various embodiments of the disclosed technology have been described with particular and varying details for illustrative purposes, those skilled in the art will understand that various modifications, additions, and substitutions can be made based on the content disclosed or described in the disclosed technology without departing from the spirit and scope of the disclosed technology as defined in the appended claims.
Claims
1. A storage device, comprising: At least one memory, comprising multiple memory blocks; as well as The controller allocates a first normal storage block of a first size in response to a first allocation request from the host device, allocates a test storage block of a second size different from the first size in response to a second allocation request from the host device, and allocates a second normal storage block of a third size that is the same as the first size or the second size in response to a third allocation request from the host device.
2. The storage device according to claim 1, wherein, The controller maintains the allocation status of the test storage block until it receives a deallocation request for the test storage block from the host device.
3. The storage device according to claim 1, wherein, The controller releases the test storage block when it starts up after a sudden power outage.
4. The storage device according to claim 1, wherein, Before receiving the third allocation request, the controller receives a deallocation request for the test storage block from the host device.
5. The storage device according to claim 1, wherein, Before receiving the third allocation request, the controller performs at least one of a write operation or a read operation on the test storage block.
6. The storage device according to claim 1, wherein, The controller writes virtual data to the test storage block according to the write command received from the host device, and deletes the virtual data written to the test storage block after a preset time when the virtual data has been written to the entire area of the test storage block.
7. The storage device according to claim 6, wherein, When a new write command for the test storage block is received from the host device before the preset time, the controller deletes the virtual data written to the test storage block and writes new virtual data to the test storage block according to the new write command.
8. The storage device according to claim 6, wherein, After deleting the virtual data, the controller maintains the allocation status of the test storage block.
9. The storage device according to claim 1, wherein, According to the read command received from the host device, the controller reads the virtual data written to the test storage block and provides the read virtual data to the host device, and when an error is detected while reading the virtual data, it provides the read virtual data to the host device without correcting the error.
10. The storage device according to claim 6, further comprising: At least one buffer memory, comprising multiple buffer blocks, The controller writes at least a portion of the virtual data into at least a portion of the plurality of buffer blocks.
11. The storage device according to claim 1, wherein, When a background operation is performed on at least a portion of the plurality of storage blocks, the controller excludes the test storage block from the background operation.
12. A storage device, comprising: At least one memory, comprising multiple memory blocks; as well as The controller allocates a first normal storage block of a first size in response to a first allocation request from the host device, and allocates a test storage block of a second size different from the first size in response to a second allocation request from the host device, the test storage block being excluded from background operations.
13. The storage device according to claim 12, wherein, In response to a third allocation request from the host device, and based on the performance of the test storage block, the controller allocates a second normal storage block of a third size, the third size being the same as the first size or the second size.
14. The storage device according to claim 13, wherein, Before receiving the third allocation request, the controller receives a deallocation request for the test storage block from the host device, and before receiving the deallocation request, the controller maintains the allocation status of the test storage block.
15. The storage device according to claim 12, wherein, When the background operation is performed, the controller copies user data written to at least one of the remaining storage blocks (excluding the test storage block) into another of the remaining storage blocks.
16. A computing system, comprising: Storage device, including multiple storage blocks; as well as The host device sends a first allocation request to the storage device, requesting the allocation of a normal storage block of a first size, and a second allocation request to the storage device, requesting the allocation of a test storage block of a second size different from the first size.
17. The computing system according to claim 16, wherein, The host device sends a third allocation request to the storage device based on the measured performance of the test storage block. The third allocation request requests the allocation of a normal storage block of a third size, which is the same as the first size or the second size.
18. The computing system according to claim 17, wherein, Before sending the third allocation request, the host device sends a deallocation request for the test storage block to the storage device.
19. The computing system according to claim 18, wherein, The storage device maintains the allocation status of the test storage block until it receives a deallocation request for the test storage block from the host device.
20. The computing system according to claim 16, wherein, When a background operation is performed on at least a portion of the plurality of storage blocks, the storage device excludes the test storage block from the background operation.