Storage control method, electronic equipment, host, storage equipment and computer readable storage medium

By adding a white-box module inside the storage device to monitor the latency information of the processing nodes inside the storage device, the problem of the host having difficulty accurately locating the processing nodes is solved, thereby improving system optimization efficiency and user experience.

CN121807217APending Publication Date: 2026-04-07HONOR DEVICE CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-09-30
Publication Date
2026-04-07

AI Technical Summary

Technical Problem

The host's inability to accurately locate the internal processing nodes of the storage device causes system lag and reduces the user experience.

Method used

By adding a white-box module inside the storage device, the latency information of the processing nodes inside the storage device can be monitored by sending write buffer and read buffer commands, thereby enabling monitoring of the processing nodes inside the storage device.

Benefits of technology

It improves the efficiency and reliability of system optimization, accurately locates processing nodes that time out, and enhances the user experience.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN121807217A_ABST
    Figure CN121807217A_ABST
Patent Text Reader

Abstract

The invention discloses a storage control method, electronic equipment, a host, storage equipment and a computer readable storage medium, and relates to the technical field of storage. The storage control method comprises the steps that a host sends a buffer area writing instruction to a storage device, wherein the buffer area writing instruction is used for instructing the storage device to write white box attribute parameters into a buffer area in a memory; the storage device writes a white box attribute parameter to the buffer in response to the write buffer instruction. And the host sends an I / O instruction to the storage device, wherein the I / O instruction is used for indicating the storage device to execute the I / O operation. The storage device performs an I / O operation in response to the I / O instruction, and writes delay information to the buffer when a delay of the I / O operation is greater than a delay threshold. And the host sends a buffer area reading instruction to the storage device, wherein the buffer area reading instruction is used for indicating the storage device to read the delay information from the buffer area. The storage device reads the delay information from the buffer area in response to the buffer area reading instruction and sends a buffer area reading response message to the host, and the buffer area reading response message comprises the delay information.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of storage technology, specifically to a storage control method, electronic device, host, storage device, and computer-readable storage medium. Background Technology

[0002] Electronic devices typically deploy storage systems, which consist of a host and storage devices. The host manages data storage and access; for example, the host may be a System-on-Chip (SoC). From the host's perspective, the processing of input / output (I / O) requests within the storage device is essentially a black box. When the storage device takes a long time to process I / O requests, system stuttering and frame drops can occur, degrading the user experience. Because the host is unaware of the storage device's internal I / O request processing, it struggles to accurately pinpoint the processing nodes causing system stuttering, making effective system optimization difficult. Summary of the Invention

[0003] In view of this, embodiments of this application provide a storage control method, an electronic device, a host, a storage device, and a computer-readable storage medium, aiming to solve the problem of how to monitor the internal processing nodes of a storage device.

[0004] A first aspect of this application provides a storage control method applied to an electronic device, the electronic device including a host and a storage device communicating with the host. The method includes: the host sending a write buffer instruction to the storage device, the write buffer instruction instructing the storage device to write white-box attribute parameters to a buffer in memory. The storage device responds to the write buffer instruction by writing the white-box attribute parameters to the buffer. The host sends an I / O instruction to the storage device, the I / O instruction instructing the storage device to perform an I / O operation. The storage device responds to the I / O instruction by performing an I / O operation, and when the latency of the I / O operation is greater than a latency threshold, writes latency information to the buffer. The host sends a read buffer instruction to the storage device, the read buffer instruction instructing the storage device to read latency information from the buffer. The storage device responds to the read buffer instruction by reading the latency information from the buffer and sends a read buffer response message to the host, the read buffer response message including the latency information.

[0005] In this embodiment, the host instructs the storage device to write white-box attribute parameters to a buffer in memory by sending a write buffer command. The host also instructs the storage device to perform I / O operations by sending I / O commands. When the latency of the I / O operation exceeds a latency threshold, the storage device writes latency information to the buffer in memory. The host then instructs the storage device to read latency information from the buffer in memory by sending a read buffer command. The storage device responds to the host with a read buffer response message, providing feedback on the latency information. This allows the host to monitor the internal processing nodes of the storage device, accurately pinpointing the processing nodes where timeouts occur, thereby improving the efficiency and reliability of system optimization.

[0006] In one embodiment, the write buffer instruction includes a command description block and a payload. The command description block includes a mode field, the value of which is a white-box mode flag. The payload includes white-box attribute parameters of the QoS node and / or checkpoint to be written.

[0007] In another embodiment, the read buffer instruction includes a command description block and a payload. The command description block includes a pattern field, the value of which is a white-box pattern flag. The payload includes a header area field, a statistics area field, and a checkpoint or quality of service delay information recording area field. The header area field stores key information, the statistics area field stores timeout statistics, and the checkpoint or quality of service delay information recording area field stores detailed records of overall quality of service node timeouts and / or detailed records of local checkpoint timeouts.

[0008] In another embodiment, before the host sends a write buffer instruction to the storage device, the method further includes: the host sending a white-box query request to the storage device, the white-box query request being used to request a query for white-box related parameters. In response to the white-box query request, the storage device queries the white-box related parameters and sends a white-box query response message to the host, the white-box query response message including the white-box related parameters. The host determines whether the storage device supports white-box features based on the white-box query response message.

[0009] In another embodiment, the method further includes: the host obtaining the white-box version supported by the storage device and / or the size of the maximum white-box buffer based on the white-box query response message.

[0010] In another embodiment, the storage device querying white-box related parameters includes: the storage device querying storage protocol parameters stored in memory, the storage protocol parameters including description parameters, and the description parameters including a device descriptor. The device descriptor includes a feature support field, which stores the features supported by the storage device. The feature support field includes white-box feature bits, which characterize the white-box features supported by the storage device.

[0011] In another embodiment, the storage device queries white-box related parameters by querying storage protocol parameters stored in memory. These storage protocol parameters include description parameters, which in turn include a device descriptor. The device descriptor includes a white-box version field, which stores the white-box versions supported by the storage device.

[0012] In another embodiment, the storage device queries white-box related parameters by querying storage protocol parameters stored in memory. These storage protocol parameters include description parameters, which in turn include a geometry descriptor. The geometry descriptor includes a maximum white-box buffer size field, which stores the size of the maximum white-box buffer.

[0013] In another embodiment, before the host sends a write buffer instruction to the storage device, the method further includes: the host sending a white-box enable request to the storage device, the white-box enable request being used to request the enabling of white-box features. The storage device, in response to the white-box enable request, enables the white-box features.

[0014] In another embodiment, enabling white-box features on a storage device includes: setting or modifying storage protocol parameters stored in memory, the storage protocol parameters including flag parameters, the flag parameters including a white-box enable field, the white-box enable field being used to characterize whether the white-box feature is enabled. Setting or modifying storage protocol parameters on the storage device includes: setting the white-box status flag of the white-box enable field to an enable flag, the enable flag being used to characterize the white-box feature being enabled.

[0015] In another embodiment, the method further includes: the host sending a white-box disable request to the storage device, the white-box disable request being used to request the disabling of the white-box feature. The storage device responds to the white-box disable request by disabling the white-box feature.

[0016] In another embodiment, disabling white-box features in the storage device includes: setting or modifying storage protocol parameters stored in memory, the storage protocol parameters including flag parameters, the flag parameters including a white-box enable field, the white-box enable field being used to indicate whether the white-box feature is enabled. Setting or modifying storage protocol parameters in the storage device includes: setting the white-box status flag of the white-box enable field to a disabled flag, the disabled flag being used to indicate that the white-box feature is disabled.

[0017] In another embodiment, before the host sends a write buffer instruction to the storage device, the method further includes: the host sending a white-box configuration request to the storage device, the white-box configuration request being used to request configuration of a white-box operation type. The storage device responds to the white-box configuration request and configures the white-box operation type.

[0018] In another embodiment, configuring white-box operation types for the storage device includes: setting or modifying storage protocol parameters stored in memory, whereby the storage protocol parameters include attribute parameters. The attribute parameters include an operation type field, which stores the white-box operation type. Setting or modifying the storage protocol parameters includes: setting the operation type flag in the operation type field to a white-box attribute parameter flag.

[0019] A second aspect of this application provides a storage control method applied to a host, wherein the host communicates with a storage device. The method includes: sending a write buffer instruction to the storage device, the write buffer instruction instructing the storage device to write white-box attribute parameters to a buffer in memory; sending an I / O instruction to the storage device, the I / O instruction instructing the storage device to perform an I / O operation; sending a read buffer instruction to the storage device, the read buffer instruction instructing the storage device to read latency information from the buffer; and receiving a read buffer response message from the storage device, the read buffer response message including latency information, the latency information being information written to the buffer when the latency of the storage device performing the I / O operation is greater than a latency threshold.

[0020] A third aspect of this application provides a storage control method applied to a storage device that communicates with a host. The method includes: writing white-box attribute parameters to a buffer in memory in response to a write buffer instruction from the host; performing an I / O operation in response to an I / O instruction from the host, and writing delay information to a buffer when the delay of the I / O operation is greater than a delay threshold; and reading the delay information from the buffer in response to a read buffer instruction from the host, and sending a read buffer response message to the host, the read buffer response message including the delay information.

[0021] A fourth aspect of this application provides an electronic device, including a host and a storage device communicating with the host. The host includes a host controller and host memory, and the storage device includes a storage controller, memory, and a flash memory array. The storage control method provided in the first aspect is implemented when the host controller executes computer instructions stored in the host memory, and the storage controller executes computer instructions stored in the memory.

[0022] The fifth aspect of this application provides a host that communicates with a storage device. The host includes a host controller and host memory. When the host controller executes computer instructions stored in the host memory, it implements the storage control method provided in the second aspect.

[0023] The sixth aspect of this application provides a storage device that communicates with a host. The storage device includes a storage controller, memory, and a flash memory array. When the storage controller executes computer instructions stored in memory, it implements the storage control method provided in the third aspect.

[0024] A seventh aspect of this application provides a computer-readable storage medium storing computer instructions thereon, which implement the storage control methods provided in the first to third aspects when a processor executes the computer instructions.

[0025] An eighth aspect of this application provides a computer program product including computer instructions that, when executed by a processor, implement the storage control methods provided in the first to third aspects. Attached Figure Description

[0026] Figure 1 This is a schematic diagram of the hardware structure for interaction between a host and a storage device, provided as an example.

[0027] Figure 2 This is a schematic diagram of the software architecture of a storage device provided as an example.

[0028] Figure 3 This is a timing diagram of the interaction between a host and a storage device, provided as an example.

[0029] Figure 4 This is a schematic diagram of the white-box feature bits and white-box version field provided as an example.

[0030] Figure 5 This is a schematic diagram of the maximum white-box buffer size field provided as an example.

[0031] Figure 6 This is a schematic diagram of a white-box enable field provided as an example.

[0032] Figure 7 This is a diagram illustrating an example of an operation type field.

[0033] Figure 8 This is a schematic diagram of a write buffer instruction command description block provided as an example.

[0034] Figure 9 This is a schematic diagram of a write buffer instruction mode field provided as an example.

[0035] Figure 10 This is a schematic diagram of the write buffer instruction payload provided as an example.

[0036] Figure 11 This is a schematic diagram of a read buffer instruction command description block provided as an example.

[0037] Figure 12 This is a schematic diagram of a read buffer instruction pattern field provided as an example.

[0038] Figure 13 This is a schematic diagram of the payload of a read buffer instruction provided as an example.

[0039] Figure 14 This is a schematic diagram of a header area field provided as an example.

[0040] Figure 15 This is a schematic diagram of a statistical range field provided as an example.

[0041] Figure 16 This is a schematic diagram of a field in the checkpoint or service quality delay information recording area provided as an example.

[0042] Figure 17 This is another example providing a timing diagram of the interaction between the host and storage devices.

[0043] Figure 18 This is a schematic diagram of a write buffer instruction command description block provided as another example.

[0044] Figure 19 This is a schematic diagram of the write buffer instruction mode field provided in another example.

[0045] Figure 20 This is a schematic diagram of another example of checkpoint data output UPIU.

[0046] Figure 21 This is a schematic diagram of the UPIU (Service Quality Node Data Output) provided as another example.

[0047] Figure 22 This is a schematic diagram of the system log data output UPIU provided as another example.

[0048] Figure 23 This is a schematic diagram of another example of synchronous time data output UPIU. Detailed Implementation

[0049] It should be noted that in the embodiments of this application, "at least one" refers to one or more, and "multiple" refers to two or more. The terms "first," "second," "third," "fourth," etc., in the specification, claims, and drawings of this application are used to distinguish similar objects, not to describe a specific order or sequence. The methods disclosed in the embodiments of this application, or the methods shown in the flowcharts, include one or more steps for implementing the method. Without departing from the scope of the claims, the execution order of multiple steps can be interchanged, and some steps can also be deleted.

[0050] In this application embodiment, the electronic device includes, but is not limited to, smartphones, tablets, handheld computers, laptops, mobile internet devices (MIDs), virtual reality (VR) devices, augmented reality (AR) devices, wireless terminals in industrial control, wireless terminals in self-driving, wireless terminals in remote medical surgery, wireless terminals in smart grids, wireless terminals in transportation safety, wireless terminals in smart cities, wireless terminals in smart homes, cellular phones, cordless phones, Session Initiation Protocol (SIP) phones, Wireless Local Loop (WLL) stations, personal digital assistants (PDAs), handheld devices with wireless communication capabilities, computing devices or other processing devices connected to a wireless modem, in-vehicle devices, wearable devices, terminal devices in 5G networks, or public terrestrial mobile communication networks. Terminal devices in a Mobile Network (PLMN).

[0051] Electronic devices deploy storage systems, which include hosts and storage devices. The host manages the storage and access of data; for example, the host may be a System-on-Chip (SoC). Storage devices include, but are not limited to, Universal Flash Storage (UFS), embedded Multi-Media Cards (eMMC), Solid State Drives (SSDs), and Hard Disk Drivers (HDDs).

[0052] For example, such as Figure 1As shown, host 100 includes host controller 110 and host interface 120. Storage device 200 includes storage controller 210, memory 220, flash array 230, and storage device interface 240. Host controller 110 is electrically connected to host interface 120, host interface 120 is coupled to storage device interface 240, and storage controller 210 is connected to memory 220, flash array 230, and storage device interface 240 via a bus to enable communication between host controller 110 and storage controller 210. The bus includes Universal Serial Bus (USB).

[0053] The host controller 110 issues input / output (I / O) commands (also known as I / O requests) to instruct the storage controller 210 to perform I / O operations. I / O commands include, but are not limited to, read commands, write commands, unmap commands, and sync cache commands. Correspondingly, I / O operations include, but are not limited to, reading, writing, unmapping, and sync cache.

[0054] The storage controller 210 performs I / O operations by converting I / O instructions into data formats supported by the storage protocol according to storage protocol parameters in the memory 220, and then performing I / O operations on the flash array 230. The memory 220 includes, but is not limited to, read-only memory (ROM), random access memory (RAM), static random access memory (SRAM), dynamic random access memory (DRAM), and synchronous dynamic random access memory (SDRAM). The flash array 230 includes a NAND flash array.

[0055] Storage protocols include, but are not limited to, UFS, eMMC, Non-Volatile Memory Express (NVMe), Serial Advanced Technology Attachment (SATA), and Peripheral Component Interconnect Express (PCIe).

[0056] It is understood that the structure illustrated in this embodiment does not constitute a specific limitation on the host and storage device. In other embodiments, the host and storage device may include more or fewer components than illustrated, or combine some components, or split some components, or have different component arrangements.

[0057] In this embodiment, the host and storage device are housed within a single electronic device. In other embodiments, the host and storage device are separate devices. In this case, the host can be any electronic device such as a smartphone, tablet, PDA, or laptop, and the host communicates with the external storage device.

[0058] From the host's perspective, the internal processing of I / O requests by the storage device is essentially a black box. When the storage device takes a long time to process I / O requests, system stuttering and frame drops can occur, thus degrading the user experience. Because the host is unaware of the storage device's internal I / O request processing, it struggles to accurately pinpoint the processing nodes causing system stuttering, making effective system optimization difficult.

[0059] Based on this, this application provides a storage control method that adds a whitebox module inside the storage device. The whitebox module allows the host to send information about the firmware (FW) inside the storage device, thereby enabling monitoring of the processing nodes inside the storage device.

[0060] For example, such as Figure 2 As shown, the software system of the storage device includes the Host Interface Layer (HIL), the Flash Translation Layer (FTL), and the Flash Interface Layer (FIL).

[0061] The host interface layer controls communication between the host and storage devices, providing a standardized interface, such as the UFS interface, for this communication. Specifically, for instructions or data issued by the host, the host interface layer encapsulates the instructions or data into data packets that support a specific protocol (e.g., the UFS protocol). For data to be received by the host, the host interface layer performs decapsulation.

[0062] In other embodiments, the functions of the host interface layer can also be integrated into the host, that is, the host performs the aforementioned functions of the host interface layer.

[0063] The flash translation layer controls the logical-to-physical (L2P) mapping. L2P mapping maps the host's logical block address (LBA) to the flash array's physical block address (PBA). Specifically, for instructions or data from the host interface layer, the flash translation layer maps the logical block address of the instruction or data to the physical block address of the flash array. For data to be received by the host interface layer, the flash translation layer performs the reverse operation.

[0064] In this embodiment, the flash memory translation layer includes firmware and a white-box module. The firmware includes foreground processing nodes and background processing nodes. The foreground processing nodes feed back the processing results to the host. The background processing nodes do not feed back the processing results to the host. The foreground processing nodes include, but are not limited to, host read, host write, unmapping, and cache synchronization. The background processing nodes include, but are not limited to, backwrite, garbage collection (GC), and error handling (ErrHandle).

[0065] The white-box module adds monitoring fields to the foreground and background processing nodes of the firmware to calculate the latency of I / O requests for each node. When the latency exceeds a threshold, a timeout is determined, and latency information is stored. The host can query the latency information stored by the white-box module using specific commands. The latency threshold can be set as needed.

[0066] The flash interface layer is used to control the I / O operations of the flash array. Specifically, the flash interface layer executes the I / O operations of each processing node on the flash array based on the I / O requests from the flash translation layer.

[0067] The implementation of the white-box module is described below in detail, taking into account the interaction process between the host and the storage device.

[0068] For example, such as Figure 3 As shown, the interaction process between the host and the storage device includes the following steps:

[0069] S101, The host sends a Synchronize Real-Time Clock (Sync RTC) command to the storage device.

[0070] The synchronize real-time clock instruction is used to instruct the storage device to perform a synchronize real-time clock operation. The synchronize real-time clock operation synchronizes the system time with the real-time clock (RTC) time to ensure the consistency of system time and hardware time.

[0071] S102. The storage device responds to the real-time clock synchronization command, performs a real-time clock synchronization operation, and generates a real-time clock synchronization response message.

[0072] Among them, the real-time clock response message is used to indicate that the real-time clock has been synchronized.

[0073] S103, The storage device sends a real-time clock response message to the host.

[0074] In other embodiments, when real-time clock synchronization fails, the storage device generates a synchronized real-time clock response message, which includes error information explaining the reason for the synchronization failure. When real-time clock synchronization succeeds, the storage device does not generate a synchronized real-time clock response message. In this case, if the host does not receive a synchronized real-time clock response message and the synchronization duration exceeds a synchronization duration threshold, the host determines that the real-time clock has been synchronized. The synchronization duration threshold can be set as needed.

[0075] S104. The host sends a whitebox query request to the storage device.

[0076] Among them, the white-box query request is used to request and query white-box related parameters.

[0077] S105. The storage device responds to the whitebox query request, queries the whitebox-related parameters, and generates a whitebox query response message.

[0078] The whitebox query response message includes whitebox-related parameters, which characterize the whitebox query results. The whitebox query results include whether the storage device supports whitebox features, the whitebox version supported by the storage device, and the size of the maximum whitebox buffer.

[0079] Taking UFS as an example, the UFS protocol parameters are stored in memory, including white-box related parameters. Specifically, the UFS protocol parameters include description parameters, attribute parameters, and flags parameters. The description parameters include the device descriptor and the geometry descriptor.

[0080] For example, such as Figure 4As shown, in the device descriptor, the offset of the byte length (bLength) field is "00h", which is used to store the size of the descriptor. The offset of the extended UFS feature support (dExtendedUFSFeaturesSupport) field is "4Fh", which is used to store the features supported by the storage device. The extended UFS feature support field includes 32 bits (Bit[0-31]). In this embodiment, white-box feature bits are added using the reserved bits of the extended UFS feature support field. For example, white-box feature bits are added using the reserved bit Bit

[18] .

[0081] Furthermore, this embodiment utilizes a reserved field in the device descriptor to add a white-box version (wWhiteBoxVersion) field, which is used to store the white-box versions supported by the storage device. For example, the offset of the white-box version field is "56h". The white-box version field includes 16 bits (Bit[0-15]). Bits [15:8] are used to store the major version (MajorVersion), bits [7:4] are used to store the minor version (Minor Version), and bits [3:0] are used to store the version suffix (Version Suffix). The values ​​of the major version, minor version, and version suffix are in binary-coded decimal (BCD) format. For example, the value of version "version 1.00" is "0100h".

[0082] like Figure 5 As shown, in the geometry descriptor, the offset of the byte length field is "00h". This embodiment utilizes a reserved field in the geometry descriptor to add a maximum whitebox buffer size (wMaxWhiteBoxBufferSize) field, which stores the size of the maximum whitebox buffer. For example, the offset of the maximum whitebox buffer size field is "4Dh".

[0083] In this embodiment, the white-box related parameters include information stored in the white-box feature bits, the white-box version field, and the maximum white-box buffer size field.

[0084] S106. The storage device sends a white-box query response message to the host.

[0085] S107. The host determines whether the storage device supports white-box features based on the white-box query response message.

[0086] If yes, proceed to step S108; otherwise, end. End means not continuing with subsequent steps.

[0087] In this embodiment, the host determines whether the storage device supports white-box features by reading the white-box related parameters in the white-box query response message. For example, the host determines whether the storage device supports white-box features by reading the white-box feature bits (such as Bit

[18] ) in the extended UFS feature support field of the device descriptor. When the white-box feature bit is not null, the host determines that the storage device supports white-box features. When the white-box feature bit is null, the host determines that the storage device does not support white-box features. In addition, the host obtains the white-box version supported by the storage device by reading the white-box version field in the device descriptor, and obtains the size of the maximum white-box buffer by reading the maximum white-box buffer size field in the geometry descriptor.

[0088] S108. The host sends a whitebox enable request to the storage device.

[0089] Among them, the white-box enable request is used to request the enablement of white-box features.

[0090] S109. The storage device responds to the whitebox enable request, enables the whitebox feature, and generates a whitebox enable response message.

[0091] Among them, the white-box enable response message is used to indicate that the white-box feature has been enabled.

[0092] In this embodiment, enabling white-box features includes setting or modifying storage protocol parameters, which includes setting the white-box status flag of the white-box enable field to an enable flag.

[0093] Taking UFS as an example, the flag parameters in the UFS protocol parameters include a white-box enable field. For example, such as... Figure 6 As shown, this embodiment utilizes a reserved field in the flag parameters to add a whitebox enable (fWhiteboxEn) field, which is used to characterize whether the whitebox feature is enabled. For example, the identifier (IDN) of the whitebox enable field is "13h", which represents the Logical Unit Number (LUN). The whitebox enable field includes whitebox status flags, which include an enable flag "1b" and a disable flag "0b". The enable flag "1b" indicates that the whitebox feature is enabled. The disable flag "0b" indicates that the whitebox feature is disabled. The default whitebox status flag for the whitebox enable field is the disable flag "0b".

[0094] S110, The storage device sends a white-box enable response message to the host.

[0095] In other embodiments, when white-box feature enabling fails, the storage device generates a white-box enable response message, which includes error information explaining the reason for the white-box feature enabling failure. When white-box feature enabling succeeds, the storage device does not generate a white-box enable response message. In this case, if the host does not receive a white-box enable response message and the enable duration exceeds an enable duration threshold, the host determines that the white-box feature has been enabled. The enable duration threshold can be set as needed.

[0096] S111, The host sends a whitebox configuration request to the storage device.

[0097] Among them, the white-box configuration request is used to request the configuration of the white-box operation type.

[0098] S112. The storage device responds to the whitebox configuration request, configures the whitebox operation type, and generates a whitebox configuration response message.

[0099] The white-box configuration response message is used to indicate that the white-box operation type has been configured.

[0100] In this embodiment, configuring the white-box operation type includes setting or modifying storage protocol parameters. Setting or modifying storage protocol parameters includes setting the operation type flag of the operation type field to the configuration white-box attribute parameter flag.

[0101] Taking UFS as an example, the attribute parameters in the UFS protocol parameters include an operation type field. For instance, as shown... Figure 7 As shown, this embodiment utilizes a reserved field in the attribute parameters to add an operation type (bOperationType) field, which is used to store white-box operation types. For example, the identifier (IDN) of the operation type field is "20h". The operation type field includes operation type flags, which include a configure threshold values ​​flag "00h" and a clear all white box recorded information flag "01h". The configure threshold values ​​flag "00h" indicates that the white-box operation type is setting a delay threshold. The clear all white box recorded information flag "01h" indicates that the white-box operation type is clearing all white-box recorded information.

[0102] S113. The storage device sends a white-box configuration response message to the host.

[0103] In other embodiments, when white-box configuration fails, the storage device generates a white-box configuration response message, which includes error information explaining the reason for the configuration failure. When white-box configuration succeeds, the storage device does not generate a white-box configuration response message. In this case, if the host does not receive a white-box configuration response message and the configuration duration exceeds a configuration duration threshold, the host determines that the white-box operation type has been configured. The configuration duration threshold can be set as needed.

[0104] S114. The host sends a write buffer instruction to the storage device.

[0105] The write buffer instruction is used to instruct the storage device to write white-box attribute parameters to a buffer in memory. The write buffer instruction includes a Command Descriptor Block (CDB) and a payload. The payload is also called a data segment.

[0106] For example, such as Figure 8 As shown, the Command Description Block (CDB) format for write buffer instructions includes 10 bytes (Byte[0-9]). Byte[0] is the Operation Code field, with a value of "3Bh". Byte[1] includes a reserved field and a Mode field. The Mode field has a value of "1Dh". The reserved field occupies Bit[7:5] bits, and the Mode field occupies Bit[4:0]. Byte[2] is the Buffer ID field. Bytes[5:3] are the Buffer Offset field, which stores the logical address of the data in the buffer. Bytes[8:6] are reserved fields. Byte[9] is the Control field, with a value of "00h".

[0107] like Figure 9 As shown, the values ​​for the pattern field include "01h", "02h", "1Ch", and "1Dh". The value "01h" indicates a vendor-specific pattern. The value "02h" indicates a data pattern. The value "1Ch" indicates an error history pattern. The value "1Dh" indicates a white-box pattern.

[0108] like Figure 10As shown, the payload format of the write buffer instruction includes 2n+6 bytes (Byte[0-(2n+5)]), where n is the number of white-box attribute parameters to be written, and n is a positive integer. Among them, Byte[0] is the Magic Number field, which is used to store the special signature of the white-box feature. Byte[1] is the Record Type field, which is used to characterize whether the threshold type is a Checkpoint (CKP) or a Quality of Service (QoS) node. Byte[2] is the Offset field, which is used to store the logical address of the first threshold. Byte[3] is the Length field, which is used to store the number of white-box attribute parameters to be written. Byte[(2n+5):4] is used to store the latency threshold of the QoS node and / or n checkpoint identifiers ID[0-(n-1)], and the latency threshold of the QoS node and each checkpoint occupies 2 bytes.

[0109] In this embodiment, the white-box attribute parameters include a latency threshold. The host sets or modifies at least one latency threshold based on the data format of the write buffer instruction.

[0110] The Quality of Service (QoS) nodes include foreground processing nodes and background processing nodes. Foreground processing nodes include, but are not limited to, host reads, host writes, unmapping, and cache synchronization. Background processing nodes include, but are not limited to, write return, garbage collection, and error handling. Each QoS node includes at least one checkpoint. For example, host read checkpoints include protocol conversion, querying the L2P mapping table, and flash array reads. Host write checkpoints include write cache. Unmapping checkpoints include calling the L2P mapping table, modifying the L2P mapping table, and returning the L2P mapping table. Cache synchronization checkpoints include flash array synchronization. Write return checkpoints include flash array writes. Garbage collection checkpoints include querying the source block, querying the target block, target block reads, and target block merging. Error handling checkpoints include erroneous reads, querying bad blocks, querying good blocks, and bad block remapping.

[0111] S115. In response to the write buffer instruction, the storage device writes white-box attribute parameters to the buffer in memory and generates a write buffer response message.

[0112] The write buffer response message is used to indicate that the white-box attribute parameters have been written.

[0113] S116. The storage device sends a write buffer response message to the host.

[0114] In other embodiments, when the white-box attribute parameter write fails, the storage device generates a write buffer response message, which includes error information explaining the reason for the white-box attribute parameter write failure. When the white-box attribute parameter write succeeds, the storage device does not generate a write buffer response message. In this case, if the host does not receive a write buffer response message and the write duration exceeds a write duration threshold, the host determines that the white-box attribute parameter has been written. The write duration threshold can be set as needed.

[0115] S117. The host sends an I / O command to the storage device.

[0116] I / O instructions are used to instruct storage devices to perform I / O operations. I / O instructions include, but are not limited to, read instructions, write instructions, unmap instructions, and synchronize cache instructions.

[0117] S118. The storage device responds to the I / O instruction and performs an I / O operation. When the delay of the I / O operation is greater than the delay threshold, it writes the delay information to the buffer in memory and generates an I / O response message.

[0118] Among them, the I / O response message is used to indicate that the I / O operation has been completed.

[0119] S119. The storage device sends an I / O response message to the host.

[0120] In other embodiments, when an I / O operation fails, the storage device generates an I / O response message, which includes error information explaining the reason for the I / O failure. When an I / O operation succeeds, the storage device does not generate an I / O response message. In this case, if the host does not receive an I / O response message and the I / O operation duration exceeds an I / O operation duration threshold, the host determines that the I / O operation has been completed. The I / O operation duration threshold can be set as needed.

[0121] S120, The host sends a Read Buffer command to the storage device.

[0122] The read buffer instruction is used to instruct the storage device to read latency information from a buffer in memory. The read buffer instruction includes a command description block and a payload.

[0123] For example, such as Figure 11As shown, the command description block (CDB) format of the read buffer instruction includes 10 bytes (Byte[0-9]). Among them, Byte[0] is the opcode field, with a value of "3Ch". Byte[1] includes a reserved field and a mode field. The mode field has a value of "1Dh". The reserved field occupies bits [7:5], and the mode field occupies bits [4:0]. Byte[2] is the buffer identifier field. Bytes [5:3] are the buffer offset field. Bytes [8:6] are the allocation length field. Byte[9] is the control field, with a value of "00h".

[0124] like Figure 12 As shown, the values ​​for the pattern field include "01h", "02h", "1Ch", and "1Dh". The value "01h" represents a vendor-specific pattern. The value "02h" represents a data pattern. The value "1Ch" represents an error history pattern. The value "1Dh" represents a white-box pattern.

[0125] like Figure 13 As shown, the payload format of the read buffer instruction includes M+N+K bytes (Byte[0-(M+N+K-1)]), where M, N, and K are positive integers. Byte[(M-1):0] is the Header Area field, used to store key information such as log version, specific identification identifier, and data length. Byte[(M+N-1):M] is the Statistics Area field, used to store timeout statistics, including the number and maximum value of timeout types. Byte[(M+N+K-1):(M+N)] is the Checkpoint / QoS Latency Information Entry Area field, used to store detailed records of overall QoS node timeouts and / or detailed records of local checkpoint timeouts.

[0126] Specifically, such as Figure 14As shown, the header area field consists of M bytes (Byte[(M-1):0]). Among them, Byte[3:0] is the Signature field. Byte[5:4] is the Version field. Byte[6] is the Header Size field. Byte[7] is the Statistic Size field. Byte[8] is the QoS Size field. Byte[9] is the QoS Count field. Byte

[10] is the Checkpoint Size field. Byte

[11] is the Checkpoint Count field. Byte[(M-1):12] is a reserved field.

[0127] like Figure 15 As shown, the statistics area field includes N bytes (Byte[(M+N-1):M]). Among them, Byte[(M+1):M] is the checkpoint ID ID[0] Exceed Count field, and Byte[(M+3):(M+2)] is the checkpoint ID ID[1] Exceed Count field. Each checkpoint ID ID Exceed Count field occupies 2 bytes. The statistics area field also includes Read QoS Exceed Count field, Write QoS Exceed Count field, Unmap QoS Exceed Count field, and Sync Cache QoS Exceed Count field. Byte[(M+N / 2+1):(M+N / 2)] is the checkpoint ID ID[0] Max Latency field, and Byte[(M+N / 2+3):(M+N / 2+2)] is the checkpoint ID ID[1] Max Latency field. Each checkpoint ID ID Max Latency field occupies 2 bytes. The statistical region fields also include the maximum latency fields for read service quality, write service quality, unmapping service quality, and synchronous cache service quality.

[0128] like Figure 16As shown, the checkpoint or service quality delay information recording area consists of K bytes (Byte[(M+N+K-1):(M+N)]). Byte[M+N] represents the month field. Byte[M+N+1] represents the day field. Byte[M+N+2] represents the hour field. Byte[M+N+3] represents the minute field. Byte[(M+N+5):(M+N+4)] represents the second field. Byte[(M+N+9):(M+N+6)] represents the I / O type field. Byte[(M+N+13):(M+N+10)] represents the start logical block address (Start LBA) field. Byte[(M+N+15):(M+N+14)] represents the I / O size field. The byte array Byte[(M+N+17):(M+N+16)] represents the Time Spent field. The byte array Byte[(M+N+K-1):(M+N+18)] represents a reserved field.

[0129] In this embodiment, the latency information includes local checkpoint latency information and / or overall service quality node latency information. Local checkpoint latency information includes checkpoint count, checkpoint size, checkpoint ID exceeding count, and maximum latency for checkpoint ID. Overall service quality node latency information includes service quality count, service quality size, service quality exceeding count, and maximum service quality latency.

[0130] S121. The storage device responds to the read buffer instruction by reading delayed information from the buffer in memory and generates a read buffer response message.

[0131] The read buffer response message includes delay information.

[0132] S122, The storage device sends a read buffer response message to the host.

[0133] S123. The host sends a whitebox disable request to the storage device.

[0134] Among them, the white-box disable request is used to request the disabling of white-box features.

[0135] S124. In response to the whitebox disable request, the storage device disables the whitebox feature and generates a Whitebox Disable Response message.

[0136] The white-box disabled response message is used to indicate that white-box features have been disabled.

[0137] In this embodiment, disabling white-box features includes setting or modifying storage protocol parameters, which includes setting the white-box status flag of the white-box enable field to a disabled flag.

[0138] For example, see again Figure 6 The white-box enable field includes white-box status flags, which include an enable flag "1b" and a disable flag "0b". The disable flag "0b" indicates that the white-box feature is disabled.

[0139] S125, The storage device sends a white-box disabled response message to the host.

[0140] In other embodiments, when disabling the white-box feature fails, the storage device generates a white-box disable response message, which includes error information explaining the reason for the failure. When disabling the white-box feature successfully, the storage device does not generate a white-box disable response message. In this case, if the host does not receive a white-box disable response message and the disable duration exceeds a disable duration threshold, the host determines that the white-box feature has been disabled. The disable duration threshold can be set as needed.

[0141] In this embodiment, the host queries whether the storage device supports white-box features, the supported white-box versions, and the maximum size of the white-box buffer by sending a white-box query request. The host enables white-box features by sending a white-box enable request. The host instructs the storage device to write white-box attribute parameters to the buffer in memory by sending a write buffer command. The host instructs the storage device to perform I / O operations by sending I / O commands. When the latency of the I / O operation exceeds a latency threshold, the storage device writes latency information to the buffer in memory. The host instructs the storage device to read latency information from the buffer in memory by sending a read buffer command. The storage device responds to the host with a read buffer response message, providing latency information. This latency information includes local checkpoint latency information and overall quality of service (QoS) node latency information, enabling the host to monitor the internal processing nodes of the storage device. This allows for accurate location of processing nodes experiencing timeouts, thereby improving the efficiency and reliability of system optimization.

[0142] The interaction process between the host and storage device described above involves a relatively complex flow. To simplify the interaction process and improve data processing efficiency, another example of the interaction process between the host and storage device is provided below.

[0143] For example, such as Figure 17 As shown, the interaction process between the host and the storage device includes the following steps:

[0144] S201, The host sends a Synchronize Real-Time Clock (Sync RTC) command to the storage device.

[0145] The synchronized real-time clock instruction is used to instruct the storage device to perform a synchronized real-time clock operation.

[0146] S202. The storage device responds to the real-time clock synchronization command, performs a real-time clock synchronization operation, and generates a real-time clock synchronization response message.

[0147] Among them, the real-time clock response message is used to indicate that the real-time clock has been synchronized.

[0148] S203, The storage device sends a real-time clock response message to the host.

[0149] S204. The host sends a write buffer instruction to the storage device.

[0150] The write buffer instruction is used to instruct the storage device to write white-box attribute parameters to a buffer in memory. The write buffer instruction includes a command description block and a payload. The payload includes a Data Out UFS Protocol Information Unit (UPIU).

[0151] For example, such as Figure 18 As shown, the Command Description Block (CDB) format for the write buffer instruction includes 10 bytes (Byte[0-9]). Byte[0] is the opcode field with a value of "3Bh". Byte[1] includes a reserved field and a mode field. The mode field has a value of "1Dh". The reserved field occupies bits [7:5], and the mode field occupies bits [4:0]. Byte[2] is the buffer identifier field. Bytes [5:3] are the buffer offset fields. Bytes [8:6] are reserved fields. Byte[9] is the control field with a value of "00h".

[0152] like Figure 19 As shown, the values ​​for the pattern field include "01h", "02h", "1Ch", and "1Dh". The value "01h" represents a vendor-specific pattern. The value "02h" represents a data pattern. The value "1Ch" represents an error history pattern. The value "1Dh" represents a white-box pattern.

[0153] like Figure 20-23As shown, the data output UPIU format includes 2n+6 bytes (Byte[0-(2n+5)]), where n is the number of white-box attribute parameters to be written, and n is a positive integer. Among them, bytes Byte[3:0] are the white-box feature header fields. Byte[0] is the white-box opcode field, and the values ​​of the white-box opcode field include "01h", "02h", "03h", and "04h".

[0154] The value "01h" represents a checkpoint (CKP), and its data output UPIU format is as follows: Figure 20 As shown. Among them, Byte[3:1] is a reserved field. Byte[(2n+5):4] is used to store n delay thresholds for the checkpoint, and each delay threshold occupies 2 bytes.

[0155] The value "02h" indicates a Quality of Service (QoS) node, whose data output UPIU format is as follows: Figure 21 As shown. Among them, Byte[1] is the QoS Log Mode field, and the value of the QoS Log Mode field includes "00h" and "01h". The value "00h" indicates that the timeout records of n QoS nodes are cyclically overwritten. The value "01h" indicates the timeout details of the last QoS node. Byte[3:2] is a reserved field. Byte[5:4] is used to store the latency threshold of the QoS node, which occupies 2 bytes. Byte[(2n+5):6] is a reserved field.

[0156] The value "03h" indicates the system log, and its data output UPIU format is as follows: Figure 22 As shown. Among them, Byte[3:1] is a reserved field. Byte[(2n+5):4] is a reserved field.

[0157] The value "04h" represents the synchronization time, and its output UPIU format is as follows: Figure 23 As shown. Among them, Byte[3:1] is a reserved field. Byte[7:4] is used to store the data time set. Byte[(2n+5):8] is a reserved field.

[0158] In this embodiment, the white-box attribute parameters include a latency threshold. The host sets or modifies at least one latency threshold based on the data format of the write buffer instruction.

[0159] S205. In response to the write buffer instruction, the storage device writes white-box attribute parameters to the buffer in memory and generates a write buffer response message.

[0160] The write buffer response message is used to indicate that the white-box attribute parameters have been written.

[0161] In this embodiment, writing white-box attribute parameters to the buffer in memory includes setting the operation type flag of the operation type field to the configuration threshold flag.

[0162] S206. The storage device sends a write buffer response message to the host.

[0163] S207, The host sends an I / O command to the storage device.

[0164] Among them, I / O instructions are used to instruct storage devices to perform I / O operations.

[0165] S208. The storage device responds to the I / O instruction and performs an I / O operation. When the delay of the I / O operation is greater than the delay threshold, it writes the delay information to the buffer in memory and generates an I / O response message.

[0166] Among them, the I / O response message is used to indicate that the I / O operation has been completed.

[0167] S209. The storage device sends an I / O response message to the host.

[0168] S210, The host sends a Read Buffer command to the storage device.

[0169] The read buffer instruction is used to instruct the storage device to read latency information from a buffer in memory. The read buffer instruction includes a command description block and a payload.

[0170] S211. The storage device responds to the read buffer instruction by reading delayed information from the buffer in memory and generates a read buffer response message.

[0171] The read buffer response message includes delay information.

[0172] S212, The storage device sends a read buffer response message to the host.

[0173] In this embodiment, the payload of the write buffer instruction includes a data output UPIU, which includes a white-box feature header field. The white-box feature header field is used to store key white-box information, thereby omitting the process of setting UFS protocol parameters, simplifying the interaction process, and improving data processing efficiency.

[0174] The functions or steps performed by the host and storage devices in the above embodiments can also be applied to chips, computer-readable storage media, or computer program products.

[0175] The chip includes a processor and an interface circuit, with the processor and interface circuit electrically connected. The interface circuit can read computer instructions stored in the memory and send the computer instructions to the processor. When the processor executes the computer instructions, it implements the various functions or steps performed by the host and storage device in the above embodiments.

[0176] The computer-readable storage medium stores computer instructions, which, when executed by the processor, implement the various functions or steps performed by the host and storage device in the above embodiments.

[0177] Computer-readable storage media include volatile and non-volatile, removable and non-removable media implemented in any method or technology for storing information (such as computer-readable instructions, data structures, program modules or other data). Computer-readable storage media include RAM, ROM, electrically erasable programmable read-only memory (EEPROM), flash memory or other memory, compact disc read-only memory (CD-ROM), digital versatile disc (DVD) or other optical disc storage, magnetic cartridges, magnetic tape, disk storage or other magnetic storage devices, or any other medium that can be used to store desired information and is accessible to a computer.

[0178] Computer program products include computer instructions, which, when executed by a processor, implement the various functions or steps performed by the host and storage devices in the above embodiments.

[0179] The embodiments of this application have been described in detail above with reference to the accompanying drawings. However, this application is not limited to the above embodiments. Within the scope of knowledge possessed by those skilled in the art, various changes can be made without departing from the spirit of this application.

Claims

1. A storage control method applied to an electronic device, the electronic device comprising a host and a storage device communicating with the host, characterized in that, The method includes: The host sends a write buffer instruction to the storage device, the write buffer instruction being used to instruct the storage device to write white-box attribute parameters to a buffer in memory; The storage device responds to the write buffer instruction by writing the white-box attribute parameters into the buffer. The host sends an I / O instruction to the storage device, the I / O instruction being used to instruct the storage device to perform an I / O operation; The storage device responds to the I / O instruction and performs the I / O operation. When the delay of the I / O operation is greater than the delay threshold, it writes delay information to the buffer. The host sends a read buffer instruction to the storage device, the read buffer instruction being used to instruct the storage device to read the delay information from the buffer; In response to the read buffer instruction, the storage device reads the delay information from the buffer and sends a read buffer response message to the host, the read buffer response message including the delay information.

2. The storage control method as described in claim 1, characterized in that, The write buffer instruction includes a command description block and a payload; the command description block includes a mode field, the value of which is a white-box mode flag; the payload includes the white-box attribute parameters of the QoS node and / or checkpoint to be written.

3. The storage control method as described in claim 1, characterized in that, The read buffer instruction includes a command description block and a payload; the command description block includes a mode field, the value of which is a white-box mode flag; the payload includes a header area field, a statistics area field, and a checkpoint or service quality delay information recording area field, the header area field is used to store key information, the statistics area field is used to store timeout statistics, and the checkpoint or service quality delay information recording area field is used to store detailed records of overall service quality node timeouts and / or detailed records of local checkpoint timeouts.

4. The storage control method as described in any one of claims 1-3, characterized in that, Before the host sends a write buffer instruction to the storage device, the method further includes: The host sends a white-box query request to the storage device, the white-box query request being used to request queries for white-box related parameters; In response to the white-box query request, the storage device queries the white-box related parameters and sends a white-box query response message to the host, the white-box query response message including the white-box related parameters; The host determines whether the storage device supports white-box features based on the white-box query response message.

5. The storage control method as described in claim 4, characterized in that, The method further includes: The host obtains the white-box version supported by the storage device and / or the maximum white-box buffer size based on the white-box query response message.

6. The storage control method as described in claim 4 or 5, characterized in that, The storage device queries the white box related parameters including: The storage device queries storage protocol parameters stored in the memory. The storage protocol parameters include description parameters, which include a device descriptor. The device descriptor includes a feature support field, which stores the features supported by the storage device. The feature support field includes white-box feature bits, which characterize the white-box features supported by the storage device.

7. The storage control method as described in claim 5, characterized in that, The storage device queries the white box related parameters including: The storage device queries the storage protocol parameters stored in the memory. The storage protocol parameters include description parameters, which include a device descriptor. The device descriptor includes a white-box version field, which stores the white-box versions supported by the storage device.

8. The storage control method as described in claim 5 or 7, characterized in that, The storage device queries the white box related parameters including: The storage device queries the storage protocol parameters stored in the memory. The storage protocol parameters include description parameters, which include a geometry descriptor. The geometry descriptor includes a maximum white-box buffer size field, which stores the size of the maximum white-box buffer.

9. The storage control method as described in any one of claims 1-8, characterized in that, Before the host sends a write buffer instruction to the storage device, the method further includes: The host sends a white-box enable request to the storage device, the white-box enable request being used to request the white-box feature to be enabled; The storage device enables the white-box feature in response to the white-box enable request.

10. The storage control method as described in claim 9, characterized in that, The storage device enables the white-box feature by including: The storage device sets or modifies storage protocol parameters stored in the memory. The storage protocol parameters include flag parameters, and the flag parameters include a white-box enable field, which is used to characterize whether the white-box feature is enabled. The storage device setting or modification of the storage protocol parameters includes: Set the white-box status flag of the white-box enable field to an enable flag, which is used to characterize enabling the white-box feature.

11. The storage control method as described in claim 9 or 10, characterized in that, The method further includes: The host sends a white-box disable request to the storage device, the white-box disable request being used to request the white-box feature to be disabled; The storage device disables the white-box feature in response to the white-box disable request.

12. The storage control method as described in claim 11, characterized in that, The storage device disables the white-box feature including: The storage device sets or modifies storage protocol parameters stored in the memory. The storage protocol parameters include flag parameters, and the flag parameters include a white-box enable field, which is used to characterize whether the white-box feature is enabled. The storage device setting or modification of the storage protocol parameters includes: Set the white-box status flag of the white-box enable field to a disabled flag, which is used to indicate that the white-box feature is disabled.

13. The storage control method according to any one of claims 1-12, characterized in that, Before the host sends a write buffer instruction to the storage device, the method further includes: The host sends a white-box configuration request to the storage device, the white-box configuration request being used to request configuration of the white-box operation type; The storage device responds to the white-box configuration request and configures the white-box operation type.

14. The storage control method as described in claim 13, characterized in that, The storage device is configured with the following white-box operation types: The storage device sets or modifies storage protocol parameters stored in the memory, the storage protocol parameters including attribute parameters; the attribute parameters include an operation type field, the operation type field being used to store white-box operation types; The storage device setting or modification of the storage protocol parameters includes: Set the operation type flag of the operation type field to the configuration white-box attribute parameter flag.

15. A storage control method applied to a host computer, wherein the host computer communicates with a storage device, characterized in that, The method includes: Send a write buffer instruction to the storage device, the write buffer instruction being used to instruct the storage device to write white-box attribute parameters to a buffer in memory; Send an I / O instruction to the storage device, the I / O instruction being used to instruct the storage device to perform an I / O operation; Send a read buffer instruction to the storage device, the read buffer instruction being used to instruct the storage device to read delay information from the buffer; Receive a read buffer response message from the storage device, the read buffer response message including the latency information, the latency information being information written to the buffer when the latency of the storage device performing the I / O operation is greater than a latency threshold.

16. The storage control method as described in claim 15, characterized in that, The write buffer instruction includes a command description block and a payload; the command description block includes a mode field, the value of which is a white-box mode flag; the payload includes the white-box attribute parameters of the QoS node and / or checkpoint to be written.

17. The storage control method as described in claim 15, characterized in that, The read buffer instruction includes a command description block and a payload; the command description block includes a mode field, the value of which is a white-box mode flag; the payload includes a header area field, a statistics area field, and a checkpoint or service quality delay information recording area field, the header area field is used to store key information, the statistics area field is used to store timeout statistics, and the checkpoint or service quality delay information recording area field is used to store detailed records of overall service quality node timeouts and / or detailed records of local checkpoint timeouts.

18. The storage control method according to any one of claims 15-17, characterized in that, Before sending a write buffer instruction to the storage device, the method further includes: Send a white-box query request to the storage device, the white-box query request being used to request query white-box related parameters; Receive a white-box query response message from the storage device, the white-box query response message including white-box related parameters; The storage device is determined to support white-box features based on the white-box query response message.

19. The storage control method as described in claim 18, characterized in that, The method further includes: The white-box version supported by the storage device and / or the maximum white-box buffer size are obtained based on the white-box query response message.

20. The storage control method according to any one of claims 15-19, characterized in that, Before sending a write buffer instruction to the storage device, the method further includes: A white-box enable request is sent to the storage device, the white-box enable request being used to request the white-box feature to be enabled.

21. The storage control method as described in claim 20, characterized in that, The method further includes: A white-box disable request is sent to the storage device, the white-box disable request being used to request the white-box feature to be disabled.

22. The storage control method according to any one of claims 15-21, characterized in that, Before sending a write buffer instruction to the storage device, the method further includes: A white-box configuration request is sent to the storage device, the white-box configuration request being used to request configuration of the white-box operation type.

23. A storage control method applied to a storage device, the storage device communicating with a host, characterized in that, The method includes: In response to a write buffer instruction from the host, white-box attribute parameters are written to the buffer in memory; In response to an I / O instruction from the host, an I / O operation is performed, and if the delay of the I / O operation is greater than a delay threshold, delay information is written to the buffer. In response to a read buffer instruction from the host, the delay information is read from the buffer and a read buffer response message, which includes the delay information, is sent to the host.

24. The storage control method as described in claim 23, characterized in that, The write buffer instruction includes a command description block and a payload; the command description block includes a mode field, the value of which is a white-box mode flag; the payload includes the white-box attribute parameters of the QoS node and / or checkpoint to be written.

25. The storage control method as described in claim 23, characterized in that, The read buffer instruction includes a command description block and a payload; the command description block includes a mode field, the value of which is a white-box mode flag; the payload includes a header area field, a statistics area field, and a checkpoint or service quality delay information recording area field, the header area field is used to store key information, the statistics area field is used to store timeout statistics, and the checkpoint or service quality delay information recording area field is used to store detailed records of overall service quality node timeouts and / or detailed records of local checkpoint timeouts.

26. The storage control method according to any one of claims 23-25, characterized in that, Prior to responding to a write buffer instruction from the host, the method further includes: In response to a white-box query request from the host, the white-box related parameters are queried, and a white-box query response message is sent to the host. The white-box query response message includes the white-box related parameters, which are used to characterize whether the storage device supports white-box features.

27. The storage control method as described in claim 26, characterized in that, The white-box related parameters include the white-box version supported by the storage device and / or the size of the maximum white-box buffer.

28. The storage control method as described in claim 26 or 27, characterized in that, The white-box related parameters to be queried include: The storage protocol parameters stored in the memory are queried. The storage protocol parameters include description parameters, which include a device descriptor. The device descriptor includes a feature support field, which stores the features supported by the storage device. The feature support field includes white-box feature bits, which characterize the white-box features supported by the storage device.

29. The storage control method as described in claim 27, characterized in that, The white-box related parameters to be queried include: The storage protocol parameters stored in the memory are queried. The storage protocol parameters include description parameters, which include a device descriptor. The device descriptor includes a white-box version field, which is used to store the white-box versions supported by the storage device.

30. The storage control method as described in claim 27 or 29, characterized in that, The white-box related parameters to be queried include: The storage protocol parameters stored in the memory are queried. The storage protocol parameters include description parameters, which include a geometry descriptor. The geometry descriptor includes a maximum white-box buffer size field, which is used to store the size of the maximum white-box buffer.

31. The storage control method according to any one of claims 23-30, characterized in that, Prior to responding to a write buffer instruction from the host, the method further includes: In response to a white-box enable request from the host, the white-box feature is enabled.

32. The storage control method as described in claim 31, characterized in that, The enabling white-box features include: Set or modify storage protocol parameters stored in the memory. The storage protocol parameters include flag parameters, which include a white-box enable field. The white-box enable field is used to characterize whether the white-box feature is enabled. The storage device setting or modification of the storage protocol parameters includes: Set the white-box status flag of the white-box enable field to an enable flag, which is used to characterize enabling the white-box feature.

33. The storage control method as described in claim 31 or 32, characterized in that, The method further includes: In response to a white-box disable request from the host, the white-box feature is disabled.

34. The storage control method as described in claim 33, characterized in that, The disabling of the white-box feature includes: Set or modify storage protocol parameters stored in the memory. The storage protocol parameters include flag parameters, which include a white-box enable field. The white-box enable field is used to characterize whether the white-box feature is enabled. The storage device setting or modification of the storage protocol parameters includes: Set the white-box status flag of the white-box enable field to a disabled flag, which is used to indicate that the white-box feature is disabled.

35. The storage control method according to any one of claims 23-34, characterized in that, Prior to responding to a write buffer instruction from the host, the method further includes: In response to a white-box configuration request from the host, configure the white-box operation type.

36. The storage control method as described in claim 35, characterized in that, The white-box operation type configured includes: Set or modify storage protocol parameters stored in the memory, the storage protocol parameters including attribute parameters; the attribute parameters include an operation type field, the operation type field being used to store white-box operation types; Setting or modifying the storage protocol parameters includes: Set the operation type flag of the operation type field to the configuration white-box attribute parameter flag.

37. An electronic device, characterized in that, The system includes a host and a storage device that communicates with the host. The host includes a host controller and host memory, and the storage device includes a storage controller, memory, and a flash memory array. The storage control method as described in any one of claims 1-14 is implemented when the host controller executes computer instructions stored in the host memory and the storage controller executes computer instructions stored in the memory.

38. A host computer, characterized in that, It communicates with a storage device, the host including a host controller and host memory, and implements the storage control method as described in any one of claims 15-22 when the host controller executes computer instructions stored in the host memory.

39. A storage device, characterized in that, It communicates with the host, and the storage device includes a storage controller, memory and flash memory array. When the storage controller executes computer instructions stored in the memory, it implements the storage control method as described in any one of claims 23-36.

40. A computer-readable storage medium, characterized in that, It stores computer instructions, which, when executed by the processor, implement the storage control method as described in any one of claims 1-36.