WO2024012349A1 - Data processing method, ssd controller, electronic device and readable storage medium - Google Patents

Data processing method, ssd controller, electronic device and readable storage medium Download PDF

Info

Publication number
WO2024012349A1
WO2024012349A1 PCT/CN2023/106134 CN2023106134W WO2024012349A1 WO 2024012349 A1 WO2024012349 A1 WO 2024012349A1 CN 2023106134 W CN2023106134 W CN 2023106134W WO 2024012349 A1 WO2024012349 A1 WO 2024012349A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
index
volatile memory
circuit
host
Prior art date
Application number
PCT/CN2023/106134
Other languages
French (fr)
Chinese (zh)
Inventor
田海东
薛晓勇
王飞
Original Assignee
中兴通讯股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 中兴通讯股份有限公司 filed Critical 中兴通讯股份有限公司
Publication of WO2024012349A1 publication Critical patent/WO2024012349A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0674Disk device
    • G06F3/0676Magnetic disk device
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Definitions

  • Embodiments of the present application relate to, but are not limited to, the field of data processing technology, and in particular, to a data processing method, a solid state drive SSD controller, electronic equipment, and a computer-readable storage medium.
  • the key-value storage system uses key-value pairs as the most basic storage unit and is a non-relational database; the storage architecture of existing key-value storage systems usually adopts the von Neumann architecture computer system; for computer systems based on von Neumann In the structured computer system, storage and calculation are separated.
  • the central control processor needs to read data from the storage medium and then process it. Data transmission has become the bottleneck of this system architecture, affecting the data processing efficiency.
  • Embodiments of the present application provide a data processing method, a solid state drive SSD controller, electronic equipment, and a computer-readable storage medium.
  • embodiments of the present application provide a data method, which is applied to a solid-state drive SSD controller.
  • the SSD controller includes a co-processing module.
  • the data processing method includes: obtaining the key value storage application of the host that is triggered. The operation instruction sent under the condition; the co-processing module is controlled to perform data scheduling processing according to the operation instruction.
  • embodiments of the present application also provide another data processing method, applied to a host, where the host includes a key-value storage application, and the data processing method includes: when the key-value storage application is triggered Send an operation instruction to the solid state drive SSD controller, so that the co-processing module in the SSD controller performs data scheduling processing.
  • inventions of the present application also provide an SSD controller.
  • the SSD controller includes a co-processing module; the SSD controller is used to obtain the operation instructions sent when the key-value storage application of the host is triggered; and controlling the co-processing module to perform data scheduling processing according to the operation instructions.
  • embodiments of the present application also provide an electronic device, including one of the following: an SSD controller as described above; or a memory, a processor, and a computer program stored in the memory and executable on the processor. , when the processor executes the computer program, the data processing method as described above is implemented.
  • embodiments of the present application further provide a computer-readable storage medium storing computer-executable instructions, and the computer-executable instructions are used to execute the data processing method as described above.
  • Figure 1 is a schematic diagram of a system architecture for executing a data processing method provided by an embodiment of the present application
  • Figure 2 is a schematic diagram of a system architecture for executing a data processing method provided by another embodiment of the present application.
  • Figure 3 is a flow chart of a data processing method provided by an embodiment of the present application.
  • Figure 4 is a specific flow chart of data scheduling in the data processing method provided by an embodiment of the present application.
  • Figure 5 is a specific flow chart of data scheduling based on instruction parsing information in the data processing method provided by an embodiment of the present application;
  • Figure 6 is a specific flow chart of data scheduling based on instruction parsing information in a data processing method provided by another embodiment of the present application.
  • Figure 7 is a specific flow chart of data scheduling based on the first index command parsing information in a data processing method based on instruction parsing information provided by an embodiment of the present application;
  • Figure 8 is a specific flow chart of data scheduling based on the second index instruction parsing information and data packaging parsing information in a data processing method based on instruction parsing information provided by an embodiment of the present application;
  • Figure 9 is a specific flow chart of the first data packaging process in the data processing method based on the second index instruction parsing information and the data packaging parsing information provided by an embodiment of the present application;
  • Figure 10 is a specific flow chart of the second data packaging process in the data processing method based on the second index instruction parsing information and the data packaging parsing information provided by an embodiment of the present application;
  • Figure 11 is a flow chart of a data processing method provided by another embodiment of the present application.
  • Figure 12 is a flow chart of a data processing method provided by another embodiment of the present application.
  • Figure 13 is a flow chart for sending operation instructions of a data processing method provided by another embodiment of the present application.
  • Figure 14 is a schematic structural diagram of an electronic device provided by an embodiment of the present application.
  • This application provides a data processing method, an SSD controller, an electronic device and a computer-readable storage medium to obtain the operation instructions sent when the key-value storage application of the host is triggered; and then controls the co-processing module to process data according to the operation instructions.
  • Scheduling processing in which the co-processing module is located in the SSD controller; through the above settings, data scheduling processing can be performed in the SSD controller, reducing the computing power consumption of the host, and there is no need to control the SSD through the host as in the past
  • Data scheduling can only be performed by reading data from one side of the controller, eliminating the scheduling data transmission process between the host and the SSD controller, thus improving the efficiency of data processing.
  • Figure 1 is a schematic diagram of a system architecture for executing a data processing method provided by an embodiment of the present application.
  • the system architecture includes a host 100 and a solid state disk (Solid State Disk, SSD) controller 200.
  • the host 100 includes a key-value storage application 101.
  • the SSD controller 200 includes a co-processing module 50.
  • the host 100 Connected to the SSD controller 200, the key-value storage application 101 can issue operation instructions to the SSD controller 200, and the co-processing module 50 in the SSD controller 200 can execute the operation instructions issued by the key-value storage application 101.
  • Figure 2 is a schematic diagram of a system architecture for executing a data processing method provided by another embodiment of the present application.
  • the system architecture includes a host 100, a solid-state disk controller 200, a volatile memory 300, and a non-volatile memory 400;
  • the host 100 includes a key-value storage application 101 and an underlying open channel SSD driver 102.
  • the SSD controller 200 includes an embedded central processor 201, a data packaging circuit 202, an index maintenance circuit 203, a host interface processing module 204, a volatile memory controller 205 and a non-volatile memory interface control circuit 206;
  • the SSD controller 200, Volatile memory 300 and non-volatile memory 400 constitute an open channel flash memory storage device.
  • the key-value storage application 101 on the host 100 side can issue relevant operation instructions to the SSD controller 200.
  • the operation instructions can be read operation instructions, write operation instructions, erase operation instructions, data packaging operation instructions and indexing.
  • Maintenance operation instructions; the underlying open channel SSD driver 102 can transmit the operation instructions issued by the key-value storage application 101 to the SSD controller 200; the embedded central processor 201, data packaging circuit 202, and index maintenance circuit in the SSD controller 200 203.
  • the host interface processing module 204, the volatile memory controller 205 and the non-volatile memory interface control circuit 206 are connected through a bus.
  • the host interface processing module 204 performs data connection with the underlying open channel SSD driver 102.
  • the volatile memory controller 205 performs data connection with the volatile memory 300, and the non-volatile memory interface control circuit 206 performs data connection with the non-volatile memory 400; the embedded central processor 201 can perform data packaging circuit 202, index maintenance circuit 203, and host interface processing module 204.
  • the volatile memory controller 205 and the non-volatile memory interface control circuit 206 perform control processing; the host interface processing module 204 can parse the operation instructions sent from the host 100 side, and then transmit the parsed information to the embedded center
  • the processor 201, and then the embedded central processor 201 can control the corresponding circuit modules to perform corresponding operations.
  • the co-processing module 50 mentioned in the above embodiments of this application includes but is not limited to the data packaging circuit 202 and the index maintenance circuit 203.
  • the underlying open channel SSD driver 102 is supported by driver software, and the driver software includes a Flash Translation Layer (FTL); FTL converts logical addresses in the SSD into physical addresses in actual memory.
  • Software layer including functions such as garbage collection, address mapping, and wear leveling.
  • the driver of the underlying open channel SSD driver 102 of this application needs to support co-processing commands and open channel solid state drive commands.
  • the co-processing commands can include data packaging commands and index maintenance commands
  • the open channel solid state drive commands can Including read commands, write commands and erase commands.
  • the volatile memory controller 205 can schedule and process data in the volatile memory 300; the non-volatile memory interface control circuit 206 can schedule and process the data in the non-volatile memory 400.
  • Figure 3 is a flow chart of a data processing method provided by an embodiment of the present application.
  • the method is applied to an SSD controller, and the SSD controller includes a co-processing module.
  • the method includes but is not limited to steps S100 and S200:
  • Step S100 obtain the operation instructions sent when the key-value storage application of the host is triggered
  • Step S200 Control the co-processing module to perform data scheduling processing according to the operation instructions.
  • the operation instructions sent when the key-value storage application of the host is triggered are obtained; and then based on The co-processing module is controlled according to the operation instructions to perform data scheduling processing, wherein the co-processing module is located in the SSD controller; through the above settings, data scheduling processing can be performed in the SSD controller, reducing the computing power consumption of the host, and eliminating the need for Data scheduling needs to be done by reading data from one side of the SSD controller through the host as in the past, which eliminates the scheduling data transmission process between the host and the SSD controller, thus improving the efficiency of data processing.
  • the operation instructions mainly refer to data packaging operation instructions and index maintenance operation instructions.
  • the key-value storage system in the embodiment of the present application uses key-value pairs as the most basic storage unit and is a non-relational database.
  • the host in the embodiment of this application is responsible for running key-value storage applications, and the data is stored in a storage unit that supports open-channel solid-state drives.
  • the above method is applicable to the key-value storage system of an open-channel SSD.
  • the open-channel SSD is a special solid-state drive that does not implement a memory translation layer in the firmware of the drive, but converts the physical solid-state drive into a key-value storage system. Storage management tasks are offloaded to the host side.
  • the co-processing module is a functional module capable of processing co-processing commands.
  • the co-processing module includes but is not limited to a data packaging circuit and an index maintenance circuit.
  • the host side will send an index maintenance operation instruction to the SSD controller; upon receiving the index maintenance operation instruction, the SSD controller will control its internal index maintenance circuit. Relevant data scheduling processing to complete corresponding index maintenance operation instructions.
  • the SSD controller includes an embedded central processor and a host interface processing module.
  • the above step S200 includes but is not limited to step S210 and step S220:
  • Step S210 parse the operation instruction based on the host interface processing module to obtain instruction parsing information
  • Step S220 Based on the instruction parsing information, the embedded central processor is used to control the co-processing module to perform data scheduling processing.
  • the SSD controller also includes an embedded central processor and a host interface processing module; in the process of data scheduling by the SSD controller according to the operation instructions, the operation instructions are first parsed based on the host interface processing module. Obtain the instruction parsing information; then based on the instruction parsing information, the embedded central processor will control the corresponding co-processing module to perform data scheduling processing to complete the corresponding operation instructions on one side of the SSD controller and reduce the computing power of the host. Capacity consumption, and there is no need to read data from the side of the SSD controller through the host as in the past to perform data scheduling, eliminating the scheduling data transmission process between the host and the SSD controller, thus improving the efficiency of data processing .
  • the host interface processing module in the SSD controller can parse the operation instructions to obtain the instruction parsing information; then transmit the instruction parsing information to the embedded central processor, and the embedded central processor can control the operation according to the instruction parsing information.
  • the corresponding co-processing module performs data scheduling processing. For example, when the operation instruction includes an index maintenance instruction, the embedded central processor will control the index maintenance circuit to perform work to complete the index maintenance instruction.
  • the co-processing module includes an index maintenance circuit.
  • the above step S220 includes but is not limited to step S221:
  • Step S221 When the operation instruction includes a first index maintenance operation instruction, use the embedded central processor to control the index maintenance circuit to perform data scheduling processing.
  • the host interface processing module parses the first index maintenance operation instruction, and then the embedded central processor can parse the first index maintenance operation instruction according to the host interface processing module.
  • the information control index maintenance circuit performs data scheduling processing to complete corresponding operation instructions.
  • the co-processing module includes an index maintenance circuit and a data packaging circuit.
  • the above step S220 includes but is not limited to step S222:
  • Step S222 When the operation instructions include the second index maintenance operation instruction and the data packaging operation instruction, use the embedded central processor to control the index maintenance circuit and the data packaging circuit to perform data scheduling processing.
  • the host interface processing module parses the second index maintenance operation instruction and the data packaging operation instruction, and then the embedded central processing The processor can control the index maintenance circuit and the data packaging circuit to perform data scheduling processing based on the information parsed by the host interface processing module to complete the corresponding operation instructions.
  • step S221 includes but is not limited to step S2211, step S2212 and step S2213:
  • Step S2211 parse the first index maintenance operation instruction based on the host interface processing module to obtain the first index instruction parsing information
  • Step S2212 Based on the first index instruction parsing information, the embedded central processor is used to control the index maintenance circuit to perform the first index maintenance operation, so that the high-frequency key values stored in the memory of the host are read into the volatile memory and established based on the high-frequency key values.
  • first index Based on the first index instruction parsing information, the embedded central processor is used to control the index maintenance circuit to perform the first index maintenance operation, so that the high-frequency key values stored in the memory of the host are read into the volatile memory and established based on the high-frequency key values.
  • Step S2213 Write the first index into the volatile memory and the non-volatile memory.
  • the first index maintenance operation instruction is first parsed based on the host interface processing module to obtain the first index instruction parsing information; then based on the first index instruction parsing information, the embedded central processor is used to control the index maintenance The circuit performs a first index maintenance operation, so that the high-frequency key value stored in the host is read into the volatile memory and the first index is established based on the high-frequency key value; finally, the first index is written into the volatile memory and the non-volatile memory.
  • the SSD controller receives the first index maintenance operation instruction from the host.
  • the first index maintenance operation instruction is parsed by the host interface processing module and then enters the embedded central processor; the embedded central processor schedules the index maintenance circuit to work.
  • the index maintenance circuit sends a command to the host interface processing module to store the data stored in the host.
  • the high-frequency key values in the memory are read into the volatile memory, and the first index is established based on the high-frequency key values.
  • the first index includes: value and storage address; after the operation is completed, the newly generated first index is written back to the volatile memory. and non-volatile memory.
  • the key-value storage application in the host needs to perform the first index maintenance operation, and needs to provide an index maintenance command to the underlying open channel SSD driver, so that the underlying open channel SSD driver sends the first index maintenance command to the SSD controller.
  • An index maintenance operation instruction is provided.
  • step S222 includes but is not limited to step S2221 and step S2222:
  • Step S2221 parse the second index maintenance operation instruction and the data packaging operation instruction based on the host interface processing module to obtain the second index instruction parsing information and data packaging parsing information;
  • Step S2222 Based on the second index instruction parsing information and data packaging parsing information, use the embedded central processor to control the index maintenance circuit and the data packaging circuit to perform data scheduling processing.
  • the second index maintenance operation instruction and the data packaging operation instruction are first parsed based on the host interface processing module to obtain the second index instruction parsing information and data packaging parsing information; and then the information and data are parsed based on the second index instruction. Pack and parse information, and use the embedded central processor to control the index maintenance circuit and data packaging circuit for data scheduling and processing.
  • the SSD controller receives the second index maintenance operation instruction and data packaging operation instruction from the host.
  • the second index maintenance operation instructions and data packaging operation instructions enter the embedded central processor after being parsed by the host interface processing module; the embedded central processor can schedule the index maintenance circuit and the data packaging circuit to work.
  • the key-value storage application in the host needs to perform data packaging operations, and needs to provide data packaging operation instructions and second index maintenance instructions to the underlying open channel SSD driver, so that the underlying open channel SSD driver
  • the controller sends the second index maintenance operation instruction and the data packaging operation instruction; then the host interface processing module parses the second index maintenance operation instruction and the data packaging operation instruction to obtain the second index instruction parsing information and data packaging parsing information, and finally the embedded
  • the central processing unit controls the index maintenance circuit and the data packaging circuit to perform data scheduling processing according to the second index instruction parsing information and the data packaging parsing information.
  • step S2222 includes but is not limited to step S2223, step S2224 and step S2225:
  • Step S2223 the embedded central processor controls the data packaging circuit to perform the first data packaging process, so that the cache data stored in the memory table of the host is read into the volatile memory;
  • Step S2224 Perform a first index creation process on the cache data stored in the volatile memory according to the index maintenance circuit to obtain a second index, and transfer the cache data stored in the volatile memory to the non-volatile memory through the data packaging circuit ;
  • Step S2225 Write the cache data and the second index into the non-volatile memory.
  • the embedded central processor controls the data packaging circuit to perform the first data packaging process, so that the cached data stored in the memory table of the host is read into the volatile memory; and then the index maintenance circuit is used to perform the first data packaging process.
  • the cached data in the volatile memory undergoes a first index creation process to obtain a second index, and the cached data stored in the volatile memory is transferred to the non-volatile memory through the data packaging circuit; finally, the cached data and the second index are written into the non-volatile memory to complete the data packaging operation instructions.
  • the memory table in the host memory is read into the volatile memory, and then storage space in the non-volatile memory is allocated to it; after the space is allocated, the index maintenance circuit is started to generate a second index, which records the layer The address of each page in the basic storage unit of the non-volatile memory and the range of stored key values. While establishing the index, the data packaging circuit will move the data cached in the volatile memory to the non-volatile memory. After the operation is completed , the data and the second index need to be written back to the non-volatile memory to complete the data packaging operation instruction.
  • a co-processing mechanism is set up for the background packaging command of the key-value storage application, so that the processing unit is located closer to the data, avoiding lengthy data transmission time between the host and the storage device and saving the host's computing power.
  • a co-processing mechanism is set up for the index maintenance command of the key-value storage application, which can establish maintenance while executing the packaging command or maintain the index specifically for specific data, saving background processing time and improving service bandwidth.
  • open-channel SSDs can incorporate redundant software stacks.
  • Key-value storage applications already include garbage collection functions, eliminating the need for the underlying FTL to perform garbage collection operations.
  • moving storage unit management rights upward can make full use of underlying storage resources and avoid the fragmentation and inefficiency of continuous data caused by redundant software stacks. Storage and other issues.
  • step S2222 includes but is not limited to step S2226, step S2227, step S2228 and step S2229:
  • Step S2226 the embedded central processor controls the data packaging circuit to perform the second data packaging process, so that the initial storage data stored in the sorted string table of the non-volatile memory is read into the volatile memory;
  • Step S2227 merge and sort the initial storage data stored in the volatile memory to obtain the adjustment data
  • Step S2228 Perform a second index creation process on the adjustment data stored in the volatile memory according to the index maintenance circuit to obtain a third index, and transfer the adjustment data stored in the volatile memory to the non-volatile memory through the data packaging circuit ;
  • Step S2229 Write the adjustment data and the third index into the non-volatile memory.
  • the embedded central processor controls the data packaging circuit to perform the second data packaging process, so that the initial storage data stored in the sorted string table of the non-volatile memory is read into the volatile memory; and then the The initial storage data stored in the volatile memory is merged and sorted to obtain the adjustment data; then the second index creation process is performed on the adjustment data stored in the volatile memory according to the index maintenance circuit to obtain the third index, and the third index is obtained through the data packaging circuit.
  • the adjustment data stored in the volatile memory is transferred to the non-volatile memory; finally, the adjustment data and the third index are written into the non-volatile memory.
  • the data packaging circuit reads the two basic storage units stored in the non-volatile memory into the volatile memory, then allocates new storage space in the non-volatile memory and performs a merge sort operation.
  • the new The generated data is cached in volatile memory; after the merge sort is completed, the index maintenance circuit is started to generate a third index.
  • This index records the address of each page in the basic storage unit of this layer and the range of stored key values. While establishing the index, The data packaging circuit transfers the adjustment data cached in the volatile memory to the non-volatile memory. After the operation is completed, the adjustment data and the third index are written back to the non-volatile memory.
  • steps after the above step S200 include but are not limited to step S300:
  • Step S300 After the data scheduling process is completed, an operation completion notification message is sent to the host.
  • one side of the SSD controller will also send operation completion notification information to the host to inform the host that the relevant operation instructions have been completed.
  • the SSD controller side when the host issues an index maintenance operation instruction, the SSD controller side will send an operation completion notification message to the host after completing the index maintenance operation to inform the host that the index maintenance operation has been completed; when the host What is issued is the data packaging operation command.
  • the side of the SSD controller When the data packaging operation is completed, the side of the SSD controller will send an operation completion notification message to the host to inform the host that the data packaging operation has been completed.
  • Figure 12 is a flow chart of a data processing method provided by another embodiment of the present application.
  • the method is applied to the host, and the host includes a key-value storage application.
  • the method includes but is not limited to step S400:
  • Step S400 When the key-value storage application is triggered, an operation instruction is sent to the solid-state drive SSD controller, so that the co-processing module in the SSD controller performs data scheduling processing.
  • an operation instruction is sent to the SSD controller, so that the co-processing module in the SSD controller can perform data scheduling processing to complete the corresponding operation instruction.
  • the operation instructions sent when the key-value storage application of the host is triggered are obtained; and then the co-processing module is controlled to perform data scheduling processing according to the operation instructions, wherein the co-processing module is located in the SSD controller; through the above Settings enable data scheduling processing in the SSD controller, reducing the computing power consumption of the host, and there is no need to read data from the side of the SSD controller through the host as in the past to perform data scheduling, eliminating the need for The data transmission process is scheduled between the host and the SSD controller, thereby improving the efficiency of data processing.
  • the host includes an underlying open channel SSD driver, and the above step S400 includes but is not limited to step S410 and step S420.
  • Step S410 trigger the key-value storage application to generate operation instructions
  • Step S420 Send the operation command to the solid state drive SSD controller based on the underlying open channel SSD driver.
  • triggering the key-value storage application will generate an operation instruction, and then based on the underlying open channel SSD driver, the operation instruction generated by the key-value storage application will be sent to the SSD controller for processing, so that the SSD controller can Complete the corresponding operation instructions.
  • SSD controller includes a co-processing module
  • the SSD controller is used to obtain the operation instructions sent when the key-value storage application of the host is triggered; and to control the co-processing module to perform data scheduling processing according to the operation instructions.
  • one embodiment of the present application also provides an electronic device 700.
  • the electronic device 700 includes one of the following: the SSD controller in the above embodiment; or,
  • Memory 720 Memory 720, processor 710, and a computer program stored on memory 720 and executable on processor 710.
  • the processor 710 and the memory 720 may be connected through a bus or other means.
  • the non-transitory software programs and instructions required to implement the data processing method of the above embodiment are stored in the memory 720.
  • the data processing method in the above embodiment is executed, for example, executing the above-described FIG. 3
  • one embodiment of the present application also provides a computer-readable storage medium that stores computer-executable instructions, and the computer-executable instructions are executed by a processor 710, for example, by the above-mentioned scheduling device.
  • Execution of a processor 710 in the embodiment 700 can cause the above-mentioned processor 710 to execute the data processing method in the above embodiment, for example, execute the above-described method steps S100 to S200 in Figure 3 and method step S210 in Figure 4 to S220, method step S221 in Figure 5, method step S222 in Figure 6, method steps S2211 to S2213 in Figure 7, method steps S2221 to S2222 in Figure 8, method steps S2223 to S2225 in Figure 9, Figure Method steps S2226 to S2229 in Figure 10, method steps S300 in Figure 11, method step S400 in Figure 12, and method steps S410 to S420 in Figure 13.
  • Embodiments of this application include: obtaining the operation instructions sent when the key-value storage application of the host is triggered; and then controlling the co-processing module to perform data scheduling processing according to the operation instructions, wherein the co-processing module is located in the SSD controller; through the above device It is determined that data scheduling can be performed in the SSD controller, reducing the computing power consumption of the host, and there is no need to read data from the side of the SSD controller through the host as in the past to perform data scheduling, eliminating the need for a host Scheduling the data transmission process with the SSD controller, thereby improving the efficiency of data processing.
  • Computer storage media includes, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, Digital Versatile Disk (DVD) or other optical disk storage, magnetic cassettes, tapes, disk storage or other magnetic storage devices, or may Any other medium used to store the desired information and that can be accessed by a computer.
  • communication media typically embodies computer readable instructions, data structures, program modules or other data in a modulated data signal such as a carrier wave or other transport mechanism, and may include any information delivery media .

Abstract

A data processing method, a solid state disk (SSD) controller (200), an electronic device and a computer-readable storage medium. The data processing method comprises: acquiring an operation instruction which is sent when a key-value storage application of a host (100) is triggered (S100); and according to the operation instruction, controlling a co-processing module (50) in the SSD controller (200) to perform data scheduling processing (S200).

Description

数据处理方法、SSD控制器、电子设备及可读存储介质Data processing method, SSD controller, electronic device and readable storage medium
相关申请的交叉引用Cross-references to related applications
本申请基于申请号为202210830277.1、申请日为2022年7月15日的中国专利申请提出,并要求该中国专利申请的优先权,该中国专利申请的全部内容在此引入本申请作为参考。This application is filed based on a Chinese patent application with application number 202210830277.1 and a filing date of July 15, 2022, and claims the priority of the Chinese patent application. The entire content of the Chinese patent application is hereby incorporated by reference into this application.
技术领域Technical field
本申请实施例涉及但不限于数据处理技术领域,尤其涉及一种数据处理方法、固态硬盘SSD控制器、电子设备及计算机可读存储介质。Embodiments of the present application relate to, but are not limited to, the field of data processing technology, and in particular, to a data processing method, a solid state drive SSD controller, electronic equipment, and a computer-readable storage medium.
背景技术Background technique
键值存储系统以键值对作为最基本的存储单元,是一种非关系型数据库;现有的键值存储系统的存储架构通常采用冯诺依曼架构的计算机系统;对于基于冯诺依曼结构的计算机系统,存储与计算是分开的,中央控制处理器需要从存储介质中读取数据再处理,数据传输成为这种系统架构的瓶颈,影响了数据的处理效率。The key-value storage system uses key-value pairs as the most basic storage unit and is a non-relational database; the storage architecture of existing key-value storage systems usually adopts the von Neumann architecture computer system; for computer systems based on von Neumann In the structured computer system, storage and calculation are separated. The central control processor needs to read data from the storage medium and then process it. Data transmission has become the bottleneck of this system architecture, affecting the data processing efficiency.
发明内容Contents of the invention
本申请实施例提供了一种数据处理方法、固态硬盘SSD控制器、电子设备及计算机可读存储介质。Embodiments of the present application provide a data processing method, a solid state drive SSD controller, electronic equipment, and a computer-readable storage medium.
第一方面,本申请实施例提供了一种数据方法,应用于固态硬盘SSD控制器,所述SSD控制器包括协处理模块,所述数据处理方法包括:获取主机的键值存储应用被触发的情况下发送的操作指令;根据所述操作指令控制所述协处理模块进行数据调度处理。In the first aspect, embodiments of the present application provide a data method, which is applied to a solid-state drive SSD controller. The SSD controller includes a co-processing module. The data processing method includes: obtaining the key value storage application of the host that is triggered. The operation instruction sent under the condition; the co-processing module is controlled to perform data scheduling processing according to the operation instruction.
第二方面,本申请实施例还提供了另外一种数据处理方法,应用于主机,所述主机包括键值存储应用,所述数据处理方法包括:在所述键值存储应用被触发的情况下向固态硬盘SSD控制器发送操作指令,以使得所述SSD控制器中的协处理模块进行数据调度处理。In a second aspect, embodiments of the present application also provide another data processing method, applied to a host, where the host includes a key-value storage application, and the data processing method includes: when the key-value storage application is triggered Send an operation instruction to the solid state drive SSD controller, so that the co-processing module in the SSD controller performs data scheduling processing.
第三方面,本申请实施例还提供了一种SSD控制器,所述SSD控制器包括协处理模块;所述SSD控制器用于获取主机的键值存储应用被触发的情况下发送的操作指令;以及根据所述操作指令控制所述协处理模块进行数据调度处理。In a third aspect, embodiments of the present application also provide an SSD controller. The SSD controller includes a co-processing module; the SSD controller is used to obtain the operation instructions sent when the key-value storage application of the host is triggered; and controlling the co-processing module to perform data scheduling processing according to the operation instructions.
第四方面,本申请实施例还提供了一种电子设备,包括如下之一:如上所述的SSD控制器;或,存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上所述的数据处理方法。In a fourth aspect, embodiments of the present application also provide an electronic device, including one of the following: an SSD controller as described above; or a memory, a processor, and a computer program stored in the memory and executable on the processor. , when the processor executes the computer program, the data processing method as described above is implemented.
第五方面,本申请实施例还提供了一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令用于执行如上所述的数据处理方法。In a fifth aspect, embodiments of the present application further provide a computer-readable storage medium storing computer-executable instructions, and the computer-executable instructions are used to execute the data processing method as described above.
附图说明Description of drawings
图1是本申请一个实施例提供的用于执行数据处理方法的系统架构的示意图;Figure 1 is a schematic diagram of a system architecture for executing a data processing method provided by an embodiment of the present application;
图2是本申请另一个实施例提供的用于执行数据处理方法的系统架构的示意图; Figure 2 is a schematic diagram of a system architecture for executing a data processing method provided by another embodiment of the present application;
图3是本申请一个实施例提供的数据处理方法的流程图;Figure 3 is a flow chart of a data processing method provided by an embodiment of the present application;
图4是本申请一个实施例提供的数据处理方法中,数据调度的具体流程图;Figure 4 is a specific flow chart of data scheduling in the data processing method provided by an embodiment of the present application;
图5是本申请一个实施例提供的数据数据处理方法中,基于指令解析信息进行数据调度的具体流程图;Figure 5 is a specific flow chart of data scheduling based on instruction parsing information in the data processing method provided by an embodiment of the present application;
图6是本申请另一个实施例提供的数据数据处理方法中,基于指令解析信息进行数据调度的具体流程图;Figure 6 is a specific flow chart of data scheduling based on instruction parsing information in a data processing method provided by another embodiment of the present application;
图7是本申请一个实施例提供的基于指令解析信息进行数据数据处理方法中,基于第一索引指令解析信息进行数据调度的具体流程图;Figure 7 is a specific flow chart of data scheduling based on the first index command parsing information in a data processing method based on instruction parsing information provided by an embodiment of the present application;
图8是本申请一个实施例提供的基于指令解析信息进行数据数据处理方法中,基于第二索引指令解析信息和数据打包解析信息进行数据调度的具体流程图;Figure 8 is a specific flow chart of data scheduling based on the second index instruction parsing information and data packaging parsing information in a data processing method based on instruction parsing information provided by an embodiment of the present application;
图9是本申请一个实施例提供的基于第二索引指令解析信息和数据打包解析信息进行数据数据处理方法中,第一数据打包处理的具体流程图;Figure 9 is a specific flow chart of the first data packaging process in the data processing method based on the second index instruction parsing information and the data packaging parsing information provided by an embodiment of the present application;
图10是本申请一个实施例提供的基于第二索引指令解析信息和数据打包解析信息进行数据数据处理方法中,第二数据打包处理的具体流程图;Figure 10 is a specific flow chart of the second data packaging process in the data processing method based on the second index instruction parsing information and the data packaging parsing information provided by an embodiment of the present application;
图11是本申请另一个实施例提供的数据处理方法的流程图;Figure 11 is a flow chart of a data processing method provided by another embodiment of the present application;
图12是本申请另一个实施例提供的数据处理方法的流程图;Figure 12 is a flow chart of a data processing method provided by another embodiment of the present application;
图13是本申请另一个实施例提供的数据处理方法的操作指令发送流程图;Figure 13 is a flow chart for sending operation instructions of a data processing method provided by another embodiment of the present application;
图14是本申请一个实施例提供的电子设备的构造示意图。Figure 14 is a schematic structural diagram of an electronic device provided by an embodiment of the present application.
具体实施方式Detailed ways
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。In order to make the purpose, technical solutions and advantages of the present application clearer, the present application will be described in detail below with reference to the drawings and embodiments. It should be understood that the specific embodiments described here are only used to explain the present application and are not used to limit the present application.
需要说明的是,虽然在装置示意图中进行了功能模块划分,在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于装置中的模块划分,或流程图中的顺序执行所示出或描述的步骤。说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。It should be noted that although the functional modules are divided in the device schematic diagram and the logical sequence is shown in the flow chart, in some cases, the modules can be divided into different modules in the device or the order in the flow chart can be executed. The steps shown or described. The terms "first", "second", etc. in the description, claims, and above-mentioned drawings are used to distinguish similar objects and are not necessarily used to describe a specific sequence or sequence.
本申请提供了一种数据处理方法、SSD控制器、电子设备及计算机可读存储介质,获取主机的键值存储应用被触发的情况下发送的操作指令;接着根据操作指令控制协处理模块进行数据调度处理,其中,协处理模块位于SSD控制器中;通过上述设定,使得在SSD控制器中就能够进行数据调度处理,降低主机的运算能力消耗,并且不需要像以往那样通过主机从SSD控制器的一侧读取数据才可以进行数据调度,省去了主机与SSD控制器之间的调度数据传输过程,从而提高了数据处理的效率。This application provides a data processing method, an SSD controller, an electronic device and a computer-readable storage medium to obtain the operation instructions sent when the key-value storage application of the host is triggered; and then controls the co-processing module to process data according to the operation instructions. Scheduling processing, in which the co-processing module is located in the SSD controller; through the above settings, data scheduling processing can be performed in the SSD controller, reducing the computing power consumption of the host, and there is no need to control the SSD through the host as in the past Data scheduling can only be performed by reading data from one side of the controller, eliminating the scheduling data transmission process between the host and the SSD controller, thus improving the efficiency of data processing.
下面结合附图,对本申请实施例作阐述。The embodiments of the present application will be described below with reference to the accompanying drawings.
如图1所示,图1是本申请一个实施例提供的用于执行数据处理方法的系统架构的示意图。在图1的示例中,该系统架构包括主机100和固态硬盘(Solid State Disk,SSD)控制器200,主机100中包括键值存储应用101,SSD控制器200中包括协处理模块50,主机100与SSD控制器200连接,键值存储应用101可以向SSD控制器200下发操作指令,SSD控制器200中的协处理模块50可以执行键值存储应用101下发的操作指令。 As shown in Figure 1, Figure 1 is a schematic diagram of a system architecture for executing a data processing method provided by an embodiment of the present application. In the example of Figure 1, the system architecture includes a host 100 and a solid state disk (Solid State Disk, SSD) controller 200. The host 100 includes a key-value storage application 101. The SSD controller 200 includes a co-processing module 50. The host 100 Connected to the SSD controller 200, the key-value storage application 101 can issue operation instructions to the SSD controller 200, and the co-processing module 50 in the SSD controller 200 can execute the operation instructions issued by the key-value storage application 101.
如图2所示,图2是本申请另一个实施例提供的用于执行数据处理方法的系统架构的示意图。在图2的示例中,该系统架构包括主机100、固态硬盘控制器200、易失存储器300和非易失存储器400;其中,主机100中包括了键值存储应用101和底层开放通道SSD驱动102,SSD控制器200包括嵌入式中央处理器201、数据打包电路202、索引维护电路203、主机接口处理模块204、易失存储器控制器205和非易失存储器接口控制电路206;SSD控制器200、易失存储器300和非易失存储器400组成开放通道闪存存储设备。在主机100一侧的键值存储应用101能够对SSD控制器200下发相关的操作指令,示例性地,操作指令可以为读操作指令、写操作指令、擦操作指令、数据打包操作指令和索引维护操作指令;底层开放通道SSD驱动102能够将键值存储应用101下发的操作指令传输到SSD控制器200;SSD控制器200中的嵌入式中央处理器201、数据打包电路202、索引维护电路203、主机接口处理模块204、易失存储器控制器205和非易失存储器接口控制电路206通过总线的方式连接,主机接口处理模块204与底层开放通道SSD驱动102进行数据连接,易失存储器控制器205与易失存储器300进行数据连接,非易失存储器接口控制电路206与非易失存储器400进行数据连接;嵌入式中央处理器201可以对数据打包电路202、索引维护电路203、主机接口处理模块204、易失存储器控制器205和非易失存储器接口控制电路206进行控制处理;主机接口处理模块204能够对主机100一侧发送过来的操作指令进行解析,接着将解析的信息传输到嵌入式中央处理器201,接着嵌入式中央处理器201就可以控制相应的电路模块进行对应的操作处理。值得注意的是,本申请上述实施例所提及的协处理模块50包括但不限于数据打包电路202和索引维护电路203。As shown in Figure 2, Figure 2 is a schematic diagram of a system architecture for executing a data processing method provided by another embodiment of the present application. In the example of Figure 2, the system architecture includes a host 100, a solid-state disk controller 200, a volatile memory 300, and a non-volatile memory 400; the host 100 includes a key-value storage application 101 and an underlying open channel SSD driver 102. , the SSD controller 200 includes an embedded central processor 201, a data packaging circuit 202, an index maintenance circuit 203, a host interface processing module 204, a volatile memory controller 205 and a non-volatile memory interface control circuit 206; the SSD controller 200, Volatile memory 300 and non-volatile memory 400 constitute an open channel flash memory storage device. The key-value storage application 101 on the host 100 side can issue relevant operation instructions to the SSD controller 200. For example, the operation instructions can be read operation instructions, write operation instructions, erase operation instructions, data packaging operation instructions and indexing. Maintenance operation instructions; the underlying open channel SSD driver 102 can transmit the operation instructions issued by the key-value storage application 101 to the SSD controller 200; the embedded central processor 201, data packaging circuit 202, and index maintenance circuit in the SSD controller 200 203. The host interface processing module 204, the volatile memory controller 205 and the non-volatile memory interface control circuit 206 are connected through a bus. The host interface processing module 204 performs data connection with the underlying open channel SSD driver 102. The volatile memory controller 205 performs data connection with the volatile memory 300, and the non-volatile memory interface control circuit 206 performs data connection with the non-volatile memory 400; the embedded central processor 201 can perform data packaging circuit 202, index maintenance circuit 203, and host interface processing module 204. The volatile memory controller 205 and the non-volatile memory interface control circuit 206 perform control processing; the host interface processing module 204 can parse the operation instructions sent from the host 100 side, and then transmit the parsed information to the embedded center The processor 201, and then the embedded central processor 201 can control the corresponding circuit modules to perform corresponding operations. It is worth noting that the co-processing module 50 mentioned in the above embodiments of this application includes but is not limited to the data packaging circuit 202 and the index maintenance circuit 203.
在本申请的一些实施例中,底层开放通道SSD驱动102配套驱动软件,驱动软件中包含闪存转换层(Flash Translation Layer,FTL);FTL是在SSD中将逻辑地址转换成实际内存中物理地址的软件层,包括垃圾回收、地址映射和磨损均衡等功能。值得注意的是,本申请的底层开放通道SSD驱动102的驱动程序需要支持协处理命令以及开放通道固态硬盘命令,其中,协处理命令可以包括数据打包命令和索引维护命令,开放通道固态硬盘命令可以包括读命令、写命令和擦命令。In some embodiments of the present application, the underlying open channel SSD driver 102 is supported by driver software, and the driver software includes a Flash Translation Layer (FTL); FTL converts logical addresses in the SSD into physical addresses in actual memory. Software layer, including functions such as garbage collection, address mapping, and wear leveling. It is worth noting that the driver of the underlying open channel SSD driver 102 of this application needs to support co-processing commands and open channel solid state drive commands. Among them, the co-processing commands can include data packaging commands and index maintenance commands, and the open channel solid state drive commands can Including read commands, write commands and erase commands.
在本申请的一些实施例中,易失存储器控制器205能够对易失存储器300中的数据进行调度处理;非易失存储器接口控制电路206能够对非易失存储器400中的数据进行调度处理。In some embodiments of the present application, the volatile memory controller 205 can schedule and process data in the volatile memory 300; the non-volatile memory interface control circuit 206 can schedule and process the data in the non-volatile memory 400.
本申请实施例描述的系统架构以及应用场景是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域技术人员可知,随着系统架构的演变和新应用场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。The system architecture and application scenarios described in the embodiments of this application are for the purpose of explaining the technical solutions of the embodiments of this application more clearly, and do not constitute a limitation on the technical solutions provided by the embodiments of this application. Those skilled in the art will know that with the system architecture With the evolution of technology and the emergence of new application scenarios, the technical solutions provided in the embodiments of this application are also applicable to similar technical problems.
本领域技术人员可以理解的是,图1和图2中示出的系统架构并不构成对本申请实施例的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。Those skilled in the art can understand that the system architecture shown in Figures 1 and 2 does not constitute a limitation on the embodiments of the present application, and may include more or less components than shown in the figures, or combine certain components, or Different component arrangements.
基于上述系统架构的结构,提出本申请的数据处理方法的各个实施例。Based on the structure of the above system architecture, various embodiments of the data processing method of the present application are proposed.
如图3所示,图3是本申请一个实施例提供的数据处理方法的流程图。该方法应用于SSD控制器,SSD控制器包括协处理模块,该方法包括但不限于有步骤S100和步骤S200:As shown in Figure 3, Figure 3 is a flow chart of a data processing method provided by an embodiment of the present application. The method is applied to an SSD controller, and the SSD controller includes a co-processing module. The method includes but is not limited to steps S100 and S200:
步骤S100,获取主机的键值存储应用被触发的情况下发送的操作指令;Step S100, obtain the operation instructions sent when the key-value storage application of the host is triggered;
步骤S200,根据操作指令控制协处理模块进行数据调度处理。Step S200: Control the co-processing module to perform data scheduling processing according to the operation instructions.
本申请一实施例中,获取主机的键值存储应用被触发的情况下发送的操作指令;接着根 据操作指令控制协处理模块进行数据调度处理,其中,协处理模块位于SSD控制器中;通过上述设定,使得在SSD控制器中就能够进行数据调度处理,降低主机的运算能力消耗,并且不需要像以往那样通过主机从SSD控制器的一侧读取数据才可以进行数据调度,省去了主机与SSD控制器之间的调度数据传输过程,从而提高了数据处理的效率。In an embodiment of the present application, the operation instructions sent when the key-value storage application of the host is triggered are obtained; and then based on The co-processing module is controlled according to the operation instructions to perform data scheduling processing, wherein the co-processing module is located in the SSD controller; through the above settings, data scheduling processing can be performed in the SSD controller, reducing the computing power consumption of the host, and eliminating the need for Data scheduling needs to be done by reading data from one side of the SSD controller through the host as in the past, which eliminates the scheduling data transmission process between the host and the SSD controller, thus improving the efficiency of data processing.
值得注意的是,在键值存储应用被触发的情况下,就会下发相关的操作指令,在本申请的实施例中,操作指令主要指数据打包操作指令和索引维护操作指令。It is worth noting that when the key-value storage application is triggered, relevant operation instructions will be issued. In the embodiment of the present application, the operation instructions mainly refer to data packaging operation instructions and index maintenance operation instructions.
值得注意的是,本申请实施例中的键值存储系统以键值对作为最基本的存储单元,是一种非关系型的数据库。本申请实施例中的主机负责运行键值存储应用,数据存储在支持开放通道固态硬盘的存储单元中。It is worth noting that the key-value storage system in the embodiment of the present application uses key-value pairs as the most basic storage unit and is a non-relational database. The host in the embodiment of this application is responsible for running key-value storage applications, and the data is stored in a storage unit that supports open-channel solid-state drives.
在本申请的实施例中,上述方法适用于开放通道SSD的键值存储系统,其中,开放通道SSD是一种特殊的固态硬盘,它不在驱动器的固件中实现内存翻译层,而是将物理固态存储的管理任务转交到主机的一侧。In the embodiment of the present application, the above method is applicable to the key-value storage system of an open-channel SSD. The open-channel SSD is a special solid-state drive that does not implement a memory translation layer in the firmware of the drive, but converts the physical solid-state drive into a key-value storage system. Storage management tasks are offloaded to the host side.
值得注意的是,协处理模块即为能够处理协处理命令的功能模块,在本申请的实施例中,协处理模块包括但不限于数据打包电路和索引维护电路。示例性地,键值存储应用需要进行索引维护操作的情况下主机一侧就会向SSD控制器发送索引维护操作指令;SSD控制器接收到索引维护操作指令就会控制其内部的索引维护电路进行相关的数据调度处理,以完成相应的索引维护操作指令。It is worth noting that the co-processing module is a functional module capable of processing co-processing commands. In the embodiment of the present application, the co-processing module includes but is not limited to a data packaging circuit and an index maintenance circuit. For example, when a key-value storage application needs to perform an index maintenance operation, the host side will send an index maintenance operation instruction to the SSD controller; upon receiving the index maintenance operation instruction, the SSD controller will control its internal index maintenance circuit. Relevant data scheduling processing to complete corresponding index maintenance operation instructions.
如图4所示,SSD控制器包括嵌入式中央处理器和主机接口处理模块,上述步骤S200包括但不限于步骤S210和步骤S220:As shown in Figure 4, the SSD controller includes an embedded central processor and a host interface processing module. The above step S200 includes but is not limited to step S210 and step S220:
步骤S210,基于主机接口处理模块对操作指令进行解析得到指令解析信息;Step S210, parse the operation instruction based on the host interface processing module to obtain instruction parsing information;
步骤S220,基于指令解析信息,利用嵌入式中央处理器控制协处理模块进行数据调度处理。Step S220: Based on the instruction parsing information, the embedded central processor is used to control the co-processing module to perform data scheduling processing.
本申请一实施例中,SSD控制器还包括嵌入式中央处理器和主机接口处理模块;在SSD控制器根据操作指令进行数据调度的过程中,首先基于主机接口处理模块对操作指令进行解析就可以得到指令解析信息;接着基于指令解析信息,嵌入式中央处理器就会控制相应的协处理模块进行数据调度处理,以完成在SSD控制器的一侧就可以完成相应的操作指令,降低主机的运算能力消耗,并且不需要像以往那样通过主机从SSD控制器的一侧读取数据才可以进行数据调度,省去了主机与SSD控制器之间的调度数据传输过程,从而提高了数据处理的效率。In one embodiment of the present application, the SSD controller also includes an embedded central processor and a host interface processing module; in the process of data scheduling by the SSD controller according to the operation instructions, the operation instructions are first parsed based on the host interface processing module. Obtain the instruction parsing information; then based on the instruction parsing information, the embedded central processor will control the corresponding co-processing module to perform data scheduling processing to complete the corresponding operation instructions on one side of the SSD controller and reduce the computing power of the host. Capacity consumption, and there is no need to read data from the side of the SSD controller through the host as in the past to perform data scheduling, eliminating the scheduling data transmission process between the host and the SSD controller, thus improving the efficiency of data processing .
值得注意的是,SSD控制器中的主机接口处理模块可以对操作指令进行解析得到指令解析信息;接着将指令解析信息传输到嵌入式中央处理器,嵌入式中央处理器就可以根据指令解析信息控制相应的协处理模块进行数据调度处理。示例性地,当操作指令包括索引维护指令的时候,嵌入式中央处理器就会控制索引维护电路进行工作以完成索引维护指令。It is worth noting that the host interface processing module in the SSD controller can parse the operation instructions to obtain the instruction parsing information; then transmit the instruction parsing information to the embedded central processor, and the embedded central processor can control the operation according to the instruction parsing information. The corresponding co-processing module performs data scheduling processing. For example, when the operation instruction includes an index maintenance instruction, the embedded central processor will control the index maintenance circuit to perform work to complete the index maintenance instruction.
如图5所示,协处理模块包括索引维护电路,上述步骤S220包括但不限于步骤S221:As shown in Figure 5, the co-processing module includes an index maintenance circuit. The above step S220 includes but is not limited to step S221:
步骤S221,在操作指令包括第一索引维护操作指令的情况下,利用嵌入式中央处理器控制索引维护电路进行数据调度处理。Step S221: When the operation instruction includes a first index maintenance operation instruction, use the embedded central processor to control the index maintenance circuit to perform data scheduling processing.
本申请一实施例中,在操作指令包括第一索引维护操作指令的情况下,主机接口处理模块对第一索引维护操作指令进行解析,接着嵌入式中央处理器可以根据主机接口处理模块解析得到的信息控制索引维护电路进行数据调度处理,以完成相应的操作指令。 In an embodiment of the present application, when the operation instruction includes the first index maintenance operation instruction, the host interface processing module parses the first index maintenance operation instruction, and then the embedded central processor can parse the first index maintenance operation instruction according to the host interface processing module. The information control index maintenance circuit performs data scheduling processing to complete corresponding operation instructions.
如图6所示,协处理模块包括索引维护电路和数据打包电路,上述步骤S220包括但不限于步骤S222:As shown in Figure 6, the co-processing module includes an index maintenance circuit and a data packaging circuit. The above step S220 includes but is not limited to step S222:
步骤S222,在操作指令包括第二索引维护操作指令和数据打包操作指令的情况下,利用嵌入式中央处理器控制索引维护电路和数据打包电路进行数据调度处理。Step S222: When the operation instructions include the second index maintenance operation instruction and the data packaging operation instruction, use the embedded central processor to control the index maintenance circuit and the data packaging circuit to perform data scheduling processing.
本申请一实施例中,在操作指令包括第二索引维护操作指令和数据打包操作指令的情况下,主机接口处理模块对第二索引维护操作指令和数据打包操作指令进行解析,接着嵌入式中央处理器可以根据主机接口处理模块解析得到的信息控制索引维护电路和数据打包电路进行数据调度处理,以完成相应的操作指令。In an embodiment of the present application, when the operation instructions include the second index maintenance operation instruction and the data packaging operation instruction, the host interface processing module parses the second index maintenance operation instruction and the data packaging operation instruction, and then the embedded central processing The processor can control the index maintenance circuit and the data packaging circuit to perform data scheduling processing based on the information parsed by the host interface processing module to complete the corresponding operation instructions.
如图7所示,上述步骤S221包括但不限于步骤S2211、步骤S2212和步骤S2213:As shown in Figure 7, the above step S221 includes but is not limited to step S2211, step S2212 and step S2213:
步骤S2211,基于主机接口处理模块对第一索引维护操作指令进行解析得到第一索引指令解析信息;Step S2211, parse the first index maintenance operation instruction based on the host interface processing module to obtain the first index instruction parsing information;
步骤S2212,基于第一索引指令解析信息,利用嵌入式中央处理器控制索引维护电路进行第一索引维护操作,使得存储于主机的内存中的高频键值读取到易失存储器并且根据高频键值建立得到第一索引;Step S2212: Based on the first index instruction parsing information, the embedded central processor is used to control the index maintenance circuit to perform the first index maintenance operation, so that the high-frequency key values stored in the memory of the host are read into the volatile memory and established based on the high-frequency key values. first index;
步骤S2213,将第一索引写入易失存储器和非易失存储器。Step S2213: Write the first index into the volatile memory and the non-volatile memory.
本申请一实施例中,首先基于主机接口处理模块对第一索引维护操作指令进行解析就能够得到第一索引指令解析信息;接着基于第一索引指令解析信息,利用嵌入式中央处理器控制索引维护电路进行第一索引维护操作,使得存储于主机的内部中的高频键值读取到易失存储器并且根据高频键值建立得到第一索引;最后第一索引写入易失存储器和非易失存储器中。In an embodiment of the present application, the first index maintenance operation instruction is first parsed based on the host interface processing module to obtain the first index instruction parsing information; then based on the first index instruction parsing information, the embedded central processor is used to control the index maintenance The circuit performs a first index maintenance operation, so that the high-frequency key value stored in the host is read into the volatile memory and the first index is established based on the high-frequency key value; finally, the first index is written into the volatile memory and the non-volatile memory.
值得注意的是,SSD控制器收到主机发来的第一索引维护操作指令。第一索引维护操作指令经过主机接口处理模块解析后进入嵌入式中央处理器;嵌入式中央处理器调度索引维护电路进行工作,此时索引维护电路发送命令给主机接口处理模块,将存储在主机的内存中的高频键值读取到易失存储器中,根据高频键值建立得到第一索引,其中,第一索引包括:值以及存储地址;操作完毕后,将新生成的第一索引写回易失存储器以及非易失存储器。It is worth noting that the SSD controller receives the first index maintenance operation instruction from the host. The first index maintenance operation instruction is parsed by the host interface processing module and then enters the embedded central processor; the embedded central processor schedules the index maintenance circuit to work. At this time, the index maintenance circuit sends a command to the host interface processing module to store the data stored in the host. The high-frequency key values in the memory are read into the volatile memory, and the first index is established based on the high-frequency key values. The first index includes: value and storage address; after the operation is completed, the newly generated first index is written back to the volatile memory. and non-volatile memory.
在本申请的实施例中,主机中的键值存储应用需要进行第一种索引维护操作,需要向下给底层开放通道SSD驱动提供索引维护命令,使得底层开放通道SSD驱动向SSD控制器发送第一索引维护操作指令。In the embodiment of this application, the key-value storage application in the host needs to perform the first index maintenance operation, and needs to provide an index maintenance command to the underlying open channel SSD driver, so that the underlying open channel SSD driver sends the first index maintenance command to the SSD controller. An index maintenance operation instruction.
如图8所示,上述步骤S222包括但不限于步骤S2221和步骤S2222:As shown in Figure 8, the above step S222 includes but is not limited to step S2221 and step S2222:
步骤S2221,基于主机接口处理模块对第二索引维护操作指令和数据打包操作指令进行解析得到第二索引指令解析信息和数据打包解析信息;Step S2221, parse the second index maintenance operation instruction and the data packaging operation instruction based on the host interface processing module to obtain the second index instruction parsing information and data packaging parsing information;
步骤S2222,基于第二索引指令解析信息和数据打包解析信息,利用嵌入式中央处理器控制索引维护电路和数据打包电路进行数据调度处理。Step S2222: Based on the second index instruction parsing information and data packaging parsing information, use the embedded central processor to control the index maintenance circuit and the data packaging circuit to perform data scheduling processing.
本申请一实施例中,首先基于主机接口处理模块对第二索引维护操作指令和数据打包操作指令进行解析得到第二索引指令解析信息和数据打包解析信息;接着基于第二索引指令解析信息和数据打包解析信息,利用嵌入式中央处理器控制索引维护电路和数据打包电路进行数据调度处理。In an embodiment of the present application, the second index maintenance operation instruction and the data packaging operation instruction are first parsed based on the host interface processing module to obtain the second index instruction parsing information and data packaging parsing information; and then the information and data are parsed based on the second index instruction. Pack and parse information, and use the embedded central processor to control the index maintenance circuit and data packaging circuit for data scheduling and processing.
值得注意的是,SSD控制器收到主机发来的第二索引维护操作指令和数据打包操作指令。第二索引维护操作指令和数据打包操作指令经过主机接口处理模块解析后进入嵌入式中央处理器;嵌入式中央处理器就可以调度索引维护电路和数据打包电路进行工作。 It is worth noting that the SSD controller receives the second index maintenance operation instruction and data packaging operation instruction from the host. The second index maintenance operation instructions and data packaging operation instructions enter the embedded central processor after being parsed by the host interface processing module; the embedded central processor can schedule the index maintenance circuit and the data packaging circuit to work.
在本申请的实施例中,主机中的键值存储应用需要进行数据打包操作,需要向下给底层开放通道SSD驱动提供数据打包操作指令以及第二索引维护指令,使得底层开放通道SSD驱动向SSD控制器发送第二索引维护操作指令和数据打包操作指令;接着主机接口处理模块对第二索引维护操作指令和数据打包操作指令进行解析得到第二索引指令解析信息和数据打包解析信息,最后嵌入式中央处理器根据第二索引指令解析信息和数据打包解析信息控制索引维护电路和数据打包电路进行数据调度处理。In the embodiment of this application, the key-value storage application in the host needs to perform data packaging operations, and needs to provide data packaging operation instructions and second index maintenance instructions to the underlying open channel SSD driver, so that the underlying open channel SSD driver The controller sends the second index maintenance operation instruction and the data packaging operation instruction; then the host interface processing module parses the second index maintenance operation instruction and the data packaging operation instruction to obtain the second index instruction parsing information and data packaging parsing information, and finally the embedded The central processing unit controls the index maintenance circuit and the data packaging circuit to perform data scheduling processing according to the second index instruction parsing information and the data packaging parsing information.
如图9所示,上述步骤S2222包括但不限于步骤S2223、步骤S2224和步骤S2225:As shown in Figure 9, the above step S2222 includes but is not limited to step S2223, step S2224 and step S2225:
步骤S2223,通过嵌入式中央处理器控制数据打包电路进行第一数据打包处理,使得存储于主机的内存表中的缓存数据读取到易失存储器;Step S2223, the embedded central processor controls the data packaging circuit to perform the first data packaging process, so that the cache data stored in the memory table of the host is read into the volatile memory;
步骤S2224,根据索引维护电路对存储于易失存储器中的缓存数据进行第一索引创建处理得到第二索引,并且通过数据打包电路,将存储于易失存储器中的缓存数据搬运至非易失存储器;Step S2224: Perform a first index creation process on the cache data stored in the volatile memory according to the index maintenance circuit to obtain a second index, and transfer the cache data stored in the volatile memory to the non-volatile memory through the data packaging circuit ;
步骤S2225,将缓存数据和第二索引写入非易失存储器。Step S2225: Write the cache data and the second index into the non-volatile memory.
本申请一实施例中,通过嵌入式中央处理器控制数据打包电路进行第一数据打包处理,使得存储于主机的内存表中的缓存数据读取到易失存储器;接着根据索引维护电路对存储于易失存储器中的缓存数据进行第一索引创建处理得到第二索引,并且通过数据打包电路,将存储于易失存储器中的缓存数据搬运至非易失存储器;最后将缓存数据和第二索引写入非易失存储器,以完成数据打包操作指令。In one embodiment of the present application, the embedded central processor controls the data packaging circuit to perform the first data packaging process, so that the cached data stored in the memory table of the host is read into the volatile memory; and then the index maintenance circuit is used to perform the first data packaging process. The cached data in the volatile memory undergoes a first index creation process to obtain a second index, and the cached data stored in the volatile memory is transferred to the non-volatile memory through the data packaging circuit; finally, the cached data and the second index are written into the non-volatile memory to complete the data packaging operation instructions.
值得注意的是,主机内存中的内存表读取到易失存储器中,再为其分配非易失存储器中的存储空间;分配好空间后启动索引维护电路生成第二索引,该索引记录该层非易失存储器的基本存储单元中每一个页面的地址以及所存储的键值的范围,建立索引的同时数据打包电路将缓存在易失存储器中的数据搬运到非易失存储器中,操作完毕后,需要将数据与第二索引写回非易失存储器,以完成数据打包操作指令。It is worth noting that the memory table in the host memory is read into the volatile memory, and then storage space in the non-volatile memory is allocated to it; after the space is allocated, the index maintenance circuit is started to generate a second index, which records the layer The address of each page in the basic storage unit of the non-volatile memory and the range of stored key values. While establishing the index, the data packaging circuit will move the data cached in the volatile memory to the non-volatile memory. After the operation is completed , the data and the second index need to be written back to the non-volatile memory to complete the data packaging operation instruction.
值得注意的是,为键值存储应用的后台打包命令设置协处理机制,使得处理单元在数据较近的位置,避免了主机与存储设备之间冗长的数据传输时间并节约了主机算力。并且为键值存储应用的索引维护命令设置协处理机制,可以在执行打包命令的同时建立维护或者专门为特定数据维护索引,节约了后台处理时间,提高了服务带宽。It is worth noting that a co-processing mechanism is set up for the background packaging command of the key-value storage application, so that the processing unit is located closer to the data, avoiding lengthy data transmission time between the host and the storage device and saving the host's computing power. And a co-processing mechanism is set up for the index maintenance command of the key-value storage application, which can establish maintenance while executing the packaging command or maintain the index specifically for specific data, saving background processing time and improving service bandwidth.
可以理解的是,开放通道固态硬盘可以整合冗余的软件栈。键值存储应用已经包含了垃圾回收功能,无需底层FTL执行垃圾回收操作,同时,将存储单元管理权上移可以更加充分利用底层存储资源,避免冗余的软件栈导致连续数据的碎片化低效率存储等问题。Understandably, open-channel SSDs can incorporate redundant software stacks. Key-value storage applications already include garbage collection functions, eliminating the need for the underlying FTL to perform garbage collection operations. At the same time, moving storage unit management rights upward can make full use of underlying storage resources and avoid the fragmentation and inefficiency of continuous data caused by redundant software stacks. Storage and other issues.
如图10所示,上述步骤S2222包括但不限于步骤S2226、步骤S2227、步骤S2228和步骤S2229:As shown in Figure 10, the above step S2222 includes but is not limited to step S2226, step S2227, step S2228 and step S2229:
步骤S2226,通过嵌入式中央处理器控制数据打包电路进行第二数据打包处理,使得存储于非易失存储器的排序字符串表中的初始存储数据读取到易失存储器;Step S2226, the embedded central processor controls the data packaging circuit to perform the second data packaging process, so that the initial storage data stored in the sorted string table of the non-volatile memory is read into the volatile memory;
步骤S2227,对存储于易失存储器中的初始存储数据进行合并排序得到调整数据;Step S2227, merge and sort the initial storage data stored in the volatile memory to obtain the adjustment data;
步骤S2228,根据索引维护电路对存储于易失存储器中的调整数据进行第二索引创建处理得到第三索引,并且通过数据打包电路,将存储于易失存储器中的调整数据搬运至非易失存储器;Step S2228: Perform a second index creation process on the adjustment data stored in the volatile memory according to the index maintenance circuit to obtain a third index, and transfer the adjustment data stored in the volatile memory to the non-volatile memory through the data packaging circuit ;
步骤S2229,将调整数据和第三索引写入非易失存储器。 Step S2229: Write the adjustment data and the third index into the non-volatile memory.
本申请一实施例中,通过嵌入式中央处理器控制数据打包电路进行第二数据打包处理,使得存储于非易失存储器的排序字符串表中的初始存储数据读取到易失存储器;接着对存储于易失存储器中的初始存储数据进行合并排序得到调整数据;接着根据索引维护电路对存储于易失存储器中的调整数据进行第二索引创建处理得到第三索引,并且通过数据打包电路,将存储于易失存储器中的调整数据搬运至非易失存储器;最后将调整数据和第三索引写入非易失存储器。In one embodiment of the present application, the embedded central processor controls the data packaging circuit to perform the second data packaging process, so that the initial storage data stored in the sorted string table of the non-volatile memory is read into the volatile memory; and then the The initial storage data stored in the volatile memory is merged and sorted to obtain the adjustment data; then the second index creation process is performed on the adjustment data stored in the volatile memory according to the index maintenance circuit to obtain the third index, and the third index is obtained through the data packaging circuit. The adjustment data stored in the volatile memory is transferred to the non-volatile memory; finally, the adjustment data and the third index are written into the non-volatile memory.
值得注意的是,数据打包电路将存储在非易失存储器中的两块基本存储单元读取到易失存储器中,再为其分配非易失存储器中新的存储空间并进行合并排序操作,新生成的数据缓存在易失存储器中;合并排序完成后启动索引维护电路生成第三索引,该索引记录该层基本存储单元中每一个页面的地址以及所存储的键值的范围,建立索引的同时数据打包电路将缓存在易失存储器的调整数据搬运到非易失存储器中,操作完毕后,将调整数据与第三索引写回非易失存储器。It is worth noting that the data packaging circuit reads the two basic storage units stored in the non-volatile memory into the volatile memory, then allocates new storage space in the non-volatile memory and performs a merge sort operation. The new The generated data is cached in volatile memory; after the merge sort is completed, the index maintenance circuit is started to generate a third index. This index records the address of each page in the basic storage unit of this layer and the range of stored key values. While establishing the index, The data packaging circuit transfers the adjustment data cached in the volatile memory to the non-volatile memory. After the operation is completed, the adjustment data and the third index are written back to the non-volatile memory.
如图11所示,上述步骤S200之后包括但不限于步骤S300:As shown in Figure 11, steps after the above step S200 include but are not limited to step S300:
步骤S300,在数据调度处理完成之后,向主机发送操作完成通知信息。Step S300: After the data scheduling process is completed, an operation completion notification message is sent to the host.
本申请一实施例中,在数据调度处理完成之后,SSD控制器的一侧还会向主机发送操作完成通知信息,以告知主机已经完成相关的操作指令。In one embodiment of the present application, after the data scheduling process is completed, one side of the SSD controller will also send operation completion notification information to the host to inform the host that the relevant operation instructions have been completed.
示例性地,当主机下发的是索引维护操作指令,SSD控制器的一侧在完成索引维护操作的情况下就会向主机发送操作完成通知信息,以告知主机已经完成索引维护操作;当主机下发的是数据打包操作指令,SSD控制器的一侧在完成数据打包操作的情况下就会向主机发送操作完成通知信息,以告知主机已经完成数据打包操作。For example, when the host issues an index maintenance operation instruction, the SSD controller side will send an operation completion notification message to the host after completing the index maintenance operation to inform the host that the index maintenance operation has been completed; when the host What is issued is the data packaging operation command. When the data packaging operation is completed, the side of the SSD controller will send an operation completion notification message to the host to inform the host that the data packaging operation has been completed.
如图12所示,图12是本申请另一个实施例提供的数据处理方法的流程图。该方法应用于主机,主机包括键值存储应用,该方法包括但不限于有步骤S400:As shown in Figure 12, Figure 12 is a flow chart of a data processing method provided by another embodiment of the present application. The method is applied to the host, and the host includes a key-value storage application. The method includes but is not limited to step S400:
步骤S400,在键值存储应用被触发的情况下向固态硬盘SSD控制器发送操作指令,以使得SSD控制器中的协处理模块进行数据调度处理。Step S400: When the key-value storage application is triggered, an operation instruction is sent to the solid-state drive SSD controller, so that the co-processing module in the SSD controller performs data scheduling processing.
本申请一实施例中,在键值存储应用被触发的情况下就会向SSD控制器发送操作指令,使得SSD控制器中的协处理模块能够进行数据调度处理,以完成相应的操作指令。In an embodiment of the present application, when the key-value storage application is triggered, an operation instruction is sent to the SSD controller, so that the co-processing module in the SSD controller can perform data scheduling processing to complete the corresponding operation instruction.
本申请一实施例中,获取主机的键值存储应用被触发的情况下发送的操作指令;接着根据操作指令控制协处理模块进行数据调度处理,其中,协处理模块位于SSD控制器中;通过上述设定,使得在SSD控制器中就能够进行数据调度处理,降低主机的运算能力消耗,并且不需要像以往那样通过主机从SSD控制器的一侧读取数据才可以进行数据调度,省去了主机与SSD控制器之间的调度数据传输过程,从而提高了数据处理的效率。In an embodiment of the present application, the operation instructions sent when the key-value storage application of the host is triggered are obtained; and then the co-processing module is controlled to perform data scheduling processing according to the operation instructions, wherein the co-processing module is located in the SSD controller; through the above Settings enable data scheduling processing in the SSD controller, reducing the computing power consumption of the host, and there is no need to read data from the side of the SSD controller through the host as in the past to perform data scheduling, eliminating the need for The data transmission process is scheduled between the host and the SSD controller, thereby improving the efficiency of data processing.
如图13所示,主机包括底层开放通道SSD驱动,上述步骤S400包括但不限于步骤S410和步骤S420。As shown in Figure 13, the host includes an underlying open channel SSD driver, and the above step S400 includes but is not limited to step S410 and step S420.
步骤S410,触发键值存储应用生成操作指令;Step S410, trigger the key-value storage application to generate operation instructions;
步骤S420,基于底层开放通道SSD驱动将操作指令向固态硬盘SSD控制器进行发送。Step S420: Send the operation command to the solid state drive SSD controller based on the underlying open channel SSD driver.
本申请一实施例中,对键值存储应用进行触发就会生成操作指令,接着基于底层开放通道SSD驱动将键值存储应用生成的操作指令向SSD控制器进行发送处理,以使得SSD控制器可以完成相应的操作指令。In one embodiment of the present application, triggering the key-value storage application will generate an operation instruction, and then based on the underlying open channel SSD driver, the operation instruction generated by the key-value storage application will be sent to the SSD controller for processing, so that the SSD controller can Complete the corresponding operation instructions.
本申请另一个实施例提供的SSD控制器,SSD控制器包括协处理模块; Another embodiment of the present application provides an SSD controller, the SSD controller includes a co-processing module;
SSD控制器用于获取主机的键值存储应用被触发的情况下发送的操作指令;以及根据操作指令控制协处理模块进行数据调度处理。The SSD controller is used to obtain the operation instructions sent when the key-value storage application of the host is triggered; and to control the co-processing module to perform data scheduling processing according to the operation instructions.
值得注意的是,将协处理模块设置在SSD控制器中,使得在SSD控制器中就能够进行数据调度处理,降低主机的运算能力消耗,并且不需要像以往那样通过主机从SSD控制器的一侧读取数据才可以进行数据调度,省去了主机与SSD控制器之间的调度数据传输过程,从而提高了数据处理的效率。It is worth noting that setting the co-processing module in the SSD controller enables data scheduling and processing in the SSD controller, reducing the computing power consumption of the host, and does not require a step from the SSD controller through the host as in the past. Data scheduling can be performed only by reading data on the side, eliminating the scheduling data transmission process between the host and the SSD controller, thereby improving the efficiency of data processing.
另外,如图14所示,本申请的一个实施例还提供了一种电子设备700,该电子设备700包括如下之一:上述实施例中的SSD控制器;或,In addition, as shown in Figure 14, one embodiment of the present application also provides an electronic device 700. The electronic device 700 includes one of the following: the SSD controller in the above embodiment; or,
存储器720、处理器710及存储在存储器720上并可在处理器710上运行的计算机程序。Memory 720, processor 710, and a computer program stored on memory 720 and executable on processor 710.
处理器710和存储器720可以通过总线或者其他方式连接。The processor 710 and the memory 720 may be connected through a bus or other means.
需要说明的是,本实施例中的电子设备700和上述实施例中的数据处理方法属于相同的发明构思,因此这些实施例具有相同的实现原理以及技术效果,此处不再详述。It should be noted that the electronic device 700 in this embodiment and the data processing method in the above embodiments belong to the same inventive concept, so these embodiments have the same implementation principles and technical effects, which will not be described in detail here.
实现上述实施例的数据处理方法所需的非暂态软件程序以及指令存储在存储器720中,当被处理器710执行时,执行上述实施例中的数据处理方法,例如,执行以上描述的图3中的方法步骤S100至S200、图4中的方法步骤S210至S220、图5中的方法步骤S221、图6中的方法步骤S222、图7中的方法步骤S2211至S2213、图8中的方法步骤S2221至S2222、图9中的方法步骤S2223至S2225、图10中的方法步骤S2226至S2229、图11中的方法步骤S300、图12中的方法步骤S400、图13中的方法步骤S410至S420。The non-transitory software programs and instructions required to implement the data processing method of the above embodiment are stored in the memory 720. When executed by the processor 710, the data processing method in the above embodiment is executed, for example, executing the above-described FIG. 3 The method steps S100 to S200 in Figure 4, the method steps S210 to S220 in Figure 4, the method step S221 in Figure 5, the method step S222 in Figure 6, the method steps S2211 to S2213 in Figure 7, the method steps in Figure 8 S2221 to S2222, method steps S2223 to S2225 in Figure 9, method steps S2226 to S2229 in Figure 10, method step S300 in Figure 11, method step S400 in Figure 12, and method steps S410 to S420 in Figure 13.
此外,本申请的一个实施例还提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令被一个处理器710执行,例如,被上述调度装置700实施例中的一个处理器710执行,可使得上述处理器710执行上述实施例中的数据处理方法,例如,执行以上描述的图3中的方法步骤S100至S200、图4中的方法步骤S210至S220、图5中的方法步骤S221、图6中的方法步骤S222、图7中的方法步骤S2211至S2213、图8中的方法步骤S2221至S2222、图9中的方法步骤S2223至S2225、图10中的方法步骤S2226至S2229、图11中的方法步骤S300、图12中的方法步骤S400、图13中的方法步骤S410至S420。In addition, one embodiment of the present application also provides a computer-readable storage medium that stores computer-executable instructions, and the computer-executable instructions are executed by a processor 710, for example, by the above-mentioned scheduling device. Execution of a processor 710 in the embodiment 700 can cause the above-mentioned processor 710 to execute the data processing method in the above embodiment, for example, execute the above-described method steps S100 to S200 in Figure 3 and method step S210 in Figure 4 to S220, method step S221 in Figure 5, method step S222 in Figure 6, method steps S2211 to S2213 in Figure 7, method steps S2221 to S2222 in Figure 8, method steps S2223 to S2225 in Figure 9, Figure Method steps S2226 to S2229 in Figure 10, method steps S300 in Figure 11, method step S400 in Figure 12, and method steps S410 to S420 in Figure 13.
本申请实施例包括:获取主机的键值存储应用被触发的情况下发送的操作指令;接着根据操作指令控制协处理模块进行数据调度处理,其中,协处理模块位于SSD控制器中;通过上述设定,使得在SSD控制器中就能够进行数据调度处理,降低主机的运算能力消耗,并且不需要像以往那样通过主机从SSD控制器的一侧读取数据才可以进行数据调度,省去了主机与SSD控制器之间的调度数据传输过程,从而提高了数据处理的效率。Embodiments of this application include: obtaining the operation instructions sent when the key-value storage application of the host is triggered; and then controlling the co-processing module to perform data scheduling processing according to the operation instructions, wherein the co-processing module is located in the SSD controller; through the above device It is determined that data scheduling can be performed in the SSD controller, reducing the computing power consumption of the host, and there is no need to read data from the side of the SSD controller through the host as in the past to perform data scheduling, eliminating the need for a host Scheduling the data transmission process with the SSD controller, thereby improving the efficiency of data processing.
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统可以被实施为软件、固件、硬件及其适当的组合。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可 移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。 Those of ordinary skill in the art can understand that all or some steps and systems in the methods disclosed above can be implemented as software, firmware, hardware, and appropriate combinations thereof. Some or all of the physical components may be implemented as software executed by a processor, such as a central processing unit, a digital signal processor, or a microprocessor, or as hardware, or as an integrated circuit, such as an application specific integrated circuit . Such software may be distributed on computer-readable media, which may include computer storage media (or non-transitory media) and communication media (or transitory media). As is known to those of ordinary skill in the art, the term computer storage media includes volatile and nonvolatile media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data. sexual, removable and non- Remove the media. Computer storage media includes, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, Digital Versatile Disk (DVD) or other optical disk storage, magnetic cassettes, tapes, disk storage or other magnetic storage devices, or may Any other medium used to store the desired information and that can be accessed by a computer. Additionally, it is known to those of ordinary skill in the art that communication media typically embodies computer readable instructions, data structures, program modules or other data in a modulated data signal such as a carrier wave or other transport mechanism, and may include any information delivery media .

Claims (14)

  1. 一种数据处理方法,应用于固态硬盘SSD控制器,所述SSD控制器包括协处理模块,所述数据处理方法包括:A data processing method, applied to a solid state drive SSD controller, the SSD controller includes a co-processing module, the data processing method includes:
    获取主机的键值存储应用被触发的情况下发送的操作指令;Obtain the operation instructions sent when the host's key-value storage application is triggered;
    根据所述操作指令控制所述协处理模块进行数据调度处理。The co-processing module is controlled to perform data scheduling processing according to the operation instructions.
  2. 根据权利要求1所述的数据处理方法,其中,所述SSD控制器包括嵌入式中央处理器和主机接口处理模块,所述根据所述操作指令控制所述协处理模块进行数据调度处理,包括:The data processing method according to claim 1, wherein the SSD controller includes an embedded central processor and a host interface processing module, and controlling the co-processing module to perform data scheduling processing according to the operating instructions includes:
    基于所述主机接口处理模块对所述操作指令进行解析得到指令解析信息;Parse the operation instructions based on the host interface processing module to obtain instruction parsing information;
    基于所述指令解析信息,利用所述嵌入式中央处理器控制所述协处理模块进行数据调度处理。Based on the instruction parsing information, the embedded central processor is used to control the co-processing module to perform data scheduling processing.
  3. 根据权利要求2所述的数据处理方法,其中,所述协处理模块包括索引维护电路,所述基于所述指令解析信息,利用所述嵌入式中央处理器控制所述协处理模块进行数据调度处理,包括:The data processing method according to claim 2, wherein the co-processing module includes an index maintenance circuit, and the embedded central processor is used to control the co-processing module to perform data scheduling processing based on the instruction parsing information. ,include:
    在所述操作指令包括第一索引维护操作指令的情况下,利用所述嵌入式中央处理器控制所述索引维护电路进行数据调度处理。When the operation instruction includes a first index maintenance operation instruction, the embedded central processor is used to control the index maintenance circuit to perform data scheduling processing.
  4. 根据权利要求2所述的数据处理方法,其中,所述协处理模块包括索引维护电路和数据打包电路,所述基于所述指令解析信息,利用所述嵌入式中央处理器控制所述协处理模块进行数据调度处理,包括:The data processing method according to claim 2, wherein the co-processing module includes an index maintenance circuit and a data packaging circuit, and the embedded central processor is used to control the co-processing module based on the instruction parsing information. Perform data scheduling processing, including:
    在所述操作指令包括第二索引维护操作指令和数据打包操作指令的情况下,利用所述嵌入式中央处理器控制所述索引维护电路和所述数据打包电路进行数据调度处理。In the case where the operation instructions include a second index maintenance operation instruction and a data packaging operation instruction, the embedded central processor is used to control the index maintenance circuit and the data packaging circuit to perform data scheduling processing.
  5. 根据权利要求3所述的数据处理方法,其中,所述在所述操作指令包括第一索引维护操作指令的情况下,利用所述嵌入式中央处理器控制所述索引维护电路进行数据调度处理,包括:The data processing method according to claim 3, wherein when the operation instructions include a first index maintenance operation instruction, the embedded central processor is used to control the index maintenance circuit to perform data scheduling processing, include:
    基于所述主机接口处理模块对所述第一索引维护操作指令进行解析得到第一索引指令解析信息;The first index maintenance operation instruction is parsed based on the host interface processing module to obtain the first index instruction parsing information;
    基于所述第一索引指令解析信息,利用所述嵌入式中央处理器控制所述索引维护电路进行第一索引维护操作,使得存储于所述主机的内存中的高频键值读取到易失存储器并且根据所述高频键值建立得到第一索引;Based on the first index instruction parsing information, the embedded central processor is used to control the index maintenance circuit to perform a first index maintenance operation, so that the high-frequency key values stored in the memory of the host are read into the volatile memory and Establish a first index based on the high-frequency key value;
    将所述第一索引写入所述易失存储器和非易失存储器。The first index is written to the volatile memory and non-volatile memory.
  6. 根据权利要求4所述的数据处理方法,其中,所述在所述操作指令包括第二索引维护操作指令和数据打包操作指令的情况下,利用所述嵌入式中央处理器控制所述索引维护电路和所述数据打包电路进行数据调度处理,包括:The data processing method according to claim 4, wherein the embedded central processor is used to control the index maintenance circuit when the operation instructions include a second index maintenance operation instruction and a data packaging operation instruction. Perform data scheduling processing with the data packaging circuit, including:
    基于所述主机接口处理模块对所述第二索引维护操作指令和所述数据打包操作指令进行解析得到第二索引指令解析信息和数据打包解析信息;Based on the host interface processing module, the second index maintenance operation instruction and the data packaging operation instruction are parsed to obtain the second index instruction parsing information and data packaging parsing information;
    基于所述第二索引指令解析信息和所述数据打包解析信息,利用所述嵌入式中央处理器控制所述索引维护电路和所述数据打包电路进行数据调度处理。Based on the second index instruction parsing information and the data packaging parsing information, the embedded central processor is used to control the index maintenance circuit and the data packaging circuit to perform data scheduling processing.
  7. 根据权利要求6所述的数据处理方法,其中,所述利用所述嵌入式中央处理器控制所述索引维护电路和所述数据打包电路进行数据调度处理,包括: The data processing method according to claim 6, wherein using the embedded central processor to control the index maintenance circuit and the data packaging circuit to perform data scheduling processing includes:
    通过所述嵌入式中央处理器控制所述数据打包电路进行第一数据打包处理,使得存储于所述主机的内存表中的缓存数据读取到易失存储器;The embedded central processor controls the data packaging circuit to perform the first data packaging process, so that the cache data stored in the memory table of the host is read into the volatile memory;
    根据所述索引维护电路对存储于所述易失存储器中的所述缓存数据进行第一索引创建处理得到第二索引,并且通过所述数据打包电路,将存储于所述易失存储器中的所述缓存数据搬运至非易失存储器;According to the index maintenance circuit, the cache data stored in the volatile memory is subjected to a first index creation process to obtain a second index, and through the data packaging circuit, all the cache data stored in the volatile memory are Move the cached data to non-volatile memory;
    将所述缓存数据和所述第二索引写入所述非易失存储器。The cache data and the second index are written into the non-volatile memory.
  8. 根据权利要求6所述的数据处理方法,其中,所述利用所述嵌入式中央处理器控制所述索引维护电路和所述数据打包电路进行数据调度处理,包括:The data processing method according to claim 6, wherein using the embedded central processor to control the index maintenance circuit and the data packaging circuit to perform data scheduling processing includes:
    通过所述嵌入式中央处理器控制所述数据打包电路进行第二数据打包处理,使得存储于非易失存储器的排序字符串表中的初始存储数据读取到易失存储器;The embedded central processor controls the data packaging circuit to perform the second data packaging process, so that the initial storage data stored in the sorted string table of the non-volatile memory is read into the volatile memory;
    对存储于所述易失存储器中的初始存储数据进行合并排序得到调整数据;Merge and sort the initial storage data stored in the volatile memory to obtain the adjustment data;
    根据所述索引维护电路对存储于所述易失存储器中的所述调整数据进行第二索引创建处理得到第三索引,并且通过所述数据打包电路,将存储于所述易失存储器中的所述调整数据搬运至所述非易失存储器;According to the index maintenance circuit, the second index creation process is performed on the adjustment data stored in the volatile memory to obtain a third index, and through the data packaging circuit, all the adjustment data stored in the volatile memory are The adjustment data is transferred to the non-volatile memory;
    将所述调整数据和所述第三索引写入所述非易失存储器。The adjustment data and the third index are written into the non-volatile memory.
  9. 根据权利要求1所述的数据处理方法,其中,所述根据所述操作指令控制所述协处理模块进行数据调度处理之后,所述方法还包括:The data processing method according to claim 1, wherein after controlling the co-processing module to perform data scheduling processing according to the operating instructions, the method further includes:
    在数据调度处理完成之后,向所述主机发送操作完成通知信息。After the data scheduling processing is completed, operation completion notification information is sent to the host.
  10. 一种数据处理方法,应用于主机,所述主机包括键值存储应用,所述数据处理方法包括:A data processing method, applied to a host, where the host includes a key-value storage application, and the data processing method includes:
    在所述键值存储应用被触发的情况下向固态硬盘SSD控制器发送操作指令,以使得所述SSD控制器中的协处理模块进行数据调度处理。When the key-value storage application is triggered, an operation instruction is sent to the solid state drive SSD controller, so that the co-processing module in the SSD controller performs data scheduling processing.
  11. 根据权利要求10所述的数据处理方法,其中,所述主机包括底层开放通道SSD驱动,所述在键值存储应用被触发的情况下向固态硬盘SSD控制器发送操作指令,包括:The data processing method according to claim 10, wherein the host includes an underlying open channel SSD driver, and when the key-value storage application is triggered, sending operation instructions to the solid state drive SSD controller includes:
    触发所述键值存储应用生成操作指令;Trigger the key-value storage application to generate operation instructions;
    基于所述底层开放通道SSD驱动将所述操作指令向所述固态硬盘SSD控制器进行发送。The operating instructions are sent to the solid state drive SSD controller based on the underlying open channel SSD driver.
  12. 一种固态硬盘SSD控制器,包括协处理模块;A solid state drive SSD controller, including a co-processing module;
    所述SSD控制器用于获取主机的键值存储应用被触发的情况下发送的操作指令;以及根据所述操作指令控制所述协处理模块进行数据调度处理。The SSD controller is used to obtain an operation instruction sent when the key-value storage application of the host is triggered; and to control the co-processing module to perform data scheduling processing according to the operation instruction.
  13. 一种电子设备,包括如下之一:An electronic device, including one of the following:
    如权利要求12所述的SSD控制器;或,The SSD controller as claimed in claim 12; or,
    存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如权利要求1至9任一项所述的数据处理方法或者权利要求10至11任一项所述的数据处理方法。A memory, a processor and a computer program stored in the memory and executable on the processor. When the processor executes the computer program, the data processing method according to any one of claims 1 to 9 or claim 10 is implemented. The data processing method described in any one of to 11.
  14. 一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令用于执行如权利要求1至9任一项所述的数据处理方法或者权利要求10至11任一项所述的数据处理方法。 A computer-readable storage medium storing computer-executable instructions, the computer-executable instructions being used to execute the data processing method as described in any one of claims 1 to 9 or any one of claims 10 to 11 data processing methods.
PCT/CN2023/106134 2022-07-15 2023-07-06 Data processing method, ssd controller, electronic device and readable storage medium WO2024012349A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202210830277.1 2022-07-15
CN202210830277.1A CN117435121A (en) 2022-07-15 2022-07-15 Data processing method, SSD controller, electronic device, and readable storage medium

Publications (1)

Publication Number Publication Date
WO2024012349A1 true WO2024012349A1 (en) 2024-01-18

Family

ID=89535564

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2023/106134 WO2024012349A1 (en) 2022-07-15 2023-07-06 Data processing method, ssd controller, electronic device and readable storage medium

Country Status (2)

Country Link
CN (1) CN117435121A (en)
WO (1) WO2024012349A1 (en)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105814560A (en) * 2013-12-09 2016-07-27 赛灵思公司 Memory arrangement for implementation of high-throughput key-value stores
CN109085997A (en) * 2017-06-13 2018-12-25 西部数据技术公司 Memory-efficient for nonvolatile memory continues key assignments storage
US20190392047A1 (en) * 2018-06-25 2019-12-26 Amazon Technologies, Inc. Multi-table partitions in a key-value database
CN111309270A (en) * 2020-03-13 2020-06-19 清华大学 Persistent memory key value storage system
US20210311662A1 (en) * 2020-04-02 2021-10-07 Dell Products L.P. Raid data storage device multi-step command coordination system
CN113687977A (en) * 2021-09-07 2021-11-23 天津津航计算技术研究所 Data processing device based on RAID controller to realize calculation performance improvement

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105814560A (en) * 2013-12-09 2016-07-27 赛灵思公司 Memory arrangement for implementation of high-throughput key-value stores
CN109085997A (en) * 2017-06-13 2018-12-25 西部数据技术公司 Memory-efficient for nonvolatile memory continues key assignments storage
US20190392047A1 (en) * 2018-06-25 2019-12-26 Amazon Technologies, Inc. Multi-table partitions in a key-value database
CN111309270A (en) * 2020-03-13 2020-06-19 清华大学 Persistent memory key value storage system
US20210311662A1 (en) * 2020-04-02 2021-10-07 Dell Products L.P. Raid data storage device multi-step command coordination system
CN113687977A (en) * 2021-09-07 2021-11-23 天津津航计算技术研究所 Data processing device based on RAID controller to realize calculation performance improvement

Also Published As

Publication number Publication date
CN117435121A (en) 2024-01-23

Similar Documents

Publication Publication Date Title
US9110669B2 (en) Power management of a storage device including multiple processing cores
US9104629B2 (en) Autonomic reclamation processing on sequential storage media
US10459661B2 (en) Stream identifier based storage system for managing an array of SSDs
CN110633048B (en) Namespace operation method of flash memory storage device
US9182912B2 (en) Method to allow storage cache acceleration when the slow tier is on independent controller
WO2017041570A1 (en) Method and apparatus for writing data to cache
CN100520735C (en) Memory space management method and related system
US11132291B2 (en) System and method of FPGA-executed flash translation layer in multiple solid state drives
KR101835604B1 (en) Scheduler for memory
KR102517685B1 (en) Memory block recovery method and device
US11132145B2 (en) Techniques for reducing write amplification on solid state storage devices (SSDs)
US20220253252A1 (en) Data processing method and apparatus
CN112039999A (en) Method and system for accessing distributed block storage system in kernel mode
WO2015172391A1 (en) Fast data read/write method and apparatus
US20240086113A1 (en) Synchronous write method and device, storage system and electronic device
WO2024012349A1 (en) Data processing method, ssd controller, electronic device and readable storage medium
CN111176566B (en) eMMC read-write control method supporting queue command and storage medium
US9069821B2 (en) Method of processing files in storage system and data server using the method
CN116665727B (en) Write I/O aggregation method, apparatus, storage device and storage medium
CN116501266B (en) Message context processing method, device, computer equipment and storage medium
WO2022126534A1 (en) Data processing method and related device
WO2023070462A1 (en) File deduplication method and apparatus, and device
WO2023169142A1 (en) Storage apparatus and related data partition management method
EP4318247A1 (en) Storage control method and apparatus, storage method and apparatus, electronic device, and medium
WO2022222523A1 (en) Log management method and apparatus

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 23838841

Country of ref document: EP

Kind code of ref document: A1