Electronic system, computing storage device, host and operating method
By generating and storing snapshot information in the NVM namespace on the computing storage device, the problem of volatile data cached in the memory namespace is solved, and non-volatile backup and recovery of data is achieved.
Patent Information
- Application Number
- CN202411697744.3
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-11-25
- Publication Date
- 2026-05-29
AI Technical Summary
When a computing storage device experiences an unexpected power outage, the volatility of cached data in the memory namespace can lead to data loss.
Non-volatile backup of memory namespace cached data is achieved by generating snapshot information in the compute storage device and storing it in the NVM namespace.
Even in the event of an unexpected power outage of the computing storage device, cached data loss can be avoided, ensuring data security and recoverability.
Smart Images

Figure CN122111757A_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of data storage technology, and in particular to an electronic system, computing storage device, host, and operating method. Background Technology
[0002] With the development of storage technology, computing storage devices have emerged. Computing storage devices can store programs executed by the host, as well as cached data generated during program execution.
[0003] Computational storage devices store cached data from when the host executes a program in memory namespaces.
[0004] However, memory namespaces are volatile; cached data in memory namespaces can be lost in the event of an unexpected power outage of the computing storage device. Summary of the Invention
[0005] This application provides an electronic system, a computing storage device, a host computer, and an operating method, the technical solution of which is as follows:
[0006] According to one aspect of this application, an electronic system is provided, the electronic system including a computing storage device and a host, the computing storage device and the host being coupled;
[0007] The host is configured to send a command including instruction information to the computing storage device;
[0008] The computing storage device is configured to: acquire the indication information; and based on the indication information, generate snapshot information from the cached data in the memory namespace and store it in the NVM namespace.
[0009] According to another aspect of this application, a computing storage device is provided, the computing storage device including a controller and a non-volatile memory NVM command space;
[0010] The controller is configured to: acquire indication information;
[0011] Based on the indicated information, snapshot information is generated from the cached data in the memory namespace and stored in the NVM namespace.
[0012] According to another aspect of this application, a host is provided, the host being coupled to a computing storage device;
[0013] The host is configured to send a command to the computing storage device, including instruction information, which instructs the cached data in the memory namespace to generate snapshot information and store it in the NVM namespace.
[0014] According to another aspect of this application, a method for operating a computing storage device is provided, the method comprising:
[0015] Obtain instruction information;
[0016] Based on the indicated information, snapshot information is generated from the cached data in the memory namespace and stored in the NVM namespace.
[0017] According to another aspect of this application, a method for operating a host is provided, the method comprising:
[0018] Send a command to the computing storage device including instruction information, the instruction information being used to instruct the cached data in the memory namespace to generate snapshot information and store it in the NVM namespace.
[0019] According to another aspect of this application, a computer-readable storage medium is provided, wherein at least one instruction, at least one program, code set, or instruction set is stored therein, wherein the at least one instruction, the at least one program, the code set, or the instruction set is loaded and executed by a processor to implement the operation method of the computing storage device as described above, and / or the operation method of a host.
[0020] According to another aspect of this application, a computer program product is provided, the computer program product including computer instructions stored in a computer-readable storage medium, wherein a processor reads from the computer-readable storage medium and executes the computer instructions to implement the operation method of the computing storage device and / or the operation method of the host as described above. Attached Figure Description
[0021] To more clearly illustrate the technical solutions in the embodiments of this application, the accompanying drawings used in the description of the embodiments will be briefly introduced below. Obviously, the accompanying drawings described below are only some embodiments of this application. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.
[0022] Figure 1 This is a schematic diagram of an electronic system provided in an exemplary embodiment of this application;
[0023] Figure 2 This is a schematic diagram of an electronic system provided in an exemplary embodiment of this application;
[0024] Figure 3 This is a flowchart of a device operation method provided in an exemplary embodiment of this application;
[0025] Figure 4This is a flowchart of an operation method of a computing storage device provided in an exemplary embodiment of this application;
[0026] Figure 5 This is a schematic diagram illustrating instruction information provided in an exemplary embodiment of this application;
[0027] Figure 6 This is a schematic diagram of a set of memory ranges provided in an exemplary embodiment of this application;
[0028] Figure 7 This is a flowchart of an operation method of a computing storage device provided in an exemplary embodiment of this application;
[0029] Figure 8 This is a schematic diagram of a management command provided in an exemplary embodiment of this application;
[0030] Figure 9 This is a flowchart of an operation method of a computing storage device provided in an exemplary embodiment of this application;
[0031] Figure 10 This is a flowchart of an operation method of a computing storage device provided in an exemplary embodiment of this application;
[0032] Figure 11 This is a flowchart of an operation method of a computing storage device provided in an exemplary embodiment of this application;
[0033] Figure 12 This is a flowchart of an operation method of a computing storage device provided in an exemplary embodiment of this application;
[0034] Figure 13 This is a schematic diagram of the structure of a memory card provided in an exemplary embodiment of this application;
[0035] Figure 14 This is a schematic diagram of the structure of a solid-state driver provided in an exemplary embodiment of this application.
[0036] The accompanying drawings, which are incorporated in and form part of this specification, illustrate embodiments consistent with this application and, together with the description, serve to explain the principles of this application. Detailed Implementation
[0037] To make the objectives, technical solutions, and advantages of this application clearer, the embodiments of this application will be described in further detail below with reference to the accompanying drawings.
[0038] Exemplary embodiments will now be described in detail, examples of which are illustrated in the accompanying drawings. When the following description relates to the drawings, unless otherwise indicated, the same numbers in different drawings denote the same or similar elements. The embodiments described in the following exemplary embodiments do not represent all embodiments consistent with this application. Rather, they are merely examples of apparatuses and methods consistent with some aspects of this application as detailed in the appended claims.
[0039] The terminology used in this application is for the purpose of describing particular embodiments only and is not intended to be limiting of the application. The singular forms “a,” “the,” and “the” used in this application and the appended claims are also intended to include the plural forms unless the context clearly indicates otherwise. It should also be understood that the term “and / or” as used herein refers to and includes any or all possible combinations of one or more of the associated listed items.
[0040] It should be noted that the user information (including but not limited to user device information, user personal information, etc.) and data (including but not limited to data used for analysis, data stored, data displayed, etc.) involved in this application are all information and data authorized by the user or fully authorized by all parties, and the collection, use and processing of the relevant data shall comply with the relevant laws, regulations and standards of the relevant countries and regions.
[0041] It should be understood that although the terms first, second, etc., may be used in this application to describe various information, this information should not be limited to these terms. These terms are only used to distinguish information of the same type from one another. For example, without departing from the scope of this application, a first parameter may also be referred to as a second parameter, and similarly, a second parameter may also be referred to as a first parameter. Depending on the context, the word "if" as used herein may be interpreted as "when," "when," or "in response to determination."
[0042] Figure 1 This is a schematic diagram of an electronic system provided in one embodiment of this application. Figure 1 As shown, the electronic system 10 includes: a host 300 and a computing storage device 20, the computing storage device 20 and the host 300 being coupled;
[0043] The computing storage device 20 includes one or more memories 100 and a controller 200 coupled to the memories 100 and configured to control the memories 100.
[0044] Controller 200 can be configured to control operations performed by memory 100, such as read, erase, and program operations. Controller 200 can also be configured to manage various functions related to data stored or to be stored in memory 100, including but not limited to bad block management, garbage collection, logical address to physical address translation, and wear leveling. Optionally, controller 200 can also be configured to handle error correcting codes (ECCs) for data read from or written to memory 100. Controller 200 can also perform any other suitable functions, such as formatting memory 100.
[0045] The controller 200 can also communicate with external devices according to a specific communication protocol. For example, the controller 200 can communicate with external devices through at least one of various interface protocols. The interface protocol can be Universal Serial Bus (USB) protocol, Multi-Media Card (MMC) protocol, Peripheral Component Interconnect (PCI) protocol, PCI-E protocol, Advanced Technology Attachment (ATA) protocol, Serial ATA protocol, Parallel ATA protocol, Small Computer System Interface (SCSI) protocol, Enhanced Small Drive Interface (ESDI) protocol, Integrated Development Environment (IDE) protocol, FireWire protocol, etc.
[0046] In one alternative embodiment, the controller 200 and one or more memories 100 can be integrated into various types of electronic devices. These electronic devices may be mobile phones, desktop computers, laptop computers, tablet computers, vehicle computers, game consoles, printers, positioning devices, wearable electronic devices, smart sensors, virtual reality (VR) devices, augmented reality (AR) devices, or any other suitable electronic devices having storage therein. In other embodiments, the controller 200 and one or more memories 100 can be integrated into various types of storage devices.
[0047] The memory 100 in the computing storage device 20 can be implemented as a 3D memory, such as a 3D NAND flash memory.
[0048] The host 300 may be a processor of an electronic device (e.g., a central processing unit (CPU)) or a system-on-chip (SoC) (e.g., an application processor (AP)). The host 300 may be configured to send data to the memory 100. Alternatively, the host 300 may be configured to receive data from the memory 100.
[0049] According to some implementations, controller 200 is coupled to host 300. Controller 200 can manage data stored in memory 100 and communicate with host 300.
[0050] The controller 200 can be configured to control operations of the memory 100, such as read, erase, and program operations. The controller 200 can also be configured to manage various functions relating to data stored or to be stored in the memory 100, including but not limited to bad block management, garbage collection, logical-to-physical address translation, wear leveling, etc. In some embodiments, the controller 200 is also configured to process error correction codes (ECC) relating to data read from or written to the memory 100.
[0051] The controller 200 can also perform any other suitable functions, such as formatting the memory 100. The controller 200 can communicate with external devices according to a specific communication protocol.
[0052] In some embodiments, the controller 200 is configured to send a read command to the memory 100.
[0053] For example, the microcontroller unit in the controller 200 can generate a read command and send it to the memory 100 through the memory interface in the controller 200. The memory interface can be the interface between the controller 200 and the memory 100.
[0054] The memory 100 is configured to read data stored in a first storage cell according to a read command; the first storage cell and the second storage cell are located in the same memory string, and the word lines coupled to the first storage cell and the second storage cell are adjacent; the second storage cell is a storage cell that has not yet been written with data. For example, the peripheral circuitry in the memory 100 can read the data of the first storage cell in the memory cell array of the memory 100 according to the read command, and return the read data to the controller 200.
[0055] The controller 200 is also configured to send write commands to the memory 100.
[0056] For example, after receiving data returned by memory 100, the microcontroller unit in controller 200 can generate a write command, which can be a command to write the aforementioned data to the second storage unit. Then, the microcontroller unit sends the write command to memory 100 through the memory interface in controller 200.
[0057] The memory 100 is also configured to write data read from the first memory cell to the second memory cell according to a write command. For example, the peripheral circuitry in the memory 100 can write data to the second memory cell in the memory cell array of the memory 100 according to the write command and return a write completion response to the controller 200.
[0058] For example, computing storage device 20 has non-volatile data storage capabilities, such as memory 100 providing non-volatile memory (NVM); for example, computing storage device 20 is also called a non-volatile memory subsystem (NVM subsystem), and computing storage device 20 has the ability to execute programs; for example, computing storage device 20 supports a computing program command set, which provides a mechanism to offload program execution from host 300 to the NVM subsystem.
[0059] The Compute Program Command Set is an I / O command set used to discover, configure, and execute programs on the Compute Namespace. The data associated with the programs to be executed resides in the Memory Namespace or in the Command Data Buffer of the executing program.
[0060] like Figure 2 As shown, Figure 2 This is a schematic diagram of an electronic system provided in one embodiment of this application. The host 300 is coupled to the controller 200, which can manage the data and / or programs stored in the computing storage device 20 and communicate with the host 300.
[0061] For example, the computing storage device 20 provides a computing namespace 102, a memory namespace 104, and an NVM namespace 106; wherein the computing namespace 102 and the memory namespace 104 are volatile; and the NVM namespace 106 is non-volatile.
[0062] Computational namespace 102 is an entity (or hardware component) within a domain capable of executing one or more programs; it is a namespace associated with a computational program command set; for example, Figure 1 The controller 200 or computing resource 400 shown is a hardware component that provides the computing namespace 102. For example, the computing namespace is not associated with an endurance group or an NVM set.
[0063] Memory namespace 104 is a namespace associated with the Subsystem Local Memory Command Set; for example, the hardware component providing memory namespace 104 may be at least one of controller memory, computing resource memory, or independent memory. NVM namespace 106 is a namespace associated with the NVM Command Set or the Zoned Namespace Command Set; for example, the hardware component providing NVM namespace 106 may be non-volatile memory, which does not lose data after power failure.
[0064] Figure 3 A flowchart illustrating a device operation method provided in an exemplary embodiment of this application is shown. This method can be executed by a computing storage device and a host. The method includes:
[0065] Step 500: The host sends a command including instruction information to the computing storage device;
[0066] For example, step 500 is performed by the host, which sends a command to the storage device, the command carrying instruction information, which instructs the computing storage device to generate snapshot information of the memory namespace.
[0067] For example, the command sent by the host may be a command constructed separately for the purpose of indicating information, such as an indication command or a snapshot indication command; or it may be sent with the indication information carried in other commands, such as carrying the indication information in a management command for creating a set of memory ranges; this application does not limit the type of command or the actual sending of the command.
[0068] For example, in Figure 1 In the illustrated electronic system, the host is configured to send commands, including instruction information, to the computing storage device.
[0069] Step 510: Compute the storage device to obtain instruction information;
[0070] For example, the computing storage device acquires instruction information included in the command, which instructs the generation of snapshot information for the memory namespace. For example, as described above, the instruction information may be all or part of the information in a command sent by the host, which may be a command specifically constructed to convey information or a known command that also includes other information.
[0071] In one implementation, the controller in the computing storage device obtains indication information about the memory namespace; for example, in Figure 1 In the illustrated electronic system, the controller is configured to acquire indication information; or the computing storage device is configured to acquire indication information.
[0072] Step 520: Based on the instruction information, the compute storage device generates snapshot information from the cached data in the memory namespace and stores it in the NVM namespace;
[0073] For example, snapshot information is backup information for cached data. It is a disaster recovery backup of cached data in the memory namespace within the NVM namespace, improving the security of cached data in the memory namespace by storing snapshot information. For instance, snapshot information can be used to restore cached data when it is missing, thereby improving the security of cached data and preventing accidental loss. In one example, snapshot information is generated for a portion of the information in the memory namespace, and the cached data is the portion of information in the internal namespace that needs to be backed up. Furthermore, the command containing the indication information indicates the identity information of the cached data, such as the storage path of the cached data, to indicate which information in the memory namespace needs to be backed up to generate snapshot information. This will be described in detail below with separate embodiments. This application does not exclude the possibility of generating snapshot information for all information in the memory namespace.
[0074] For example, snapshot information can be a copy of cached data or a compressed version of the cached data. In some examples, the snapshot information carries time information, indicating when the snapshot was generated.
[0075] For example, snapshot information is used to recover cached data in the memory namespace in the event of information loss. The recovered cached data is identical to the cached data in the memory namespace at the time the snapshot information was generated.
[0076] For example, the storage location of snapshot information in the NVM namespace can be determined according to the indication information, or it can be stored in a sequential position in the NVM namespace. This application does not limit the storage address of the snapshot information. In some examples, the controller in the compute storage device writes snapshot information in the NVM namespace. For example, the controller obtains cached data in the memory namespace and generates snapshot information based on the cached data, which is then stored in the NVM namespace.
[0077] In one implementation, the controller in the compute storage device generates snapshot information from cached data in the memory namespace and stores it in the NVM namespace based on instruction information; for example, in Figure 1 In the illustrated electronic system, the controller is configured to: generate snapshot information from cached data in the memory namespace and store it in the NVM namespace based on instruction information; or the computing storage device is configured to: generate snapshot information from cached data in the memory namespace and store it in the NVM namespace.
[0078] Furthermore, the controller is further configured to: generate snapshot information from the cached data and store it in the memory based on the indication information; the cached data is stored in memory. For example, the memory is a hardware component providing the NVM namespace; the memory is a hardware component providing the memory namespace; for example, the memory can be at least one of the controller's memory, the memory of computing resources, or independent memory.
[0079] The controller stores snapshot information in memory, which is built based on cached data stored in the controller's memory or in the computing resources of a computer's storage device.
[0080] In summary, the method provided in this embodiment achieves non-volatile backup of cached data in the memory namespace by generating snapshot information in the NVM namespace. The snapshot information is stored in the NVM namespace, so it will not be lost even if the computing storage device experiences an unexpected power outage. This lays the foundation for recovering cached data in the event of information loss in the memory namespace and avoids the problem of cached data loss and unrecoverability in related technologies.
[0081] In one alternative implementation of this application, Figure 3 Steps 510 and 520 in the device operation method described herein can be combined to form new embodiments and implemented individually; Figure 4 A flowchart illustrating an operational method of a computing storage device according to an exemplary embodiment of this application is shown. This method can be executed by the computing storage device. Optionally, the method can be executed by a controller within the computing storage device. About Figure 4The descriptions of steps 510 and 520 can be found in the text above. Figure 3 I will not repeat them one by one here.
[0082] The instruction information will be further described below.
[0083] In one alternative design of this application, the indication information includes a first field, which is one or more bytes in the indication information; it is understood that the first field may be all or part of the information in the indication information.
[0084] For example, the first field is used to indicate snapshot information for generating cached data in the memory namespace. The host instructs the computing storage device to generate snapshot information via one or more bytes of the first field. For example, the instruction to generate snapshot information via the first field may be pre-negotiated between the host and the computing storage device, or it may be instructed by the host to the computing storage device, or by the computing storage device to the host, or it may be supported by the data transfer specification between the host and the computing storage device. This application does not limit the manner in which snapshot information is indicated via the first field.
[0085] For example, one or more bytes in the first field can have different values. Further, when the first field has a first value, it is used to indicate snapshot information for generating the memory namespace. For example, the first field has 2 bytes and a first value of 01; when the first field has a first value, it is used to indicate snapshot information for generating the memory namespace. It is understood that the first value of 01 is merely an exemplary description, and in different implementations, it can be implemented with other byte counts.
[0086] In another example, when the first field has the second value, the first field is used to indicate that no snapshot information for the memory namespace is generated. For instance, the first field has 2 bytes and the second value is 00; when the first field has the second value, the first field is used to indicate that no snapshot information for the memory namespace is generated. It is understood that the second value of 00 is merely an exemplary description, and in different implementations, it can be implemented with other byte counts.
[0087] In one optional implementation of this application, the indication information includes, in addition to the first field, at least one of a second field, a third field, and a fourth field; the descriptions of each field are as follows:
[0088] Regarding the second field:
[0089] The second field is used to indicate the frequency of snapshot information generation; the frequency of snapshot information is used to indicate the number of times snapshot information is generated per unit of time, which can be any one of seconds, milliseconds, minutes, hours, days, etc.
[0090] Furthermore, step 520 described above can be implemented as follows:
[0091] • Based on the indication information, at the first frequency indicated by the second field, generate snapshot information of the cached data in the memory namespace and store it in the NVM namespace.
[0092] For example, the first frequency is obtained by the controller from the indication information. When the computing storage device generates snapshot information of cached data, it generates snapshot information in response to the first field in the indication information. During the generation of snapshot information, it is constrained by the second field to generate snapshot information at the first frequency, which is the number of times snapshot information is generated per unit time as indicated by the second field.
[0093] In one implementation, the controller in the computing storage device, based on indication information and at a first frequency indicated by a second field, generates snapshot information of cached data in the memory namespace and stores it in the NVM namespace; exemplarily, in Figure 1 In the illustrated electronic system, the controller is configured to: generate snapshot information of cached data in the memory namespace and store it in the NVM namespace at a first frequency indicated by the second field, based on indication information; or the computing storage device is configured to: generate snapshot information of cached data in the memory namespace and store it in the NVM namespace at a first frequency indicated by the second field, based on indication information.
[0094] Regarding the third field:
[0095] The third field is used to indicate the identity of the NVM namespace; one or more NVM namespaces can be provided in the compute storage device; for example, the hardware component corresponding to the NVM namespace is the memory in the compute storage device. For example, the identity of the NVM namespace carried in the third field indicates the NVM namespace in the compute storage device that needs to store snapshot information.
[0096] Furthermore, step 520 described above can be implemented as follows:
[0097] • Based on the instruction information, generate snapshot information from the cached data in the memory namespace and store it in the NVM namespace whose identity is indicated by the third field as the first identity.
[0098] For example, the first identifier is obtained by the controller from the instruction information. When the compute storage device generates snapshot information for cached data, it generates snapshot information in response to the first field in the instruction information. During the generation of snapshot information, it is constrained by the third field, and the snapshot information is stored in the NVM namespace whose identity identifier is the first identifier as indicated by the third field. In one example, the identity identifier of the NVM namespace storing the snapshot information is the same as the identity identifier indicated by the third field.
[0099] In one implementation, the controller in the computing storage device generates snapshot information from cached data in the memory namespace based on indication information and stores it in the NVM namespace where the identity identifier indicated by the third field is the first identifier; for example, in Figure 1 In the illustrated electronic system, the controller is configured to: generate snapshot information from cached data in the memory namespace based on instruction information and store it in the NVM namespace whose identity is indicated by the third field as the first identity; or the computing storage device is configured to: generate snapshot information from cached data in the memory namespace based on instruction information and store it in the NVM namespace whose identity is indicated by the third field as the first identity.
[0100] Regarding the fourth field:
[0101] The fourth field indicates the starting storage location of the snapshot information in the NVM namespace; the NVM namespace provides data storage space, and the storage location carried in the fourth field is the starting location for storing snapshot information in the NVM namespace.
[0102] Furthermore, step 520 described above can be implemented as follows:
[0103] • Based on the indication information, generate snapshot information from the cached data in the memory namespace and store it in the NVM namespace starting at the first logical location indicated by the fourth field.
[0104] For example, the first logical position is obtained by the controller from the indication information. When the computing storage device generates snapshot information of cached data, it generates snapshot information in response to the first field in the indication information. During the generation of snapshot information, it is constrained by the fourth field, and the snapshot information is stored with the first logical position indicated by the fourth field as the starting position.
[0105] In one implementation, the controller in the compute storage device generates snapshot information from cached data in the memory namespace based on indication information and stores it in the NVM namespace starting at the first logical location indicated by the fourth field; for example, in Figure 1In the illustrated electronic system, the controller is configured to: generate snapshot information from cached data in the memory namespace based on indication information and store it in the NVM namespace starting at the first logical location indicated by the fourth field; or the computing storage device is configured to: generate snapshot information from cached data in the memory namespace based on indication information and store it in the NVM namespace starting at the first logical location indicated by the fourth field.
[0106] It should be noted that, as described above, the indication information includes at least one of a second, third, and fourth field in addition to the first field; the descriptions of the second to fourth fields can be combined to form new embodiments. In one example, the indication information includes the first to fourth fields described above. Accordingly, step 520 described above can be implemented as follows: based on the indication information, at a first frequency indicated by the second field, generating snapshot information from the cached data in the memory namespace, and storing it in the NVM namespace where the identity identifier indicated by the third field is the first identifier, starting at the first logical location indicated by the fourth field.
[0107] Figure 5 A schematic diagram of the indication information provided in one embodiment of this application is provided. The indication information includes the following fields: Snapshot Flag 611, NVM Namespace IdentityDocument 612, Start Logical Block Addressing (Start LBA) 613, and Refresh Frequency 614.
[0108] In one alternative implementation, Figure 5 The document also shows the number of bytes for the fields included in the indication information, such as: 2 bytes for snapshot flag 611, 4 bytes for NVM namespace identity 612, 8 bytes for starting logical address 613, and 2 bytes for refresh rate 614. This is understandable. Figure 5 The number of bytes and their order in the text are merely illustrative; different implementations may use different byte counts. For example, in... Figure 5 For details regarding snapshot flag 611, please refer to the first field above; for details regarding NVM namespace identifier 612, please refer to the third field above; for details regarding starting logical address 613, please refer to the fourth field above; for details regarding refresh rate 614, please refer to the second field above. These details will not be repeated here.
[0109] Next, we will further introduce commands that include instruction information.
[0110] In one optional design of this application, the command including instruction information is implemented as a management command, which includes indication information. For example, the management command is used to create a memory range set; the management command is also called a memory range set management command.
[0111] The memory range set is a collection of at least one memory range within a memory namespace; exemplarily, a memory range is used to indicate a segment of memory within Subsystem Local Memory (SLM) provided by the compute storage device. Exemplarily, a memory range is specified by a Memory Namespace ID (MNSID), an offset, and a length. The memory range set is used to indicate at least one memory range that the compute storage device provides for caching during program execution.
[0112] Figure 6 A schematic diagram of a set of memory ranges provided in an exemplary embodiment of this application is shown.
[0113] Memory range sets are created in the computing namespace. Memory range sets are used to restrict access to a subset of subsystem local memory by programs executing on computing storage devices. The first memory range set 1021a created in the first computing namespace 1021 and the second memory range set 1022a created in the second computing namespace 1022 are used as examples.
[0114] For the first memory range set 1021a, the first memory range set 1021a is a set of the first memory range 21a and the second memory range 21b; the memory range is used to indicate a segment of memory in the subsystem's local memory namespace.
[0115] Specifically, the namespace identifier (NSID) recorded in the first memory range 21a is 200, the starting byte is 20MiB, and the length is 10MiB. The first memory range 21a is used to indicate a memory segment in the first memory namespace 1041 with the namespace identifier 200, starting at 20MiB, ending at 30MiB, and with a length of 10MiB.
[0116] The second memory range 21b records NSID=200, Starting Byte=60MiB, Length=20MiB; the second memory range 21b is used to indicate a memory segment in the first memory namespace 1041 with namespace identifier 200, starting at 60MiB and ending at 80MiB, with a length of 20MiB.
[0117] For the second memory range set 1022a, the second memory range set 1022a is a set of the third memory range 22a, the fourth memory range 22b, and the fifth memory range 22c.
[0118] Specifically, the third memory range 22a records NSID=200, Starting Byte=10MiB, Length=10MiB; the third memory range 22a is used to indicate a memory segment in the first memory namespace 1041 with namespace identifier 200, starting at 10MiB and ending at 20MiB, with a length of 10MiB.
[0119] The fourth memory range 22b records NSID=200, Starting Byte=50MiB, Length=20MiB; the fourth memory range 22b is used to indicate a memory segment with a length of 20MiB in the first memory namespace 1041 with namespace identifier 200, starting at 50MiB and ending at 70MiB.
[0120] The fifth memory range 22c records NSID=210, Starting Byte=0MiB, Length=25MiB; the fifth memory range 22c is used to indicate a memory segment in the second memory namespace 1042 with namespace identifier 210, starting at position 0MiB, ending at position 25MiB, and with a length of 25MiB.
[0121] Furthermore, the computing storage device creates a memory range set based on management commands, which includes at least one memory address in the memory namespace where cached data is stored; the memory range set includes the memory addresses of the cached data in the memory namespace.
[0122] For example, cached data is used to store at least one of an input cache, an output cache, and a temporary data cache during the execution of a program in the computing storage device. For example, the computing storage device has the capability to execute a program, and a set of memory ranges is used to indicate at least one memory range that the computing storage device provides for caching the program during execution. For example, the input cache is a cache built in a memory namespace for the program's input data; the output cache is a cache built in a memory namespace for the program's output data; and the temporary data cache is a cache built in a memory namespace for intermediate computation results generated during the program's execution. At least one of the input cache, output cache, and temporary data cache is stored in the memory namespace. When the aforementioned data is used again during the program's execution, the data can be quickly retrieved from the memory namespace, avoiding recalculation of the data and improving the program's execution efficiency.
[0123] Figure 7 A flowchart illustrating an exemplary embodiment of this application shows an operation method of a computing storage device. This method can be executed by the computing storage device. Optionally, the method can be executed by a controller within the computing storage device. That is, in Figure 4 Based on the illustrated embodiment, step 515 is also included:
[0124] Step 515: Based on the configuration information, determine the cached data in the memory namespace;
[0125] For example, the configuration information is used to indicate the location of at least one memory range in the memory namespace within the memory range set. The configuration information indicates the memory addresses within the memory namespace that include cached data within the memory range set;
[0126] For example, the configuration information indicates at least one memory range including the memory address of the cached data in the memory namespace, and the cached data is determined based on the configuration information. For example, the management command includes indication information used to instruct the generation of snapshot information for the created set of memory ranges.
[0127] In one implementation, the controller in the computing storage device determines the cached data in the memory namespace based on configuration information; for example, in Figure 1 In the illustrated electronic system, the controller is configured to determine cached data in the memory namespace based on setting information; or the computing storage device is configured to determine cached data in the memory namespace based on setting information.
[0128] In one alternative implementation, the setting information is used to indicate at least one of the following:
[0129] The length of the memory range is described in bytes, indicating the length of the memory range to be created. The Memory Namespace ID (MNSID) corresponding to the memory range is the identifier of the memory namespace to which the set of memory ranges belongs; for example, the MNSID is the identifier of the memory namespace storing cached data that needs to be used to build snapshots; similar to NVM namespaces, compute storage devices can provide one or more memory namespaces. The starting position is the starting storage location of the created memory range within the memory namespace.
[0130] Figure 8 A schematic diagram of a management command provided in one embodiment of this application is provided. The management command includes setting information and instruction information. The setting information includes the following fields: memory namespace identity 601 (also called namespace identifier NSID), length 602, and starting byte 603. The byte position of memory namespace identity 601 is from byte 00 to byte 03, and the number of bytes is 4; the byte position of length 602 is from byte 04 to byte 07, and the number of bytes is 4; the byte position of starting byte 603 is from byte 08 to byte 15, and the number of bytes is 8. For example, Figure 5 The value indicates the starting position of the memory range in bytes.
[0131] The indication information includes the following fields: snapshot flag 611, NVM namespace identity 612, starting logical address 613, and refresh rate 614. The snapshot flag 611 is located at bytes 16-17 and consists of 2 bytes; the NVM namespace identity 612 is located at bytes 18-21 and consists of 4 bytes; the starting logical address 613 is located at bytes 22-29 and consists of 8 bytes; and the refresh rate 614 is located at bytes 30-31 and consists of 2 bytes.
[0132] Figure 9 A flowchart illustrating an exemplary embodiment of this application shows a method for operating a computing storage device. This method can be executed by the computing storage device. Optionally, the method can be executed by a controller in the computing storage device. The method includes:
[0133] Step 702: Parse the management command and determine whether the value of the snapshot flag field is the first value;
[0134] For example, the snapshot flag field in the management command, also known as the first field, indicates that snapshot information for the memory namespace should be generated when the snapshot flag field has the first value, and proceeds to step 704. When the snapshot flag field has a different value than the first value (e.g., the second value), it indicates that snapshot information for the memory namespace should not be generated, and proceeds to step 706. For further explanation of the first field, the first value, and the second value, please refer to the above description of the command information, as well as... Figure 5 The details described in the text will not be repeated here.
[0135] Step 704: Construct a memory range set in the memory namespace according to the management commands, and generate snapshot information for the cached data in the memory range set in the NVM namespace;
[0136] For example, this step is performed when the snapshot flag field is the first value; the management command is used to construct the memory range set, and in response to the instruction of the snapshot flag field in the management command, snapshot information is generated for the cached data in the memory range set in the NVM namespace.
[0137] Step 706: Construct a memory range set based on management commands;
[0138] For example, this step is performed when the value of the snapshot flag field differs from the first value; the management command is used to construct a memory range set; when the value of the snapshot flag field in the management command differs from the first value, it indicates that snapshot information for the memory namespace is not generated, and is only used to construct the memory range set. A memory range set is a collection of at least one memory range within a memory namespace; for example, a memory range is used to indicate a segment of memory within a memory namespace.
[0139] In summary, the method provided in this embodiment generates snapshot information in the NVM namespace by carrying instruction information in the management command, and achieves backup of cached data in the memory namespace in a non-volatile manner. The management command includes setting information and instruction information. While being compatible with the various fields of the setting information in related technologies, the management command simultaneously instructs the computing storage device to generate snapshot information. This lays the foundation for recovering cached data in the event of information loss in the memory namespace and avoids the problem of cached data loss and unrecoverability in related technologies.
[0140] Figure 10 A flowchart illustrating an exemplary embodiment of this application shows an operation method of a computing storage device. This method can be executed by the computing storage device. Optionally, the method can be executed by a controller within the computing storage device. That is, in Figure 4 Based on the illustrated embodiment, step 530 is also included:
[0141] Step 530: In the event of information loss in the memory namespace, recoverable cache data is constructed in the memory namespace based on the snapshot information;
[0142] For example, the reason for the loss of information in the memory namespace may be that the hardware component providing the memory namespace is damaged, or that the data in the memory namespace is volatile and is lost after the computing storage device is powered off; this embodiment does not limit the reasons for the loss of information in the memory namespace.
[0143] As described above, snapshot information can be a copy of cached data or obtained by compressing cached data. Correspondingly, based on snapshot information, the way to build and restore cached data in the memory namespace can be either by directly copying a copy of the cached data or by decompressing the snapshot information.
[0144] In one implementation, the controller in the computing storage device, in the event of information loss in the memory namespace, constructs recoverable cache data in the memory namespace based on snapshot information; for example, in Figure 1 In the illustrated electronic system, the controller is configured to: in the event of information loss in the memory namespace, construct recovery cache data in the memory namespace based on snapshot information; or the computing storage device is configured to: in the event of information loss in the memory namespace, construct recovery cache data in the memory namespace based on snapshot information.
[0145] In one alternative implementation, this step can be implemented as follows:
[0146] • In the event of a power outage followed by a power-on of the computing storage device, recovery cache data is constructed in the memory namespace based on snapshot information;
[0147] For example, data stored in the memory namespace is volatile. When the computing storage device is powered off and then powered on again, the cached data saved before the power outage is lost, creating a need to recover the cached data. For example, the power outage of the computing storage device could be due to the computing storage device being disconnected from the host, an unexpected power interruption, or user-intentioned shutdown. This application does not limit the cause of the power outage.
[0148] In one implementation, the controller in the computing storage device, upon power-on after a power outage, constructs restored cache data in the memory namespace based on snapshot information; for example, in Figure 1In the illustrated electronic system, the controller is further configured to: upon power-on of the computing storage device after a power outage, construct recovery cache data in the memory namespace based on snapshot information; or the computing storage device is further configured to: upon power-on of the computing storage device after a power outage, construct recovery cache data in the memory namespace based on snapshot information.
[0149] Figure 11 A flowchart illustrating an exemplary embodiment of this application shows a method for operating a computing storage device. This method can be executed by the computing storage device. Optionally, the method can be executed by a controller in the computing storage device. The method includes:
[0150] Step 712: Determine if snapshot information exists in the NVM namespace;
[0151] For example, the existence of snapshot information in the NVM namespace can be determined based on at least one of the following: the storage location, format, and name of the snapshot information; for example, the aforementioned information may be recorded when the snapshot information is constructed. Alternatively, the existence of snapshot information in the NVM namespace can be indicated by the first field being a first value.
[0152] For example, if snapshot information exists in the NVM namespace, backup information is built before the cached data is missing, and step 714 is executed; if snapshot information does not exist in the NVM namespace, backup information is not built before the cached data is missing, and step 716 is executed.
[0153] Step 714: Restore the snapshot information in the NVM namespace to the memory namespace;
[0154] For example, if snapshot information exists in the NVM namespace, this step is performed; recovery cache data is built by directly copying the snapshot information to the memory namespace, and the recovery cache data is the same as the cache data in the memory namespace at the time the snapshot information was generated.
[0155] Step 716: Re-execute the program in the computing namespace of the storage device;
[0156] For example, this step is performed when there is no snapshot information in the NVM namespace; since there is no snapshot information in the NVM namespace, the cached data in the memory namespace cannot be recovered. The program in the compute namespace of the storage device is re-executed, and the cached data of the program is stored in the memory namespace during the execution of the program.
[0157] In summary, the method provided in this embodiment achieves non-volatile backup of cached data in the memory namespace by generating snapshot information in the NVM namespace. Since the snapshot information is stored in the NVM namespace, it will not be lost even if the computing storage device experiences an unexpected power outage. In the event of information loss in the memory namespace, it enables the recovery of cached data based on the snapshot information, thus restoring the cached data at the time the snapshot information was generated. This avoids the problem of cached data loss and unrecoverable issues in related technologies.
[0158] Figure 12 A flowchart illustrating an exemplary embodiment of this application shows an operation method of a computing storage device. This method can be executed by the computing storage device. Optionally, the method can be executed by a controller within the computing storage device. That is, in Figure 4 Based on the illustrated embodiment, steps 505 and 506 are also included:
[0159] Step 505: Obtain capability query information;
[0160] For example, the capability query information is sent by the host to the computing storage device; for example, the host sends a command to the computing storage device including the capability query information. For example, the command in this step and Figure 3 The commands described in step 500 are usually different commands, but it is not impossible for them to be the same command. For example, one such command capable of querying information is the Identify command;
[0161] In one implementation, the controller in the computing storage device obtains capability query information; for example, in Figure 1 In the illustrated electronic system, the controller is configured to acquire capability query information; or the computing storage device is configured to acquire capability query information.
[0162] For example, capability query information is sent from the host to the computing storage device. Figure 3 Step 500 in the process can be combined with the host sending capability query information to the computing storage device to form a new embodiment and implemented separately; Figure 1 In the electronic system shown, the host is also configured to send capability query information to the computing storage device.
[0163] Step 506: Send a response to the capability query;
[0164] For example, the response information is feedback information on the capability query information, indicating whether the compute storage device has the capability to generate snapshot information in the NVM namespace through a one-byte Memory Range Snapshot Supported field; further, when the value of the Memory Range Snapshot Supported field is the first value (e.g., 1), the response information is used to indicate that the compute storage device has the capability to generate snapshot information in the NVM namespace.
[0165] For example, when the host sends a capability query to the computing storage device via an identification command, the data structure of the response information is the data structure of the Identify I / O Command Set provided by the controller. The snapshot support field is one byte in the Reserve field of the aforementioned data structure. For example, in the Identify I / O Command Set data structure provided by the controller: bytes 00 to 03 are the Version (VER) field, which contains a specification version descriptor indicating the specification version supported by the controller. Bytes 04 to 4095 are the Reserved fields.
[0166] In one implementation, the controller in the computing storage device sends a response to the capability query; for example, in Figure 1 In the illustrated electronic system, the controller is configured to send a response message to the capability query; or the computing storage device is configured to send a response message to the capability query.
[0167] In summary, the method provided in this embodiment enables the host to query whether the computing storage device has the ability to generate snapshot information in the NVM namespace through capability query information; by generating snapshot information in the NVM namespace, it achieves non-volatile backup of cached data in the memory namespace; the snapshot information is stored in the NVM namespace, so even if the computing storage device experiences an unexpected power outage, the snapshot information will not be lost; thus avoiding the problem of cached data loss and unrecoverable issues in related technologies.
[0168] The host computer will be further described below.
[0169] For example, Figure 3 Step 500 in the above can be implemented independently as an embodiment of the host's operation method; similarly, refer to Figure 12 The host's operation method, as described in the document, also includes: the host sending capability query information to the computing and storage devices; for an introduction to capability query information, please refer to [link to document]. Figure 12 Corresponding implementation examples.
[0170] In one alternative design, step 500 can be implemented as any of the following:
[0171] • In response to the first program in the computing storage device exceeding a time threshold during continuous execution, a command including indication information is sent to the computing storage device;
[0172] For example, if the continuous execution time of the first program exceeds the time threshold, the first program is a program that needs to be continuously executed. The intermediate data of the first program during execution is important, and the cached data obtained during the execution of the first program may be used for a long time. Therefore, the cached data during the execution of the first program needs to be backed up in the form of snapshot information.
[0173] • In response to the selection operation for the second program, a command including instruction information is sent to the computing storage device;
[0174] For example, when the second program is selected, based on the user's human-computer interaction, the second program, which is of great importance, is selected. The intermediate data of the second program during its execution is data that is of great importance as determined by the user. The cached data during the execution of the second program needs to be backed up in the form of snapshot information.
[0175] • In response to the number of multiple programs executing in parallel on the computing storage device exceeding a certain threshold, a command including instruction information is sent to the computing storage device;
[0176] For example, when the number of multiple programs running in parallel exceeds a certain threshold, the programs executed by the computing storage device have high concurrency. To avoid data loss in the memory namespace, a large number of programs need to be re-executed. Backing up cached data through snapshot information can avoid the problem of reduced data processing efficiency caused by repeated execution of a large number of programs.
[0177] In one implementation, Figure 1 In the illustrated electronic system, the host computer is further configured as follows:
[0178] In response to the fact that the continuous execution time of the first program in the computing storage device exceeds a time threshold, a command including indication information is sent to the computing storage device;
[0179] Alternatively, in response to a selection operation for the second program, a command including instruction information is sent to the computing storage device;
[0180] Alternatively, in response to the number of multiple programs executing in parallel on the computing storage device exceeding a certain threshold, a command including instruction information is sent to the computing storage device.
[0181] In summary, the method provided in this embodiment, by sending a command including instruction information to the computing storage device when the intermediate data during program execution is important, enables the generation of snapshot information in the NVM namespace and achieves backup of cached data in the memory namespace in a non-volatile manner; thus avoiding the problem of cached data loss and unrecoverability in related technologies.
[0182] Those skilled in the art will understand that the above embodiments can be implemented independently, or the above embodiments can be freely combined to create new embodiments to implement at least one of the device operation method, computing storage device operation method, and host operation method of this application.
[0183] In one embodiment of this application, an electronic system is provided, the electronic system including a computing storage device and a host, the computing storage device and the host being coupled;
[0184] The host is configured to send a command including instruction information to the computing storage device;
[0185] The computing storage device is configured to: acquire the indication information; and based on the indication information, generate snapshot information from the cached data in the memory namespace and store it in the NVM namespace.
[0186] In an optional implementation of this embodiment, the indication information includes a first field, which is used to indicate the snapshot information for generating the cached data in the memory namespace.
[0187] In an optional implementation of this embodiment, when the first field is a first value, the first field is used to indicate the snapshot information for generating the memory namespace.
[0188] In an optional implementation of this embodiment, the indication information further includes at least one of a second field, a third field, and a fourth field;
[0189] The second field is used to indicate the frequency at which the snapshot information is generated;
[0190] The third field is used to indicate the identity of the NVM namespace;
[0191] The fourth field is used to indicate the starting storage location of the snapshot information in the NVM namespace.
[0192] In an optional implementation of this embodiment, the computing storage device is further configured to: generate snapshot information from the cached data in the memory namespace and store it in the NVM namespace at a first frequency indicated by the second field.
[0193] In an optional implementation of this embodiment, the computing storage device is further configured to: generate snapshot information from the cached data in the memory namespace and store it in the NVM namespace where the identity identifier indicated by the third field is the first identifier.
[0194] In an optional implementation of this embodiment, the computing storage device is further configured to: generate snapshot information from the cached data in the memory namespace and store it in the NVM namespace starting at the first logical location indicated by the fourth field.
[0195] In an optional implementation of this embodiment, the command is a management command, which includes the instruction information. The management command is used to create a set of memory ranges, which is a collection of at least one memory range in the memory namespace. The memory range is used to indicate a segment of memory in the local memory of the subsystem provided by the computing storage device.
[0196] In an optional implementation of this embodiment, the memory range set includes the memory address of the cached data in the memory namespace, and the cached data is at least one of the input cache, output cache, and temporary data cache of the program in the computing storage device during execution.
[0197] In an optional implementation of this embodiment, the management command further includes setting information;
[0198] The computing storage device is further configured to: determine the cached data in the memory namespace based on the setting information, wherein the setting information is used to indicate the location of at least one memory range in the memory namespace within the memory range set.
[0199] In an optional implementation of this embodiment, the setting information is used to indicate at least one of the following: the length of the memory range, the memory namespace identity identifier corresponding to the memory range, and the starting position of the memory range in the memory namespace.
[0200] In an optional implementation of this embodiment, the host is further configured as follows:
[0201] In response to the first program in the computing storage device exceeding a time threshold during continuous execution, a command including the indication information is sent to the computing storage device;
[0202] Alternatively, in response to a selection operation for a second program, a command including the indication information is sent to the computing storage device;
[0203] Alternatively, in response to the number of multiple programs executing in parallel in the computing storage device exceeding a number threshold, the command including the indication information is sent to the computing storage device.
[0204] In an optional implementation of this embodiment, the computing storage device is further configured to: in the event of information loss in the memory namespace, construct recovery cache data in the memory namespace based on the snapshot information.
[0205] In an optional implementation of this embodiment, the computing storage device is further configured to: upon power-on after a power outage, construct the recovery cache data in the memory namespace based on the snapshot information.
[0206] In an optional implementation of this embodiment, the host is further configured to: send capability query information to the computing storage device;
[0207] The computing storage device is also configured to: acquire the capability query information;
[0208] And a response message for sending the capability query information, the response message being used to indicate that the computing storage device has the capability to generate the snapshot information in the NVM namespace.
[0209] Figure 13 This application relates to a schematic diagram of the structure of a memory card; as shown in the figure. Figure 13 As shown, controller 200 and a single memory 100 can be integrated into memory card 22. Memory card 22 may include PCMCIA (PC) cards, compact flash (CF) cards, smart media (SM) cards, memory sticks, multi-media cards (MMC), ultra-small form factor (RS-MMC), micro-MMC, secure digital (SD) cards, universal flash storage (UFS), etc. Exemplarily, controller 200 is designed for operation in low duty cycle environments. Figure 13As shown, the memory card 22 may further include a connector 22a coupling the memory card 22 to the host. The memory card 22 includes a controller 200, volatile memory 100a, and non-volatile memory 100b. For example, the volatile memory 100a is volatile and loses data after power failure, and is a hardware component providing a compute namespace and / or a memory namespace; the non-volatile memory 100b does not lose data after power failure and is a hardware component providing an NVM namespace. For example, the memory card 22 also includes compute resources 400, and the hardware component corresponding to the compute namespace is the compute resources 400.
[0210] Figure 14 This application relates to a schematic diagram of a solid-state driver; as shown in the figure. Figure 14 As shown, controller 200 and multiple memories 100 can be integrated into solid-state drive (SSD) 24. Controller 200 is designed to operate in high duty cycle environments. Solid-state drive 24 may also include SSD connector 24a that couples solid-state drive 24 to the host. For a description of controller 200, volatile memory 100a, non-volatile memory 100b, and computing resources 400 in solid-state drive 24, please refer to the above description. Figure 13 I will not repeat them one by one here.
[0211] In an exemplary embodiment, a chip is also provided, the chip including programmable logic circuitry and / or program instructions, which, when the chip is run on a computer device, are used to implement the operation methods of the computing storage device described above, and / or the operation methods of the host.
[0212] In an exemplary embodiment, a computer program product is also provided, comprising computer instructions stored in a computer-readable storage medium. A processor of a computer device reads the computer instructions from the computer-readable storage medium and executes the computer instructions to implement the operation methods of the computing storage device and / or the operation methods of the host provided in the above-described method embodiments.
[0213] In an exemplary embodiment, a computer-readable storage medium is also provided, which stores a computer program that is loaded and executed by a processor to implement the operation methods of the computing storage device and / or the operation methods of the host provided in the above-described method embodiments.
[0214] Those skilled in the art will understand that all or part of the steps of the above embodiments can be implemented by hardware or by a program instructing related hardware. The program can be stored in a computer-readable storage medium, such as a read-only memory, a disk, or an optical disk.
[0215] Those skilled in the art will recognize that the functions described in the embodiments of this application in one or more of the above examples can be implemented using hardware, software, firmware, or any combination thereof. When implemented using software, these functions can be stored in a computer-readable medium or transmitted as one or more instructions or code on a computer-readable medium. Computer-readable media include computer storage media and communication media, wherein communication media include any medium that facilitates the transfer of a computer program from one place to another. Storage media can be any available medium that can be accessed by a general-purpose or special-purpose computer.
[0216] The above description is merely an optional embodiment of this application and is not intended to limit this application. Any modifications, equivalent substitutions, improvements, etc., made within the spirit and principles of this application should be included within the protection scope of this application.
Claims
1. An electronic system, characterized in that, The electronic system includes a computing storage device and a host, wherein the computing storage device and the host are coupled. The host is configured to send a command including instruction information to the computing storage device; The computing storage device is configured to: acquire the indication information; and based on the indication information, generate snapshot information from the cached data in the memory namespace and store it in the non-volatile memory NVM namespace.
2. The electronic system according to claim 1, characterized in that, The indication information includes a first field, which is used to indicate the snapshot information for generating the cached data in the memory namespace.
3. The electronic system according to claim 2, characterized in that, When the first field is a first value, the first field is used to indicate the snapshot information for generating the memory namespace.
4. The electronic system according to any one of claims 1 to 3, characterized in that, The indication information also includes at least one of the second field, the third field, and the fourth field; The second field is used to indicate the frequency at which the snapshot information is generated; The third field is used to indicate the identity of the NVM namespace; The fourth field is used to indicate the starting storage location of the snapshot information in the NVM namespace.
5. The electronic system according to claim 4, characterized in that, The computing storage device is further configured to generate snapshot information from the cached data in the memory namespace and store it in the NVM namespace at a first frequency indicated by the second field.
6. The electronic system according to claim 4, characterized in that, The computing storage device is further configured to: generate snapshot information from the cached data in the memory namespace and store it in the NVM namespace where the identity identifier indicated by the third field is the first identifier.
7. The electronic system according to claim 4, characterized in that, The computing storage device is further configured to: generate snapshot information from the cached data in the memory namespace and store it in the NVM namespace starting at the first logical location indicated by the fourth field.
8. The electronic system according to any one of claims 1 to 3, characterized in that, The command is a management command, which includes the instruction information. The management command is used to create a set of memory ranges, which is a collection of at least one memory range in the memory namespace. The memory range is used to indicate a segment of memory in the local memory of the subsystem provided by the computing storage device.
9. The electronic system according to claim 8, characterized in that, The memory range set includes the memory address of the cached data in the memory namespace, and the cached data is at least one of the input cache, output cache, and temporary data cache of the program in the computing storage device during execution.
10. The electronic system according to claim 8, characterized in that, The management commands also include setting information; The computing storage device is further configured to: determine the cached data in the memory namespace based on the setting information, wherein the setting information is used to indicate the location of at least one memory range in the memory namespace within the memory range set.
11. The electronic system according to claim 10, characterized in that, The setting information is used to indicate at least one of the following: the length of the memory range, the memory namespace identity identifier corresponding to the memory range, and the starting position of the memory range in the memory namespace.
12. The electronic system according to any one of claims 1 to 3, characterized in that, The host is further configured as follows: In response to the first program in the computing storage device exceeding a time threshold during continuous execution, a command including the indication information is sent to the computing storage device; Alternatively, in response to a selection operation for a second program, a command including the indication information is sent to the computing storage device; Alternatively, in response to the number of multiple programs executing in parallel in the computing storage device exceeding a number threshold, the command including the indication information is sent to the computing storage device.
13. The electronic system according to any one of claims 1 to 3, characterized in that, The computing storage device is further configured to: in the event of information loss in the memory namespace, construct recovery cache data in the memory namespace based on the snapshot information.
14. The electronic system according to claim 13, characterized in that, The computing storage device is further configured to: upon power-on after a power outage, construct the recovery cache data in the memory namespace based on the snapshot information.
15. The electronic system according to any one of claims 1 to 3, characterized in that, The host is also configured to send capability query information to the computing storage device; The computing storage device is also configured to: acquire the capability query information; And a response message for sending the capability query information, the response message being used to indicate that the computing storage device has the capability to generate the snapshot information in the NVM namespace.
16. A computing storage device, characterized in that, The computing storage device includes a controller and a non-volatile memory NVM command space; The controller is configured to: acquire indication information; Based on the indicated information, snapshot information is generated from the cached data in the memory namespace and stored in the NVM namespace.
17. The computing storage device according to claim 16, characterized in that, The indication information includes a first field, which is used to indicate the snapshot information for generating the cached data in the memory namespace.
18. The computing storage device according to claim 17, characterized in that, When the first field is a first value, the first field is used to indicate the snapshot information for generating the memory namespace.
19. The computing storage device according to any one of claims 16 to 18, characterized in that, The indication information also includes at least one of the second field, the third field, and the fourth field; The second field is used to indicate the frequency at which the snapshot information is generated; The third field is used to indicate the identity of the NVM namespace; The fourth field is used to indicate the starting storage location of the snapshot information in the NVM namespace.
20. The computing storage device according to any one of claims 16 to 18, characterized in that, The computing storage device also includes a memory; The controller is further configured to: generate snapshot information from the cached data based on the indication information and store it in the memory, wherein the cached data is stored in memory.
21. The computing storage device according to any one of claims 16 to 18, characterized in that, The controller is also configured to: in the event of information loss in the memory namespace, construct recovery cache data in the memory namespace based on the snapshot information.
22. The computing storage device according to any one of claims 16 to 18, characterized in that, The controller is also configured to: acquire capability query information; And a response message for sending the capability query information, the response message being used to indicate that the computing storage device has the capability to generate the snapshot information in the NVM namespace.
23. A host computer, characterized in that, The host and computing storage device are coupled; The host is configured to send a command to the computing storage device, including instruction information, which instructs the cached data in the memory namespace to generate snapshot information and store it in the NVM namespace.
24. The host computer according to claim 23, characterized in that, The indication information includes a first field, which is used to indicate the snapshot information for generating the cached data in the memory namespace.
25. The host computer according to claim 24, characterized in that, When the first field is a first value, the first field is used to indicate the snapshot information for generating the memory namespace; When the first field is a second value, the first field is used to indicate that the snapshot information of the memory namespace is not generated.
26. The host computer according to any one of claims 23 to 25, characterized in that, The indication information also includes at least one of the second field, the third field, and the fourth field; The second field is used to indicate the frequency at which the snapshot information is generated; The third field is used to indicate the identity of the NVM namespace; The fourth field is used to indicate the starting storage location of the snapshot information in the NVM namespace.
27. The host computer according to any one of claims 23 to 25, characterized in that, The host is also configured to send capability query information to the computing storage device, the capability query information being used to query whether the computing storage device has the capability to generate the snapshot information in the NVM namespace.
28. The host computer according to any one of claims 23 to 25, characterized in that, The host is further configured as follows: In response to the first program in the computing storage device exceeding a time threshold during continuous execution, a command including the indication information is sent to the computing storage device; Alternatively, in response to a selection operation for a second program, a command including the indication information is sent to the computing storage device; Alternatively, in response to the number of multiple programs executing in parallel in the computing storage device exceeding a number threshold, the command including the indication information is sent to the computing storage device.
29. A method for operating a computing storage device, characterized in that, The method includes: Obtain instruction information; Based on the indicated information, snapshot information is generated from the cached data in the memory namespace and stored in the NVM namespace.
30. The method according to claim 29, characterized in that, The indication information includes a first field, which is used to indicate the snapshot information for generating the cached data in the memory namespace.
31. The method according to claim 30, characterized in that, When the first field is a first value, the first field is used to indicate the snapshot information for generating the memory namespace.
32. The method according to any one of claims 29 to 31, characterized in that, The indication information also includes at least one of the second field, the third field, and the fourth field; The second field is used to indicate the frequency at which the snapshot information is generated; The third field is used to indicate the identity of the NVM namespace; The fourth field is used to indicate the starting storage location of the snapshot information in the NVM namespace.
33. A method for operating a host computer, characterized in that, The method includes: Send a command to the computing storage device including instruction information, the instruction information being used to instruct the cached data in the memory namespace to generate snapshot information and store it in the NVM namespace.
34. The method according to claim 33, characterized in that, The indication information includes a first field, which is used to indicate the snapshot information for generating the cached data in the memory namespace.
35. The method according to claim 34, characterized in that, When the first field is a first value, the first field is used to indicate the snapshot information for generating the memory namespace; When the first field is a second value, the first field is used to indicate that the snapshot information of the memory namespace is not generated.
36. The method according to any one of claims 33 to 35, characterized in that, The indication information also includes at least one of the second field, the third field, and the fourth field; The second field is used to indicate the frequency at which the snapshot information is generated; The third field is used to indicate the identity of the NVM namespace storing the snapshot information; The fourth field is used to indicate the starting storage location of the snapshot information in the NVM namespace.
37. A computer-readable storage medium, characterized in that, The readable storage medium stores executable instructions, which are loaded and executed by a processor to implement the operation method of the computing storage device as described in any one of claims 29 to 32, and / or the operation method of the host as described in any one of claims 33 to 36.
38. A computer program product, characterized in that, The computer program product includes computer instructions stored in a computer-readable storage medium, which a processor reads from and executes to implement the operation method of the computing storage device as described in any one of claims 29 to 32, and / or the operation method of the host as described in any one of claims 33 to 36.
