A data processing method, apparatus and equipment

By breaking down composite operations into multiple basic operations and utilizing the hardware operators and operation rules of storage devices, the problem of poor flexibility of computing units in memory is solved, enabling flexible data operations.

CN119271570BActive Publication Date: 2026-03-10HUAWEI TECH CO LTD
View PDF 3 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2022-11-24
Publication Date
2026-03-10

AI Technical Summary

Technical Problem

The computational flexibility of existing in-memory computing units is poor, making it difficult to achieve flexible data operations.

Method used

By breaking down composite operations into multiple basic operations, the storage device obtains the operation rules and parameters, and uses internal hardware operators to execute the basic operations, thus realizing composite operations.

Benefits of technology

It enhances the operational flexibility of storage devices, enabling them to efficiently complete various data processing tasks.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119271570B_ABST
    Figure CN119271570B_ABST
Patent Text Reader

Abstract

A data processing method, apparatus, and device are disclosed in this application. In this application, a processing device sends an operation request to a storage device, the operation request requesting the execution of a first operation. Upon receiving the operation request, the storage device obtains the operation rules and required parameters for the first operation based on the operation request. The operation rules describe multiple second operations decomposed from the first operation and their execution order. The required parameters for the first operation include the parameters required for the multiple second operations. The storage device executes the multiple second operations according to the execution order of the multiple second operations described by the operation rules, sequentially calling the hardware operators of the multiple second operations and the required parameters for the multiple second operations, thereby completing the first operation and improving the flexibility of the storage device in implementing data processing.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] Cross-reference to related applications

[0002] This application is a divisional application. The original application, application number 202211483427.2, was filed on November 24, 2022. The entire contents of the original application are incorporated herein by reference.

[0003] This application claims priority to Chinese Patent Application No. 202211112007.3, filed with the State Intellectual Property Office of China on September 13, 2022, entitled "A Storage Device", the entire contents of which are incorporated herein by reference. Technical Field

[0004] This application relates to the field of communication technology, and in particular to a data processing method, apparatus and device. Background Technology

[0005] Process in Memory (PIM) technology combines data storage and computing power, performing calculations in the location closest to the data to reduce unnecessary data movement. PIM technology utilizes computing units close to the data to perform data calculations, eliminating the need for the device's processor and even assisting it in some calculations, thus supplementing its computing power to a certain extent.

[0006] A common PIM technology is compute near memory (CNM), which refers to adding computing units to the peripheral circuitry of storage media such as memory to achieve in-memory processing.

[0007] Currently, some applications using CNM (Content Memory Management) insert computing units to perform specific calculations. These computing units include hardware structures capable of performing specific calculations, allowing the specific calculations to be performed on data stored in memory or data that needs to be stored in memory. Because these specific calculations are performed in memory through computing units with hardware structures, the calculations that can be performed are limited and the flexibility is poor. Summary of the Invention

[0008] This application provides a data processing method, apparatus, and device to improve the flexibility of processing in storage devices with CNM.

[0009] In a first aspect, embodiments of this application provide a data processing method applied to a storage device. In this method, a processing device can send an operation request (such as a first operation request or a second operation request as described in the embodiments) to the storage device. This operation request is used to request the execution of a first operation (which corresponds to the composite operation described in the embodiments).

[0010] Upon receiving the operation request, the storage device obtains the operation rules and required parameters for the first operation based on the request. The operation rules describe multiple second operations (corresponding to the basic operations in the embodiment) decomposed from the first operation and their execution order. The required parameters for the first operation include those required for the multiple second operations. The storage device can execute the first operation according to the operation rules and required parameters. For example, the storage device can execute multiple second operations by sequentially calling the hardware operators and required parameters of the multiple second operations as described by the operation rules, thereby completing the first operation.

[0011] Using the above method, the first operation can be broken down into multiple second operations. When executing the first operation, the storage device only needs to call the hardware operators of the second operations and the required operation parameters according to the execution order of the multiple second operations after the first operation is broken down to complete the first operation. The storage device no longer needs to update its internal hardware structure, but can complete the first operation by knowing the operation rules and the operation parameters required for the first operation, enabling the storage device to flexibly implement various data operations.

[0012] In one possible implementation, the processing device may pre-configure the operation rules of the first operation to the storage device. For example, the processing device may send a rule configuration request to the storage device, the rule configuration request carrying the operation rules of the first operation and their logical addresses. Upon receiving the rule configuration request, the storage device stores the operation rules of the first operation at the storage location indicated by the logical address of the operation rules.

[0013] Using the above method, the storage device can obtain the operation rules of the first operation in advance upon request from the processing device, so that the storage device can efficiently complete the first operation subsequently.

[0014] In one possible implementation, the processing device may further configure the operation parameters required for the first operation into the storage device before the storage device is required to perform the first operation. For example, the processing device may send a parameter configuration request (such as the first parameter configuration request in the embodiment section) to the storage device. The parameter configuration request is used to request the configuration of the operation parameters required for the first operation, and the parameter configuration request carries the operation parameters required for the first operation and their logical addresses. After receiving the parameter configuration request, the storage device stores the operation rules required for the first operation at the storage location indicated by the logical address of the operation parameters required for the first operation.

[0015] Using the above method, the storage device can obtain the calculation parameters required for the first calculation from the processing device, so that the storage device can use the calculation parameters to complete the first calculation.

[0016] In one possible implementation, the processing device may request the storage device to reserve storage space for the operation rules of the first operation and the operation parameters required for the first operation, and inform the storage device of the logical address of the operation rules of the first operation and the operation parameters required for the first operation.

[0017] Upon request from the processing device, the storage device reserves storage space for the operation rules and required parameters of the first operation, and establishes a correspondence between the logical addresses and physical addresses of the operation rules and required parameters. The logical address of the operation rules and required parameters is the logical address of this storage space.

[0018] Using the above method, the storage device reserves storage space for the operation rules and operation parameters required for the first operation. The storage device can then write the operation rules and operation parameters required for the first operation into this storage space, further ensuring that the storage device can obtain the operation rules and operation parameters required for the first operation when it needs to perform the first operation.

[0019] In one possible implementation, the storage device may also reserve storage space for the operation rules and parameters required for the first operation. The storage device provides the processing device with the logical addresses of the operation rules and parameters required for the first operation.

[0020] Using the above method, the processing device can obtain the operation rules of the first operation and the logical addresses of the operation parameters required for the first operation from the storage device, so that the processing device can configure the operation rules of the first operation or the operation parameters required for the first operation for the storage device by sending a configuration request (such as a rule configuration request or a parameter configuration request) carrying the operation rules of the first operation or the logical addresses of the operation parameters required for the first operation.

[0021] In one possible implementation, the hardware operators of the multiple second operations are hardware logic built into the storage device.

[0022] Using the above method, the storage device has built-in hardware logic, which enables the storage device to directly perform the second operation.

[0023] In one possible implementation, the operation request includes a virtual address of a first operation. The virtual address of the first operation is associated with the storage locations of the operation rules of the first operation and the operation parameters required for the first operation. When the storage device obtains the operation rules of the first operation and the operation parameters required for the first operation according to the operation request, it can obtain the operation rules of the first operation and the operation parameters required for the first operation from the storage locations associated with the virtual address of the first operation.

[0024] Using the above method, after receiving an operation request carrying a virtual address of the first operation, the storage device can determine that the first operation request is an operation request carrying a computing task, and then obtain the operation rules of the first operation and the operation parameters required for the first operation from the storage location associated with the virtual address of the first operation, and execute the first operation.

[0025] In one possible implementation, the storage device obtains a virtual address configured by the processing device for a first operation, the virtual address of the first operation being used to indicate the execution of the first operation; after obtaining the virtual address of the first operation, the storage device can establish associations between the virtual address of the first operation and the storage locations of the operation rules of the first operation and the operation parameters required by the first operation.

[0026] Using the above method, the storage device can obtain the virtual address of the first operation from the processing device, so as to associate the virtual address with the operation rules of the first operation and the storage location of the operation parameters required by the first operation.

[0027] In one possible implementation, the storage device includes a media chip, which includes a media array and computing circuit logic. The media array is used to store data, and the computing circuit logic is used to perform a first operation on the data in the media array or data to be written to the media array. The media array and the computing circuit logic are located in the storage device in a stacked manner.

[0028] Using the above method, the computational circuit logic is located in the medium chip, so that the computational circuit logic can perform the first operation, improving the flexibility of CNM.

[0029] In one possible implementation, the computational circuit logic includes a cache and multiple hardware operators for second operations. The cache stores the operation rules and parameters required for the first operation. The computational circuit logic can then perform the first operation using the operation rules and parameters required for the first operation.

[0030] Using the above method, the computational circuit logic stores the operation rules of the first operation and the operation parameters required for the first operation, and the computational circuit logic can easily obtain the operation rules of the first operation and the operation parameters required for the first operation.

[0031] In one possible implementation, the storage device and the processing device can be connected via a system bus or a network.

[0032] The above method allows for flexible connection between storage devices and processing devices, making it suitable for various scenarios.

[0033] Secondly, this application also provides a storage device that has the functionality to implement the behavior described in the method example of the first aspect above. The beneficial effects are described in the first aspect and will not be repeated here. The storage device includes at least one medium chip, which includes a medium array and computing circuit logic.

[0034] Media array, used to store data.

[0035] The computational circuit logic is used to obtain the operation rules of the first operation and the operation parameters required for the first operation; the operation rules of the first operation describe the multiple second operations after the first operation is decomposed and the execution order of the multiple second operations; the operation parameters required for the first operation include the operation parameters required for the multiple second operations; the first operation is performed on the data in the medium array according to the operation rules of the first operation and the operation parameters required for the first operation.

[0036] In one possible implementation, the computational circuit logic includes multiple hardware operators for second operations and a cache. The cache stores the operation rules and operation parameters required for the first operation. When the computational circuit logic executes the first operation, it can retrieve the operation rules and operation parameters required for the first operation from the cache. The computational circuit logic then executes multiple second operations on the data in the medium array by sequentially calling the hardware operators and operation parameters required for the second operations according to the execution order of the multiple second operations.

[0037] In one possible implementation, the dielectric array and the computing circuit logic can be located in the same plane, or they can be stacked.

[0038] In one possible implementation, the storage device further includes a media controller. The media controller receives a rule configuration request (such as a first rule configuration request mentioned in later embodiments) from the processing device. This rule configuration request requests the configuration of operation rules for a first operation. Upon receiving the rule configuration request, the media controller can configure the operation rules for the first operation to the computing circuit logic. The media controller also receives a parameter configuration request (such as a first parameter configuration request mentioned in later embodiments) from the processing device. This parameter configuration request requests the configuration of operation parameters required for the first operation and configures the operation parameters required for the first operation to the computing circuit logic.

[0039] In one possible implementation, the media controller may also receive operation requests from the processing device (such as the first operation request and the second operation request mentioned in subsequent embodiments), the operation request being used to request the execution of a first operation and to send an operation instruction to the computing circuit logic, the operation instruction being used to instruct the computing circuit logic to execute the first operation.

[0040] Thirdly, this application also provides a data processing device, the functions of which can be implemented by hardware or by hardware executing corresponding software. The hardware or software includes one or more units corresponding to the aforementioned functions. In one possible design, the device structure includes a transmission module and a processing module; optionally, it also includes a pre-configuration module. These modules can perform the corresponding functions of the storage device in the method examples of the first aspect described above, as detailed in the method examples, and will not be repeated here.

[0041] Fourthly, this application also provides a computer-readable storage medium storing instructions that, when executed on a computer, cause the computer to perform the methods described in the first aspect and various possible implementations of the first aspect.

[0042] Fifthly, this application also provides a computer program product containing instructions that, when run on a computer, cause the computer to perform the methods described in the first aspect and various possible implementations of the first aspect.

[0043] In a sixth aspect, this application also provides a computer chip connected to a memory, the chip being used to read and execute a software program stored in the memory, and to execute the methods described in the first aspect and various possible implementations of the first aspect. Attached Figure Description

[0044] Figure 1 A schematic diagram of the structure of an operation rule table and an operation parameter table provided in this application;

[0045] Figure 2 A schematic diagram of a system architecture is provided for this application;

[0046] Figure 3 A schematic diagram of the structure of a storage device provided in this application;

[0047] Figures 4A-4B This application provides a schematic diagram of the structure of a dielectric array and a computing circuit logic.

[0048] Figure 5 A schematic diagram of a data processing method provided in this application;

[0049] Figure 6 This is a schematic diagram of the structure of a data processing device provided in this application. Detailed Implementation

[0050] Before introducing the data processing method, apparatus and device provided in this application, some concepts involved in the embodiments of this application will be clarified.

[0051] (1) Data processing.

[0052] This application involves two types of data operations: one is a highly complex operation, which can be further broken down into multiple less complex operations; the other is a less complex operation that does not require further breakdown. For ease of distinction, the more complex operation is referred to as a composite operation; the less complex operation is referred to as a basic operation.

[0053] In this embodiment, the storage device itself has the function of performing basic operations. For example, the storage device has operators internally configured to perform basic operations. The storage device can call these operators to perform basic operations. For composite operations, the storage device does not have operators configured for composite operations. Since composite operations can be decomposed into multiple basic operations, the storage device can know the multiple basic operations decomposed into the composite operation, the execution order of the multiple basic operations, and the operation parameters required for the composite operation. The storage device sequentially calls the operators and operation parameters of the multiple basic operations according to the execution order of the multiple basic operations to perform the multiple basic operations, thereby completing the composite operation.

[0054] Therefore, it can be seen that compound operations or basic operations are not specific operations of one or more kinds. In fact, the distinction between compound operations and basic operations is based on the operations that storage devices can perform independently. Operations that storage devices can perform independently using internal operators can be understood as basic operations. Operations that storage devices need to know the execution order of multiple basic operations and call multiple basic operation operators to complete can be considered compound operations. In other words, for storage devices, operations that need to be broken down into components are compound operations; operations that can be completed without breaking down components are basic operations.

[0055] For example, storage devices are equipped with operators that perform filtering, scanning, projecting, addition, and sorting operations. Filtering selects data from a set of data that meets certain criteria; scanning scans a range of data addresses; and projecting moves data from one address to another. Therefore, for storage devices, filtering, scanning, projecting, and addition are considered basic operations.

[0056] If there is an operation that requires migrating data that meets a certain condition from multiple data within a certain data address range to another data address range, and the storage device does not have an operator for this operation, or the storage device cannot directly call an operator to implement this operation, then this operation is a compound operation.

[0057] If there is an operation that requires sorting multiple data within multiple data address ranges, and the storage device does not have an operator for this operation, or the storage device cannot directly call an operator to implement this operation, then this operation is a composite operation.

[0058] (2) The operation rules of compound operations and the operation parameters required for compound operations.

[0059] For any compound operation, the compound operation can be decomposed into multiple basic operations that are executed sequentially.

[0060] The rules of compound operations describe the multiple basic operations that are decomposed from the compound operation and the execution order of these multiple basic operations.

[0061] For example, a composite operation 1, which requires migrating data that meets certain conditions from multiple data points within one data address range to another data address range, can be broken down into a scanning operation, a filtering operation, and a data migration operation. The specific content of the conditions depends on the computational scenario in which composite operation 1 is performed; the specific content of the conditions is not limited here. For example, the conditions could be equal to a target value, or greater than a target value, etc.

[0062] The operation process of the compound operation 1 is as follows:

[0063] Operation 1: Perform a scan operation to scan multiple data points within a specified data address range. The operation parameter required for the scan operation is this data address range.

[0064] Operation 2: Perform a filtering operation to filter out the data that meets the conditions from the multiple data read in Operation 1. The operation parameters required for the filtering operation are the multiple data read in Operation 1 and the conditions that the data must meet.

[0065] Operation 3: Perform a data migration operation to migrate the data that meets the criteria filtered in Operation 2 to another data address range. The operation parameters required for the data migration operation are the data filtered in Operation 2 and the other data address range.

[0066] For example, the compound operation 2, which requires sorting multiple data within multiple data address ranges, can be broken down into scanning operation, addition operation, and sorting operation.

[0067] The operation process of the compound operation 2 is as follows:

[0068] Operation 1: Perform a scan operation to scan multiple data points within multiple data address ranges. The operation parameters required for the scan operation are these multiple data address ranges.

[0069] Operation 2: Perform an addition operation to aggregate multiple data points within the address range read in Operation 1. The addition operation requires multiple data points within each address range as parameters.

[0070] Operation 3: Perform a sorting operation to sort the multiple data sets summarized in Operation 2. The sorting operation requires the multiple data sets summarized in Operation 2 as parameters.

[0071] The parameters required for a compound operation are the same as the parameters needed to execute that compound operation. Since a compound operation can be broken down into multiple basic operations, the parameters required for the compound operation are also the parameters required for the multiple basic operations. These parameters can be understood as the parameters required for each of the operations mentioned above.

[0072] As can be seen, after breaking down the compound operation, the compound operation includes multiple basic operations arranged in the order of execution, and the operation parameters required by the compound operation include the operation parameters required by the multiple basic operations.

[0073] When a storage device performs a compound operation, it only needs to execute the multiple basic operations in the order of execution. When executing any one of the basic operations, the basic operation can be completed by calling the operator of that basic operation and the operation parameters required by that basic operation.

[0074] In this embodiment of the application, the storage device can obtain the operation rules of multiple composite operations, and correspondingly, it can also obtain the operation parameters required for multiple composite operations.

[0075] For ease of understanding, such as Figure 1 As shown, the storage device can integrate the operation rules of compound operations into a compound operation table with k rows and n columns. Each column represents the operation rule of a compound operation, and each row in each column represents a basic operation derived from the compound operation.

[0076] Similarly, the operational parameters required for compound operations can also be organized into a table of k rows and n columns. Each column represents the operational parameters required for a compound operation, and each row in each column represents the operational parameters required for a basic operation derived from the compound operation.

[0077] There is a correspondence between the rows and columns of the compound operation table and the rows and columns of the operation parameter table. Figure 1The compound operation table exemplifies the operation rules for compound operation 1 and compound operation 2. The operation parameter table exemplifies the operation parameters required for compound operation 1 and compound operation 2.

[0078] In fact, basic operations can also be treated as a "special type of compound operation" and integrated with other compound operations to form a compound operation table. In this case, the operation rules for the basic operation occupy a separate column in the compound operation table, and this column may only include the basic operation. Similarly, the operation parameters required for a basic operation can also be integrated with the operation parameters required for other compound operations to form an operation parameter table. In this case, the operation parameters required for the basic operation occupy a separate column in the operation parameter table.

[0079] Treating basic operations as a special type of composite operations, the way a processing device instructs a storage device to perform basic operations is similar to the way a processing device instructs a storage device to perform composite operations. In this embodiment, the example of a processing device instructing a storage device to perform composite operations is used for illustration.

[0080] (3) Hardware operators.

[0081] In this embodiment, the hardware logic that implements basic operations is referred to as the hardware operator of the basic operation. Different types of basic operations have different hardware operators. Common hardware operators include, but are not limited to, multipliers, adders, and comparators.

[0082] For any hardware operator of a basic operation, the hardware operator can implement the control logic of the basic operation (the control logic can be understood as the data processing flow during the basic operation). As long as the operation parameters required for the basic operation are written to the hardware operator, the hardware operator can process and operate on the operation parameters according to the control logic, and finally complete the basic operation. The hardware operator of the basic operation can be built into the storage device, so that the storage device itself has the ability to implement basic operations.

[0083] Taking a scan operation as an example, if the scan operation requires scanning multiple data points from data address A to data address B, the control logic of the hardware operator for this scan operation is as follows:

[0084] 1. Read data according to the data address. The first execution starts from data address A.

[0085] 2. Increment the data address by one.

[0086] 3. Determine if the data address is greater than data address B.

[0087] 4. If the result is greater than 1, stop; otherwise, start from 1.

[0088] When performing this scan operation, you only need to provide data address A to data address B to the hardware operator of the scan operation, and the hardware operator of the scan operation can obtain multiple data between data address A and data address B according to the above control logic.

[0089] In this embodiment, the storage device receives an operation request from a processing device, the operation request carrying a computation task. The computation task instructs target data to undergo a composite operation. The storage device obtains the operation rules for the composite operation, which indicate the multiple basic operations required to implement the composite operation and the execution order of these multiple basic operations. Based on the execution order of these multiple basic operations, the storage device calls the hardware operators corresponding to these multiple basic operations to perform the composite operation on the target data.

[0090] like Figure 2 The diagram shown is a structural schematic of a data processing system provided in an embodiment of this application. The data processing system 10 includes a processing device 100 and a storage device 200.

[0091] Processing device 100 is the primary computing and management core of this data processing system. As the computing core, processing device 100 can perform the main data computation operations. For example, processing device 100 can perform audio and video data encoding and decoding, clustering of massive amounts of data, and big data analysis. As the management core, processing device 100 can manage storage device 200. For example, processing device 100 can read and write data to storage device 200 and manage the storage space within storage device 200.

[0092] In this embodiment, the processing device 100 can delegate some basic and complex operations to the storage device 200. The processing device 100 can send operation requests carrying computational tasks (such as the first operation request and the second operation request described below) to the storage device 200. These computational tasks instruct target data to be processed (the operations can be basic or complex). For complex operations, since they are more complex than basic operations, the processing device 100 can configure the operation rules and parameters required for the complex operations to enable the storage device 200 to perform them.

[0093] The processing device 100 can be a central processing unit (CPU) or other specific integrated circuits. The processing device 100 can also be other general-purpose processors, digital signal processors (DSPs), application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc.

[0094] Storage device 200 is a device with data storage function in this data processing system. Storage device 200 can provide data required for data calculation to processing device 100 when processing device 100 performs data calculation. Storage device 200 can also store data obtained by processing device 100 after data calculation.

[0095] In this embodiment, the storage device 200 can cooperate with the processing device 100 to perform some data operations. The storage device 200 is equipped with hardware operators for implementing basic operations, and can directly perform basic operations using these hardware operators. The storage device 200 can also acquire and save the operation rules for composite operations. The storage device 200 can perform composite operations based on the operation rules of the composite operations, the hardware operators for basic operations, and the required operation parameters, according to the operation request sent by the processing device 100.

[0096] This application does not limit the specific form of the storage device 200; any device with storage functionality is applicable to this application. The storage device 200 can be memory, such as read-only memory (ROM), dynamic random access memory (DRAM), or storage-class memory (SCM), such as static random access memory (SRAM), dual in-line memory module (DIMM). The storage device 200 can also be a solid-state disk (SSD).

[0097] In this data processing system, there are many ways to deploy the storage device 200 and the processing device 100. The storage device 200 and the processing device 100 can be located within the same device and connected via a system bus. For example, the processing device 100 can be a processor such as a CPU, GPU, or DPU, and the storage device 200 can be memory connected to the processor via a system bus (such as a data bus, control bus, and address bus). The storage device 200 can also be an SSD connected to the processing device 100 via a bus such as the Peripheral Component Interconnect Express (PCIe).

[0098] Storage device 200 and processing device 100 can also be located in different devices and connected via a network. For example, processing device 100 can be deployed on the user side, storage device 200 can be deployed in the cloud, and processing device 100 can establish a connection with storage device 200 via a network.

[0099] The following is in conjunction with the appendix Figure 3 The structure of the storage device 200 provided in the embodiments of this application will be described. For example... Figure 3 As shown, the storage device 200 includes a media chip 210 and a media controller 220. The media chip 210 includes computing circuit logic 211 and a media array 212. Optionally, the storage device 200 also includes a cache 230. The cache 230 is used to temporarily store data, such as data fed back to the media controller 220 by each computing circuit logic 211, or data that the cache 230 needs to store in the media array 212 later.

[0100] The media chip 210 includes one or more media arrays 212 for storing data. This application embodiment does not limit the type of media chip. Taking the storage device 200 as memory as an example, the media chip can be a memory chip, which may include one or more media arrays 212. Taking the storage device 200 as an SSD as an example, the media chip 210 can be a flash memory chip, which may include one or more media arrays 212.

[0101] In storage device 200, each media array 212 is assigned a corresponding computing circuit logic 211. The correspondence between media array 212 and computing circuit logic 211 can be one-to-one, meaning one media array 212 corresponds to one computing circuit logic 211, and different media arrays 212 correspond to different computing circuit logic 211s. Alternatively, the correspondence can be many-to-one, meaning multiple media arrays 212 correspond to one computing circuit logic 211, and different media arrays 212 can correspond to the same computing circuit logic 211.

[0102] The computing circuit logic 211 is capable of reading and writing data to the corresponding media array 212. In this embodiment, the computing circuit logic 211 also has a data calculation function, which can perform calculations on the data to be written into the media array 212, or on the data stored in the media array 212.

[0103] The computational circuit logic 211 internally includes one or more hardware operators for basic operations. For basic operations, the computational circuit logic 211 can implement basic operations using the hardware operators for basic operations. For example, the computational circuit logic 211 can implement scanning operations using the hardware operator for scanning operations; the computational circuit logic 211 can implement filtering operations using the hardware operator for filtering operations; the computational circuit logic 211 can implement sorting operations using the hardware operator for sorting operations.

[0104] The computing circuit logic 211 can also acquire and store the operation rules and parameters required for the composite operation. The operation rules for the composite operation can be pre-configured in the storage device 200 by the media controller 220 upon request from the processing device 100, or they can be configured by the processing device 100 when it requests the storage device 200 to perform a composite operation. The operation parameters required for the composite operation are configured by the processing device 100 upon request from the storage device 200 when it requests the storage device 200 to perform a composite operation.

[0105] For compound operations, the computational circuit logic 211 can implement compound operations using the hardware operators of basic operations, the operation rules of compound operations, and the operation parameters required for compound operations.

[0106] In this embodiment, the computing circuit logic 211 can receive operation instructions sent from the media controller 220, and perform read, write or operation on the data in the media array 212 according to the operation instructions.

[0107] In another possible implementation, the storage device 200 may provide a computing circuit for multiple media chips 210. The computing circuit may be located around the media chips 210. The functions that the computing circuit can perform are similar to those that the aforementioned computing circuit logic 211 can perform. The difference is that the computing circuit performs data reading, writing and data operations on the multiple media chips 210.

[0108] The media controller 220 is the control core of the storage device 200, responsible for some complex tasks, such as managing data storage (e.g., allocating storage space for data to be written; or determining the media array 212 where the data to be read is located), maintaining the performance and lifespan of the storage device 200 (e.g., timely recycling of data in the media array 212), etc.

[0109] In this embodiment, the media controller 220 can configure the operation rules and parameters required for composite operations upon request from the processing device 100. The media controller 220 can also receive data from devices other than the storage device 200 (such as...). Figure 1 The processing device 100 in the middle of the process requests the operation request and processes the operation request.

[0110] The operation requests received by the media controller 220 can be divided into two categories: one is operation requests that only require data reading and writing, i.e., data read / write requests. For example, an operation request may carry the logical address of the data to be read, requesting to read data from the storage device 200; this is a data read request. Another example is an operation request that carries the logical address of the data to be written, requesting to write data into the storage device 200; this is a data write request. The operation requests do not require any computation on the data.

[0111] When a media controller 220 processes an operation request that carries the logical address of the data to be read, it can determine the physical address of the data to be read and the media array 212 in which it is located based on the logical address of the data to be read carried in the operation request. The media controller 220 then sends an operation instruction to the computing circuit logic 211 corresponding to the media array 212. The operation instruction carries the physical address of the data to be read and instructs the reader to read the data.

[0112] In the process of processing an operation request carrying the logical address of the data to be written, the media controller 220 can send an operation instruction to the computing circuit logic 211 corresponding to the media array 212 based on the logical address of the data to be written, the physical address of the data to be written, and the media array 212 in which it is located. The operation instruction carries the physical address of the data to be written and indicates that the data to be written is stored at the physical address.

[0113] Another type is the operation request carrying a computational task (such as the first operation request and the second operation request described below). This type of operation request can request a composite operation on the data to be written, and it carries the virtual address of the composite operation. There is a relationship between the virtual address of the composite operation, the physical address of the operation rules, and the physical address of the operation parameters required by the composite operation.

[0114] When a storage device 200 carrying a computing task requests an operation request, the media controller 220 sends an operation instruction to the computing circuit logic 211 during the processing of the operation request. The operation instruction carries the physical address of the operation rules of the composite operation and the physical address of the operation parameters required for the composite operation, instructing the computing circuit logic 211 to perform composite operations on the data.

[0115] There are many ways to deploy the media array 212 and computing circuit logic 211 inside the storage device 200. Two possible deployment methods are listed below.

[0116] Method 1: The dielectric array 212 and the computing circuit logic 211 are located on the same plane.

[0117] like Figure 4A As shown, the storage device 200 includes multiple media arrays 212 and corresponding computing circuit logic 211. The media arrays 212 and the computing circuit logic 211 are located on the same plane.

[0118] The storage device 200 using this deployment method has a relatively simple deployment method for the media array 212 and the computing circuit logic 211, which can simplify the manufacturing process of the storage device 200, improve the manufacturing yield of the storage device 200, and control the manufacturing cost of the storage device 200 to a certain extent.

[0119] Method 2: Stacking the dielectric array 212 with the computing circuit logic 211.

[0120] like Figure 4BAs shown, the storage device 200 includes multiple media arrays 212 and corresponding computing circuit logic 211. The media arrays 212 and their corresponding computing circuit logic 211 are stacked in the storage device 200, and the media arrays 212 and their corresponding computing circuit logic 211 are located on different planes.

[0121] In this deployment method, the storage device 200 stacks the media array 212 and the computing circuit logic 211 together, effectively reducing the overall area of ​​the storage device 200 while ensuring the quantity of media arrays 212, thus guaranteeing the storage space of the storage device 200. Furthermore, the decoupling between the computing circuit logic 211 and the media array 212 means that the computing circuit logic 211 is no longer dependent on the media array 212. This allows for more complex and sophisticated circuit construction within the computing circuit logic 211, ensuring its operational efficiency.

[0122] Unlike a typical storage device 200, in this embodiment, the storage device 200 can perform composite operations using internal hardware operators for basic operations and stored rules for composite operations. This means that the operations that the storage device 200 can perform are no longer limited by its internal hardware structure. By simply using preset rules for composite operations, any composite operation can be broken down into multiple basic operations, and then the hardware operators for the basic operations can be used to perform the composite operation, effectively expanding the types of operations that the storage device 200 can perform.

[0123] like Figure 5 As shown, this application provides a data processing method, which may include:

[0124] Step 500: Storage device 200 pre-configures storage space for the operation rules and required operation parameters of the composite operation. In step 500, storage device 200 reserves a storage space for the operation rules and required operation parameters of the composite operation configured by subsequent processing device 100, so that the operation rules and required operation parameters of the composite operation configured by subsequent processing device 100 can be stored in the reserved storage space.

[0125] From the perspective of the composite operation table and the operation parameter table, the function of executing step 500 is to configure the storage location of the composite operation table and the operation parameter table for the storage device 200, as well as the storage location of each column of data in the composite operation table and the operation parameter table. The storage location of a column of data in the composite operation table is the location indicated by the logical address or physical address of the operation rule of a composite operation, and the storage location of a column of data in the operation parameter table is the location indicated by the logical address or physical address of the operation parameter required for a composite operation.

[0126] The storage device 200 is pre-configured with the operation rules and operation parameters required for the composite operation. The storage space can be the storage space in the media array 212 or the storage space inside the computing circuit logic 211.

[0127] The operation of reserving a storage space for the compound operation rules and the operation parameters required for the compound operation in storage device 200 can be triggered by processing device 100 or executed spontaneously by storage device 200.

[0128] Method 1: Processing device 100 actively triggers.

[0129] The processing device 100 can send a space allocation request to the storage device 200. The space allocation request is used to indicate to the storage device 200 the storage space for the operation rules of the composite operation and the operation parameters required for the composite operation. The space allocation request may also carry the logical address pre-configured by the processing device 100 for the operation rules of the composite operation and the logical address pre-configured for the operation parameters required for the composite operation.

[0130] After receiving the space allocation request, the storage device 200 allocates physical addresses for the operation rules of the composite operation and the operation parameters required for the composite operation, establishes the correspondence between the logical addresses and physical addresses of the operation rules of the composite operation carried in the space allocation request, and the correspondence between the logical addresses and physical addresses of the operation parameters required for the composite operation.

[0131] Specifically, within the storage device 200, after receiving a space allocation request, the media controller 220 establishes a correspondence between the logical addresses of the compound operation rules and their physical addresses, as well as a correspondence between the logical addresses of the operation parameters required for the compound operation and their physical addresses, for each computing circuit logic 211. The media controller 220 sends a space allocation instruction to each computing circuit logic 211, requesting that the computing circuit logic 211 allocate storage space for the compound operation rules and their required operation parameters. This space allocation instruction carries the physical addresses of the compound operation rules and their required operation parameters. Upon receiving the space allocation instruction, the computing circuit logic 211 reserves the storage location indicated by the physical address of the compound operation rule, so that the compound operation rule can be written to that physical address later, and also reserves the storage location indicated by the physical address of the required operation parameters, so that the required operation parameters can be written to that physical address later.

[0132] Since the processing device 100 may subsequently configure multiple compound operation rules and the operation parameters required for each compound operation in the storage device 200, the processing device 100 can allocate storage space in the storage device 200 for the multiple compound operation rules and the operation parameters required for each compound operation through a space allocation request.

[0133] Option 2: Configure storage device 200 yourself.

[0134] The storage device 200 internally reserves storage space for the operation rules and parameters required for composite operations. The storage device 200 also pre-establishes the correspondence between the logical addresses and physical addresses of the operation rules and parameters required for composite operations. Upon initial connection with the processing device 100, the processing device 100 can read the operation rules and logical addresses of the required parameters from the storage device 200.

[0135] It should be noted that if the processing device 100 is connected to multiple storage devices 200, the logical addresses configured for the compound operation rules and the required operation parameters in each storage device 200 are the same. To distinguish between different storage devices 200, after reading the compound operation rules and the logical addresses of the required operation parameters from the multiple storage devices 200, the processing device 100 further processes the read logical addresses (e.g., adding identification information indicating the storage device 200, which is already known to the storage device 200) to generate the final usable logical addresses for the compound operation rules and the required operation parameters for each storage device 200. Thus, the logical addresses of the compound operation rules for each storage device 200 are different, and the logical addresses of the required operation parameters for the compound operation are also different for each storage device 200.

[0136] When it is necessary to configure the operation rules or operation parameters required for the composite operation in the storage device 200A, the processing device 100 only needs to send a configuration request carrying the operation rules or operation parameters required for the composite operation of the storage device 200A (this logical address is the processed logical address). Each storage device 200 can receive the configuration request, but only the storage device 200A can parse the configuration request (e.g., be able to identify the identification information of the storage device 200A carried in the logical address) and process the configuration request.

[0137] The storage device 200 has reserved storage space for the operation rules and required operation parameters of the composite operation. The processing device 100 can configure the operation rules of the composite operation into the storage device 200 so that the operation rules of the composite operation can be written into the storage space.

[0138] Step 501: Processing device 100 configures the virtual address for composite operations on storage device 200. Unlike the physical address and virtual address of composite operations, the virtual address of composite operations does not indicate the storage location of the operation rules; rather, it can be understood as an indicator for executing composite operations.

[0139] This application embodiment does not limit the manner in which the processing device 100 executes step 501. Any method capable of configuring the virtual address for composite operations is applicable to this application embodiment. For example, the processing device 100 sends a virtual address configuration request to the storage device 200. This virtual address configuration request carries the virtual address of the composite operation and the logical address of the operation rules for the composite operation. This virtual address configuration request is used to request the configuration of a virtual address for the composite operation. After receiving the virtual address configuration request, the storage device 200 establishes an association between the virtual address of the composite operation and the storage location of the operation rules and parameters of the composite operation. This association could be established either by establishing the logical location of the virtual address of the composite operation and the operation rules and parameters of the composite operation, or by establishing the physical location of the virtual address of the composite operation and the operation rules and parameters of the composite operation. Specifically, within the storage device 200, the media controller 220, after receiving the virtual address configuration request, establishes an association between the virtual address of the composite operation and the storage location of the operation rules and parameters of the composite operation.

[0140] For example, the processing device 100 and the storage device 200 can pre-agree that the virtual address configuration method is to obtain the virtual address of the composite operation by hashing the logical address of the operation rule. After executing step 501, both the storage device 200 and the processing device 100 can determine the logical address of the operation rule and the logical address of the operation parameters required for the composite operation. After determining the logical address of the operation rule, the storage device 200 hashes the logical address of the operation rule to obtain the virtual address of the composite operation, and establishes an association between the virtual address of the composite operation and the storage location of the operation rule and the operation parameters. After determining the logical address of the operation rule, the processing device 100 hashes the logical address of the operation rule to obtain the virtual address of the composite operation, and establishes an association between the virtual address of the composite operation and the storage location of the operation rule and the operation parameters.

[0141] In this embodiment, if storage space has been reserved for the operation rules and parameters required for the composite operation, the processing device 100 can configure a virtual address for the composite operation even if the operation rules and parameters are not written into the storage space. As described above, after the storage device 200 executes step 500, the processing device 100 can execute step 501. Of course, the processing device 100 can also execute step 501 after the operation rules and parameters are written into the storage space. This embodiment does not limit the timing of the processing device 100 executing step 501. Here, we only illustrate the example of executing step 501 before the processing device 100 writes the operation rules and parameters into the storage space.

[0142] This application provides two different configuration methods for compound operation rules: pre-configuration (see step 502) and real-time configuration (see step 509). In pre-configuration, the processing device 100 can configure some potentially used compound operation rules into the storage device 200. To distinguish between the compound operations configured in these two methods, the compound operation configured in the first method is designated as the first compound operation, and the compound operation configured in the second method is designated as the second compound operation. These two configuration methods will be described below.

[0143] Step 502: The processing device 100 configures the operation rules of the first composite operation in the storage device 200.

[0144] The processing device 100 sends a first rule configuration request to the storage device 200. The first rule configuration request carries the operation rules of the first composite operation and the logical address of the operation rules of the first composite operation.

[0145] After receiving the first rule configuration request, the storage device 200 writes the operation rule of the first composite operation to the physical address corresponding to the logical address.

[0146] Specifically, within the storage device 200, after receiving the first rule configuration request, the media controller 220 can send a rule configuration instruction to each computing circuit logic 211. The rule configuration instruction carries the operation rules of the first composite operation and the physical address of the operation rules of the first composite operation. After receiving the rule configuration instruction, the computing circuit logic 211 writes the operation rules of the first composite operation to the physical address.

[0147] For example, processing device 100 sends a first rule configuration request to storage device 200. The first rule configuration request carries the operation rules of composite operation 1 and the logical address of the operation rules of composite operation 1. After receiving the first rule configuration request, storage device 200 saves the operation rules of the scan operation at the logical address of the operation rules of the scan operation.

[0148] Here, we take the example of pre-configuring storage space for the five compound operation rules and the operation parameters required for each compound operation in storage device 200 in step 500. When executing step 502, processing device 100 can write the compound operation rules into all the storage space reserved in step 500; that is, processing device 100 can write the operation rules for five first compound operations into storage device 200 in step 502. Alternatively, when executing step 502, processing device 100 can also occupy only a portion of the storage space reserved in step 500 to write the operation rules for the first compound operations. For example, processing device 100 can write the operation rules for three first compound operations into storage device 200 in step 501, leaving unused storage space for the operation rules of two more compound operations.

[0149] Step 502 is the pre-configuration process of the operation rules for the first composite operation. The pre-configuration process enables the processing device 100 to pre-configure the operation rules of some first composite operations that the storage device 200 may execute into the storage device 200.

[0150] Step 503: Processing device 100 identifies the first composite operation that storage device 200 can perform.

[0151] Applications, such as those capable of parsing executable code or compilers, can run on the processing device 100, thus enabling the processing device 100 to analyze executable code or source code. The processing device 100 can analyze the executable code to be executed later or the source code before compilation of the executable code to be executed later, determining the compound operations that the storage device 200 can perform in the executable code or source code. For example, the processing device 100 can analyze compound operation 1, compound operation 2, etc., in the executable code or source code.

[0152] For example, during the writing of executable code or source code, composite operations applicable to storage device 200 can be identified. That is, composite operation identifiers are added to the executable code or source code for composite operations that storage device 200 can perform. As long as processing device 100 recognizes the composite operation identifier in the executable code or source code, the operation identified by the composite operation identifier is a composite operation that storage device 200 can perform.

[0153] For example, during the writing of executable code or source code, composite operations applicable to storage device 200 can be performed using application programming interface (API) calls. That is, the composite operations performed by storage device 200 are written into the executable code or source code in the form of APIs. Whenever processing device 100 recognizes an API call in the executable code or source code, the API called is the composite operation that storage device 200 can perform. These APIs are either accessible to processing device 100 or pre-stored, such as in the cache within processing device 100.

[0154] For example, during the writing of executable code or source code, the composite operation performed by storage device 200 is defined as a new function, and the composite operation performed by storage device 200 is characterized by the calling method of the new function. Processing device 100 can determine that the new function is the composite operation that storage device 200 can perform as soon as the executable code or source code recognizes the new function call. This new function is either accessible to processing device 100 or pre-saved, such as by storing it in the cache within processing device 100.

[0155] The above description mentions a compiler with source code parsing capabilities. The compiler can compile source code into executable code. If the compiler recognizes a compound operation that the storage device 200 can perform in the source code, it can add a corresponding identifier to the compound operation during the process of compiling the source code into executable code (this identifier is similar in function to the compound operation identifier mentioned above). This allows the subsequent processing device 100 to determine the compound operation that the storage device 200 can perform by using the corresponding identifier during the execution of the executable code.

[0156] If, during the execution of executable code, the processing device 100 recognizes that the storage device 200 can perform a first composite operation with pre-configured operation rules, it can instruct the storage device 200 to perform the first composite operation. The execution of the first composite operation requires some operation parameters, and the processing device 100 can execute step 504.

[0157] Step 504: The processing device 100 sends a first parameter configuration request to the storage device 200. The first parameter configuration request is used to request the storage device 200 to configure the operation parameters required for the first composite operation. The first parameter configuration request carries the operation parameters required for the first composite operation and the logical address of the operation parameters required for the first composite operation.

[0158] During the execution of executable code, if a first composite operation is identified by the processing device 100, the processing device 100 determines the required operation parameters for the first composite operation based on the code in the executable code where the first composite operation appears. For example, during the execution of executable code, the processing device 100 identifies composite operation 1, which requires migrating data equal to a target value from multiple data points in data addresses A to B to data addresses C to D. Therefore, the processing device 100 can determine that the required operation parameters for composite operation 1 include data address A and data address B (i.e., the operation parameters required for the scan operation in composite operation 1); the data scanned by the scan operation and the target value (i.e., the operation parameters required for the filtering operation in composite operation 1, wherein the data scanned by the scan operation can be identified as the output value of the scan operation); and the data filtered out by the filtering operation, data address C, and data address D (i.e., the operation parameters required for the data migration operation in composite operation 1, wherein the data filtered out by the filtering operation can be identified as the output value of the filtering operation).

[0159] The processing device 100 can send a first parameter configuration request to the storage device 200. The first parameter configuration request carries the operation parameters required for the scan operation and the logical address of the operation parameters required for the scan operation.

[0160] Step 505: The storage device 200 receives the first parameter configuration request and saves the operation parameters required for the first composite operation according to the logical address of the operation rules of the first composite operation.

[0161] Taking the first parameter configuration request as an example, which carries the operation parameters required for composite operation 1 and the logical address of the operation rules of composite operation 1, after receiving the first parameter configuration request, the storage device 200 determines the physical address of the operation parameters required for composite operation 1 according to the logical address of the operation rules of composite operation 1, and writes the operation parameters required for composite operation 1 to that physical address.

[0162] The first parameter configuration request can essentially be understood as an operation request to write data. This operation request carries a logical address (such as the logical address of the operation rule of the first compound operation) and the data to be written (such as the operation parameters required by the first compound operation).

[0163] The first parameter configuration request can adopt the format of an existing operation request for writing data. In some scenarios, in order to make it clear that the data to be written by the first parameter configuration request is the operation parameter required for the first composite operation, the first parameter configuration request can carry a pre-agreed parameter configuration identifier. The parameter configuration identifier is used to indicate that the first parameter configuration request is an operation request for configuring the operation parameter required for the first composite operation.

[0164] Inside the storage device 200, after receiving the first parameter configuration request, the media controller 220 can send a parameter configuration instruction to each computing circuit logic 211. This parameter configuration instruction stores the operation parameters required for the first composite operation and carries the physical address of the operation parameters and the operation rules of the first composite operation. Upon receiving the parameter configuration instruction, the computing circuit logic 211 writes the operation parameters required for the first composite operation to that physical address.

[0165] Regarding the data addresses included in the operational parameters required for composite operations, this application embodiment does not specifically distinguish between logical addresses and physical addresses of the data. However, it should be understood that the data addresses exchanged between the processing device 100 and the storage device 200 are typically logical addresses, such as the data address carried in the first parameter configuration request. The data addresses exchanged within the storage device 200 are typically physical addresses, such as the data address carried in the parameter configuration instruction. In other words, after obtaining the logical address of data from the processing device 100, the storage device 200 can convert that logical address into a physical address, allowing data read and write operations to be performed within the storage device 200 at that physical address.

[0166] In some scenarios, the data requiring the first composite operation is distributed only in a portion of the media array 212. For example, in the aforementioned composite operation 1, the data between data address A and data address B is distributed in a portion of the media array 212. The media controller 220 can send parameter configuration instructions only to the computing circuit logic 211 corresponding to that portion of the media array 212. The data address carried in the parameter configuration instruction received by any computing circuit logic 211 is the data address in the media array 212 corresponding to that computing circuit logic 211.

[0167] From another perspective, inside the storage device 200, when the media controller 220 receives a first parameter configuration request including a data address, the media controller 220 parses the data address and determines the media array 212 where the data address is distributed; then it sends a parameter configuration instruction to the computing circuit logic 211, the data address carried by the parameter configuration instruction being the data address in the media array 212.

[0168] Taking composite operation 1 as an example, when the media controller 220 receives a first parameter configuration request including the operation parameters required for composite operation 1, it parses data address A and data address B to determine the media array 212 where multiple data are distributed between data address A and data address B. Assume that the multiple data between data address A and data address B are distributed in media arrays 212M and 212N, where media array 212M includes data from data address A to data address V, and media array 212N includes data from data address V to data address B. The media controller 220 sends a parameter configuration instruction to the computing circuit logic 211 corresponding to media array 212M, the parameter configuration instruction carrying data addresses from data address A to data address V; and sends a parameter configuration instruction to the computing circuit logic 211 corresponding to media array 212N, the parameter configuration instruction carrying data addresses from data address V to data address B.

[0169] This section does not specifically emphasize the transmission method of the operation parameters required for the composite operation within the storage device 200 when the data addresses included in the operation parameters are the data addresses to which the data needs to be migrated or written (such as data address C and data address D). This is because the data addresses to which the data sent by the processing device 100 needs to be migrated or written are logical addresses of the data. The storage device 200 only needs to write the data to the storage location in the media array 212 and establish the correspondence between the physical address and the logical address of that storage location. Therefore, for the data addresses to which the data needs to be migrated or written, the media control unit can allocate the storage location of the data according to the storage space occupancy in each media array 212. The data addresses to which the data needs to be migrated or written can be distributed in different media arrays 212 or in the same media array 212. However, when data needs to be migrated from one media array 212 to another, the media controller 220 can first instruct the computing circuit logic 211 corresponding to one media array 212 to read the data, temporarily cache the data in the cache 230 inside the storage device 200, and then send the data from the cache 230 to the computing circuit logic 211 corresponding to another media array 212, and inform the computing circuit logic 211 of the physical address of the data. The computing circuit logic 211 stores the data in the other media array 212 according to the physical address.

[0170] After steps 504 to 505, the processing device 100 configures the operation parameters required for the first composite operation in the storage device 200. After that, the processing device 100 can instruct the storage device 200 to perform the first composite operation.

[0171] Step 506: Processing device 100 sends a first operation request to storage device 200. This first operation request requests a first composite operation to be performed on the first data in storage device 200. In other words, the first operation request is an operation request carrying a computational task. The first operation request may carry the virtual address of the first composite operation. The virtual address of the first composite operation carried in the first operation request essentially indicates that the first operation request is an operation request carrying a computational task; the virtual address of the first composite operation represents the first composite operation to be performed on the first data.

[0172] The virtual address of the first composite operation is associated with the operation rules of the first composite operation and the physical address of the required operation parameters.

[0173] This section explains the relationship between the virtual address of the first composite operation, the operation rules of the first composite operation, the physical address of the required operation parameter, and the logical address of the required operation parameter.

[0174] Both the logical address and the physical address of the operation rule for the first composite operation indicate the storage location of the operation rule. The logical address is used when the processing device 100 and the storage device 200 interact, while the physical address is used internally by the storage device 200. The logical address and the physical address of the operation parameters required for the first composite operation are similar.

[0175] The virtual address of the first composite operation serves as an indicator for executing the first composite operation. When storage device 200 receives an operation request carrying the virtual address of the first composite operation, it can determine that the operation request is an operation request carrying a computation task. In order for storage device 200 to execute the first composite operation after obtaining its virtual address, storage device 200 needs to associate the virtual address of the first composite operation with the physical addresses of the operation rules and the operation parameters required by the first composite operation. In this way, storage device 200 can determine the operation rules and the operation parameters required by the first composite operation based on its virtual address, and then execute the first composite operation.

[0176] Step 507: The storage device 200 receives the first operation request and performs a first composite operation on the first data according to the first operation request.

[0177] The first operation request can adopt the format of an existing data read / write operation request. That is, the first operation request can use the existing data read / write request format, and the process of exchanging operation requests carrying computational tasks between processing device 100 and storage device 200 remains the same as the existing data read / write request interaction process. However, in some scenarios, to clearly identify the first operation request as an operation request carrying a computational task, the first operation request can carry a pre-agreed computation identifier. This computation identifier is used to characterize the first operation request as an operation request carrying a computational task.

[0178] For storage device 200, since the first operation request carries the virtual address of the first composite operation, storage device 200 can determine that the first operation request carries a computational task based on the virtual address of the first composite operation. Storage device 200 can determine the physical address of the operation rule of the first composite operation and the physical address of the operation parameters required by the first composite operation based on the virtual address of the first composite operation, thereby determining the operation rule of the first composite operation and the operation parameters required by the first composite operation. Storage device 200, according to the multiple basic operations indicated by the operation rule of the first composite operation and the execution order of the multiple basic operations, sequentially calls the hardware operators of the multiple basic operations and the operation parameters required by the multiple basic operations from the operation parameters required by the first composite operation to complete the first composite operation.

[0179] Taking the logical address of the operation rule of the first composite operation carried in the first operation request as the virtual address of the operation rule of composite operation 1 as an example, after receiving the first operation request, the storage device 200 determines the operation rule of composite operation 1 and the operation parameters required for composite operation 1 according to the virtual address of composite operation 1 (the operation parameters are those configured by the processing device 100 to the storage device 200 in steps 506 to 507).

[0180] Storage device 200 can first perform a scanning operation to scan multiple data between data address A and data address B, then perform a filtering operation to find data equal to the target value from the scanned multiple data, and then perform a data migration operation to write the data filtered out by the filtering operation into data address C to data address D.

[0181] Inside the storage device 200, after receiving the first operation request, if multiple data points between data address A and data address B are distributed across different computing circuit logics 211, the media controller 220 can send a first operation instruction to each of the different computing circuit logics 211. This first operation instruction carries the physical address of the operation rule for the first composite operation and the physical address of the operation parameters required for the first composite operation. The computing circuit logic 211 determines the operation rule for composite operation 1 and the operation parameters required for composite operation 1 based on the first operation instruction.

[0182] For any given computational circuit logic 211, the computational circuit logic 211 can sequentially perform scanning, filtering, and data migration operations based on the data in the corresponding media array 212, by calling the operation parameters required for composite operation 1. Since the media array 212 corresponding to the computational circuit logic 211 may only store a portion of the data between data address A and data address B, the computational circuit logic 211 only performs scanning, filtering, and data migration on a portion of the data.

[0183] After steps 506-507, the processing device 100 instructs the storage device 200 to complete the pre-configured first composite operation. In some scenarios, during the execution of executable code, the processing device 100 may identify second composite operations whose operation rules have not been pre-configured. In this case, the processing device 100 can then configure the operation rules for the unconfigured second composite operations into the storage device 200. This method of configuring the operation rules for composite operations is more real-time, enabling timely configuration of the operation rules based on the type or specific semantics of the executable code that the processing device 100 needs to execute.

[0184] Step 508: During the execution of executable code, the processing device 100 identifies a second composite operation that is not configured to the storage device 200.

[0185] Step 509: The processing device 100 configures the operation rules for the second composite operation in the storage device 200. The way the processing device 100 executes step 508 is similar to the way it executes step 502, the difference being that in step 502, the processing device 100 configures the operation rules for the second composite operation before executing the executable code. Step 509 configures the operation rules for the second composite operation during the execution of the executable code by the processing device 100.

[0186] This explanation uses the example of processing device 100 configuring the operation rules of composite operation 2 in storage device 200. Processing device 100 sends a second rule configuration request to storage device 200, which carries the operation rules of composite operation 2 and the logical address of those rules. The operation rules of composite operation 2 indicate that composite operation 2 needs to perform a scan operation and a sorting operation sequentially. After receiving the second rule configuration request, storage device 200 saves the operation rules of the filtering operation at the logical address of the operation rules of composite operation 2.

[0187] Step 510: The processing device 100 sends a second parameter configuration request to the storage device 200. The second parameter configuration request is used to request the storage device 200 to configure the operation parameters required for the second composite operation. The second parameter configuration request carries the operation parameters required for the second composite operation and the logical address of the operation parameters required for the second composite operation.

[0188] Taking compound operation 2 as an example, if compound operation 2 in the executable code requires sorting multiple data within data address range P and data address range Q, then the processing device 100 can determine that the operation parameters required for compound operation 2 include data address range P and data address range Q (i.e., the operation parameters required for the scan operation); also includes the data within data address range P and data within data address range Q (i.e., the operation parameters required for the addition operation); and also includes the summarized data within data address range P and data address range Q (i.e., the operation parameters required for the sorting operation).

[0189] Step 511: The storage device 200 receives the second parameter configuration request and saves the operation parameters required for the second composite operation according to the logical address of the operation parameters required for the second composite operation.

[0190] The execution methods of steps 510 and 511 are similar to those of steps 504 and 505. For details, please refer to the aforementioned content, which will not be repeated here.

[0191] After steps 508 to 511, the processing device 100 promptly configures the operation parameters required for the second composite operation in the storage device 200. Then, the processing device 100 can instruct the storage device 200 to perform the second composite operation. The following explanation uses the second data to be read as an example to illustrate the second composite operation.

[0192] Step 512: Processing device 100 sends a second operation request to storage device 200. This second operation request requests that a second composite operation be performed on the second data before reading it out. In other words, the second operation request is an operation request carrying a computational task. The second operation request carries the virtual address of the second composite operation. The virtual address of the second composite operation carried in the second operation request essentially indicates that the second operation request is an operation request carrying a computational task; the virtual address of the second composite operation represents the second composite operation to be performed.

[0193] Step 513: The storage device 200 receives the second operation request and performs a second composite operation on the second data according to the second operation request. The virtual address of the second composite operation is associated with the operation rules of the second composite operation and the physical address of the required operation parameters.

[0194] The relationship between the virtual address of the second composite operation, the operation rules of the second composite operation, the physical address of the required operation parameters, and the logical address of the required operation parameters is similar to the relationship between the virtual address of the first composite operation, the operation rules of the first composite operation, the physical address of the required operation parameters, and the logical address of the required operation parameters. For details, please refer to the foregoing content, which will not be repeated here.

[0195] The second operation request can adopt the format of an existing data read / write operation request. That is, the second operation request can use the existing data read / write request format, and the process of exchanging operation requests carrying computational tasks between processing device 100 and storage device 200 remains the same as the existing data read / write request interaction process. However, in some scenarios, to clearly identify the second operation request as an operation request carrying a computational task, the second operation request can carry a pre-defined computation identifier. This computation identifier is used to characterize the second operation request as an operation request carrying a computational task.

[0196] For storage device 200, since the second operation request carries the virtual address of the second composite operation, storage device 200 can determine that the second operation request carries a computational task based on the virtual address of the second composite operation. Storage device 200 can determine the physical address of the operation rule of the second composite operation and the physical address of the operation parameters required by the second composite operation based on the virtual address of the second composite operation, thereby determining the operation rule of the second composite operation and the operation parameters required by the second composite operation. Storage device 200, according to the multiple basic operations indicated by the operation rule of the second composite operation and the execution order of the multiple basic operations, sequentially calls the hardware operators of the multiple basic operations and the operation parameters required by the multiple basic operations from the operation parameters required by the second composite operation to complete the second composite operation.

[0197] Taking the logical address of the operation rule of the second composite operation carried in the second operation request as the virtual address of the operation rule of composite operation 2 as an example, after receiving the second operation request, the storage device 200 determines the operation rule of composite operation 2 and the operation parameters required for composite operation 2 according to the virtual address of composite operation 2 (the operation parameters are those configured by the processing device 100 in steps 508 to 510 to the storage device 200).

[0198] Storage device 200 can first perform a scanning operation to scan multiple data in data address range P and multiple data in data address range Q respectively; then perform an addition operation to summarize the multiple data in data address range P and multiple data in data address range Q; then perform a sorting operation to sort the summarized multiple data, and finally obtain the sorted multiple data.

[0199] Inside the storage device 200, after receiving the second operation request, the media controller 220, since multiple data points in data address range P and multiple data points in data address range Q can be distributed across multiple media arrays 212 (meaning each media array 212 can store a portion of the data points in data address range P and data address range Q), can send a second operation instruction to the computing circuit logic 211 corresponding to each of the multiple media arrays 212. This second operation instruction carries the physical address of the operation rules for the second composite operation and the physical address of the operation parameters required for the second composite operation. The computing circuit logic 211 determines the operation rules for composite operation 2 and the operation parameters required for composite operation 2 based on the second operation instruction, and then executes composite operation 2.

[0200] For any given computational circuit logic 211, the computational circuit logic 211 can sequentially perform scanning operations, filtering operations, and data migration operations based on the operational parameters required for the composite operation 2, targeting the data in the corresponding media array 212. Since the media array 212 corresponding to the computational circuit logic 211 may only store a portion of the data in the data address range P and the data address range Q, the computational circuit logic 211 only scans, merges, and sorts a portion of the data.

[0201] After completing the composite operation 2, each computing circuit logic 211 sends the sorted data to the media controller 220. The data received by the media controller 220 from the computing circuit logic 211 is stored in the cache 230 in the storage device 200. The media controller 220 can sort the data received from each computing circuit logic 211 and send the second operation response to the processing device 100 in the second operation response. The second operation response carries the data after the second composite operation has been performed.

[0202] In some scenarios, the processing device 100 can also update the operation rules and required operation parameters of the composite operation that have been configured in the storage device 200. The way the processing device 100 updates the operation rules and required operation parameters of the composite operation that have been configured in the storage device 200 is similar to the way the processing device 100 configures the operation rules of the composite operation (such as step 502 or step 509) and the required operation parameters of the composite operation (such as steps 504 to 505, or steps 510 to 511) for the storage device 200. The difference is that the first rule configuration request can carry the updated operation rules of the composite operation, and the first parameter configuration request can carry the updated operation parameters required for the composite operation.

[0203] Based on the same inventive concept as the method embodiments, this application also provides a data processing device for performing the above-described... Figure 5 The method implemented by the storage device in the illustrated embodiment has related features that can be found in the above method embodiments, and will not be repeated here. Figure 6 As shown, the data processing device 600 includes a transmission module 601 and a processing module 602;

[0204] The transmission module 601 is used to receive an operation request from the processing device, the operation request being used to request the execution of a first operation.

[0205] The operation module 602 is used to obtain the operation rules of the first operation and the operation parameters required for the first operation according to the operation request. The operation rules of the first operation describe the multiple second operations after the first operation is decomposed and the execution order of the multiple second operations. The operation parameters required for the first operation include the operation parameters required for the multiple second operations. The multiple second operations are executed by calling the hardware operators of the multiple second operations and the operation parameters required for the multiple second operations in the order of execution of the multiple second operations.

[0206] In one possible implementation, the transmission module 601 receives a rule configuration request from the processing device. The rule configuration request requests configuration of the operation rules for the first operation, and carries the operation rules for the first operation and their logical addresses. The operation module 602 stores the operation rules for the first operation at the storage location indicated by the logical address of the operation rules.

[0207] In one possible implementation, the transmission module 601 receives a parameter configuration request from the processing device. The parameter configuration request requests configuration of the computational parameters required for the first operation. The parameter configuration request carries the computational parameters required for the first operation and their logical addresses. The operation module 602 stores the computational rules required for the first operation at the storage location indicated by the logical address of the computational parameters required for the first operation.

[0208] In one possible implementation, the apparatus further includes a pre-configuration module 603. The pre-configuration module 603 can reserve storage locations for the operation rules of the first operation and the operation parameters required for the first operation upon request from the processing device, wherein the logical addresses of the storage locations for the operation rules of the first operation and the operation parameters required for the first operation are allocated by the processing device.

[0209] In one possible implementation, the pre-configuration module 603 has reserved storage locations for the operation rules of the first operation and the operation parameters required for the first operation, and the transmission module 601 provides the processing device with the logical addresses of the operation rules of the first operation and the operation parameters required for the first operation.

[0210] In one possible implementation, the operation request includes a virtual address of a first operation. The virtual address of the first operation is associated with the storage locations of the operation rules of the first operation and the operation parameters required for the first operation. When the operation module 602 obtains the operation rules of the first operation and the operation parameters required for the first operation according to the operation request, it obtains the operation rules of the first operation and the operation parameters required for the first operation from the storage locations associated with the virtual address of the first operation.

[0211] In one possible implementation, the arithmetic module 602 obtains the virtual address configured by the processing device for the first operation, the virtual address of the first operation being used to indicate the execution of the first operation; the arithmetic module 602 establishes an association between the virtual address of the first operation and the storage location of the operation rules of the first operation and the operation parameters required by the first operation.

[0212] It should be noted that the module division in this embodiment is illustrative and represents only one logical functional division; in actual implementation, there may be other division methods. The functional modules in this embodiment can be integrated into one processing module, or each module can exist physically separately, or two or more modules can be integrated into one module. The integrated modules can be implemented in hardware or as software functional modules.

[0213] The above embodiments can be implemented, in whole or in part, by software, hardware, firmware, or any other combination thereof. When implemented using software, the above embodiments can be implemented, in whole or in part, as a computer program product. The computer program product includes one or more computer instructions. When the computer program instructions are loaded or executed on a computer, all or part of the processes or functions described in the embodiments of the present invention are generated. The computer can be a general-purpose computer, a special-purpose computer, a computer network, or other programmable device. The computer instructions can be stored in a computer-readable storage medium or transmitted from one computer-readable storage medium to another. For example, the computer instructions can be transmitted from one website, computer, server, or data center to another website, computer, server, or data center via wired (e.g., coaxial cable, fiber optic, digital subscriber line (DSL)) or wireless (e.g., infrared, wireless, microwave, etc.) means. The computer-readable storage medium can be any available medium that a computer can access or a data storage device such as a server or data center that includes one or more sets of available media. The available medium can be a magnetic medium (e.g., floppy disk, hard disk, magnetic tape), an optical medium (e.g., DVD), or a semiconductor medium. A semiconductor medium can be a solid-state drive (SSD).

[0214] Those skilled in the art will understand that embodiments of this application can be provided as methods, systems, or computer program products. Therefore, this application can take the form of a completely hardware embodiment, a completely software embodiment, or an embodiment combining software and hardware aspects. Furthermore, this application can take the form of a computer program product embodied on one or more computer-usable storage media (including but not limited to disk storage, CD-ROM, optical storage, etc.) containing computer-usable program code.

[0215] This application is described with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems), and computer program products according to this application. It should be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer program instructions. These computer program instructions can be provided to a processor of a general-purpose computer, special-purpose computer, embedded processor, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, generate instructions for implementing the flowchart illustrations. Figure 1 One or more processes and / or boxes Figure 1 A device that provides the functions specified in one or more boxes.

[0216] These computer program instructions may also be stored in a computer-readable storage medium that can direct a computer or other programmable data processing device to function in a particular manner, such that the instructions stored in the computer-readable storage medium produce an article of manufacture including instruction means, which are implemented in a process Figure 1 One or more processes and / or boxes Figure 1 The function specified in one or more boxes.

[0217] These computer program instructions may also be loaded onto a computer or other programmable data processing equipment to cause a series of operational steps to be performed on the computer or other programmable equipment to produce a computer-implemented process, thereby providing instructions that execute on the computer or other programmable equipment for implementing the process. Figure 1 One or more processes and / or boxes Figure 1 The steps of the function specified in one or more boxes.

[0218] Obviously, those skilled in the art can make various modifications and variations to this application without departing from the scope of this application. Therefore, if such modifications and variations fall within the scope of the claims of this application and their equivalents, this application also intends to include such modifications and variations.

Claims

1. A data processing method, characterized by, The method comprises: The storage device receives a rule configuration request from the processing device, the rule configuration request being used to request configuration of an operation rule of a first operation, the rule configuration request carrying the operation rule of the first operation and a logical address of the operation rule of the first operation; The storage device saves the operation rule of the first operation at a storage location indicated by the logical address of the operation rule of the first operation; The storage device receives an operation request from the processing device, the operation request being used to request execution of the first operation; The storage device acquires the operation rule of the first operation and operation parameters required by the first operation, the operation rule of the first operation describing a plurality of second operations after the first operation is decomposed and an execution order of the plurality of second operations, the operation parameters required by the first operation including operation parameters required by the plurality of second operations, the storage device including a plurality of hardware operators for implementing the second operations; The storage device executes the plurality of second operations according to the execution order of the plurality of second operations, sequentially calling the hardware operators of the plurality of second operations and the operation parameters required by the plurality of second operations.

2. The method of claim 1, wherein, Before the storage device receives the operation request from the processing device, the method further comprises: The storage device receives a parameter configuration request from the processing device, the parameter configuration request being used to request configuration of the operation parameters required by the first operation, the parameter configuration request carrying the operation parameters required by the first operation and a logical address of the operation parameters required by the first operation; The storage device saves the operation parameters required by the first operation at a storage location indicated by the logical address of the operation parameters required by the first operation.

3. The method of claim 1 or 2, wherein, The method further comprises: The storage device reserves storage locations for the operation rule of the first operation and the operation parameters required by the first operation at the request of the processing device, wherein logical addresses of the storage locations of the operation rule of the first operation and the operation parameters required by the first operation are assigned to the processing device.

4. The method of claim 1 or 2, wherein, The storage device has reserved the storage locations for the operation rule of the first operation and the operation parameters required by the first operation, and the method further comprises: The storage device provides the logical addresses of the operation rule of the first operation and the operation parameters required by the first operation to the processing device.

5. The method of claim 1 or 2, wherein, The hardware operators of the plurality of second operations are hardware logic built in the storage device.

6. The method of claim 1 or 2, wherein, The operation request includes a virtual address of the first operation, the virtual address of the first operation being respectively associated with the storage locations of the operation rule of the first operation and the operation parameters required by the first operation, and the storage device acquiring the operation rule of the first operation and the operation parameters required by the first operation comprises: The storage device acquires the operation rule of the first operation and the operation parameters required by the first operation from the storage locations associated with the virtual address of the first operation.

7. The method of claim 6, wherein, The method further comprises: The storage device acquires a virtual address configured by the processing device for the first operation; The storage device establishes an association between the virtual address of the first operation and the storage location of the operation parameters required by the first operation.

8. The method of claim 1 or 2, wherein, The storage device comprises a media chip, the media chip comprises a media array and a computing circuit logic, the media array is used to store data, the computing circuit logic is used to perform the first operation on the data in the media array or the data to be written into the media array, and the media array and the computing circuit logic are in a stacked form in the storage device.

9. The method of claim 8, wherein, The computing circuit logic comprises a cache and hardware operators of the plurality of second operations, and the cache stores the operation rule of the first operation and the operation parameters required by the first operation.

10. The method of claim 1 or 2, wherein, The storage device is connected with the processing device through a system bus.

11. A storage device, comprising: The storage device comprises at least one media chip, the media chip comprises a media array and a computing circuit logic; The media array is used to store data; The computing circuit logic is used to obtain the operation rule of the first operation and the operation parameters required by the first operation from the processing device, the operation rule of the first operation describes the plurality of second operations after the first operation is decomposed and the execution order of the plurality of second operations, the operation parameters required by the first operation include the operation parameters required by the plurality of second operations, and the computing circuit logic performs the first operation on the data in the media array according to the operation rule of the first operation and the operation parameters required by the first operation, and the computing circuit logic comprises a plurality of hardware operators for implementing the second operations.

12. The apparatus of claim 11, wherein, The computing circuit logic comprises hardware operators of the plurality of second operations and a cache, the cache stores the operation rule of the first operation and the operation parameters required by the first operation, and the computing circuit logic is used to: obtain the operation rule of the first operation and the operation parameters required by the first operation from the cache; perform the plurality of second operations on the data in the media array according to the execution order of the plurality of second operations, the hardware operators of the plurality of second operations and the operation parameters required by the plurality of second operations.

13. The apparatus of claim 11 or 12, wherein, The media array and the computing circuit logic are placed in a stacked manner.

14. The apparatus of claim 11 or 12, wherein, The storage device further comprises a media controller; The media controller is used to receive a rule configuration request from the processing device, the rule configuration request is used to request to configure the operation rule of the first operation, and the operation rule of the first operation is configured to the computing circuit logic; and receive a parameter configuration request from the processing device, the parameter configuration request is used to request to configure the operation parameters required by the first operation, and the operation parameters required by the first operation are configured to the computing circuit logic.

15. The device of claim 14, wherein The media controller is further used to receive an operation request from the processing device, the operation request is used to request to perform the first operation, and an operation instruction is sent to the computing circuit logic, the operation instruction is used to instruct the computing circuit logic to perform the first operation.

16. A data processing apparatus, characterized by comprising: The device is disposed in a storage device, and the device comprises a transmission module and an operation module; The transmission module is configured to receive a rule configuration request from a processing device, the rule configuration request being used to request configuration of an operation rule of a first operation, and the rule configuration request carrying the operation rule of the first operation and a logical address of the operation rule of the first operation; The operation module is configured to save the operation rule of the first operation at a storage location indicated by the logical address of the operation rule of the first operation; The transmission module is further configured to receive an operation request from the processing device, the operation request being used to request execution of the first operation; The operation module is further configured to acquire the operation rule of the first operation and operation parameters required by the first operation, the operation rule of the first operation describing a plurality of second operations after the first operation is decomposed and an execution order of the plurality of second operations, and the operation parameters required by the first operation including operation parameters required by the plurality of second operations; and execute the plurality of second operations in the execution order of the plurality of second operations by sequentially calling hardware operators of the plurality of second operations and the operation parameters required by the plurality of second operations, the storage device comprising a plurality of hardware operators for implementing the second operations.

17. The device of claim 16, wherein The transmission module is further configured to receive a parameter configuration request from the processing device, the parameter configuration request being used to request configuration of the operation parameters required by the first operation, and the parameter configuration request carrying the operation parameters required by the first operation and a logical address of the operation parameters required by the first operation; The operation module is further configured to save the operation rule required by the first operation at a storage location indicated by the logical address of the operation parameters required by the first operation.

Citation Information

Patent Citations

  • Apparatuses and methods for logic / memory devices

    CN108780656A

  • Data processing method and device, equipment and storage medium

    CN114327405A

  • Operator splitting method, control method and device for storage and calculation integrated chip

    CN114968182A