Computing storage system and method of operation thereof, electronic system
By configuring storage areas in the computing storage system and implementing power-loss protection operations, the problem of data loss during power outages is solved, important data is protected, and the reliability of the system is improved.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- YANGTZE MEMORY TECH CO LTD
- Filing Date
- 2024-11-25
- Publication Date
- 2026-05-26
AI Technical Summary
In existing semiconductor memory technologies, volatile memory loses data when power is off, while non-volatile memory cannot effectively protect important intermediate data when power is off, resulting in data loss.
A computing storage system is provided that receives commands through a controller and performs power-loss protection operations based on these commands to ensure the protection of important storage areas in the event of a power failure, including configuring storage areas and updating information related to power-loss protection capabilities.
It effectively protects intermediate data, reduces the impact of data loss caused by unexpected power outages, and improves the reliability and data integrity of the system.
Smart Images

Figure CN122086302A_ABST
Abstract
Description
Technical Field
[0001] This disclosure relates to the field of semiconductor technology, and in particular to a computing storage system and its operation method, and an electronic system. Background Technology
[0002] Semiconductor memories can be roughly divided into two categories, depending on whether they retain stored data when power is off: volatile memory and non-volatile memory. Volatile memory loses stored data when power is off, while non-volatile memory retains stored data when power is off. Summary of the Invention
[0003] This disclosure provides a computing storage system, its operation method, and an electronic system.
[0004] In a first aspect, embodiments of this disclosure provide a computing storage system, the computing storage system including a controller, a first memory coupled to the controller, and a computing processing component for executing a program, the controller being configured to: receive a first command; in response to the first command, configure a corresponding storage area in the first memory for data generated during the execution of the program by the computing processing component; and, based on information carried in the first command indicating the need for power-down protection of the corresponding storage area, perform a power-down protection operation on the storage area requiring power-down protection when the computing storage system is in a power-down state.
[0005] In some implementations, the controller is configured to update information related to the power loss protection capability of the computing storage system based on information about the current power loss protection capability of the computing storage system in the log information of the computing storage system and information carried in the first command that power loss protection needs to be performed on the corresponding storage area.
[0006] In some embodiments, the controller is configured to: receive a second command; update information related to the power-loss protection capability of the computing storage system based on information related to the range of storage regions requiring power-loss protection carried in the second command, and perform power-loss protection operations on the corresponding storage regions based on the information related to the range of storage regions requiring power-loss protection carried in the second command and the priority.
[0007] In some implementations, information related to the range of the storage area requiring power-down protection includes: the offset of the starting address of the storage area requiring power-down protection relative to the starting address of the storage area, and the size of the data that can be stored in the storage area requiring power-down protection.
[0008] In some implementations, the controller is configured to: receive a third command upon completion of the program execution; the third command carries information indicating that power-loss protection for the corresponding storage area is not required; and update information related to the power-loss protection capability of the computing storage system based on a change in the third command compared to the information carried by the first command regarding whether power-loss protection is required for the corresponding storage area configured for data during the program execution.
[0009] In some implementations, the controller is configured to: receive a fourth command; the fourth command instructs the acquisition of the power-loss protection capability of the computing storage system; and update information related to the power-loss protection capability of the computing storage system based on the time required to execute the program carried in the fourth command and the aging rate of the power-loss protection hardware of the computing storage system.
[0010] In some implementations, the controller is configured to: receive a fifth command; the fifth command instructs that the condition for triggering an asynchronous event be set to the power failure protection capability of the computing storage system being lower than a preset threshold; receive a sixth command; the sixth command instructs that an asynchronous event be requested; and, based on the power failure protection capability of the computing storage system being lower than the preset threshold, send an asynchronous event report.
[0011] In some embodiments, the controller is configured to: receive a seventh command; and, in response to the seventh command, update information regarding whether power-loss protection is required for the corresponding storage area configured in the first memory for data during program execution.
[0012] In some embodiments, the computing storage system further includes a second memory coupled to the controller, the controller being configured to: in the event of a power failure of the computing storage system, based on information carried in the first command indicating the need for power failure protection of the corresponding storage area, store the data in the storage area requiring power failure protection into a first area of the second memory.
[0013] In some embodiments, the controller is configured to, upon power restoration of the computing storage system, store data in the first region of the second memory into the first memory or a second region of the second memory.
[0014] In some embodiments, the computing storage system includes a non-volatile namespace, a computing namespace, and a subsystem local storage namespace; the non-volatile namespace includes the second memory, the computing namespace includes the computing processing component, and the subsystem local storage namespace includes the first memory.
[0015] In a second aspect, embodiments of this disclosure provide an electronic system, the electronic system including a host and a computing storage system coupled to the host; the computing storage system including a controller, a first memory coupled to the controller, and a computing processing component for executing a program; wherein, the host is configured to: send a first command; the controller is configured to: receive the first command; in response to the first command, configure a corresponding storage area in the first memory for data during the execution of the program; and, based on information carried in the first command indicating that the corresponding storage area needs to be protected against power failure, perform a power failure protection operation on the storage area requiring power failure protection when the computing storage system is powered down.
[0016] In some implementations, the host is configured to: determine whether power-loss protection is required for a corresponding storage area based on information about the power-loss protection capability of the computing storage system in the acquired log information of the computing storage system and the importance of the data to be stored in the corresponding storage area; the controller is configured to: update information related to the power-loss protection capability of the computing storage system based on information about the current power-loss protection capability of the computing storage system in the log information of the computing storage system and the information carried in the first command indicating the need for power-loss protection of the corresponding storage area.
[0017] In some implementations, the host is configured to: send a second command; the controller is configured to: receive the second command; update the power-loss protection capability information of the computing storage system based on the information related to the range of storage areas requiring power-loss protection carried in the second command, and perform power-loss protection operations on the corresponding storage areas based on the information related to the range of storage areas requiring power-loss protection carried in the second command and the priority.
[0018] In some implementations, the host is configured to: send a third command upon completion of the program execution; the third command carries information indicating that power-loss protection for the corresponding storage area is not required; the controller is configured to: receive the third command; and update information related to the power-loss protection capability of the computing storage system based on a change in the information regarding whether power-loss protection is required for the corresponding storage area configured for data during program execution, as carried by the third command compared to the information carried by the first command.
[0019] In some implementations, the host is configured to: send a fourth command; the fourth command instructs the acquisition of the power-loss protection capability of the computing storage system; the controller is configured to: receive the fourth command; and update information related to the power-loss protection capability of the computing storage system based on the time required to execute the program carried in the fourth command and the aging rate of the power-loss protection hardware of the computing storage system.
[0020] In some implementations, the host is configured to: send a fifth command; the fifth command instructs that the condition for triggering an asynchronous event be set to the power failure protection capability of the computing storage system being lower than a preset threshold; send a sixth command; the sixth command instructs that an asynchronous event be requested; the controller is configured to: receive the fifth command and the sixth command; and send an asynchronous event report based on the power failure protection capability of the computing storage system being lower than the preset threshold.
[0021] In some implementations, the host is configured to: send a seventh command; the controller is configured to: receive the seventh command; and, in response to the seventh command, update information regarding whether power-loss protection is required in the corresponding storage area configured in the first memory for data during program execution.
[0022] Thirdly, embodiments of this disclosure provide an operation method for a computing storage system, comprising: receiving a first command; in response to the first command, configuring a corresponding storage area in a first memory for data generated during the execution of a program by a computing processing component; and, based on information carried in the first command indicating the need for power-down protection of the corresponding storage area, performing a power-down protection operation on the storage area requiring power-down protection when the computing storage system is in a power-down state.
[0023] In some embodiments, the operation method further includes: updating the information related to the power loss protection capability of the computing storage system based on the information about the current power loss protection capability of the computing storage system in the log information of the computing storage system and the information carried in the first command that the corresponding storage area needs to be protected against power loss.
[0024] In some embodiments, the operation method further includes: receiving a second command; updating the power-loss protection capability information of the computing storage system based on the information related to the range of storage regions requiring power-loss protection carried in the second command, and performing power-loss protection operations on the corresponding storage regions based on the information related to the range of storage regions requiring power-loss protection carried in the second command and the priority.
[0025] In some implementations, information related to the range of the storage area requiring power-down protection includes: the offset of the starting address of the storage area requiring power-down protection relative to the starting address of the storage area, and the size of the data that can be stored in the storage area requiring power-down protection.
[0026] In some embodiments, the operation method further includes: receiving a third command upon completion of the program execution; the third command carrying information indicating that power-loss protection of the corresponding storage area is not required; and updating the power-loss protection capability information of the computing storage system based on the change in the third command compared to the information on whether power-loss protection is required for the corresponding storage area configured for the data during the program execution carried by the first command.
[0027] In some embodiments, the operation method further includes: receiving a fourth command; the fourth command instructing the acquisition of the power-loss protection capability of the computing storage system; and updating information related to the power-loss protection capability of the computing storage system based on the time required to execute the program carried in the fourth command and the aging rate of the power-loss protection hardware of the computing storage system.
[0028] In some embodiments, the operation method further includes: receiving a fifth command; the fifth command instructing that the condition for triggering an asynchronous event be set to the power failure protection capability of the computing storage system being lower than a preset threshold; receiving a sixth command; the sixth command instructing that an asynchronous event be requested; and sending an asynchronous event report based on the fact that the power failure protection capability of the computing storage system is lower than the preset threshold.
[0029] In some embodiments, the operation method further includes: receiving a seventh command; and, in response to the seventh command, updating information regarding whether power-loss protection is required for the corresponding storage area configured in the first memory for data during program execution.
[0030] In some embodiments, the operation method further includes: when the computing storage system is powered off, based on the information carried in the first command that the corresponding storage area needs to be protected against power failure, storing the data in the storage area that needs to be protected against power failure into a first area of a second memory coupled to the controller of the computing storage system.
[0031] In some embodiments, the method of operation further includes: upon power restoration of the computing storage system, storing data in the first region of the second memory into the first memory or a second region of the second memory based on an instruction from a host coupled to the computing storage system.
[0032] In the technical solution provided in this disclosure, the first command received by the controller carries information on whether power-loss protection is required for the corresponding storage area. Based on the information on power-loss protection required for the corresponding storage area carried in the first command, the controller performs power-loss protection operation on the storage area that needs power-loss protection when the computing storage system is powered off, thereby protecting important intermediate data when power failure occurs and reducing the impact of data loss caused by unexpected power outages. Attached Figure Description
[0033] Figure 1 A schematic diagram of the structure of an electronic system provided in this disclosure embodiment. Figure 1 ;
[0034] Figure 2 A schematic diagram of the structure of a computing storage system provided in this embodiment of the disclosure. Figure 1 ;
[0035] Figure 3 A schematic diagram illustrating an example of loading a program into an electronic system, provided as an embodiment of this disclosure;
[0036] Figure 4 A schematic diagram illustrating an example of program execution in an electronic system provided by an embodiment of this disclosure;
[0037] Figure 5 A schematic diagram illustrating a memory range and a set of memory ranges provided in an embodiment of this disclosure;
[0038] Figure 6 A schematic diagram of the structure of a computing storage system provided in this embodiment of the disclosure. Figure 2 ;
[0039] Figure 7 This is a schematic diagram of a host interacting with a computing and storage system, provided as an embodiment of the present disclosure. Figure 1 ;
[0040] Figure 8 This is a schematic diagram of a host interacting with a computing and storage system, provided as an embodiment of the present disclosure. Figure 2 ;
[0041] Figure 9 A schematic diagram of the structure of a computing storage system provided in this embodiment of the disclosure. Figure 3 ;
[0042] Figure 10 A schematic diagram of the structure of an electronic system provided in this disclosure embodiment. Figure 2 ;
[0043] Figure 11This is a flowchart illustrating an operation method of a computing storage system provided in an embodiment of the present disclosure. Detailed Implementation
[0044] Exemplary embodiments of the present disclosure will now be described in more detail with reference to the accompanying drawings. While exemplary embodiments of the present disclosure are shown in the drawings, it should be understood that the present disclosure may be implemented in various forms and should not be limited to the specific embodiments set forth herein. Rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the scope of the disclosure to those skilled in the art.
[0045] In the following description, numerous specific details are set forth in order to provide a more thorough understanding of this disclosure. However, it will be apparent to those skilled in the art that this disclosure may be practiced without one or more of these details. In other instances, to avoid confusion with this disclosure, certain technical features well-known in the art have not been described; that is, not all features of actual embodiments are described herein, nor are well-known functions and structures described in detail.
[0046] In the accompanying drawings, the same reference numerals denote the same elements throughout.
[0047] It should be understood that spatial relation terms such as “below,” “under,” “below,” “below,” “above,” “above,” etc., are used herein for convenience of description to describe the relationship between one element or feature shown in the figure and other elements or features. It should be understood that, in addition to the orientation shown in the figure, spatial relation terms are intended to also include different orientations of the device in use and operation. For example, if the device in the figure is flipped, then the element or feature described as “below” or “below” other elements or features will be oriented “above” other elements or features. Therefore, the exemplary terms “below” and “under” can include both upper and lower orientations. The device may be otherwise oriented (rotated 90 degrees or otherwise) and the spatial descriptive terms used herein will be interpreted accordingly.
[0048] The terminology used herein is for the purpose of describing particular embodiments only and is not intended to limit this disclosure. When used herein, the singular forms “a,” “an,” and “the” are also intended to include the plural forms unless the context clearly indicates otherwise. It should also be understood that the terms “comprise” and / or “comprising,” when used in this specification, identify the presence of the stated features, integers, steps, operations, elements, and / or components, but do not exclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and / or groups. When used herein, the term “and / or” includes any and all combinations of the associated listed items.
[0049] Figure 1 This is a schematic diagram of the structure of an electronic system provided in an embodiment of the present disclosure. Figure 2 This is a schematic diagram of the structure of a computing storage system provided in an embodiment of the present disclosure.
[0050] Reference Figure 1 The electronic system 100 may include a host 110 and at least one computing storage system 120. The host 110 may include a host processor 111 and a host memory 112. The host processor 111 controls the overall operation of the host 110. The host processor 111 may be implemented as at least one of various processing units, including, for example, a central processing unit (CPU), an application processor (AP), a graphics processing unit (GPU), a neural processing unit (NPU), a field-programmable gate array (FPGA), and / or a microprocessor. In some embodiments, the host processor 111 may be implemented as a system-on-a-chip (SoC). The host memory 112 may store data, instructions, and programs required for the operation of the host processor 111. The host memory 112 may be volatile memory. Volatile memory includes, but is not limited to, random access memory (RAM), dynamic random access memory (DRAM), static random access memory (SRAM), synchronous dynamic random access memory (SDRAM), and double data rate synchronous dynamic random access memory (DDR SDRAM).
[0051] The computing storage system 120 may be a semiconductor device that provides computing services and data storage services. The computing storage system 120 may be used as both a data storage device and a computing device for executing programs in the electronic system 100. In some embodiments, for example, the computing storage system 120 may be implemented as part of a data center or an artificial intelligence training data device.
[0052] In some embodiments, host 110 and compute storage system 120 are physically connected via an interface and communicate in accordance with the corresponding PCIe / NVMe protocol. Exemplarily, host 110 and compute storage system 120 can be connected via a network link, such as an NVMe-OF-based connection. Exemplarily, host 110 and compute storage system 120 can also be connected via a Compute Express Link (CXL) interface, through which host 110 can control the operation of compute storage system 120. Compute storage system 120 is configured to conform to the NVMe compute storage protocol. The CXL interface may include CXL.io, CXL.cache, and CXL.mem as sub-protocols. Host 110 can load predetermined programs into compute storage system 120 for processing. Host 110 can load various types of programs (such as applications, kernels, and / or compute) into compute storage system 120. Programs may include, for example, encryption programs, compression programs, image recognition programs, filtering programs, and / or artificial intelligence programs.
[0053] Reference Figure 2 In some embodiments, the computing storage system 200 may include a controller 210, one or more Sub-system Local Memory Namespaces (SLM NS) 230, one or more Non-Volatile Memory Namespaces (NVM NS) 240, and one or more Compute Namespaces (CNS) 220. The computing storage system 200 may be connected to... Figure 1 This corresponds to one of the multiple computing storage systems 120 shown. The subsystem local storage namespace 230 can be a namespace implemented with volatile memory, which is closer to the computing processing components of the computing namespace 220 than a namespace implemented with non-volatile memory. The non-volatile namespace 240 can be a namespace implemented with non-volatile memory.
[0054] In some embodiments, the computing storage system 200 may use Non-Volatile Memory Fast Protocol (NVMe) as the storage protocol, and the controller 210 may be an NVMe controller. The controller 210 may, in response to input / output (I / O) requests from the host, store input / output data during program execution in the subsystem local storage namespace 230, and / or read input / output data stored in the subsystem local storage namespace 230.
[0055] In some embodiments, the controller 210 may perform various operations for controlling the non-volatile namespace 240 or other non-volatile storage devices. For example, these operations may include address mapping operations, wear leveling operations, and / or garbage collection operations. Address mapping operations may be translation operations between logical addresses managed by the host or controller and physical addresses of the non-volatile namespace 240. Wear leveling may be an operation that evens out the frequency or number of uses of multiple storage blocks included in the non-volatile namespace 240. Garbage collection operations may be an operation that copies valid data from a source block in the non-volatile namespace 240 to a target block and then erases the source block to ensure available or free blocks in the non-volatile namespace 240.
[0056] In some embodiments, compute namespace 220 can serve as an abstraction representing one or more compute engines for executing programs. Compute engine resources can consist of one or more CPUs, FPGAs, GPUs, ASICs, etc. For example, a compute namespace can include CPU cores and FPGAs. Compute engine resources can be part of controller 210 or separate from controller 210. The compute engine can execute programs pre-loaded from the host. In some embodiments, programs can be stored in program slots. Program slots can be formed within the compute engine or allocated in separate memory. In some embodiments, program slots storing programs can be within compute namespace 220, or compute namespace 220 can be formed as an entity capable of executing programs. Compute namespace 220 can be, for example, an entity in an NVMe subsystem. Compute namespace 220 can access subsystem local storage namespace 230. In some embodiments, compute storage system 200 can include one or more compute namespaces 220. If the computing storage system 200 includes multiple computing namespaces 220, the host can load multiple programs into the multiple computing namespaces 220 respectively (e.g., in a one-to-one relationship). Therefore, each loaded program can be managed in its respective computing namespace 220, and this disclosure is not limited thereto.
[0057] In some embodiments, the controller 210 may copy data stored in the non-volatile namespace 240 to the subsystem local storage namespace 230, and / or copy data stored in the subsystem local storage namespace 230 to the non-volatile namespace 240. That is, the controller 210 may control the data migration between the non-volatile namespace 240 and the local storage namespace 230 as needed for the program processing of the computation namespace 220.
[0058] The subsystem local storage namespace 230 may store input data used by the program to be executed, or it may store the results (output data) obtained by executing the program. In some embodiments, the subsystem local storage namespace 230 may also be accessed by the controller 210. The subsystem local storage namespace 230 may be implemented as, for example, DRAM.
[0059] In some embodiments, controller 210 may further include a first control portion (not shown) of the control subsystem local storage namespace 230, such as a cache controller. In some embodiments, the first control portion may be configured as a separate chip from controller 210. In some other embodiments, the first control portion may be configured as an internal component of controller 210.
[0060] The non-volatile namespace 240 may store input / output data during program execution. The non-volatile namespace 240 may include, for example, flash memory (such as NAND flash memory). In another example, the non-volatile namespace 240 may include, for example, phase-change memory, resistive memory, magnetoresistive memory, ferroelectric memory, or polymer memory. In some embodiments, the computing storage system 200 may also include a second control portion, such as a flash memory controller, that controls or is configured to control the non-volatile namespace 240, and this second control portion may be included in controller 210.
[0061] In this embodiment of the disclosure, the computing processing components in the computing storage system, including computing engine resources, are abstracted into one or more computing namespaces for user use. The RAM within the computing processing components of the computing storage system, as well as the common RAM within the computing storage system and the RAM within the controller, can all be abstracted into subsystem local namespaces for user use. For the user, these computing namespaces and subsystem local storage namespaces are parallel entities. In some implementations, the user can be informed, based on the specific internal physical implementation, that a particular subsystem local storage namespace is used by a particular computing namespace (due to physical dependencies).
[0062] Figure 3 This is a schematic diagram illustrating an example of loading a program in an electronic system, as provided in an embodiment of this disclosure.
[0063] Reference Figure 3 The host 310 can load the program into the computing storage system 320. Figure 3 In the diagram, the computing storage system 320 is shown to include computing namespaces 322 and 323 (e.g., computing namespaces 0 and 1), but the number of computing namespaces is not limited thereto.
[0064] In some embodiments, compute namespaces 322 and 323 may support device-defined programs and / or downloadable programs. Device-defined programs may be, for example, fixed programs provided by a manufacturer, while downloadable programs may be programs loaded into compute namespaces 322 and 323 by the host 310. For example, device-defined program 323a may be set in compute namespace 323.
[0065] In some embodiments, the controller 321 of the computing storage system 320 may receive programs 322a and 323b transmitted from the host 310 and store them in the computing storage system 320. The computing engine of the computing namespace may, in response to a program execution command from the host 310, use input data stored in the subsystem local storage namespace 324 to execute programs 322a, 323a, and / or 323b in computing namespaces 322 and 323. The input data may include corresponding input parameters required for program execution.
[0066] Figure 4 This is a schematic diagram illustrating an example of program execution in an electronic system provided by an embodiment of this disclosure. Figure 4 In this context, it is assumed that program 422a is loaded into the computation namespace 422 of computation storage system 420.
[0067] Reference Figure 4 In operation S431, the host 410 may send a data copy command to the controller 421 of the computing storage system 420. In operation S432, in response to the data copy command, input data stored in the non-volatile namespace 424 (e.g., a non-volatile memory device) may be copied to the subsystem local storage namespace 423. In some embodiments, the controller 421 may control the non-volatile namespace 424 and the subsystem local storage namespace 423 in response to the data copy command to transfer input data from the non-volatile namespace 424 to the subsystem local storage namespace 423.
[0068] It should be noted that, Figure 4The examples shown are merely illustrative and are not intended to limit the transmission paths of input and output data in the embodiments of this disclosure. In some embodiments, the host 410 may directly write input data into the subsystem local storage namespace 423, and the output data obtained after the program processes the input data is stored in the subsystem local storage namespace 423. The host 410 may directly obtain the output data from the subsystem local storage namespace 423. That is, the non-volatile namespace 424 may not participate in the storage of input data and output data. In other embodiments, the non-volatile namespace 424 may also participate in the storage of input data and output data. The host 410 may write input data into the non-volatile namespace 424, the non-volatile namespace 424 may copy the input data to the subsystem local storage namespace 423, the output data obtained after the program processes the input data may be stored in the subsystem local storage namespace 423, and the output data in the subsystem local storage namespace 423 may be copied to the non-volatile namespace 424. The host may obtain the output data from the non-volatile namespace 424. In some other embodiments, the non-volatile namespace 424 may only be used for either storing input data or storing output data. For example, the host 410 may directly write input data into the subsystem local storage namespace 423, and the output data obtained after the program processes the input data is stored in the subsystem local storage namespace 423. The output data in the subsystem local storage namespace 423 is copied to the non-volatile namespace 424, and the host 410 can obtain the output data from the non-volatile namespace 424. Alternatively, the host 410 may write input data into the non-volatile namespace 424, and the input data in the non-volatile namespace 424 is copied to the subsystem local storage namespace 423. The output data obtained after the program processes the input data is stored in the subsystem local storage namespace 423, and the host 410 can directly obtain the output data from the subsystem local storage namespace 423.
[0069] After the data has been copied from the NVM namespace 424 to the subsystem local storage namespace 423, in operation S433, the controller 421 may send a read success message to the host 410.
[0070] In order to execute the program, in operation S441, host 410 may send a program execution command to computing storage system 420 to execute program 422a in computing namespace 422. In some embodiments, controller 421 may receive the program execution command from host 410. In operation S442, in response to the program execution command, the computing engine in computing namespace 422 may use input data stored in subsystem local storage namespace 423 to execute program 422a in computing namespace 422. In operation S443, computing namespace may store the execution result (output data) of program 422a in subsystem local storage namespace 423. After the execution of program 422a in computing namespace 422 is completed, in operation S444, controller 421 may send a message indicating successful program execution to host 410.
[0071] In some embodiments, during operation S451, host 410 may send a read command instructing the computing storage system 420 to read output data from subsystem local storage namespace 423. During operation S452, controller 421 may read output data (e.g., the execution result of program 422a) from subsystem local storage namespace 423 and transmit the data to host 410.
[0072] In some embodiments, after the program 422a has finished executing, the output data can be flushed from the subsystem local storage namespace 423 to the non-volatile namespace 424.
[0073] The electronic system can execute programs on the computing storage system 420 by performing the above operations. Furthermore, if requested by the host 410, the electronic system can provide the execution results of the program from the computing storage system 420 to the host 410.
[0074] In some embodiments, the controller 421, in response to a host command, configures a corresponding storage region in the memory of the sub-system local memory namespace 423 to store input / output data during program execution. In some embodiments, the controller can configure the corresponding storage region by creating memory ranges. A memory range (MR) defines a corresponding storage region. A memory range can be represented by the sub-system local memory namespace identity (SLM NS ID), the starting address (Starting Byte) of the storage region within that local memory namespace, and the data length. Each memory range specifies the accessible range within the sub-system local memory namespace. The collection of memory ranges constitutes a memory range set (MRS). The memory range set can be stored in the compute namespace, and each execution of the program is limited to accessing ranges other than those specified in the memory range set in the program name. Figure 5 As shown, memory range 1 and memory range 2 in namespace 501 form memory range set 1, and memory range 1, memory range 2, and memory range 3 in namespace 502 form memory range set 2. Each memory range includes the sub-system local memory namespace identifier (SLM NS ID, Sub-system Local Memory NamespacesIdentity), the starting address (Starting Byte) of the storage region in the local memory namespace, and information related to the data length. Based on the information included in the memory range, a region within the corresponding sub-system local memory namespace can be determined. It should be noted that... Figure 5 The example provided illustrates the storage range set stored in a computing namespace, but the embodiments disclosed herein are not limited thereto. The storage range set may also be stored in other storage devices with storage functions in the computing storage system.
[0075] Input and output data during program execution are stored in the subsystem's local storage namespace. For programs that require long execution times or multiple programs, an unexpected power outage can cause data loss in the subsystem's local storage namespace, requiring the program to be re-executed and affecting its efficiency.
[0076] This disclosure provides a computing storage system, such as Figure 6As shown, the computing storage system 600 includes a controller 601, a first memory 602 coupled to the controller 601, and a computing processing component 603 for executing programs. The controller 601 is configured to: receive a first command; in response to the first command, configure a corresponding storage area in the first memory 602 for data during the execution of the program by the computing processing component 603; and, based on the information carried in the first command that the corresponding storage area needs to be protected against power failure, perform a power failure protection operation on the storage area that needs to be protected against power failure when the computing storage system 600 is in a power failure state.
[0077] In this embodiment of the present disclosure, the first command received by the controller 601 carries information on whether power-loss protection is required for the corresponding storage area. Based on the information on power-loss protection required for the corresponding storage area carried in the first command, the controller 601 performs power-loss protection operation on the storage area that needs power-loss protection when the computing storage system 600 is in a power failure, thereby protecting important intermediate data when a power failure occurs and reducing the impact of data loss caused by unexpected power outages.
[0078] In some specific examples, such as Figure 7 As shown in ③, the controller in the computing storage system is configured to receive a first command, which may be a command to create a set of memory ranges. The first command carries an identifier of the memory range (MRID, Memory Range Identity) and information on whether power-loss protection is required for the corresponding memory area. The information on whether power-loss protection is required for the corresponding memory area can be bound to the MRID of the corresponding memory area to instruct the computing storage system to protect the data in the specific memory area.
[0079] In some specific examples, information on whether power-loss protection is required for the corresponding storage area can be directly included in the first command.
[0080] In other specific examples, information on whether power-loss protection is required for the corresponding storage area can also be stored in a cache in the host. The first command carries pointer information, which points to a region in the cache in the host that stores information on whether power-loss protection is required for the corresponding storage area. The controller can then parse whether power-loss protection is required for the corresponding storage area. For example, the first command is a command to create a memory range set. The pointer information of the command to create the memory range set points to the first region in the cache in the host. The first region can be a region allocated for a memory range descriptor. According to the description in the memory range descriptor, the storage region that can be accessed by the subsystem local storage namespace can be specified. For example, the capacity of the first region can be m bytes. The first n bytes (including the nth byte) of the m bytes can record the identifier of the subsystem local storage namespace to which the storage region belongs, the data length of the storage region, and the starting address of the storage region in the local storage namespace in sequence. The (n+1)th byte of the first region can be used to record whether the storage region needs to be protected against power loss. The (n+2)th to the mth bytes of the first region can be reserved for later use.
[0081] In some specific examples, the first memory 602 is volatile memory, including but not limited to random access memory (RAM), dynamic random access memory (DRAM), static random access memory (SRAM), synchronous dynamic random access memory (SDRAM), and double data rate synchronous dynamic random access memory (DDR SDRAM). The computing processing component 603 has computing capabilities, including but not limited to a computing engine, whose resources may consist of one or more of a CPU, FPGA, GPU, etc. The computing processing component may be part of the controller or a component independent of the controller.
[0082] The computing storage system in this embodiment supports power loss protection (PLP) function. The power loss protection function can be achieved by adding capacitors, power supplies and other related hardware to keep the computing storage system powered for a sufficient time, but this disclosure is not limited to this.
[0083] In some embodiments, the controller 601 is configured to update information related to the power loss protection capability of the computing storage system 600 based on information about the current power loss protection capability of the computing storage system 600 in the log information of the computing storage system 600 and information carried in the first command that power loss protection needs to be performed on the corresponding storage area.
[0084] like Figure 7 As shown in Figure ①, the host can send a command to the computing storage system to retrieve information about the current power failure protection capability of the computing storage system from its log information; such as Figure 7 The controller shown in ② can send a message confirming receipt of information from the computing storage system's logs regarding the current power failure protection capabilities of the computing storage system to the host; such as... Figure 7 As shown in Figure ③, the controller in the computing storage system is configured to receive a first command sent by the host, which may be a command to create a memory range set; such as Figure 7 As shown in section ④, the controller updates the power-loss protection capability information of the computing storage system 600 based on the information about the current power-loss protection capability of the computing storage system 600 in the log information and the information carried in the first command that power-loss protection needs to be performed on the corresponding storage area; as shown in section ④. Figure 7 As shown in Figure ⑤, the controller can send a message confirming the successful creation of the memory range set to the host. The message confirming the successful creation of the memory range set can carry the identifier of the memory range set.
[0085] In some embodiments, the controller 601 is configured to: receive a second command; update information related to the power-loss protection capability of the computing storage system 600 based on information related to the range of storage regions requiring power-loss protection carried in the second command, and perform power-loss protection operations on the corresponding storage regions based on the information related to the range of storage regions requiring power-loss protection carried in the second command and the priority.
[0086] In some embodiments, information related to the range of the storage area requiring power-loss protection includes: the offset of the starting address of the storage area requiring power-loss protection relative to the starting address of the storage area, and the size of the data that can be stored in the storage area requiring power-loss protection.
[0087] like Figure 7As shown in Figure 6, the controller receives a second command sent by the host. This second command can be a command to set the memory range feature (Set MR Feature). This second command carries information about the memory regions requiring power-down protection, the priority of the memory regions requiring power-down protection, and may also carry an identifier for the memory range corresponding to the memory regions requiring power-down protection. Figure 7 As shown in section ⑦, the information related to the power-loss protection capability of the computing storage system is updated based on the information regarding the range of storage areas requiring power-loss protection carried in the second command; for example... Figure 7 As shown in Figure ⑧, the controller can send a message to the host indicating that the feature for setting the memory range has been successfully configured.
[0088] The priority of power-loss protection for storage areas can include a first-level priority and a second-level priority. The first-level priority indicates the degree to which power-loss protection should be implemented when multiple storage areas require it. For example, the computing storage system must provide power-loss protection for storage areas with higher first-level priority, and may make every effort to provide power-loss protection for storage areas with lower first-level priority. The second-level priority indicates the order in which power-loss protection should be implemented for multiple storage areas with the same first-level priority. For example, the computing storage system may first flush the data from storage areas with higher second-level priority to the non-volatile memory device, and then flush the data from storage areas with lower second-level priority to the non-volatile memory device. The first and second levels of priority can be configured by the host based on the importance of the data stored in the corresponding storage areas and the power-loss protection capabilities provided by the computing storage system.
[0089] In this embodiment of the disclosure, the controller performs power-loss protection operations on the corresponding storage area based on the information related to the range of storage areas requiring power-loss protection carried in the second command and the priority. That is, it can perform power-loss protection on a certain segment of the storage area requiring power-loss protection, and provides the priority of the storage area requiring power-loss protection. This enables the computing storage system to perform targeted power-loss protection on important data in the storage area requiring power-loss protection in a power-loss scenario.
[0090] In some embodiments, the controller 601 is configured to: receive a third command upon completion of program execution; the third command carries information indicating that power-loss protection is not required for the corresponding storage area; and update information related to the power-loss protection capability of the computing storage system 600 based on the change in the information regarding whether power-loss protection is required for the corresponding storage area configured for data during program execution carried by the third command compared to the information carried by the first command.
[0091] like Figure 7 As shown in Figure 9, when the program finishes execution, the controller receives a third command sent by the host. This third command can be a command to set the characteristics of the memory range. This third command carries an identifier for the memory range and information indicating that power-down protection for the corresponding memory area is not required; for example... Figure 7 As shown in Figure 10, the controller updates the power-loss protection capability information of the computing storage system 600 based on the change in information regarding whether power-loss protection is needed in the corresponding storage area configured for data during program execution, carried by the third command compared to the first command; for example... Figure 7 middle As shown, the controller can send a message to the host indicating that the feature setting of the memory range has been successful. This message may carry an identifier of the memory range set.
[0092] In this embodiment of the disclosure, when the program has finished executing, the information for power-down protection of the corresponding storage area is set to not require power-down protection. By canceling the setting for power-down protection of the corresponding storage area, the resources occupied by the storage area related to the program for power-down protection can be saved.
[0093] In some embodiments, the controller 601 is configured to: receive a fourth command; the fourth command instructs the acquisition of the power-loss protection capability of the computing storage system 600; and update information related to the power-loss protection capability of the computing storage system 600 based on the time required to execute the program carried in the fourth command and the aging rate of the power-loss protection hardware of the computing storage system 600.
[0094] like Figure 8 As shown in Figure ①, the controller receives a fourth command sent by the host. This fourth command instructs the acquisition of the power-loss protection capability of the computing storage system 600. The fourth command carries the time required to execute the program. Based on the time required to execute the program, the time during which the storage area configured for the data during program execution needs to be protected against power loss can be determined. Figure 8As shown in Figure ②, the controller updates information related to the power-loss protection capability of the computing storage system 600 based on the execution time of the program carried in the fourth command and the aging rate of the power-loss protection hardware of the computing storage system 600, thereby estimating the power-loss protection capability of the computing storage system 600 after the program is executed; Figure 8 As shown in ③, the controller can send a message confirming the successful acquisition of the power-loss protection capability of the computing storage system 600 to the host. This message confirming the successful acquisition of the power-loss protection capability of the computing storage system 600 carries information related to the power-loss protection capability of the computing storage system 600.
[0095] In some specific examples, when the fourth command does not specify the time required to execute the program, the controller can determine the time required for power-down protection of the storage area configured for the data during the program's execution based on the program's historical average execution time.
[0096] In some embodiments, the controller 601 is configured to: receive a fifth command; the fifth command instructs that the condition for triggering an asynchronous event be set to the power failure protection capability of the computing storage system 600 being lower than a preset threshold; receive a sixth command; the sixth command instructs that an asynchronous event be requested; and send an asynchronous event report based on the fact that the power failure protection capability of the computing storage system 600 is lower than the preset threshold.
[0097] like Figure 8 As shown in section ④, the controller receives a fifth command sent by the host. This fifth command can be a "Set Feature" command, which indicates that the condition for triggering the asynchronous event is set to the power failure protection capability of the computing storage system 600 being lower than a preset threshold; for example... Figure 8 As shown in Figure ⑤, the controller can send a message confirming successful feature setting to the host; for example... Figure 8 As shown in section ⑥, the controller receives the sixth command sent by the host, which indicates a request for an asynchronous event; as... Figure 8 As shown in section ⑦, the controller confirms that the power-loss protection capability of the computing storage system 600 is lower than a preset threshold due to the aging of the power-loss protection hardware (e.g., capacitors, power supply); Figure 8 As shown in Figure ⑧, when the power failure protection capability of the computing storage system 600 is lower than a preset threshold, the controller sends an asynchronous event report to the host.
[0098] In some specific examples, the aforementioned preset threshold can be determined based on the number of storage areas that are currently configured to require power-loss protection.
[0099] In some embodiments, the controller 601 is configured to: receive a seventh command; and in response to the seventh command, update information regarding whether power-down protection is required in the corresponding storage area configured in the first memory 602 for data during program execution.
[0100] like Figure 8 As shown in Figure 9, the controller receives information from the host regarding whether all current storage areas require power-down protection; as... Figure 8 As shown in Figure 10, the controller can send a message to the host indicating that it has successfully obtained information confirming whether all current storage areas require power-down protection; for example... Figure 8 middle As shown, the controller receives a seventh command sent by the host. This seventh command can be a command to set the characteristics of the memory range. In response to the seventh command, the controller updates the information regarding whether power-down protection is required for the corresponding storage area configured in the first memory 602 for the data during program execution. Figure 8 middle As shown, the controller can send a message to the host indicating that the feature setting of the memory range has been successful.
[0101] If the power loss protection capability of the computing storage system is less than a preset threshold, it may be unable to provide power loss protection for the configured storage areas that require it. Figure 8 Middle 9 to The system updates the information regarding whether power loss protection is required for the configured storage areas, thereby enabling better protection of important data in the storage areas.
[0102] It is understandable that when a computing storage system uses capacitors / power supplies to support power-down protection, its power will gradually decrease over time. When the program runs for a long time, the capacitors / power supplies may age and may not be able to support the corresponding power-down protection for the configured storage areas that require power-down protection. In this embodiment of the present disclosure, the host can be notified through asynchronous event reporting, and then the information on whether the corresponding storage areas need power-down protection can be reconfigured, thereby further reducing the risk of data loss.
[0103] In some embodiments, such as Figure 6 As shown, the computing storage system 600 also includes a second memory 604 coupled to the controller 601. The controller 601 is configured to: when the computing storage system 600 is in a power failure state, based on the information carried in the first command that the corresponding storage area needs to be protected against power failure, store the data in the storage area that needs to be protected against power failure into the first area 606 of the second memory 604.
[0104] In some specific examples, the second memory is a non-volatile memory, including but not limited to flash memory (such as NAND flash memory), phase-change memory, resistive memory, magnetoresistive memory, ferroelectric memory, or polymer memory.
[0105] In some embodiments, such as Figure 6 As shown, the controller 601 is configured to: when the computing storage system 600 is powered back on, store data stored in the first region 606 of the second memory 604 to the first memory 602 or the second region 607 of the second memory 604.
[0106] In this embodiment of the present disclosure, when the computing storage system is restored to power, the controller can inform the host, based on the log information, whether the data in the corresponding storage area was completely protected in the event of a power failure and the identifier of the memory range of the corresponding storage area. The host then decides, based on the identifier of the memory range, whether to load the currently protected data from the first area of the second memory to other storage areas of the first memory or to flush it to the second area of the second memory.
[0107] In some specific examples, log information can be stored in a secondary memory. Log information is a record of events, which can be generated by a controller. The controller periodically inspects the capacitors or power supplies that implement power-loss protection in the computing storage system, checks their power-loss protection capabilities, and generates relevant log information, which can be stored in a non-volatile memory device within the computing storage system.
[0108] In this embodiment of the disclosure, when a power failure occurs, the computing and storage system can protect important data in the corresponding storage area. After power is restored, the program can continue to calculate based on the protected important data, which can avoid the efficiency loss caused by the need to recalculate due to the loss of important data.
[0109] In some embodiments, such as Figure 9 As shown, the computing storage system 600 includes a non-volatile namespace 610, a computing namespace 608, and a subsystem local storage namespace 609; the non-volatile namespace 610 includes a second memory 604, the computing namespace 608 includes a computing processing component 603, and the subsystem local storage namespace 609 includes a first memory 602.
[0110] Based on the aforementioned computing and storage system, this disclosure also provides an electronic system, such as... Figure 10As shown, the electronic system includes a host 605 and a computing storage system 600 coupled to the host 605; the computing storage system 600 includes a controller 601, a first memory 602 coupled to the controller 601, and a computing processing component 603 for executing programs; wherein, the host 605 is configured to: send a first command; the controller 601 is configured to: receive the first command; in response to the first command, configure corresponding storage areas in the first memory 602 for data during program execution; and based on the information carried in the first command that the corresponding storage areas need to be protected against power failure, perform a power failure protection operation on the storage areas that need to be protected against power failure when the computing storage system 600 is powered off.
[0111] In this embodiment of the present disclosure, the controller 601 receives a first command sent by the host, which carries information on whether power-loss protection is required for the corresponding storage area. Based on the information on power-loss protection required for the corresponding storage area carried in the first command, the controller 601 performs power-loss protection operation on the storage area that needs power-loss protection when the computing storage system 600 is in a power failure, thereby protecting important intermediate data in the event of a power failure and reducing the impact of data loss caused by unexpected power outages.
[0112] In some embodiments, the host 605 is configured to: determine whether power-loss protection of the corresponding storage area is required based on the information about the power-loss protection capability of the computing storage system 600 in the log information of the acquired computing storage system 600 and the importance of the data to be stored in the corresponding storage area; the controller 601 is configured to: update the information related to the power-loss protection capability of the computing storage system 600 based on the information about the current power-loss protection capability of the computing storage system 600 in the log information of the computing storage system 600 and the information carried in the first command that power-loss protection of the corresponding storage area is required.
[0113] In some embodiments, the host 605 is configured to: send a second command; the controller 601 is configured to: receive the second command; update the power-loss protection capability information of the computing storage system 600 based on the information related to the range of storage areas requiring power-loss protection carried in the second command, and perform power-loss protection operations on the corresponding storage areas based on the information related to the range of storage areas requiring power-loss protection carried in the second command and the priority.
[0114] In some embodiments, the host 605 is configured to: send a third command upon completion of program execution; the third command carries information indicating that power-loss protection is not required for the corresponding storage area; the controller 601 is configured to: receive the third command; and update the information related to the power-loss protection capability of the computing storage system 600 based on the change in the information regarding whether power-loss protection is required for the corresponding storage area configured for data during program execution carried by the third command compared to the information carried by the first command.
[0115] In some embodiments, the host 605 is configured to: send a fourth command; the fourth command instructs the acquisition of the power-loss protection capability of the computing storage system 600; the controller 601 is configured to: receive the fourth command; and update information related to the power-loss protection capability of the computing storage system 600 based on the time required to execute the program carried in the fourth command and the aging rate of the power-loss protection hardware of the computing storage system 600.
[0116] In some embodiments, the host 605 is configured to: send a fifth command; the fifth command instructs that the condition for triggering an asynchronous event be set to the power failure protection capability of the computing storage system 600 being lower than a preset threshold; send a sixth command; the sixth command instructs that an asynchronous event be requested; the controller 601 is configured to: receive the fifth command and the sixth command; and send an asynchronous event report based on the power failure protection capability of the computing storage system 600 being lower than the preset threshold.
[0117] In some embodiments, the host 605 is configured to send a seventh command; the controller 601 is configured to receive the seventh command; and in response to the seventh command, update information regarding whether power-loss protection is required in the corresponding storage area configured in the first memory 602 for data during program execution.
[0118] In some embodiments, such as Figure 10 As shown, the computing storage system 600 also includes a second memory 604 coupled to the controller 601. The controller 601 is configured to: when the computing storage system 600 is in a power failure state, based on the information carried in the first command that the corresponding storage area needs to be protected against power failure, store the data in the storage area that needs to be protected against power failure into the first area 606 of the second memory 604.
[0119] In some embodiments, such as Figure 10 As shown, the controller 601 is configured to: when the computing storage system 600 is powered back on, store data stored in the first region 606 of the second memory 604 to the first memory 602 or the second region 607 of the second memory 604.
[0120] Other details regarding the aforementioned electronic system have been described in detail in the foregoing embodiments concerning the computing and storage system, and will not be repeated here for the sake of brevity.
[0121] Based on the above-described computing and storage system, this disclosure also provides an operation method for the computing and storage system, such as... Figure 11 As shown, the operation method includes the following steps: S100, receiving a first command; S200, in response to the first command, configuring a corresponding storage area in the first memory for the data during the execution of the program by the computing processing component; and based on the information carried in the first command that the corresponding storage area needs to be protected against power failure, performing a power failure protection operation on the storage area that needs to be protected against power failure when the computing storage system is powered off.
[0122] In some embodiments, the operation method further includes: updating the information related to the power loss protection capability of the computing storage system based on the information about the current power loss protection capability of the computing storage system in the log information of the computing storage system and the information carried in the first command that the corresponding storage area needs to be protected against power loss.
[0123] In some embodiments, the operation method further includes: receiving a second command; updating information related to the power-loss protection capability of the computing storage system based on information related to the range of storage regions requiring power-loss protection carried in the second command, and performing power-loss protection operations on the corresponding storage regions based on the information related to the range of storage regions requiring power-loss protection carried in the second command and the priority.
[0124] In some embodiments, information related to the range of the storage area requiring power-loss protection includes: the offset of the starting address of the storage area requiring power-loss protection relative to the starting address of the storage area, and the size of the data that can be stored in the storage area requiring power-loss protection.
[0125] In some embodiments, the operation method further includes: receiving a third command after the program has finished executing; the third command carries information that power-loss protection is not required for the corresponding storage area; and updating the information related to the power-loss protection capability of the computing storage system based on the change in the information regarding whether power-loss protection is required for the corresponding storage area configured for data during program execution carried by the third command compared to the information carried by the first command.
[0126] In some embodiments, the operation method further includes: receiving a fourth command; the fourth command instructing the acquisition of the power-loss protection capability of the computing storage system; and updating information related to the power-loss protection capability of the computing storage system based on the time required to execute the program carried in the fourth command and the aging rate of the power-loss protection hardware of the computing storage system.
[0127] In some embodiments, the operation method further includes: receiving a fifth command; the fifth command instructing that the condition for triggering an asynchronous event be set to the power failure protection capability of the computing storage system being lower than a preset threshold; receiving a sixth command; the sixth command instructing that an asynchronous event be requested; and sending an asynchronous event report based on the power failure protection capability of the computing storage system being lower than the preset threshold.
[0128] In some embodiments, the operation method further includes: receiving a seventh command; and in response to the seventh command, updating information regarding whether power-loss protection is required for the corresponding storage area configured in the first memory for data during program execution.
[0129] In some embodiments, the operation method further includes: when the computing storage system is powered off, based on the information carried in the first command that the corresponding storage area needs to be protected against power failure, storing the data in the storage area that needs to be protected against power failure into the first area of a second memory coupled to the controller of the computing storage system.
[0130] In some embodiments, the method of operation further includes: upon power restoration of the computing storage system, storing data in a first region of a second memory into the first memory or a second region of the second memory based on an instruction from a host coupled to the computing storage system.
[0131] The operation method of the computing storage system mentioned in the above embodiments has been described in detail in the foregoing embodiments concerning the computing storage system, and will not be repeated here for the sake of brevity.
[0132] Based on the above-described operation method of the computing storage system, this disclosure also provides a computer-readable storage medium storing a computer program, which, when executed by a processor, performs the operation method of the computing storage system of any of the above embodiments.
[0133] Here, implementing all or part of the operational methods of the computing storage system in the above embodiments can be accomplished by a computer program instructing related hardware. The program can be stored in a computer-readable storage medium, and when executed, it can include the processes of the embodiments of the above methods. The storage medium can be a magnetic random access memory (FRAM), a read-only memory (ROM), a programmable read-only memory (PROM), an erasable programmable read-only memory (EPROM), an electrically erasable programmable read-only memory (EEPROM), a flash memory, a magnetic surface memory, an optical disc or a compact disc read-only memory (CD-ROM), etc.; the storage medium can also include combinations of the above types of memory.
[0134] The features disclosed in the several device embodiments provided in this disclosure can be arbitrarily combined without conflict to obtain new device embodiments.
[0135] The methods disclosed in the several method embodiments provided in this disclosure can be arbitrarily combined without conflict to obtain new method embodiments.
[0136] The above description is merely a specific embodiment of this disclosure, but the scope of protection of this disclosure is not limited thereto. Any changes or substitutions that can be easily conceived by those skilled in the art within the scope of the technology disclosed in this disclosure should be included within the scope of protection of this disclosure.
Claims
1. A computing storage system, characterized in that, The computing storage system includes a controller, a first memory coupled to the controller, and a computing processing component for executing programs, wherein the controller is configured to: Receive the first command; In response to the first command, a corresponding storage area is configured in the first memory for the data generated during the execution of the program by the computing processing component; as well as Based on the information carried in the first command that the corresponding storage area needs to be protected against power loss, a power loss protection operation is performed on the storage area that needs to be protected against power loss when the computing storage system is powered off.
2. The computing storage system according to claim 1, characterized in that, The controller is configured to: Based on the information about the current power loss protection capability of the computing storage system in the log information of the computing storage system, and the information carried in the first command that power loss protection needs to be performed on the corresponding storage area, update the information related to the power loss protection capability of the computing storage system.
3. The computing storage system according to claim 2, characterized in that, The controller is configured to: Receive the second command; Based on the information related to the range of storage areas requiring power-loss protection carried in the second command, update the information related to the power-loss protection capability of the computing storage system, and perform power-loss protection operations on the corresponding storage areas based on the information related to the range of storage areas requiring power-loss protection carried in the second command and the priority.
4. The computing storage system according to claim 3, characterized in that, Information related to the range of storage areas requiring power-down protection includes: the offset of the starting address of the storage area requiring power-down protection relative to the starting address of the storage area, and the size of the data that can be stored in the storage area requiring power-down protection.
5. The computing storage system according to claim 1, characterized in that, The controller is configured to: Upon completion of the program execution, a third command is received; the third command carries information indicating that power-off protection for the corresponding storage area is not required. Based on the change in the information regarding whether power-loss protection is required in the corresponding storage area configured for the data during program execution carried by the third command compared to the first command, the information related to the power-loss protection capability of the computing storage system is updated.
6. The computing storage system according to claim 1, characterized in that, The controller is configured to: Receive a fourth command; the fourth command instructs the acquisition of the power-loss protection capability of the computing storage system; Based on the time required to execute the program carried in the fourth command and the aging rate of the power-loss protection hardware of the computing storage system, update the information related to the power-loss protection capability of the computing storage system.
7. The computing storage system according to claim 1, characterized in that, The controller is configured to: Receive a fifth command; the fifth command instructs that the condition for triggering an asynchronous event be set to the power failure protection capability of the computing storage system being lower than a preset threshold. Receive the sixth command; The sixth command indicates a request for an asynchronous event; If the power failure protection capability of the computing and storage system is lower than the preset threshold, an asynchronous event report is sent.
8. The computing storage system according to claim 7, characterized in that, The controller is configured to: Receive the seventh command; In response to the seventh command, the information regarding whether power-loss protection is required is updated in the corresponding storage area configured in the first memory for the data during the program execution process.
9. The computing storage system according to claim 1, characterized in that, The computing storage system further includes a second memory coupled to the controller, the controller being configured to: When the computing storage system is powered off, based on the information carried in the first command that the corresponding storage area needs to be protected against power failure, the data in the storage area that needs to be protected against power failure is stored in the first area of the second memory.
10. The computing storage system according to claim 9, characterized in that, The controller is configured to: When the computing storage system is powered back on, the data stored in the first region of the second memory is stored in the first memory or in the second region of the second memory.
11. The computing storage system according to claim 9, characterized in that, The computing storage system includes a non-volatile namespace, a computing namespace, and a subsystem local storage namespace; the non-volatile namespace includes the second memory, the computing namespace includes the computing processing component, and the subsystem local storage namespace includes the first memory.
12. An electronic system, characterized in that, The electronic system includes a host computer and a computing and storage system coupled to the host computer; the computing and storage system includes a controller, a first memory coupled to the controller, and a computing processing component for executing programs; wherein, The host is configured to send a first command; The controller is configured to: Receive the first command; In response to the first command, a corresponding storage area is configured in the first memory for the data during the program execution; and Based on the information carried in the first command that the corresponding storage area needs to be protected against power loss, a power loss protection operation is performed on the storage area that needs to be protected against power loss when the computing storage system is powered off.
13. The electronic system according to claim 12, characterized in that, The host is configured as follows: Based on the information about the power loss protection capability of the computing storage system in the log information of the acquired computing storage system and the importance of the data to be stored in the corresponding storage area, it is determined whether power loss protection is required for the corresponding storage area. The controller is configured to: Based on the information about the current power loss protection capability of the computing storage system in the log information of the computing storage system, and the information carried in the first command that power loss protection needs to be performed on the corresponding storage area, update the information related to the power loss protection capability of the computing storage system.
14. The electronic system according to claim 13, characterized in that, The host is configured as follows: Send the second command; The controller is configured to: Receive the second command; Based on the information related to the range of storage areas requiring power-loss protection carried in the second command, update the information related to the power-loss protection capability of the computing storage system, and perform power-loss protection operations on the corresponding storage areas based on the information related to the range of storage areas requiring power-loss protection carried in the second command and the priority.
15. The electronic system according to claim 12, characterized in that, The host is configured as follows: Upon completion of the program execution, a third command is sent; the third command carries information indicating that power-off protection for the corresponding storage area is not required. The controller is configured to: Receive the third command; Based on the change in the information regarding whether power-loss protection is required in the corresponding storage area configured for the data during program execution carried by the third command compared to the first command, the information related to the power-loss protection capability of the computing storage system is updated.
16. The electronic system according to claim 12, characterized in that, The host is configured as follows: Send a fourth command; the fourth command instructs the acquisition of the power-loss protection capability of the computing storage system; The controller is configured to: Receive the fourth command; Based on the time required to execute the program carried in the fourth command and the aging rate of the power-loss protection hardware of the computing storage system, update the information related to the power-loss protection capability of the computing storage system.
17. The electronic system according to claim 12, characterized in that, The host is configured as follows: Send a fifth command; the fifth command instructs that the condition for triggering the asynchronous event be set to the power failure protection capability of the computing storage system being lower than a preset threshold; Send a sixth command; the sixth command indicates a request for an asynchronous event; The controller is configured to: Receive the fifth command and the sixth command; If the power failure protection capability of the computing and storage system is lower than the preset threshold, an asynchronous event report is sent.
18. The electronic system according to claim 17, characterized in that, The host is configured as follows: Send the seventh command; The controller is configured to: Receive the seventh command; In response to the seventh command, the information regarding whether power-loss protection is required is updated in the corresponding storage area configured in the first memory for the data during the execution of the program.
19. A method for operating a computing storage system, characterized in that, include: Receive the first command; In response to the first command, a corresponding storage area is configured in the first memory for the data generated during the execution of the program by the computing processing component; as well as Based on the information carried in the first command that the corresponding storage area needs to be protected against power loss, a power loss protection operation is performed on the storage area that needs to be protected against power loss when the computing storage system is powered off.
20. The operating method according to claim 19, characterized in that, The operation method further includes: Based on the information about the current power loss protection capability of the computing storage system in the log information of the computing storage system and the information carried in the first command that power loss protection needs to be performed on the corresponding storage area, update the information related to the power loss protection capability of the computing storage system.
21. The operating method according to claim 20, characterized in that, The operation method further includes: Receive the second command; Based on the information related to the range of storage areas requiring power-loss protection carried in the second command, update the information related to the power-loss protection capability of the computing storage system, and perform power-loss protection operations on the corresponding storage areas based on the information related to the range of storage areas requiring power-loss protection carried in the second command and the priority.
22. The operating method according to claim 21, characterized in that, Information related to the range of storage areas requiring power-down protection includes: the offset of the starting address of the storage area requiring power-down protection relative to the starting address of the storage area, and the size of the data that can be stored in the storage area requiring power-down protection.
23. The operating method according to claim 19, characterized in that, The operation method further includes: Upon completion of the program execution, a third command is received; the third command carries information indicating that power-off protection for the corresponding storage area is not required. Based on the change in the information regarding whether power-loss protection is required in the corresponding storage area configured for the data during program execution carried by the third command compared to the first command, the information related to the power-loss protection capability of the computing storage system is updated.
24. The operating method according to claim 19, characterized in that, The operation method further includes: Receive a fourth command; the fourth command instructs the acquisition of the power-loss protection capability of the computing storage system; Based on the time required to execute the program carried in the fourth command and the aging rate of the power-loss protection hardware of the computing storage system, update the information related to the power-loss protection capability of the computing storage system.
25. The operating method according to claim 19, characterized in that, The operation method further includes: Receive a fifth command; the fifth command instructs that the condition for triggering an asynchronous event be set to the power failure protection capability of the computing storage system being lower than a preset threshold. Receive the sixth command; the sixth command indicates a request for an asynchronous event; If the power failure protection capability of the computing and storage system is lower than the preset threshold, an asynchronous event report is sent.
26. The operating method according to claim 25, characterized in that, The operation method further includes: Receive the seventh command; In response to the seventh command, the information regarding whether power-loss protection is required is updated in the corresponding storage area configured in the first memory for the data during the program execution process.
27. The operating method according to claim 19, characterized in that, The operation method further includes: In the event of a power failure in the computing storage system, based on the information carried in the first command that the corresponding storage area needs to be protected against power failure, the data in the storage area that needs to be protected against power failure is stored in the first area of the second memory coupled to the controller of the computing storage system.
28. The operating method according to claim 27, characterized in that, The operation method further includes: Upon restoration of power to the computing storage system, data stored in the first region of the second memory is stored in the first memory or in the second region of the second memory, based on instructions from the host coupled to the computing storage system.