Data operation method, device and equipment
By disassembling composite operations as basic operations in the storage device and preconfiguring operation rules and parameters, the problem of poor flexibility of computing units in memory is solved, and efficient data operations are achieved.
Patent Information
- Application Number
- CN202411150852.9
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2022-09-13
- Filing Date
- 2022-11-24
- Publication Date
- 2025-01-07
- Estimated Expiration
- 2042-11-24
AI Technical Summary
In the existing in-memory processing technology, the calculation flexibility of in-memory computing units is poor, making it difficult to realize complex data operations.
By disassembling the composite operation into multiple basic operations in the storage device, and calling the hardware operators and operation parameters in the order of disassembly execution, the composite operation is realized, and the operation rules and parameters are pre-configured to improve flexibility.
Improves the data computing flexibility of storage devices and can efficiently complete complex operations without updating the hardware structure.
Smart Images

Figure CN119271570A_ABST
Abstract
Description
[0001] CROSS-REFERENCE TO RELATED APPLICATIONS
[0002] This application is a divisional application. The application number of the original application is 202211483427.2, and the original application date is November 24, 2022. The entire contents of the original application are incorporated into this application by reference.
[0003] This application claims priority to the Chinese patent application filed with the Intellectual Property Office of the People's Republic of China on September 13, 2022, with application number 202211112007.3 and invention name "A Storage Device", the entire contents of which are incorporated by reference in this application. Technical Field
[0004] The present application relates to the field of communication technology, and in particular to a data computing method, device and equipment. Background Art
[0005] Process in Memory (PIM) technology refers to combining data storage and computing power to complete the calculation at the location closest to the data to reduce invalid data movement. PIM technology uses computing units close to the data side to complete data calculations, which does not require the processor in the device and can also assist the processor in completing part of the data calculation work, thus supplementing the processor's computing power to a certain extent.
[0006] Compute near memory (CNM) is a common PIM technology. CNM refers to adding computing units to the peripheral circuits of storage media such as memory to achieve in-memory processing.
[0007] At present, some applications have a computing unit for implementing specific calculations in the memory of CNM. The computing unit includes a hardware structure that can implement specific calculations, and with the help of the hardware structure, the specific calculation can be performed on the data in the storage medium or the data that needs to be stored in the storage medium in the memory. Since the specific calculation is implemented in the memory by the computing unit with the hardware structure, the calculation that can be implemented is single and the flexibility is poor. Summary of the invention
[0008] The present application provides a data computing method, apparatus and device for improving the computing flexibility in a storage device using CNM.
[0009] In a first aspect, an embodiment of the present application provides a data operation method, which is applied to a storage device. In the method, a processing device may send an operation request (such as the first operation request or the second operation request in the embodiment section) to the storage device, and the operation request is used to request the execution of a first operation (the first operation corresponds to the composite operation in the embodiment section).
[0010] After receiving the operation request, 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. The operation rules of the first operation describe the multiple second operations after the first operation is disassembled (the second operations correspond to the basic operations in the embodiment part) 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 storage device can perform the first operation according to the operation rules of the first operation and the operation parameters required for the first operation. For example, the storage device can perform multiple second operations according to the execution order of the multiple second operations described by the operation rules of the first operation, call the hardware operators of the multiple second operations and the operation parameters required for the multiple second operations in sequence, and then complete the first operation.
[0011] Through the above method, the first operation can be split into multiple second operations. When the storage device executes the first operation, it only needs to call the hardware operator of the second operation and the operation parameters required by the multiple second operations according to the execution order of the multiple second operations after the first operation is split to complete the first operation. The storage device no longer needs to update the internal hardware structure, but can complete the first operation by knowing the operation rules of the first operation and the operation parameters required by the first operation, so that the storage device can flexibly implement various data operations.
[0012] In a possible implementation, the processing device may configure the operation rules of the first operation to the storage device in advance. For example, the processing device may send a rule configuration request to the storage device, the rule configuration request is used to request configuration of the operation rules of the first operation, and the rule configuration request carries the operation rules of the first operation and the logical address of the operation rules of the first operation. After receiving the rule configuration request, the storage device saves the operation rules of the first operation at the storage location indicated by the logical address of the operation rules of the first operation.
[0013] Through the above method, the storage device obtains the operation rule of the first operation in advance at the request of the processing device, so that the storage device can subsequently complete the first operation efficiently.
[0014] In a possible implementation, the processing device may also 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) 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 the logical address of the operation parameters required for the first operation. After receiving the parameter configuration request, the storage device saves 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] Through the above method, the storage device can obtain the operation parameters required for the first operation from the processing device, so that the storage device can subsequently use the operation parameters to complete the first operation.
[0016] In a possible implementation, the processing device may request the storage device to reserve a storage location for the operation rules of the first operation and the operation parameters required for the first operation, and inform the storage device of the operation rules of the first operation and the logical addresses of the operation parameters required for the first operation.
[0017] The storage device reserves a storage location for the operation rule of the first operation and the operation parameters required for the first operation at the request of the processing device, and establishes a correspondence between the logical address and the physical address of the operation rule of the first operation and the operation parameters required for the first operation. The logical address of the operation rule of the first operation and the operation parameters required for the first operation is the logical address of the storage location.
[0018] Through the above method, the storage device reserves a storage location for the operation rules of the first operation and the operation parameters required for the first operation. The storage device can subsequently write the operation rules of the first operation and the operation parameters required for the first operation into the storage location, further ensuring that when the storage device needs to execute the first operation, it can obtain the operation rules of the first operation and the operation parameters required for the first operation.
[0019] In a possible implementation, the storage device may also reserve storage locations for the operation rules of the first operation and the operation parameters required for the first operation. The storage device provides the processing device with the operation rules of the first operation and the logical addresses of the operation parameters required for the first operation.
[0020] Through 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 a possible implementation, the hardware operators of the plurality of second operations are hardware logics built into the storage device.
[0022] Through the above method, the storage device has built-in hardware logic, and the storage device can directly implement the second operation with the help of the hardware logic.
[0023] In one possible implementation, the operation request includes a virtual address of a first operation, and the virtual address of the first operation is respectively associated with the operation rules of the first operation and the storage locations of 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 location associated with the virtual address of the first operation.
[0024] Through the above method, after receiving an operation request carrying a virtual address of a 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, a storage device obtains a virtual address configured by a processing device for a first operation, and the virtual address of the first operation is used to indicate execution of the first operation. After obtaining the virtual address of the first operation, the storage device can establish an association between the virtual address of the first operation and the operation rules of the first operation and the storage location of the operation parameters required for the first operation.
[0026] Through 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 rule of the first operation and the storage location of the operation parameters required for the first operation.
[0027] In one possible implementation, a 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 into the media array. The media array and the computing circuit logic are located in the storage device in a stacked form.
[0028] Through the above method, the computing circuit logic is located in the dielectric chip, so that the computing circuit logic can perform the first operation, thereby improving the flexibility of the CNM.
[0029] In a possible implementation, the computing circuit logic includes a cache and a plurality of hardware operators of the second operation, wherein the cache stores the operation rules of the first operation and the operation parameters required for the first operation. The computing circuit logic can use the operation rules of the first operation and the operation parameters required for the first operation to complete the first operation.
[0030] Through the above method, the calculation circuit logic stores the operation rules of the first operation and the operation parameters required for the first operation, and the calculation circuit logic can easily obtain the operation rules of the first operation and the operation parameters required for the first operation.
[0031] In a possible implementation, the storage device and the processing device may be connected via a system bus or a network.
[0032] Through the above method, the connection mode between the storage device and the processing device is flexible and applicable to different scenarios.
[0033] In the second aspect, the present application also provides a storage device, which has the function of implementing the behavior in the method example of the first aspect above, and the beneficial effects can be found in the description of the first aspect and will not be repeated here. The storage device includes at least one medium chip, and the medium chip includes a medium array and a computing circuit logic.
[0034] A media array is used to store data.
[0035] The computing 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 disassembled and the execution order of the multiple second operations, and 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 a possible implementation, the computing circuit logic includes multiple hardware operators of second operations and a cache, and the cache stores the operation rules of the first operation and the operation parameters required for the first operation; when the computing circuit logic executes the first operation, the computing circuit logic can obtain the operation rules of the first operation and the operation parameters required for the first operation from the cache; according to the execution order of the multiple second operations, the multiple hardware operators of the second operations and the operation parameters required for the multiple second operations are called in sequence to execute the multiple second operations on the data in the medium array.
[0037] In a possible implementation, the dielectric array and the computing circuit logic may be located in the same plane, or the dielectric array and the computing circuit logic may be placed in a stacked manner.
[0038] In a possible implementation, the storage device further includes a media controller. The media controller receives a rule configuration request from the processing device (such as the first rule configuration request mentioned in the subsequent embodiments), and the rule configuration request is used to request configuration of the operation rules of the first operation. After receiving the rule configuration request, the media controller can configure the operation rules of the first operation to the computing circuit logic. The media controller receives a parameter configuration request from the processing device (such as the first parameter configuration request mentioned in the subsequent embodiments), and the parameter configuration request is used to request configuration of the 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 can also receive an operation request from the processing device (such as the first operation request and the second operation request mentioned in subsequent embodiments), the operation request is used to request the execution of a first operation, and send an operation instruction to the computing circuit logic, the operation instruction is used to instruct the computing circuit logic to execute the first operation.
[0040] In the third aspect, the present application also provides a data computing 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 above functions. In one possible design, the structure of the device includes a transmission module and a computing module, and optionally, a pre-configuration module, which can perform the corresponding functions of the storage device in the method example of the first aspect above. For details, please refer to the detailed description in the method example, which will not be repeated here.
[0041] In a fourth aspect, the present application further provides a computer-readable storage medium, in which instructions are stored, and when the computer-readable storage medium is run on a computer, the computer executes the method in the above-mentioned first aspect and various possible implementations of the first aspect.
[0042] In a fifth aspect, the present application also provides a computer program product comprising instructions, which, when executed on a computer, enables the computer to execute the method in the above-mentioned first aspect and various possible implementations of the first aspect.
[0043] In a sixth aspect, the present application also provides a computer chip, which is connected to a memory, and the chip is used to read and execute a software program stored in the memory to execute the methods in the above-mentioned first aspect and various possible implementation methods of the first aspect. BRIEF DESCRIPTION OF THE DRAWINGS
[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 provided for this application;
[0046] Figure 3 A schematic diagram of the structure of a storage device provided for this application;
[0047] Figure 4A to Figure 4B A schematic diagram of the structure of a dielectric array and computing circuit logic provided in this application;
[0048] Figure 5 A schematic diagram of a data calculation method provided by this application;
[0049] Figure 6 A schematic diagram of the structure of a data computing device provided in this application. DETAILED DESCRIPTION
[0050] Before introducing a data computing method, device and equipment provided by the present application, some concepts involved in the embodiments of the present application are first clarified.
[0051] (1) Data operation.
[0052] The embodiments of the present application involve two types of data operations. One type is a highly complex operation, which can be further decomposed into multiple operations with lower complexity. The other type is a less complex operation that does not need to be further decomposed. For the sake of convenience, operations with higher complexity are called compound operations, and operations with lower complexity are called basic operations.
[0053] In an embodiment of the present application, the storage device itself has the function of executing basic operations. For example, the storage device is internally provided with operators for implementing basic operations. The storage device can call these operators to implement basic operations. For compound operations, no operators for compound operations are provided in the storage device. Since a compound operation can be decomposed into multiple basic operations, the storage device can obtain the multiple basic operations after the compound operation is decomposed, the execution order of the multiple basic operations, and the operation parameters required for calling the compound operation. The storage device sequentially calls the operators and operation parameters of the multiple basic operations in the execution order of the multiple basic operations to execute the multiple basic operations and complete the compound operation.
[0054] From this, we can see that compound operations or basic operations are not one or several specific operations. In fact, compound operations and basic operations are divided according to the operations that storage devices can independently complete. Operations that storage devices can independently complete with the help of internal operators can be understood as basic operations. Operations that storage devices need to additionally know the execution order of multiple basic operations and call multiple basic operation operators to complete can be regarded as compound operations. In other words, for storage devices, operations that need to be disassembled before they can be completed are compound operations; operations that can be completed without disassembly are basic operations.
[0055] For example, the storage device is provided with operators that can implement filtering operations (filter), operators that implement scanning operations (scan), operators that implement data migration operations (project), operators that implement addition operations, and operators that implement sorting operations. Among them, the filtering operation is to filter out data that meets the conditions from multiple data, the scanning operation is used to scan the data within the specified data address range, and the data migration operation is used to migrate data from one data address to another data address. Then for the storage device, the filtering operation, scanning operation, data migration operation, and addition operation are the basic operations.
[0056] If there is an operation that requires migrating data that meets a certain condition among multiple data within a certain data address range to another data address range, and the storage device does not have an operator for the operation set inside, and the storage device cannot directly call an operator to implement the operation, then the 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 the operation set inside, and the storage device cannot directly call an operator to implement the operation, then the operation is a compound 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 in sequence.
[0060] The operation rules of a compound operation describe the multiple basic operations after the compound operation is decomposed and the execution order of the multiple basic operations.
[0061] For example, a compound operation 1 that requires migrating data that meets a condition from multiple data within a 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 condition is related to the operation scenario in which the compound operation 1 needs to be performed, and the specific content of the condition is not limited here. For example, the condition can be equal to the target value, or greater than the target value, etc.
[0062] The operation process of the compound operation 1 is:
[0063] Operation 1: Execute a scan operation to scan multiple data within a data address range. The operation parameter required for the scan operation is the data address range.
[0064] Operation 2: Execute a filtering operation to filter out 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 needs to meet.
[0065] Operation 3: Execute data migration operation to migrate the data that meets the conditions filtered out in operation 2 to another data address range. The operation parameters required for the data migration operation are the data filtered out in operation 2 and another data address range.
[0066] For example, a compound operation 2 requiring sorting of multiple data within multiple data address ranges can be decomposed into a scanning operation, an addition operation, and a sorting operation.
[0067] The operation process of the compound operation 2 is:
[0068] Operation 1: Execute a scan operation to scan multiple data in multiple data address ranges respectively. The operation parameters required for the scan operation are the multiple data address ranges.
[0069] Operation 2: Perform an addition operation to aggregate multiple data in the data address range read in operation 1. The operation parameters required for the addition operation are multiple data in each data address range.
[0070] Operation 3: Execute a sort operation to sort the multiple data summarized in Operation 2. The operation parameters required for the sort operation are the multiple data summarized in Operation 2.
[0071] The operation parameters required for the compound operation are the operation parameters required for executing the compound operation. Since the compound operation can be decomposed into multiple basic operations, the operation parameters required for the compound operation are also the operation parameters required for the multiple basic operations after decomposition, and the operation parameters required for the multiple basic operations can be understood as the operation parameters required in the above-mentioned operations.
[0072] It can be seen that after decomposing the compound operation, the compound operation includes multiple basic operations arranged in an execution order, and the operation parameters required for the compound operation include the operation parameters required for the multiple basic operations.
[0073] When executing a composite operation, the storage device only needs to execute the multiple basic operations in the execution order. When executing any one of the basic operations, the basic operation can be completed by calling the operator of the basic operation and the operation parameters required by the basic operation.
[0074] In the embodiment of the present application, the storage device can obtain the operation rules of multiple compound operations, and accordingly, can also obtain the operation parameters required for the multiple compound operations.
[0075] For ease of understanding, Figure 1 As shown, the storage device can integrate the operation rules of the compound operation into a compound operation table with k rows and n columns, wherein each column represents an operation rule of a compound operation, and a row in each column represents a basic operation after the compound operation is disassembled.
[0076] Similarly, the operation parameters required for the compound operation can also be integrated into an operation parameter table with k rows and n columns, wherein each column represents the operation parameters required for a compound operation, and a row in each column represents the operation parameters required for a basic operation after the compound operation is decomposed.
[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 composite operation table exemplarily shows the operation rules of the composite operation 1 and the operation rules of the composite operation 2. The operation parameter table exemplarily shows the operation parameters required for the composite operation 1 and the operation parameters required for the composite operation 2.
[0078] In fact, the basic operation can also be used as a "special compound operation" and integrated with other compound operations to form a compound operation table. In this case, the operation rules of the basic operation in the compound operation table occupy a separate column, and the column can only include the basic operation. Similarly, the operation parameters required for the basic operation can also be integrated with the operation parameters required for other compound operations to form an operation parameter table. In this case, in the operation parameter table, the operation parameters required for the basic operation occupy a separate column.
[0079] The basic operation is regarded as a special compound operation. The way in which the processing device instructs the storage device to perform the basic operation is similar to the way in which the processing device instructs the storage device to perform the compound operation. In the embodiment of the present application, only the example of the processing device instructing the storage device to perform the compound operation is used for explanation.
[0080] (3) Hardware operator.
[0081] In the embodiments of the present application, the hardware logic that implements the basic operation 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 basic operation hardware operator, the basic operation 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 basic operation hardware operator, the basic operation hardware operator can process and operate the operation parameters according to the control logic and finally complete the basic operation. The basic operation hardware operator can be built into the storage device so that the storage device itself has the ability to implement the basic operation.
[0083] Take the scan operation as an example. For example, the scan operation requires scanning multiple data from data address A to data address B. The control logic of the hardware operator of the scan operation is as follows:
[0084] 1. Read data according to the data address, and the first execution starts from data address A.
[0085] 2. The data address is incremented by one.
[0086] 3. Determine whether the data address is greater than data address B.
[0087] 4. If it is greater, stop, otherwise start from 1.
[0088] When executing the scanning operation, it is only necessary to provide data address A to data address B to the hardware operator of the scanning operation, and the hardware operator of the scanning operation can obtain multiple data between data address A and data address B according to the above control logic.
[0089] In an embodiment of the present application, a storage device receives an operation request from a processing device, the operation request carrying a computing task. The computing task instructs the target data to perform a compound operation. The storage device obtains a computing rule for the compound operation, the computing rule for the compound operation indicating a plurality of basic operations required to implement the compound operation and an execution order of the plurality of basic operations. The storage device performs a compound operation on the target data based on the execution order of the plurality of basic operations and calls the hardware operators corresponding to the plurality of basic operations.
[0090] like Figure 2 , which is a schematic diagram of the structure of a data processing system provided in an embodiment of the present application. The data processing system 10 includes a processing device 100 and a storage device 200.
[0091] The processing device 100 is the main computing core and management core of the data processing system. As a computing core, the processing device 100 can complete the main data computing operations. For example, the processing device 100 can implement audio and video data encoding and decoding, clustering of massive data, big data analysis, etc. As a management core, the processing device 100 can manage the storage device 200. For example, the processing device 100 can read and write data to the storage device 200, manage the storage space in the storage device 200, etc.
[0092] In an embodiment of the present application, the processing device 100 can hand over some basic operations and compound operations to the storage device 200 for execution. The processing device 100 can send an operation request carrying a computing task to the storage device 200 (such as the first operation request and the second operation request appearing below), and the computing task instructs the target data to perform an operation (the operation can be a basic operation or a compound operation). For compound operations, since the compound operations are more complex than the basic operations. In order to enable the storage device 200 to complete the compound operations. The processing device 100 can configure the storage device 200 with the operation rules of the compound operations, and can also configure the storage device 200 with the operation parameters required for the compound operations.
[0093] The processing device 100 may be a central processing unit (CPU) or other specific integrated circuits. The processing device 100 may also be other general-purpose processors, digital signal processors (DSP), application specific integrated circuits (ASIC), field programmable gate arrays (FPGA) or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc.
[0094] The storage device 200 is a device with data storage function in the data processing system. The storage device 200 can provide the processing device 100 with data required for data calculation when the processing device 100 performs data calculation. The storage device 200 can also store data obtained after the processing device 100 performs data calculation.
[0095] In the embodiment of the present application, the storage device 200 can cooperate with the processing device 100 to complete some data operations. The storage device 200 is provided with a hardware operator for implementing basic operations, and the storage device 200 can directly implement the basic operations with the help of the basic hardware operator. The storage device 200 can also obtain the operation rules of the composite operation and save the operation rules of the composite operation. The storage device 200 can implement the composite operation based on the operation rules of the composite operation, the hardware operator of the basic operation, and the operation parameters required for the composite operation according to the operation request sent by the processing device 100.
[0096] The embodiment of the present application does not limit the specific form of the storage device 200, and all devices with storage functions are applicable to the embodiment of the present application. The storage device 200 can be a memory, such as a read-only memory (ROM), a dynamic random access memory (DRAM), or a storage class memory (SCM), such as a static random access memory (SRAM), a dual in-line memory module or a dual in-line memory module (DIMM). The storage device 200 can also be a solid state disk (SSD).
[0097] In the 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 in the same device and connected through a system bus. For example, the processing device 100 can be a processor such as a CPU, a GPU, a DPU, etc., and the storage device 200 can be a memory connected to the processor through a system bus (such as a data bus, a control bus, and an address bus). The storage device 200 can also be an SSD connected to the processing device 100 through a bus such as a high-speed serial computer expansion bus standard (peripheral component interconnect express, PCIe).
[0098] The storage device 200 and the processing device 100 may also be located in different devices and connected via a network. For example, the processing device 100 may be deployed on the user side, and the storage device 200 may be deployed on the cloud, and the processing device 100 is connected to the storage device 200 via a network.
[0099] The following is combined with Figure 3 The structure of the storage device 200 provided in the embodiment of the present application is described. Figure 3 As shown, the storage device 200 includes a media chip 210 and a media controller 220, and the media chip 210 includes a 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 the cache 230 can store data fed back by each computing circuit logic 211 to the media controller 220, or the cache 230 needs to store data in the media array 212 later.
[0100] The media chip 210 includes one or more media arrays 212, and the media arrays 212 are used to store data. The embodiment of the present application does not limit the type of the media chip. Taking the storage device 200 as a memory as an example, the media chip can be a memory particle, and the memory particle can 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, and the memory particle can include one or more media arrays 212.
[0101] In the storage device 200, a corresponding computing circuit logic 211 is set for each medium array 212. The correspondence between the medium array 212 and the computing circuit logic 211 can be one-to-one, that is, one medium array 212 corresponds to one computing circuit logic 211, and different medium arrays 212 correspond to different computing circuit logics 211. The correspondence between the medium array 212 and the computing circuit logic 211 can be many-to-one, that is, multiple medium arrays 212 correspond to one computing circuit logic 211, and different medium arrays 212 can correspond to the same computing circuit logic 211.
[0102] The computing circuit logic 211 can read and write data to the corresponding media array 212. In the embodiment of the present application, the computing circuit logic 211 also has a data computing function, and the computing circuit logic 211 can operate on the data to be written into the media array 212, or can operate on the data stored in the media array 212.
[0103] The computing circuit logic 211 includes one or more hardware operators of basic operations. For basic operations, the computing circuit logic 211 can implement the basic operations with the help of the hardware operators of the basic operations. For example, the computing circuit logic 211 can implement the scanning operation with the help of the hardware operators of the scanning operation; the computing circuit logic 211 implements the filtering operation with the hardware operators of the filtering operation; and the computing circuit logic 211 implements the sorting operation with the hardware operators of the sorting operation.
[0104] The calculation circuit logic 211 can also obtain the operation rules of the composite operation and the operation parameters required for the composite operation, and save the operation rules of the composite operation and the operation parameters required for the composite operation. The operation rules of the composite operation can be pre-configured in the storage device 200 by the media controller 220 at the request of the processing device 100, or can be configured by the storage device 200 when the processing device 100 needs the storage device 200 to perform the composite operation. The operation parameters required for the composite operation are configured by the storage device 200 when the processing device 100 needs the storage device 200 to perform the composite operation.
[0105] For compound operations, the calculation circuit logic 211 may implement the compound operations using hardware operators of basic operations, operation rules of compound operations, and operation parameters required for the compound operations.
[0106] In the embodiment of the present application, the computing circuit logic 211 may receive an operation instruction sent from the media controller 220 , and read, write or operate the data in the media array 212 according to the operation instruction.
[0107] In addition, in a possible implementation, in the storage device 200, a computing circuit can be set for multiple media chips 210. The computing circuit can be set outside the media chip 210. The functions that can be implemented by the computing circuit are similar to the functions that can be implemented by the aforementioned computing circuit logic 211. The difference is that the computing circuit reads and writes data and performs data operations on the multiple media chips 210.
[0108] The media controller 220 is the control core of the storage device 200 and is responsible for some complex tasks, such as managing data storage (for example, allocating storage space for data to be written; for example, determining the media array 212 where the data to be read is located), maintaining the performance and service life of the storage device 200 (for example, timely recycling data in the media array 212), etc.
[0109] In the embodiment of the present application, the media controller 220 can configure the operation rules of the composite operation and the operation parameters required for the composite operation at the request of the processing device 100. The media controller 220 can also receive the request from the device other than the storage device 200 (such as Figure 1 An operation request of the processing device 100) in the processing device is received, and the operation request is processed.
[0110] The operation requests received by the media controller 220 can be divided into two categories. One category is the operation request that only needs to read and write data, that is, the data read and write request. For example, the operation request carries the logical address of the data to be read, and is used to request to read data from the storage device 200. This operation request is a data read request; for another example, the operation request carries the logical address of the data to be written, and is used to request to write data to the storage device 200. This operation request is a data write request. The operation request does not require the data to be calculated.
[0111] For an operation request that carries the logical address of data to be read, the media controller 220, during the process of processing the operation request, can determine the physical address of the data to be read and the media array 212 where the data is located based on the logical address of the data to be read carried in the operation request, and send an operation instruction to the computing circuit logic 211 corresponding to the media array 212, where the operation instruction carries the physical address of the data to be read and instructs reading the data to be read.
[0112] For an operation request carrying a logical address of data to be written, the media controller 220 may, during the process of processing the operation request, 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 carried in the operation request, the physical address of the data to be written and the media array 212 where the data is located, wherein 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] The other type is an operation request that carries a computing task (such as the first operation request and the second operation request described below). This type of operation request may request a compound operation to be performed on the data to be written, and this type of operation request carries the virtual address of the compound operation. There is a correlation between the virtual address of the compound operation and the physical address of the operation rule of the compound operation and the physical address of the operation parameters required for the compound operation.
[0114] For an operation request of a storage device 200 that carries a computing task, the media controller 220 sends an operation instruction to the computing circuit logic 211 during the process of processing the operation request. The operation instruction carries the physical address of the operation rule of the compound operation and the physical address of the operation parameters required for the compound operation, instructing the computing circuit logic 211 to perform a compound operation on the data.
[0115] There are many ways to deploy the media array 212 and the computing circuit logic 211 inside the storage device 200 , and 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 a plurality of media arrays 212 and a computing circuit logic 211 corresponding to the plurality of media arrays 212. The media arrays 212 and the computing circuit logic 211 are located in the same plane.
[0118] In the storage device 200 that adopts this deployment method, the deployment method of the medium array 212 and the computing circuit logic 211 is relatively simple, which can simplify the generation process of the storage device 200, improve the preparation yield of the storage device 200, and control the preparation cost of the storage device 200 to a certain extent.
[0119] Method 2: The dielectric array 212 and the computing circuit logic 211 are stacked.
[0120] like Figure 4BAs shown, the storage device 200 includes multiple media arrays 212 and computing circuit logics 211 corresponding to the multiple media arrays 212. The media arrays 212 and the computing circuit logics 211 corresponding to the multiple media arrays 212 are arranged in a stacked manner in the storage device 200, and the media arrays 212 and the computing circuit logics 211 corresponding to the multiple media arrays 212 are located in different planes.
[0121] In the storage device 200 deployed in this manner, the medium array 212 and the computing circuit logic 211 are stacked together, which can effectively reduce the area of the entire storage device 200 and effectively ensure the number of the medium array 212, that is, ensure the storage space of the storage device 200. In addition, the decoupling between the computing circuit logic 211 and the medium array 212 makes the computing circuit logic 211 no longer dependent on the medium array 212, and the computing circuit logic 211 can be constructed based on a more complex and sophisticated circuit, thereby ensuring the operation efficiency of the computing circuit logic 211.
[0122] Different from the general storage device 200, the storage device 200 in the embodiment of the present application can realize compound operations with the help of the internal hardware operators of basic operations and the saved operation rules of compound operations. The operations that the storage device 200 can realize are no longer limited by the internal hardware structure. Only by presetting the operation rules of compound operations, any compound operation can be split into multiple basic operations, and then the hardware operators of basic operations can be used to realize the compound operation, which effectively expands the types of operations that the storage device 200 can realize.
[0123] like Figure 5 As shown, a data operation method provided in an embodiment of the present application may include:
[0124] Step 500: The storage device 200 pre-configures storage space for the operation rules of the composite operation and the operation parameters required for the composite operation. In step 500, the storage device 200 reserves a storage space for the operation rules of the composite operation and the operation parameters required for the composite operation configured by the subsequent processing device 100, so that the operation rules of the composite operation and the operation parameters required for the composite operation configured by the subsequent processing device 100 can be stored in the reserved storage space.
[0125] From the perspective of the compound operation table and the operation parameter table, the purpose of executing step 500 is to configure the storage location of the compound operation table and the operation parameter table, as well as the storage location of each column of data in the compound operation table and each column of data in the operation parameter table for the storage device 200. The storage location of a column of data in the compound operation table is the location indicated by the logical address or physical address of the operation rule of a compound 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 compound operation.
[0126] The storage device 200 pre-configures the storage space for the operation rules of the compound operation and the operation parameters required for the compound operation, which may be the storage space in the medium array 212 or the storage space inside the computing circuit logic 211 .
[0127] The operation of the storage device 200 reserving a storage space for the operation rules of the compound operation and the operation parameters required for the compound operation may be triggered by the processing device 100 or may be performed spontaneously by the storage device 200 .
[0128] Method 1: The processing device 100 actively triggers.
[0129] The processing device 100 may send a space allocation request to the storage device 200, and the space allocation request is used to indicate the storage device 200 to allocate storage space for the operation rules of the compound operation and the operation parameters required for the compound operation. The space allocation request may also carry the logical address pre-configured by the processing device 100 for the operation rules of the compound operation and the logical address pre-configured for the operation parameters required for the compound operation.
[0130] After receiving the space allocation request, the storage device 200 allocates physical addresses to the operation rules of the compound operation and the operation parameters required for the compound operation, and establishes a correspondence between the logical addresses and physical addresses of the operation rules of the compound operation carried in the space allocation request, as well as a correspondence between the logical addresses and physical addresses of the operation parameters required for the compound operation.
[0131] Specifically, inside the storage device 200, after receiving the space allocation request, the media controller 220 establishes a correspondence between the logical address of the compound operation's operation rule and the physical address of the compound operation's operation rule, and a correspondence between the logical address and the physical address of the operation parameters required for the compound operation for each calculation circuit logic 211. The media controller 220 sends a space allocation instruction to each calculation circuit logic 211, and the space allocation instruction is used to request the calculation circuit logic 211 to allocate storage space for the compound operation's operation rule and the operation parameters required for the compound operation. The space allocation instruction carries the physical address of the compound operation's operation rule and the physical address of the operation parameters required for the compound operation. After receiving the space allocation instruction, the calculation circuit logic 211 reserves the storage location indicated by the physical address of the compound operation's operation rule so that the compound operation's operation rule can be written at the physical address later, and reserves the storage location indicated by the physical address of the operation parameters required for the compound operation so that the operation parameters required for the compound operation can be written at the physical address later.
[0132] Since the processing device 100 may subsequently configure multiple compound operation rules and operation parameters required for each compound operation in the storage device 200, the processing device 100 may allocate storage space for the multiple compound operation rules and operation parameters required for each compound operation in the storage device 200 through a space allocation request.
[0133] Method 2: The storage device 200 configures itself.
[0134] The storage device 200 may reserve storage space for the operation rules of the compound operation and the operation parameters required for the compound operation. The storage device 200 has also pre-established the correspondence between the logical address and the physical address of the operation rules of the compound operation, and the correspondence between the logical address and the physical address of the operation parameters required for the compound operation. After the storage device 200 is connected to the processing device 100 for the first time, the processing device 100 may read the operation rules of the compound operation and the logical addresses of the operation parameters required for the compound operation 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 operation rules of the compound operation and the operation parameters required for the compound operation in each storage device 200 are the same. In order to distinguish different storage devices 200, after the processing device 100 reads the logical addresses of the operation rules of the compound operation and the operation parameters required for the compound operation from the multiple storage devices 200, it further processes the read logical addresses (such as adding identification information indicating the storage device 200 to the logical address, and the identification information is known to the storage device 200), and generates the final available logical addresses of the operation rules of the compound operation and the operation parameters required for the compound operation of each storage device 200. In this way, the logical addresses of the operation rules of the compound operation of each storage device 200 are different, and the logical addresses of the operation parameters required for the compound operation of each storage device 200 are also different.
[0136] When it is subsequently necessary to configure the operation rules of the compound operation or the operation parameters required for the compound operation in the storage device 200A, the processing device 100 only needs to send a configuration request carrying the logical address (the logical address is the processed logical address) of the operation rules of the compound operation or the operation parameters required for the compound operation of the storage device 200A. Each storage device 200 can receive the configuration request, but only the storage device 200A can parse the configuration request (such as being able to recognize the identification information of the storage device 200A carried in the logical address) and process the configuration request.
[0137] The storage device 200 reserves storage space for the operation rules of the compound operation and the required operation parameters. The processing device 100 can configure the operation rules of the compound operation into the storage device 200 so that the operation rules of the compound operation are written into the storage space.
[0138] Step 501: The processing device 100 configures a virtual address of a compound operation for the storage device 200. Different from the physical address and virtual address of the compound operation, the virtual address of the compound operation does not indicate the storage location of the operation rule of the compound operation, and the virtual address of the compound operation can be understood as an indicator for executing the compound operation.
[0139] The embodiment of the present application does not limit the manner in which the processing device 100 performs step 501. Any manner that can configure the virtual address of the compound operation is applicable to the embodiment of the present application. For example, the processing device 100 sends a virtual address configuration request to the storage device 200, and the virtual address configuration request carries the virtual address of the compound operation and the logical address of the operation rule of the compound operation, and the virtual address configuration request is used to request to configure the virtual address for the compound operation. After receiving the virtual address configuration request, the storage device 200 establishes an association between the virtual address of the compound operation and the operation rule of the compound operation and the storage location of the operation parameters, such as establishing an association between the virtual address of the compound operation and the operation rule of the compound operation and the logical location of the operation parameters, and establishing an association between the virtual address of the compound operation and the operation rule of the compound operation and the physical location of the operation parameters. Specifically inside the storage device 200, after receiving the virtual address configuration request, the media controller 220 establishes an association between the virtual address of the compound operation and the operation rule of the compound operation and the storage location of the operation parameters.
[0140] For another example, the processing device 100 and the storage device 200 may pre-agree that the virtual address configuration method is to obtain the virtual address of the compound operation after performing a hash process on the logical address of the operation rule of the compound operation. After the storage device 200 executes step 501, both the storage device 200 and the processing device 100 can determine the logical address of the operation rule of the compound operation and the logical address of the operation parameter required for the compound operation. After determining the logical address of the operation rule of the compound operation, the storage device 200 performs a hash process on the logical address of the operation rule of the compound operation to obtain the virtual address of the compound operation, and establishes an association between the virtual address of the compound operation and the operation rule of the compound operation and the storage location of the operation parameter. After determining the logical address of the operation rule of the compound operation, the processing device 100 performs a hash process on the logical address of the operation rule of the compound operation to obtain the virtual address of the compound operation, and establishes an association between the virtual address of the compound operation and the operation rule of the compound operation and the storage location of the operation parameter.
[0141] In the embodiment of the present application, when storage space has been reserved for the operation rules of the compound operation and the operation parameters required for the compound operation, even if the operation rules of the compound operation and the operation parameters required for the compound operation are not written in the storage space, the processing device 100 can also configure a virtual address for the compound operation. For example, in the above description, after the storage device 200 executes step 500, the processing device 100 can execute step 501. Of course, after writing the operation rules of the compound operation and the operation parameters required for the compound operation in the storage space, the processing device 100 can also execute step 501 again. The embodiment of the present application does not limit the timing of the processing device 100 executing step 501. Here, it is only taken as an example that the processing device 100 executes step 501 before writing the operation rules of the compound operation and the operation parameters required for the compound operation in the storage space.
[0142] The embodiment of the present application provides two different configuration methods of the operation rules of the compound operation, one of which is pre-configuration, as shown in step 502. In this method, the processing device 100 can configure some operation rules of the compound operation that may be used in advance to the storage device 200. The other is real-time configuration, as shown in step 509. In this method, the processing device 100 can configure the operation rules of the compound operation to the storage device 200 in real time. In order to distinguish the compound operation configured with the operation rules in these two methods, the compound operation configured with the operation rules in the former method is the first compound operation, and the compound operation configured with the operation rules in the latter method is the second compound operation. The two configuration methods are introduced in turn below.
[0143] Step 502 : The processing device 100 configures an operation rule of a first compound operation in the storage device 200 .
[0144] The processing device 100 sends a first rule configuration request to the storage device 200 , where the first rule configuration request carries an operation rule of the first compound operation and a logical address of the operation rule of the first compound operation.
[0145] After receiving the first rule configuration request, the storage device 200 writes the operation rule of the first compound operation into the physical address corresponding to the logical address.
[0146] Specifically inside the storage device 200, after receiving the first rule configuration request, the media controller 220 can send a rule configuration indication to each computing circuit logic 211. The rule configuration indication carries the operation rules of the first compound operation and the physical address of the operation rules of the first compound operation. After receiving the rule configuration indication, the computing circuit logic 211 writes the operation rules of the first compound operation to the physical address.
[0147] For example, the processing device 100 sends a first rule configuration request to the storage device 200, and the first rule configuration request carries the operation rule of the composite operation 1 and the logical address of the operation rule of the composite operation 1. After receiving the first rule configuration request, the storage device 200 saves the operation rule of the scan operation at the logical address of the operation rule of the scan operation.
[0148] Here, it is taken as an example that the storage device 200 pre-configures storage space for the operation rules of five compound operations and the operation parameters required for each compound operation in step 500. When executing step 502, the processing device 100 can write the operation rules of the compound operation into the storage space reserved in step 500, that is, the processing device 100 can write the operation rules of five first compound operations into the storage device 200 in executing step 502. When executing step 502, the processing device 100 can also only occupy part of the storage space reserved in step 500 to write the operation rules of the first compound operation. For example, the processing device 100 can write three operation rules of the first compound operation into the storage device 200 in step 501, and there are still two unoccupied storage spaces for the operation rules of the compound operation in the storage space.
[0149] Step 502 is a pre-configuration process of the operation rules of the first composite operation. The pre-configuration process enables the processing device 100 to configure the operation rules of the first composite operation that may be executed by the storage device 200 into the storage device 200 in advance.
[0150] Step 503: The processing device 100 identifies a first compound operation that the storage device 200 can execute.
[0151] An application program, such as an application program or a compiler capable of parsing executable code, can be run on the processing device 100, so that the processing device 100 has the function of analyzing executable code or source code. The processing device 100 can analyze the executable code to be executed later or the source code before the executable code to be executed later is compiled, and determine the compound operation in the executable code or source code that the storage device 200 can execute. For example, the processing device 100 can analyze compound operation 1, compound operation 2, etc. in the executable code or source code.
[0152] For another example, during the writing process of the executable code or source code, the compound operation applicable to the storage device 200 can be identified. That is, in the executable code or source code, a compound operation identifier is added to the compound operation that the storage device 200 can execute, and as long as the processing device 100 recognizes the compound operation identifier in the executable code or source code, the operation identified by the compound operation identifier is the compound operation that the storage device 200 can execute.
[0153] For another example, during the process of writing the executable code or source code, the composite operation applicable to the storage device 200 can be called by an application programming interface (API). That is to say, the composite operation executed by the storage device 200 is written into the executable code or source code in the form of an API. As long as the processing device 100 recognizes an API call in the executable code or source code, the API called by the API call is the composite operation that the storage device 200 can execute. Among them, these APIs are accessible to the processing device 100 or have been pre-saved, such as saved in the cache inside the processing device 100.
[0154] For another example, during the writing of the executable code or source code, the compound operation performed by the storage device 200 is defined as a new function, and the compound operation performed by the storage device 200 is represented by calling the new function. As long as the processing device 100 recognizes the new function call in the executable code or source code, it can be determined that the new function is the compound operation that the storage device 200 can execute. The new function can be obtained by the processing device 100 or has been saved in advance, such as saved in the cache inside the processing device 100.
[0155] In the above description, a compiler with the function of parsing source code is mentioned. The compiler can compile the source code into executable code. If the compiler identifies a compound operation in the source code that can be executed by the storage device 200, a corresponding identifier can be added to the compound operation in the process of compiling the source code into executable code (the identifier has a function similar to that of the compound operation identifier in the above description), so that the subsequent processing device 100 can determine the compound operation that can be executed by the storage device 200 through the corresponding identifier in the process of executing the executable code.
[0156] During the process of executing the executable code, if the processing device 100 recognizes that the compound operation that the storage device 200 can execute is a first compound operation for which the operation rules have been pre-configured, it can instruct the storage device 200 to execute the first compound operation. The execution of the first compound 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 compound operation. The first parameter configuration request carries the operation parameters required for the first compound operation and the logical addresses of the operation parameters required for the first compound operation.
[0158] During the process of executing the executable code, if a first compound operation is identified by the processing device 100, the processing device 100 determines the operation parameters required for the first compound operation according to the code in the executable code where the first compound operation appears. For example, during the process of executing the executable code, the processing device 100 identifies compound operation 1, and the compound operation 1 requires that the data equal to the target value among the multiple data from data address A to data address B be migrated to data address C to data address D. Thus, the processing device 100 can determine that the operation parameters required for compound operation 1 include data address A and data address B (i.e., the operation parameters required for the scanning operation in compound operation 1); also include the data scanned by the scanning operation and the target value (i.e., the operation parameters required for the filtering operation in compound operation 1, wherein the data scanned by the scanning operation can be identified as the output value of the scanning operation); and also include 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 compound 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 may send a first parameter configuration request to the storage device 200 , where the first parameter configuration request carries operation parameters required for the scanning operation and logical addresses of the operation parameters required for the scanning operation.
[0160] Step 505: The storage device 200 receives the first parameter configuration request, and saves the operation parameters required for the first compound operation according to the logical address of the operation rule of the first compound operation.
[0161] Taking the first parameter configuration request carrying the operation parameters required for compound operation 1 and the logical address of the operation rules of compound operation 1 as an example, after receiving the first parameter configuration request, the storage device 200 determines the physical address of the operation parameters required for compound operation 1 according to the logical address of the operation rules of compound operation 1, and writes the operation parameters required for compound operation 1 to the physical address.
[0162] The first parameter configuration request can be essentially understood as an operation request for writing data, which 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 for the first compound operation).
[0163] The first parameter configuration request may adopt the format of an existing operation request for requesting to write data. In some scenarios, in order to make it clear that the data written by the first parameter configuration request is the operation parameters required for the first compound operation, the first parameter configuration request may carry a pre-agreed parameter configuration identifier, and the parameter configuration identifier is used to characterize that the first parameter configuration request is an operation request for configuring the operation parameters required for the first compound operation.
[0164] Inside the storage device 200, after receiving the first parameter configuration request, the media controller 220 may send a parameter configuration instruction to each computing circuit logic 211, wherein the parameter configuration instruction stores the operation parameters required for the first compound operation, and the parameter configuration instruction carries the operation parameters required for the first compound operation and the physical address of the operation rule of the first compound operation. After receiving the parameter configuration instruction, the computing circuit logic 211 writes the operation parameters required for the first compound operation at the physical address.
[0165] Regarding the data addresses included in the operation parameters required for the compound operation, the embodiments of the present application do not specifically distinguish between the logical address of the data or the physical address of the data. However, it should be understood that the data address exchanged between the processing device 100 and the storage device 200 is usually the logical address of the data, such as the data address carried in the first parameter configuration request is the logical address of the data, and the data address exchanged within the storage device 200 is usually the physical address of the data, such as the data address carried in the parameter configuration indication is the physical address of the data. In other words, after the storage device 200 obtains the logical address of the data from the processing device 100, it can convert the logical address of the data into the physical address of the data, so that the storage device 200 can read and write data at the physical address.
[0166] In some scenarios, the data that needs to perform the first composite operation is only distributed in part of the medium array 212. For example, in the composite operation 1 mentioned above, the data between data address A and data address B is distributed in part of the medium array 212. The medium controller 220 can only send parameter configuration instructions to the calculation circuit logic 211 corresponding to the part of the medium array 212. The data address carried in the parameter configuration instruction received by any calculation circuit logic 211 is the data address in the medium array 212 corresponding to the calculation 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 indication to the computing circuit logic 211, and the data address carried by the parameter configuration indication is the data address in the media array 212.
[0168] Taking compound operation 1 as an example, when the media controller 220 receives the first parameter configuration request including the operation parameters required for compound operation 1, it parses the data address A and the data address B, and determines the media array 212 where the multiple data between the data address A and the data address B are distributed. If the multiple data between the data address A and the data address B are distributed in the media array 212M and the media array 212N, wherein the media array 212M includes the data between the data address A and the data address V, and the media array 212M includes the data between the data address V and the data address B. The media controller 220 sends a parameter configuration instruction to the calculation circuit logic 211 corresponding to the media array 212M, and the data addresses carried by the parameter configuration instruction are the data address A to the data address V; and sends a parameter configuration instruction to the calculation circuit logic 211 corresponding to the media array 212N, and the data addresses carried by the parameter configuration instruction are the data address V to the data address B.
[0169] Here, there is no special emphasis on the transmission method of the operation parameters required for the compound operation inside the storage device 200 when the data address included in the operation parameters required for the compound operation is the data address to which the data needs to be migrated or written (such as data address C and data address D). This is because the data address to which the data sent by the processing device 100 needs to be migrated or written is the logical address of the data, and the storage device 200 only needs to write the data to the storage location in the media array 212 and establish a corresponding relationship between the physical address of the storage location and the logical address. Therefore, for the data address 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 occupancy of the storage space 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, in the case where data needs to be migrated from one media array 212 to another media array 212, the media controller 220 can first instruct the computing circuit logic 211 corresponding to one media array 212 to read the data, and temporarily cache the data in the cache 230 inside the storage device 200. Thereafter, the data is sent from the cache 230 to the computing circuit logic 211 corresponding to another media array 212, and the physical address of the data is informed. The computing circuit logic 211 stores the data in another media array 212 according to the physical address.
[0170] After steps 504 and 505 , the processing device 100 configures the operation parameters required for the first compound operation in the storage device 200 , and then the processing device 100 can instruct the storage device 200 to execute the first compound operation.
[0171] Step 506: The processing device 100 sends a first operation request to the storage device 200, and the first operation request is used to request a first compound operation to be performed on the first data in the storage device 200. In other words, the first operation request is an operation request that carries a computing task. The first operation request may carry a virtual address of the first compound operation. The virtual address of the first compound operation carried in the first operation request substantially indicates that the first operation request is an operation request that carries a computing task, and the virtual address of the first compound operation represents the first compound operation that needs to be performed on the first data.
[0172] The virtual address of the first compound operation is associated with the operation rule of the first compound operation and the physical addresses of the required operation parameters.
[0173] Here, the relationship between the virtual address of the first compound operation, the operation rule of the first compound operation and the physical address of the required operation parameter, and the operation rule of the first compound operation and the logical address of the required operation parameter is described.
[0174] The logical address of the operation rule of the first compound operation and the physical address of the operation rule of the first compound operation both indicate the storage location of the operation rule of the first compound operation. The logical address is the address used when the processing device 100 and the storage device 200 interact, and the physical address is used inside the storage device 200. The logical address of the operation parameter required for the first compound operation and the physical address of the operation parameter required for the first compound operation are similar.
[0175] The virtual address of the first compound operation is an indicator for executing the first compound operation. When the storage device 200 receives an operation request carrying the virtual address of the first compound operation, it can be determined that the operation request is an operation request carrying a computing task. In order for the storage device 200 to be able to execute the first compound operation after obtaining the virtual address of the first compound operation, the storage device 200 needs to associate the virtual address of the first compound operation with the physical address of the operation rule of the first compound operation and the physical address of the operation parameters required for the first compound operation. In this way, the storage device 200 can determine the operation rule of the first compound operation and the operation parameters required for the first compound operation according to the virtual address of the first compound operation, and then execute the first compound operation.
[0176] Step 507: The storage device 200 receives the first operation request, and performs a first compound operation on the first data according to the first operation request.
[0177] The first operation request may adopt the format of an existing operation request for requesting data read and write. That is to say, the first operation request may follow the format of an existing data read and write request, and the process of exchanging operation requests carrying computing tasks between the processing device 100 and the storage device 200 is still the same as the interaction process of existing data read and write requests. Of course, in some scenarios, in order to make it clear that the first operation request is an operation request carrying a computing task. The first operation request may carry a pre-agreed operation identifier, which is used to characterize that the first operation request is an operation request carrying a computing task.
[0178] For the storage device 200, since the first operation request carries the virtual address of the first compound operation, the storage device 200 can determine that the first operation request is an operation request carrying a computing task according to the virtual address of the first compound operation, and the storage device 200 can determine the physical address of the operation rule of the first compound operation and the physical address of the operation parameters required for the first compound operation according to the virtual address of the first compound operation, and then determine the operation rule of the first compound operation and the operation parameters required for the first compound operation. According to the multiple basic operations indicated by the operation rule of the first compound operation and the execution order of the multiple basic operations, the storage device 200 sequentially calls the hardware operators of the multiple basic operations and the operation parameters required for the multiple basic operations in the operation parameters required for the first compound operation to complete the first compound operation.
[0179] Taking the example that the logical address of the operation rule of the first compound operation carried in the first operation request is the virtual address of the operation rule of compound operation 1, after receiving the first operation request, the storage device 200 determines the operation rule of compound operation 1 and the operation parameters required for compound operation 1 according to the virtual address of compound operation 1 (the operation parameters are configured to the storage device 200 by the processing device 100 in steps 506 to 507).
[0180] The 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 by the filtering operation to data address C to data address D.
[0181] In the storage device 200, after receiving the first operation request, if multiple data between data address A and data address B are distributed in different computing circuit logics 211, the media controller 220 may send a first operation instruction to the different computing circuit logics 211, and the first operation instruction carries the physical address of the operation rule of the first compound operation and the physical address of the operation parameter required for the first compound operation. The computing circuit logic 211 determines the operation rule of the compound operation 1 and the operation parameter required for the compound operation 1 according to the first operation instruction.
[0182] For any calculation circuit logic 211, the calculation circuit logic 211 can call the operation parameters required by the composite operation 1 to sequentially perform scanning operation, filtering operation and data migration operation for the data in the corresponding medium array 212. Since the medium array 212 corresponding to the calculation circuit logic 211 may only store part of the data between the data address A and the data address B, the calculation circuit logic 211 only scans, filters and migrates part of the data.
[0183] After steps 506 to 507, the processing device 100 instructs the storage device 200 to complete the pre-configured first compound operation. In some scenarios, the processing device 100 may identify some second compound operations for which the operation rules are not configured in advance during the process of executing the executable code. In this case, the processing device 100 may configure the operation rules of the unconfigured second compound operations to the storage device 200. This method of configuring the operation rules of the compound operation has a stronger real-time performance, and can timely configure the operation rules of the compound operation according to the type or specific semantics of the executable code that the processing device 100 needs to execute.
[0184] Step 508 : During the execution of the executable code, the processing device 100 identifies a second compound operation that is not configured in the storage device 200 .
[0185] Step 509: The processing device 100 configures the operation rules of the second compound operation in the storage device 200. The processing device 100 performs step 508 in a similar manner to the processing device 100 performs step 502, except that in step 502, the processing device 100 configures the operation rules of the second compound operation in advance before executing the executable code. Step 509 configures the operation rules of the second compound operation during the process of the processing device 100 executing the executable code.
[0186] Here, the processing device 100 configures the operation rule of the composite operation 2 in the storage device 200 as an example for explanation. The processing device 100 sends a second rule configuration request to the storage device 200. The second rule configuration request carries the operation rule of the composite operation 2 and the logical address of the operation rule of the composite operation 2. The operation rule of the composite operation 2 indicates that the composite operation 2 needs to perform a scanning operation and a sorting operation in sequence. After receiving the second rule configuration request, the storage device 200 saves the operation rule of the filtering operation at the logical address of the operation rule of the composite operation 2.
[0187] Step 510: The processing device 100 sends a second parameter configuration request to the storage device 200, where the second parameter configuration request is used to request the storage device 200 to configure the operation parameters required for the second compound operation, and the second parameter configuration request carries the operation parameters required for the second compound operation and the logical addresses of the operation parameters required for the second compound operation.
[0188] Taking the second compound operation as compound operation 2 as an example, if the compound operation 2 in the executable code requires sorting of multiple data in the data address range P and the data address range Q. Therefore, the processing device 100 can determine that the operation parameters required for the compound operation 2 include the data address range P and the data address range Q (that is, the operation parameters required for the scan operation); also include the data in the data address range P and the data in the data address range Q (that is, the operation parameters required for the addition operation); and also include the data after the data in the data address range P and the data address range Q are aggregated (that is, the operation parameters required for the sort operation).
[0189] Step 511: the storage device 200 receives the second parameter configuration request, and saves the operation parameters required for the second compound operation according to the logical addresses of the operation parameters required for the second compound operation.
[0190] The execution method of step 510 and step 511 is similar to the execution method of step 504 and step 505. For details, please refer to the above content and will not be repeated here.
[0191] After steps 508 to 511, the processing device 100 timely configures the operation parameters required for the second compound operation in the storage device 200, and then the processing device 100 can instruct the storage device 200 to perform the second compound operation. The following takes the second compound operation on the second data to be read as an example for description.
[0192] Step 512: The processing device 100 sends a second operation request to the storage device 200, and the second operation request is used to request to perform a second compound operation on the second data and then read it out. In other words, the second operation request is an operation request carrying a computing task. The second operation request carries the virtual address of the second compound operation. The virtual address of the second compound operation carried in the second operation request substantially indicates that the second operation request is an operation request carrying a computing task, and the virtual address of the second compound operation represents the second compound operation that needs to be performed.
[0193] Step 513: the storage device 200 receives the second operation request, and performs a second compound operation on the second data according to the second operation request. The virtual address of the second compound operation is associated with the operation rule of the second compound operation and the physical address of the required operation parameter.
[0194] The relationship among the virtual address of the second compound operation, the operation rules of the second compound operation and the physical addresses of the required operation parameters, and the operation rules of the second compound operation and the logical addresses of the required operation parameters are similar to the relationship among the virtual address of the first compound operation, the operation rules of the first compound operation and the physical addresses of the required operation parameters, and the operation rules of the first compound operation and the logical addresses of the required operation parameters. For details, please refer to the aforementioned content and will not be repeated here.
[0195] The second operation request may adopt the format of an existing operation request for requesting data read and write. In other words, the second operation request may follow the format of an existing data read and write request, and the process of exchanging operation requests carrying computing tasks between the processing device 100 and the storage device 200 is still the same as the interaction process of existing data read and write requests. Of course, in some scenarios, in order to make it clear that the second operation request is an operation request carrying a computing task. The second operation request may carry a pre-agreed operation identifier, which is used to characterize that the second operation request is an operation request carrying a computing task.
[0196] For the storage device 200, since the second operation request carries the virtual address of the second compound operation, the storage device 200 can determine that the second operation request is an operation request carrying a computing task according to the virtual address of the second compound operation, and the storage device 200 can determine the physical address of the operation rule of the second compound operation and the physical address of the operation parameters required for the second compound operation according to the virtual address of the second compound operation, and then determine the operation rule of the second compound operation and the operation parameters required for the second compound operation. According to the multiple basic operations indicated by the operation rule of the second compound operation and the execution order of the multiple basic operations, the storage device 200 sequentially calls the hardware operators of the multiple basic operations and the operation parameters required for the multiple basic operations in the operation parameters required for the second compound operation to complete the second compound operation.
[0197] Taking the example that the logical address of the operation rule of the second compound operation carried in the second operation request is the virtual address of the operation rule of compound operation 2, after receiving the second operation request, the storage device 200 determines the operation rule of compound operation 2 and the operation parameters required for compound operation 2 according to the virtual address of compound operation 2 (the operation parameters are configured to the storage device 200 by the processing device 100 in steps 508 to 510).
[0198] The storage device 200 can first perform a scanning operation to scan multiple data in the data address range P and multiple data in the data address range Q respectively; then perform an addition operation to aggregate the multiple data in the data address range P and the multiple data in the data address range Q; then perform a sorting operation to sort the aggregated 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 can send a second operation instruction to the calculation circuit logic 211 corresponding to the multiple media arrays 212, because the multiple data in the data address range P and the multiple data in the data address range Q can be distributed in multiple media arrays 212, that is, each media array 212 in the multiple media arrays 212 can store part of the multiple data in the data address range P and the data address range Q. The second operation instruction carries the physical address of the operation rule of the second composite operation and the physical address of the operation parameter required for the second composite operation. The calculation circuit logic 211 determines the operation rule of the composite operation 2 and the operation parameter required for the composite operation 2 according to the second operation instruction, and executes the composite operation 2.
[0200] For any calculation circuit logic 211, the calculation circuit logic 211 can call the operation parameters required by the composite operation 2 to sequentially perform scanning operation, filtering operation and data migration operation for the data in the corresponding medium array 212. Since the medium array 212 corresponding to the calculation circuit logic 211 may only store part of the multiple data in the data address range P and the data address range Q, the calculation circuit logic 211 only scans, merges and sorts part of the data.
[0201] After completing compound operation 2, each computing circuit logic 211 sends the sorted data to the media controller 220. The data fed back by the computing circuit logic 211 received by the media controller 220 is stored in the cache 230 in the storage device 200. The media controller 220 can sort the data fed back by each computing circuit logic 211 received, and carry it in the second operation response to send a second operation response to the processing device 100. The second operation response carries the data after executing the second compound operation.
[0202] In some scenarios, the processing device 100 may also update the operation rules of the composite operation configured in the storage device 200 and the operation parameters required for the composite operation. The manner in which the processing device 100 updates the operation rules of the composite operation configured in the storage device 200 and the operation parameters required for the composite operation is similar to the manner in which the processing device 100 configures the operation rules of the composite operation (such as step 502 or step 509) and the operation parameters required for the composite operation (such as steps 504 to 505, or steps 510 to 511) for the storage device 200, with the difference that the first rule configuration request may carry the updated operation rules of the composite operation, and the first parameter configuration request may carry the updated operation parameters required for the composite operation.
[0203] Based on the same inventive concept as the method embodiment, the embodiment of the present application also provides a data computing device, which is used to perform the above-mentioned Figure 5 The method executed by the storage device in the method embodiment shown in the figure, the relevant features can be found in the above method embodiment, and will not be repeated here. Figure 6 As shown, the data operation device 600 includes a transmission module 601 and an operation module 602;
[0204] The transmission module 601 is used to receive an operation request from a processing device, where the operation request is used to request to execute 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, and the operation parameters required for the first operation include the operation parameters required for the multiple second operations; according to the execution order of the multiple second operations, the hardware operators of the multiple second operations and the operation parameters required for the multiple second operations are called in sequence to execute the multiple second operations.
[0206] In a possible implementation, the transmission module 601 receives a rule configuration request from a processing device, the rule configuration request is used to request configuration of an operation rule of a first operation, and the rule configuration request carries the operation rule of the first operation and a logical address of the operation rule of the first operation. The operation module 602 stores the operation rule of the first operation at a storage location indicated by the logical address of the operation rule of the first operation.
[0207] In a possible implementation, the transmission module 601 receives a parameter configuration request from a processing device, the parameter configuration request is used to request configuration of operation parameters required for the first operation, and the parameter configuration request carries the operation parameters required for the first operation and the logical addresses of the operation parameters required for the first operation. The operation module 602 stores the operation rules required for the first operation at the storage location indicated by the logical addresses of the operation parameters required for the first operation.
[0208] In a possible implementation, the apparatus further includes a preconfiguration module 603. The preconfiguration module 603 may reserve a storage location for an operation rule of the first operation and an operation parameter required for the first operation at the request of the processing device, wherein the logical address of the storage location of the operation rule of the first operation and the operation parameter required for the first operation is allocated by the processing device.
[0209] In a possible implementation, the preconfiguration module 603 has reserved a storage location 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 operation rules of the first operation and the logical addresses of the operation parameters required for the first operation.
[0210] In one possible implementation, the operation request includes a virtual address of a first operation, and the virtual address of the first operation is respectively associated with the operation rules of the first operation and the storage locations of 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 operation module 602 obtains a virtual address configured by the processing device for a first operation, and the virtual address of the first operation is used to indicate the execution of the first operation; the operation module 602 establishes an association between the virtual address of the first operation and the operation rules of the first operation and the storage locations of the operation parameters required for the first operation.
[0212] It should be noted that the division of modules in the embodiments of the present application is schematic and is only a logical function division. There may be other division methods in actual implementation. The functional modules in the embodiments of the present application may be integrated into a processing module, or each module may exist physically separately, or two or more modules may be integrated into one module. The above-mentioned integrated modules may be implemented in the form of hardware or in the form of software functional modules.
[0213] The above embodiments can be implemented in whole or in part by software, hardware, firmware or any other combination. When implemented by software, the above embodiments can be implemented in whole or in part in the form of 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, the process or function described in the embodiment of the present invention is generated in whole or in part. 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 computer-readable storage medium. For example, the computer instructions can be transmitted from one website site, computer, server or data center to another website site, computer, server or data center by wired (e.g., coaxial cable, optical fiber, digital subscriber line (DSL)) or wireless (e.g., infrared, wireless, microwave, etc.) means. The computer-readable storage medium can be any available medium that can be accessed by a computer or a data storage device such as a server or data center that contains one or more available media sets. The available medium can be a magnetic medium (e.g., a floppy disk, a hard disk, a tape), an optical medium (e.g., a DVD), or a semiconductor medium. The semiconductor medium can be a solid state drive (SSD).
[0214] Those skilled in the art will appreciate that the embodiments of the present application may be provided as methods, systems, or computer program products. Therefore, the present application may adopt the form of a complete hardware embodiment, a complete software embodiment, or an embodiment in combination with software and hardware. Moreover, the present application may adopt the form of a computer program product implemented in one or more computer-usable storage media (including but not limited to disk storage, CD-ROM, optical storage, etc.) that include computer-usable program code.
[0215] The present application is described with reference to the flowcharts and / or block diagrams of the methods, devices (systems), and computer program products according to the present application. It should be understood that each process and / or box in the flowchart and / or block diagram, as well as the combination of the processes and / or boxes in the flowchart and / or block diagram, can be implemented by computer program instructions. These computer program instructions can be provided to a processor of a general-purpose computer, a special-purpose computer, an embedded processor, or other programmable data processing device to produce a machine, so that the instructions executed by the processor of the computer or other programmable data processing device generate instructions for implementing the processes in the flowchart and / or block diagram. Figure 1 A process or multiple processes and / or boxes Figure 1 A device that provides the functions specified in a block or multiple blocks.
[0216] These computer program instructions may also be stored in a computer-readable memory capable of directing a computer or other programmable data processing device to operate in a specific manner, so that the instructions stored in the computer-readable memory produce an article of manufacture comprising an instruction device, which implements the process Figure 1 A process or multiple processes and / or boxes Figure 1 A function specified in one or more boxes.
[0217] These computer program instructions can also be loaded onto a computer or other programmable data processing device so that a series of operating steps are executed on the computer or other programmable device to produce a computer-implemented process, thereby providing instructions for implementing the process. Figure 1 A process or multiple processes and / or boxes Figure 1 The steps for the functions specified in one or more boxes.
[0218] Obviously, those skilled in the art can make various changes and modifications to the present application without departing from the scope of the present application. Thus, if these modifications and variations of the present application fall within the scope of the claims of the present application and their equivalents, the present application is also intended to include these modifications and variations.
Claims
1. A data computing method, characterized in that: The method is applied to a storage device, and the method comprises: receiving an operation request from a processing device, wherein the operation request is used to request execution of a first operation; Obtaining an operation rule of the first operation and operation parameters required for the first operation, wherein the operation rule of the first operation describes 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 for the first operation include the operation parameters required for the plurality of second operations; The multiple second operations are executed by sequentially calling the hardware operators of the multiple second operations and the operation parameters required by the multiple second operations in the execution order of the multiple second operations.
2. The method according to claim 1, characterized in that Before receiving the operation request from the processing device, the method further includes: receiving a rule configuration request from the processing device, the rule configuration request being used to request configuration of an operation rule of the 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 operation rule of the first operation is stored at a storage location indicated by a logical address of the operation rule of the first operation.
3. The method according to claim 1 or 2, characterized in that Before receiving the operation request from the processing device, the method further includes: receiving a parameter configuration request from the processing device, the parameter configuration request being used to request configuration of operation parameters required for the first operation, the parameter configuration request carrying the operation parameters required for the first operation and the logical addresses of the operation parameters required for the first operation; The operation parameters required for the first operation are stored at a storage location indicated by a logical address of the operation parameters required for the first operation.
4. The method according to any one of claims 1 to 3, characterized in that: The method further comprises: At the request of the processing device, a storage location is reserved for the operation rules of the first operation and the operation parameters required for the first operation, wherein the logical addresses of the storage locations of the operation rules of the first operation and the operation parameters required for the first operation are allocated by the processing device.
5. The method according to any one of claims 1 to 3, characterized in that: The storage device has reserved a storage location for the operation rule of the first operation and the operation parameters required for the first operation, and the method further includes: An operation rule of the first operation and a logical address of an operation parameter required for the first operation are provided to the processing device.
6. The method according to any one of claims 1 to 5, characterized in that: The hardware operators of the plurality of second operations are hardware logic built into the storage device.
7. The method according to any one of claims 1 to 6, characterized in that: The operation request includes a virtual address of the first operation, and the virtual address of the first operation is respectively associated with an operation rule of the first operation and a storage location of an operation parameter required for the first operation. The acquiring the operation rule of the first operation and the operation parameter required for the first operation according to the operation request includes: The operation rule of the first operation and the operation parameters required for the first operation are obtained from the storage location associated with the virtual address of the first operation.
8. The method according to claim 7, characterized in that The method further comprises: Obtaining a virtual address configured by the processing device for the first operation; Associations are established between the virtual address of the first operation and the operation rule of the first operation and the storage location of the operation parameters required for the first operation.
9. The method according to any one of claims 1 to 8, characterized in that: 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 the first operation on the data in the media array or the data to be written into the media array. The media array and the computing circuit logic are located in the storage device in a stacked form.
10. The method according to claim 9, characterized in that The computing circuit logic includes a cache and hardware operators of the plurality of second operations, and the cache stores operation rules of the first operation and operation parameters required for the first operation.
11. The method according to any one of claims 1 to 10, characterized in that: The storage device is connected to the processing device via a system bus.
12. A storage device, characterized in that: The storage device includes at least one media chip, and the media chip includes a media array and computing circuit logic; The medium array is used to store data; The computing 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 disassembled and the execution order of the multiple second operations, and 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.
13. The device according to claim 12, characterized in that The computing circuit logic includes the hardware operators of the plurality of second operations and a cache, wherein the cache stores the operation rules of the first operation and the operation parameters required for the first operation; the computing circuit logic is used to: Acquire the operation rule of the first operation and the operation parameters required for the first operation from the cache; The multiple second operations are performed on the data in the medium array by sequentially calling the hardware operators of the multiple second operations and the operation parameters required by the multiple second operations in the execution order of the multiple second operations.
14. The device according to claim 12 or 13, characterized in that The medium array and the computing circuit logic are placed in a stacked manner.
15. The device according to any one of claims 12 to 14, characterized in that: The storage device also includes a media controller; The media controller is used to: receive a rule configuration request from a processing device, the rule configuration request is used to request configuration of the operation rules of the first operation, and configure the operation rules of the first operation to the computing circuit logic; receive a parameter configuration request from a processing device, the parameter configuration request is used to request configuration of the operation parameters required for the first operation, and configure the operation parameters required for the first operation to the computing circuit logic.
16. The device according to claim 15, characterized in that The media controller is further used to: receive an operation request from the processing device, the operation request is used to request execution of the first operation, and send an operation instruction to the computing circuit logic, the operation instruction is used to instruct the computing circuit logic to execute the first operation.
17. A data computing device, characterized in that: The device is deployed in a storage device, and includes a transmission module and a calculation module; The transmission module is used to receive an operation request from a processing device, where the operation request is used to request to perform a first operation; The operation module 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 disassembled and the execution order of the multiple second operations, and the operation parameters required for the first operation include the operation parameters required for the multiple second operations; according to the execution order of the multiple second operations, the hardware operators of the multiple second operations and the operation parameters required for the multiple second operations are called in sequence to execute the multiple second operations.
18. The device according to claim 17, characterized in that The transmission module is further used to receive a rule configuration request from the processing device, the rule configuration request is used to request configuration of an operation rule of the first operation, and the rule configuration request carries the operation rule of the first operation and a logical address of the operation rule of the first operation; The operation module is further configured to store the operation rule of the first operation at a storage location indicated by a logical address of the operation rule of the first operation.
19. The device according to claim 17 or 18, characterized in that The transmission module is further used to receive a parameter configuration request from the processing device, the parameter configuration request is used to request configuration of operation parameters required for the first operation, and the parameter configuration request carries the operation parameters required for the first operation and the logical addresses of the operation parameters required for the first operation; The operation module is further used to store 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.
Citation Information
Patent Citations
Operation device and related product
CN107861757A
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