Data processing method, device, system, medium and product

By introducing service request caching and search mechanisms into the reconfigurable cryptographic computing array, the problems of overloading CPU load and complex design of interface conversion modules in the prior art are solved, and high-efficiency data processing is achieved, and data processing efficiency and resource utilization are improved.

CN115033904BActive Publication Date: 2025-03-07TSINGHUA UNIVERSITY +1
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
CN202210683607.9
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2022-06-15
Publication Date
2025-03-07
Estimated Expiration
2042-06-15

AI Technical Summary

Technical Problem

When the prior art uses reconfigurable cryptographic computing array for data processing, there are problems such as overloading of CPU load and complex design of interface conversion modules, resulting in low data processing efficiency and large latency.

Method used

By introducing a service request cache and search mechanism in the reconfigurable password computing array, the service requests sent by the host side are cached, and when the password computing group is in an idle state, the password computing group that is consistent with its preset service type is found, and the password computing group that obtains pending data from the host side and sends it to the idle state for processing.

Benefits of technology

This method does not require calling DMA for data transfer, which improves the data transfer efficiency of the reconfigurable password computing array, and almost no on-chip CPU participation is required, freeing up on-chip CPU resources and improving the energy efficiency of data processing.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115033904B_ABST
    Figure CN115033904B_ABST
Patent Text Reader

Abstract

The present invention proposes a data processing method for a reconfigurable cryptographic computing array, which is applied to the field of computer technology. The method includes: responding to at least one service request sent by the host end, caching at least one of the service requests, the service request including the service type, and when there is a cryptographic computing core group in an idle state, searching for a service request consistent with the preset service type of the cryptographic computing core group, obtaining the to-be-processed data indicated by the service request from the host end, and sending the to-be-processed data to the cryptographic computing core group in an idle state for data processing. The present invention also proposes a data processing device, system, medium and program product for a reconfigurable cryptographic computing array, which does not require calling DMA to transfer data, thereby improving the data transfer efficiency of the reconfigurable cryptographic computing array, and almost does not require the on-chip CPU to participate, thereby releasing on-chip CPU resources.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to the field of computer technology, and in particular to a data processing method, device, system, medium and product for a reconfigurable cryptographic computing array. Background Art

[0002] Reconfigurable cryptographic computing array is a software-defined chip hardware architecture developed using coarse-grained reconfigurable computing technology. It is a new form between field programmable gate arrays and application-specific integrated circuits. This array structure has excellent energy efficiency and is widely used in cryptographic security, artificial intelligence, communications and other fields. Since reconfigurable cryptographic computing arrays have the characteristics of large scale, high bandwidth, high speed, and generally have unified interfaces and operation procedures, in practical applications, they have very high requirements for data bandwidth. At present, there are various solutions to solve the high bandwidth requirements of reconfigurable cryptographic computing arrays. The following two are more commonly used: 1) high-performance CPU calls the direct memory access (DMA) module; 2) communicate directly with the reconfigurable cryptographic computing array through a high-speed interface.

[0003] Both of these methods have some design defects in the application of reconfigurable cryptographic computing arrays: the first one requires the CPU to configure multiple direct memory access paths and return multiple interrupt sources. The hardware design structure is simple but will cause the CPU to be overloaded and unable to handle other services. The second one is that the reconfigurable cryptographic computing array is directly accessed by the host through a high-speed interface, or the host directly accesses the reconfigurable cryptographic computing array through a high-speed interface. The interface conversion module is complex in design and requires the reconfigurable cryptographic computing array to cooperate with the corresponding business scheduling. In addition, delays in the business processing of the reconfigurable cryptographic computing array will cause data congestion. Summary of the invention

[0004] The main purpose of the present invention is to provide a data processing method, device, system, medium and program product for a reconfigurable cryptographic computing array, which can utilize the reconfigurable cryptographic computing array for data processing with high energy efficiency.

[0005] To achieve the above-mentioned purpose, a first aspect of an embodiment of the present invention provides a data processing method for a reconfigurable cryptographic computing array, comprising:

[0006] The reconfigurable cryptographic computing array includes at least one group of cryptographic computing cores, each group of the cryptographic computing cores is used to process data of a preset business type, and the method includes:

[0007] In response to at least one service request sent by the host end, cache at least one service request, wherein the service request includes a service type;

[0008] In the case where there is a cryptographic core group in an idle state, searching for a service request consistent with a preset service type of the cryptographic core group;

[0009] Obtaining the to-be-processed data indicated by the service request from the host end;

[0010] The data to be processed is sent to the cryptographic core group in an idle state for data processing.

[0011] In an embodiment of the present invention, caching at least one of the service requests includes:

[0012] At least one of the service requests is cached in at least one preset service request cache space, and each of the service request cache spaces caches one of the service requests.

[0013] In one embodiment of the present invention, after searching for a service request consistent with a preset service type of the cryptographic core group, the process includes:

[0014] Retrieving the service request from the service request cache space corresponding to the service request;

[0015] The cache state of the service request cache space is marked as an empty state, wherein the cache state includes an empty state and a full state, wherein the empty state indicates that the service request cache space has not cached a service request, and the full state indicates that the service request cache space has cached a service request.

[0016] In an embodiment of the present invention, caching at least one of the service requests into at least one preset service request cache space includes:

[0017] Acquire the service request cache space in the empty cache state and the number of service request cache spaces in the empty cache state;

[0018] When the number of the service request cache spaces in the empty cache state is not less than the number of at least one service request, cache at least one service request to the service request cache space in the empty cache state;

[0019] When the number of service request cache spaces in the empty cache state is less than the number of at least one service request, obtaining a first number of service requests, and caching the first number of service requests into the service request cache space in the empty cache state, the first number being the same as the number of service request cache spaces in the empty cache state;

[0020] The operation of obtaining the service request cache space whose cache state is empty and the number of the service request cache spaces whose cache state is empty is performed again.

[0021] In one embodiment of the present invention, each of the cryptographic core groups has a set of transmission interfaces, and the transmission interfaces are used to transmit information related to the corresponding cryptographic core group;

[0022] The method further comprises:

[0023] Constructing at least one group of access interfaces having the same number as the transmission interfaces, wherein at least one group of access interfaces corresponds one-to-one to at least one group of transmission interfaces;

[0024] Information related to the cryptographic core group associated with the access interface is transmitted through a preset access interface.

[0025] In one embodiment of the present invention, the transmission interface includes a status transmission interface and a data transmission interface;

[0026] The state transmission interface is used to transmit the idle state, input full state and output full state of the corresponding cryptographic core group, the idle state indicates that the cryptographic core group is not currently performing a data processing task, the input full state indicates that the length of the data currently received by the cryptographic core group reaches the input length specified in the business request, and the output full state indicates that the length of the data output by the cryptographic core group currently performing the data processing task reaches the output length specified in the business request;

[0027] The data transmission interface is used to transmit the data to be processed and the processed data corresponding to the data to be processed.

[0028] In one embodiment of the present invention, the method comprises:

[0029] Real-time monitoring of the working status of all cryptographic computing core groups in the reconfigurable cryptographic computing array, wherein the working status includes an idle state and a busy state;

[0030] In the case where the working state of a cryptographic core group is an idle state, searching for a transmission interface corresponding to the cryptographic core group;

[0031] A message indicating that the cryptographic core group is in an idle state and sent by the transmission interface is received through the access interface.

[0032] In one embodiment of the present invention, before searching for a service request consistent with a preset service type of the cryptographic core group, the process includes:

[0033] Parsing the service request to obtain service information, wherein the service information includes service type, service source address, service source length, service destination address, and service destination length;

[0034] The acquiring the to-be-processed data indicated by the service request from the host side includes:

[0035] Based on the service source address and the service source length, obtaining the to-be-processed data indicated by the service request from the host end;

[0036] After sending the data to be processed to the cryptographic core group in an idle state for data processing, the method includes:

[0037] The processed data corresponding to the data to be processed is sent to the storage space corresponding to the business destination address and the business destination length.

[0038] A second aspect of an embodiment of the present invention provides a data processing device for a reconfigurable cryptographic computing array, wherein the reconfigurable cryptographic computing array includes at least one group of cryptographic computing core groups, each group of the cryptographic computing core groups is used to process data of a preset business type, and the device includes:

[0039] A service cache module, configured to cache at least one service request in response to at least one service request sent by the host end, wherein the service request includes a service type;

[0040] A service search module, used for searching for a service request consistent with a preset service type of the cryptographic core group when a cryptographic core group is in an idle state;

[0041] A data acquisition module, used for acquiring the to-be-processed data indicated by the service request from the host end;

[0042] The data sending module is used to send the data to be processed to the cryptographic core group in an idle state for data processing.

[0043] In an embodiment of the present invention, the service cache module is specifically configured to cache at least one of the service requests into at least one preset service request cache space, and each of the service request cache spaces caches one of the service requests.

[0044] In one embodiment of the present invention, the device comprises:

[0045] A logic control module is used to take out the business request from the business request cache space corresponding to the business request, and mark the cache state of the business request cache space as an empty state, wherein the cache state includes an empty state and a full state, wherein the empty state indicates that the business request cache space has not cached the business request, and the full state indicates that the business request cache space has cached the business request.

[0046] In an embodiment of the present invention, caching at least one of the service requests into at least one preset service request cache space includes:

[0047] Acquire the service request cache space in the empty cache state and the number of service request cache spaces in the empty cache state;

[0048] When the number of the service request cache spaces in the empty cache state is not less than the number of at least one service request, cache at least one service request to the service request cache space in the empty cache state;

[0049] When the number of service request cache spaces in the empty cache state is less than the number of at least one service request, obtaining a first number of service requests, and caching the first number of service requests into the service request cache space in the empty cache state, the first number being the same as the number of service request cache spaces in the empty cache state;

[0050] The operation of obtaining the service request cache space whose cache state is empty and the number of the service request cache spaces whose cache state is empty is performed again.

[0051] In one embodiment of the present invention, each of the cryptographic core groups has a set of transmission interfaces, and the transmission interfaces are used to transmit information related to the corresponding cryptographic core group;

[0052] The data processing device includes at least one group of access interfaces, the number of which is the same as that of at least one group of transmission interfaces, and at least one group of access interfaces corresponds one-to-one to at least one group of transmission interfaces. The access interfaces are used to transmit information related to the relevant cryptographic core group.

[0053] In one embodiment of the present invention, the access interface includes a state access interface and a data access interface;

[0054] The state access interface is used to transmit the idle state, input full state and output full state of the corresponding cryptographic core group, the idle state indicates that the cryptographic core group is not currently performing a data processing task, the input full state indicates that the length of the data currently received by the cryptographic core group reaches the input length specified in the business request, and the output full state indicates that the length of the data output by the cryptographic core group currently performing the data processing task reaches the output length specified in the business request;

[0055] The data access interface is used to transmit the data to be processed and the processed data corresponding to the data to be processed.

[0056] In one embodiment of the present invention, the device comprises:

[0057] A status monitoring module, used for real-time monitoring of the working status of all cryptographic computing core groups in the reconfigurable cryptographic computing array, wherein the working status includes an idle state and a busy state;

[0058] A search module, used for searching for a transmission interface corresponding to a cryptographic core group when the working state of the cryptographic core group is an idle state;

[0059] The sending module is used to receive the message that the cryptographic core group is in an idle state sent by the transmission interface through the access interface.

[0060] In one embodiment of the present invention, the device comprises:

[0061] A parsing module, used to parse the service request to obtain service information, wherein the service information includes service type, service source address, service source length, service destination address, and service destination length;

[0062] The data acquisition module is used to acquire the to-be-processed data indicated by the service request from the host end based on the service source address and the service source length;

[0063] The device also includes:

[0064] The return module is used to send the processed data corresponding to the data to be processed to the storage space corresponding to the business destination address and the business destination length.

[0065] A third aspect of the present disclosure provides a data processing system, comprising: a host end, a system bus connected to the host end, a data processing device for a reconfigurable cryptographic computing array as described in the second aspect, a transmission interface, and the reconfigurable cryptographic computing array;

[0066] The data processing device for the reconfigurable cryptographic computing array is disposed between the system bus and the reconfigurable cryptographic computing array.

[0067] The fourth aspect of the present disclosure further provides a computer-readable storage medium having executable instructions stored thereon, which, when executed by a processor, causes the processor to execute the above-mentioned data processing method for a reconfigurable cryptographic computing array.

[0068] The fifth aspect of the present disclosure also provides a computer program product, including a computer program, which implements the above-mentioned data processing method for a reconfigurable cryptographic computing array when executed by a processor.

[0069] According to an embodiment of the present invention, the present invention provides a data processing method, device, system, medium and program product for a reconfigurable cryptographic computing array, the reconfigurable cryptographic computing array includes at least one group of cryptographic computing core groups, each group of the cryptographic computing core groups is used to process data of a preset business type, the method includes: responding to at least one business request sent by the host end, caching at least one of the business requests, the business request includes a business type, and when there is a cryptographic computing core group in an idle state, searching for a business request consistent with the preset business type of the cryptographic computing core group, obtaining the data to be processed indicated by the business request from the host end, and sending the data to be processed to the cryptographic computing core group in an idle state for data processing. There is no need to call DMA to move data, which improves the data moving efficiency of the reconfigurable cryptographic computing array, and almost no on-chip CPU participation is required, freeing up on-chip CPU resources. BRIEF DESCRIPTION OF THE DRAWINGS

[0070] In order to more clearly illustrate the embodiments of the present invention or the technical solutions in the prior art, the drawings required for use in the embodiments or the description of the prior art will be briefly introduced below. Obviously, the drawings described below are only some embodiments of the present invention. For those skilled in the art, other drawings can be obtained based on these drawings without paying any creative work.

[0071] Figure 1 A schematic flow chart of a data processing method for a reconfigurable cryptographic computing array provided in one embodiment of the present invention;

[0072] Figure 2 A schematic diagram of a process of caching at least one service request into at least one preset service request cache space provided by an embodiment of the present invention;

[0073] Figure 3 A schematic flow chart of a data processing method for a reconfigurable cryptographic computing array provided in one embodiment of the present invention;

[0074] Figure 4 A schematic diagram of a process of caching at least one service request into at least one preset service request cache space provided by an embodiment of the present invention;

[0075] Figure 5 A data processing device for a reconfigurable cryptographic computing array provided by an embodiment of the present invention;

[0076] Figure 6 A block diagram of a data processing system according to an embodiment of the present disclosure is schematically shown;

[0077] Figure 7 The flowchart of completing a service request according to an embodiment of the present disclosure is schematically shown;

[0078] Figure 8 A schematic diagram of the hardware structure of an electronic device is shown. DETAILED DESCRIPTION

[0079] In order to make the purpose, features and advantages of the present invention more obvious and easy to understand, the technical solutions in the embodiments of the present invention will be clearly and completely described below in conjunction with the drawings in the embodiments of the present invention. Obviously, the described embodiments are only part of the embodiments of the present invention, not all of them. Based on the embodiments of the present invention, all other embodiments obtained by those skilled in the art without creative work are within the scope of protection of the present invention.

[0080] The present invention provides a data processing method for a reconfigurable cryptographic computing array, the reconfigurable cryptographic computing array includes at least one group of cryptographic computing core groups, each group of the cryptographic computing core groups is used to process data of a preset business type, the method includes: responding to at least one business request sent by a host end, caching at least one of the business requests, the business request includes a business type, and when there is a cryptographic computing core group in an idle state, searching for a business request consistent with the preset business type of the cryptographic computing core group, obtaining the to-be-processed data indicated by the business request from the host end, and sending the to-be-processed data to the cryptographic computing core group in an idle state for data processing. There is no need to call DMA to transport data, which improves the data transport efficiency of the reconfigurable cryptographic computing array, and almost no on-chip CPU participation is required, which releases on-chip CPU resources.

[0081] In the following, some embodiments of the present invention are described in detail in conjunction with the accompanying drawings. In the case where there is no conflict between the embodiments, the following embodiments and features in the embodiments can be combined with each other.

[0082] See also Figure 1 , Figure 1 A flow chart of a data processing method for a reconfigurable cryptographic computing array provided in one embodiment of the present invention, wherein the reconfigurable cryptographic computing array includes at least one group of cryptographic computing core groups, each of which is used to process data of a preset business type, and the method includes the following operations:

[0083] Operation S110, in response to at least one service request sent by the host, cache at least one of the service requests, where the service request includes a service type.

[0084] Operation S120: when there is a cryptographic core group in an idle state, searching for a service request consistent with a preset service type of the cryptographic core group.

[0085] Operation S130: obtaining the to-be-processed data indicated by the service request from the host.

[0086] Operation S140: sending the data to be processed to the cryptographic core group in an idle state for data processing.

[0087] In the present invention, the reconfigurable cryptographic computing array is a coarse-grained reconfigurable cryptographic multi-core architecture, and its structure is arranged according to an array. Each row can be used as a group of cryptographic cores that can independently implement an encryption / decryption algorithm, or multiple rows can be used as a group of cryptographic cores that can independently implement an encryption / decryption algorithm. The present invention does not limit this. In an embodiment of the present invention, each row is used as a group of cryptographic cores that can independently implement an encryption / decryption algorithm as an example for schematic explanation.

[0088] In the present invention, each group of the cryptographic core group is used to process data of a preset business type, and the business type can be a different encryption / decryption algorithm, for example, grouping algorithm AES, SM4, hash algorithm sm3 and other algorithms, and for example, encryption / decryption algorithms including ECB, CBC and other modes of grouping algorithms. It can be understood that the specific business type of each group of cryptographic core groups can be pre-configured, and the specific business type of each group of cryptographic core groups can be the same or different. The present invention does not limit this. The present invention takes all cryptographic core groups as an example for processing data with a business type of AES_ECB encryption algorithm, and provides a schematic description.

[0089] In the present invention, service requests, data to be processed and processed data can be transmitted through the system bus (AIX bus), wherein the system bus interface includes a slave interface and a master interface, the slave interface transmits the service request of the host side, and the master interface is used to access the storage space of the host side to transmit the data to be processed and the processed data.

[0090] In the present invention, in operation S110, the service request sent by the host side includes who I am (service type, used to indicate which group of cryptographic core groups are selected for data processing), where I come from (service source address, service source length), where I go (service destination address, service destination length), and derived issues (service identification, service response, key address length), etc.

[0091] In the present invention, in operation S120, the cryptographic computing group being in an idle state means that no data processing tasks are being performed. A business request consistent with the preset business type of the cryptographic computing group is searched, for example, if the cryptographic computing group in an idle state is a cryptographic computing group with a business type of AES_ECB encryption algorithm, then a business request with a business type of AES_ECB encryption algorithm is searched.

[0092] In the present invention, in operation S130, the to-be-processed data indicated by the service request is obtained from the host side, that is, the to-be-processed data indicated by the service source address and the service source length is obtained from the storage space of the host side through the system bus.

[0093] In the present invention, after operation S140, the processed data corresponding to the data to be processed is sent to the storage space corresponding to the business destination address and the business destination length. Optionally, a business request return packet can also be returned to the storage space of the host side to indicate the completion of the business request.

[0094] According to an embodiment of the present invention, in response to at least one business request sent by the host side, at least one of the business requests is cached, and the business request includes a business type. When a cryptographic core group is in an idle state, a business request consistent with a preset business type of the cryptographic core group is searched, and the to-be-processed data indicated by the business request is obtained from the host side, and the to-be-processed data is sent to the cryptographic core group in the idle state for data processing. There is no need to call DMA for data transfer, thereby improving the data transfer efficiency of the reconfigurable cryptographic computing array, and almost no need for the on-chip CPU to participate, thereby releasing on-chip CPU resources.

[0095] In one embodiment of the present invention, the operation S110 of caching at least one of the service requests includes: caching at least one of the service requests into at least one preset service request cache space, wherein each of the service request cache spaces caches one service request, so as to solve the data congestion problem of multiple data streams and improve the data scheduling speed.

[0096] In one embodiment of the present invention, after the above operation S120, it also includes: taking out the service request from the service request cache space corresponding to the service request, marking the cache state of the service request cache space as an empty state, the cache state includes an empty state and a full state, the empty state indicates that the service request cache space has not cached the service request, and the full state indicates that the service request cache space has cached the service request. According to an embodiment of the present invention, the service request cache space state is marked so that the service request cache space state can be obtained in real time, so as to determine whether the service request cache space can be written and which service request cache space, so that the service request cache space can be used in real time and efficiently.

[0097] See also Figure 2 , Figure 2 A schematic diagram of a process of caching at least one service request into at least one preset service request cache space provided by an embodiment of the present invention includes the following operations:

[0098] Operation S210: Acquire the service request cache space whose cache state is empty and the number of service request cache spaces whose cache state is empty.

[0099] Operation S220 , when the number of the service request cache space in the cache state being an empty state is not less than the number of at least one service request, cache at least one service request into the service request cache space in the cache state being an empty state.

[0100] Operation S230, when the number of business request cache spaces in the cache state that is empty is less than the number of at least one of the business requests, obtain a first number of business requests, and cache the first number of business requests to the business request cache space in the cache state that is empty, and the first number is the same as the number of business request cache spaces in the cache state that is empty.

[0101] Operation S210 is performed again.

[0102] In an example of the present invention, taking the case where there are 30 business request cache spaces and the number of business requests is 15, assuming that the number of business request cache spaces with an empty cache state is 20, and the number of 20 business request cache spaces with an empty cache state is not less than the number of 15 business requests, the 15 business requests are cached in any 15 of the 20 business request cache spaces with an empty cache state. Assuming that the number of business request cache spaces with an empty cache state is 10, and the number of 10 business request cache spaces with an empty cache state is less than the number of 15 business requests, the 10 business requests are cached in any of the 10 business request cache spaces with an empty cache state. After the caching is completed, the number of business request cache spaces with an empty cache state and the number of business request cache spaces with an empty cache state are obtained again.

[0103] According to the embodiment of the present invention, the service processing progress status is acquired in real time to determine the timing and service quantity of writing into the service cache request space, so that the service cache space can be used in real time and efficiently.

[0104] See also Figure 3 , Figure 3 A flow chart of a data processing method for a reconfigurable cryptographic computing array provided in one embodiment of the present invention, wherein each cryptographic computing core group has a set of transmission interfaces, and the transmission interfaces are used to transmit information related to the corresponding cryptographic computing core group. The method may include the following operations:

[0105] Operation S310: construct at least one group of access interfaces having the same number as the transmission interfaces, wherein at least one group of the access interfaces corresponds one-to-one to at least one group of the transmission interfaces.

[0106] Operation S320: transmitting information related to the cryptographic core group associated with the access interface through a preset access interface.

[0107] In one embodiment of the present invention, the relevant information may be the computing state of the cryptographic computing core group, including working state, input buffer state, output buffer state, data input to the cryptographic computing core group, data output by the cryptographic computing core group, whether the service data flow is abnormal, etc. According to the embodiment of the present invention, each group of computing core groups corresponds to a group of interfaces (transmission interface and access interface) and a service request buffer space, which can solve the data congestion problem of multiple data streams.

[0108] In the present invention, each group of the cryptographic core group corresponds to a group of transmission interfaces and a group of access interfaces. For example, if there are 30 groups of cryptographic core groups, there are 30 groups of transmission interfaces and 30 groups of access interfaces. One group of cryptographic core groups corresponds to one group of transmission interfaces and one group of access interfaces. Each group of transmission interfaces and each group of access interfaces work independently and can be processed in parallel. The number of groups of transmission interfaces and access interfaces can be 16 to 32 groups, or any other number. The present disclosure does not make specific restrictions on the number of groups of transmission interfaces. In one example, the 128-bit data bandwidth of the system bus (AXI4.0) is the same as the maximum bandwidth of the data transmission of the cryptographic core group. Considering the influence of factors such as chip power consumption and area, the number of cryptographic core groups can generally be selected as 16 or 32 groups. The data handling bandwidth of 32 groups of cryptographic core groups is usually much larger than the data bandwidth of the cryptographic core group processing algorithm. Therefore, the data processing method for a reconfigurable cryptographic computing array improved by the present invention can fully meet the bandwidth requirements of a reconfigurable cryptographic computing array.

[0109] In one embodiment of the present invention, the access interface includes a state access interface and a data access interface, wherein the state access interface is used to transmit the idle state, input full state and output full state of the corresponding cryptographic core group, and the data access interface is used to transmit the data to be processed and the processed data corresponding to the data to be processed. It can be understood that the transmission interface of the cryptographic core group includes a state transmission interface and a data transmission interface, wherein the state transmission interface is used to transmit the idle state, input full state and output full state of the corresponding cryptographic core group to the corresponding access interface, and the data transmission interface is used to transmit the data to be processed and the processed data corresponding to the data to be processed to the corresponding access interface.

[0110] In the present invention, the idle state indicates that the cryptographic computing core group is not currently executing a data processing task, the input full state indicates that the length of the data currently received by the cryptographic computing core group reaches the input length specified in the business request, and the output full state indicates that the length of the data output by the cryptographic computing core group currently executing the data processing task reaches the output length specified in the business request. Therefore, the computing state of each cryptographic computing core group in the reconfigurable cryptographic computing array can be detected in real time, including the working state (idle state and busy state), the input cache state (input is not full and input is full), the output cache state (output is not full and output is full), and moreover, whether the business data flow is abnormal, etc., the purpose is to provide a basis for business distribution, for example, if it is detected that a computing core group is in an idle state, a message that the cryptographic computing core group is in an idle state is sent through the state transmission interface of the computing core group, so as to return to the cryptographic computing core group the corresponding business request consistent with its business type, for another example, if it is detected that the cache data output by the cryptographic computing core group reaches the data length included in the business request, a message that the output full state of the cryptographic computing core group is sent through the state transmission interface of the computing core group, so that the processed data output by the cryptographic computing core group is sent to the storage space of the host end.

[0111] In one embodiment of the present invention, operation S140, after sending the data to be processed to the cryptographic core group in an idle state for data processing, includes: using the transmission interface corresponding to the cryptographic core group to send the processed data corresponding to the data to be processed to the host end.

[0112] See also Figure 4 , Figure 4 A schematic diagram of a process of caching at least one service request into at least one preset service request cache space provided by an embodiment of the present invention includes the following operations:

[0113] Operation S410 is to monitor in real time the working status of all cryptographic computing core groups in the reconfigurable cryptographic computing array, where the working status includes an idle state and a busy state.

[0114] Operation S420: when there is a cryptographic core group whose working state is idle, search for a transmission interface corresponding to the cryptographic core group.

[0115] Operation S430: receiving, through the access interface, a message from the transmission interface indicating that the cryptographic core group is in an idle state.

[0116] In the embodiment of the present invention, the working status of all cryptographic computing core groups in the reconfigurable cryptographic computing array is monitored in real time, and the working status includes an idle state and a busy state. When the working status of a cryptographic computing core group is in an idle state, the transmission interface corresponding to the cryptographic computing core group is found, and a message that the cryptographic computing core group is in an idle state sent by the transmission interface is received through the access interface. Each group of transmission interfaces works independently, and can perform status monitoring and status transmission in parallel in multiple channels, thereby improving data handling efficiency.

[0117] In one embodiment of the present invention, in operation S120, before searching for a service request that is consistent with a preset service type of the cryptographic core group, it includes: parsing the service request to obtain service information, the service information including service type, service source address, service source length, service destination address, and service destination length. In operation S130, obtaining the data to be processed indicated by the service request from the host end includes: obtaining the data to be processed indicated by the service request from the host end based on the service source address and the service source length. Operation S140, after sending the data to be processed to the cryptographic core group in an idle state for data processing, includes: sending the processed data corresponding to the data to be processed to the storage space corresponding to the service destination address and the service destination length.

[0118] See also Figure 5 , Figure 5 A data processing device for a reconfigurable cryptographic computing array provided in an embodiment of the present invention includes at least one group of cryptographic computing core groups, each of which is used to process data of a preset business type. The device 500 includes:

[0119] The service cache module 510 is used to cache at least one service request sent by the host in response to the at least one service request, where the service request includes a service type;

[0120] The service search module 520 is used to search for a service request consistent with a preset service type of the cryptographic computing group when there is a cryptographic computing group in an idle state;

[0121] The data acquisition module 530 is used to acquire the to-be-processed data indicated by the service request from the host end;

[0122] The data sending module 540 is used to send the data to be processed to the cryptographic core group in an idle state for data processing.

[0123] In an embodiment of the present invention, the service cache module 510 is specifically configured to cache at least one service request into at least one preset service request cache space, and each service request cache space caches one service request.

[0124] In one embodiment of the present invention, the device comprises:

[0125] A logic control module is used to take out the business request from the business request cache space corresponding to the business request, and mark the cache state of the business request cache space as an empty state, which cache state includes an empty state and a full state. The empty state indicates that the business request cache space has not cached the business request, and the full state indicates that the business request cache space has cached the business request.

[0126] In one embodiment of the present invention, caching at least one of the service requests into at least one preset service request cache space includes:

[0127] Obtain the business request cache space in which the cache state is empty and the number of business request cache spaces in which the cache state is empty;

[0128] When the number of the service request cache spaces in the empty cache state is not less than the number of at least one service request, cache at least one service request to the service request cache space in the empty cache state;

[0129] When the number of service request cache spaces in the empty cache state is less than the number of at least one service request, obtaining a first number of service requests, and caching the first number of service requests into the service request cache space in the empty cache state, the first number being the same as the number of service request cache spaces in the empty cache state;

[0130] The operation of obtaining the service request cache space whose cache state is empty and the number of service request cache spaces whose cache state is empty is performed again.

[0131] In one embodiment of the present invention, each of the cryptographic core groups has a set of transmission interfaces, and the transmission interfaces are used to transmit information related to the corresponding cryptographic core group;

[0132] The data processing device includes at least one group of access interfaces, the number of which is the same as that of at least one group of transmission interfaces. At least one group of access interfaces corresponds one-to-one to at least one group of transmission interfaces. The access interfaces are used to transmit information related to the relevant cryptographic core group.

[0133] In one embodiment of the present invention, the access interface includes a state access interface and a data access interface;

[0134] The status access interface is used to transmit the idle state, input full state and output full state of the corresponding cryptographic computing group. The idle state indicates that the cryptographic computing group is not currently performing a data processing task. The input full state indicates that the length of the data currently received by the cryptographic computing group reaches the input length specified in the business request. The output full state indicates that the length of the data output by the cryptographic computing group currently performing a data processing task reaches the output length specified in the business request.

[0135] The data access interface is used to transmit the data to be processed and the processed data corresponding to the data to be processed.

[0136] In one embodiment of the present invention, the device comprises:

[0137] A status monitoring module is used to monitor the working status of all cryptographic computing core groups in the reconfigurable cryptographic computing array in real time, and the working status includes an idle state and a busy state;

[0138] A search module, used for searching for a transmission interface corresponding to a cryptographic core group when the working state of the cryptographic core group is an idle state;

[0139] The sending module is used to receive the message that the cryptographic core group is in an idle state sent by the transmission interface through the access interface.

[0140] In one embodiment of the present invention, the device comprises:

[0141] A parsing module, used to parse the service request to obtain service information, the service information including service type, service source address, service source length, service destination address, and service destination length;

[0142] The data acquisition module 530 is used to acquire the to-be-processed data indicated by the service request from the host end based on the service source address and the service source length;

[0143] The device also includes:

[0144] The return module is used to send the processed data corresponding to the data to be processed to the storage space corresponding to the business destination address and the business destination length.

[0145] According to an embodiment of the present disclosure, for example, any multiple modules of the service cache module 510, the service search module 520, the data acquisition module 530, and the data sending module 540 can be combined in one module for implementation, or any one of the modules can be split into multiple modules. Alternatively, at least part of the functions of one or more of these modules can be combined with at least part of the functions of other modules and implemented in one module. According to an embodiment of the present disclosure, at least one of the service cache module 510, the service search module 520, the data acquisition module 530, and the data sending module 540 can be at least partially implemented as a hardware circuit, such as a field programmable gate array (FPGA), a programmable logic array (PLA), a system on a chip, a system on a substrate, a system on a package, an application specific integrated circuit (ASIC), or can be implemented by hardware or firmware such as any other reasonable way of integrating or packaging the circuit, or implemented in any one of the three implementation methods of software, hardware, and firmware, or in a suitable combination of any of them. Alternatively, at least one of the service cache module 510, the service search module 520, the data acquisition module 530, and the data sending module 540 may be at least partially implemented as a computer program module, and when the computer program module is executed, the corresponding function may be executed.

[0146] Figure 6 The block diagram of a data processing system according to an embodiment of the present disclosure is schematically shown. Figure 7 The flowchart of completing a service request according to an embodiment of the present disclosure is schematically shown.

[0147] like Figure 6 As shown, the data processing system includes a host end, a system bus connected to the host end, a data processing device for a reconfigurable cryptographic computing array, a transmission interface and the reconfigurable cryptographic computing array. The data processing device for the reconfigurable cryptographic computing array is deployed between the system bus and the reconfigurable cryptographic computing array. Each group of the cryptographic computing core groups has a group of transmission interfaces, and the transmission interface is used to transmit information related to the corresponding cryptographic computing core group. The data processing device includes at least one group of access interfaces with the same number as at least one group of the transmission interfaces, and at least one group of the access interfaces corresponds to at least one group of the transmission interfaces one by one, and the access interface is used to transmit information related to the relevant cryptographic computing core group.

[0148] Figure 8 A block diagram of an electronic device according to an embodiment of the present disclosure is schematically shown.

[0149] like Figure 8As shown, the electronic device 800 according to the embodiment of the present disclosure includes a reconfigurable processor 801, which includes a reconfigurable cryptographic calculation array, which can perform various appropriate actions and processes according to the program stored in the read-only memory (ROM) 802 or the program loaded from the storage part 808 to the random access memory (RAM) 803. The processor 801 is shown in the above embodiment. Figure 5 The data processing device 500 is connected to the bus, and the processor 801 may include, for example, a general-purpose microprocessor (e.g., a CPU), an instruction set processor and / or a related chipset and / or a special-purpose microprocessor (e.g., an application-specific integrated circuit (ASIC)), etc. The processor 801 may also include an onboard memory for cache purposes. The processor 801 may include a single processing unit or multiple processing units for executing different actions of the method flow according to the embodiment of the present disclosure.

[0150] In RAM 803, various programs and data required for the operation of electronic device 800 are stored. Processor 801, ROM 802 and RAM 803 are connected to each other via bus 804. Processor 801 performs various operations of the method flow according to the embodiment of the present disclosure by executing the program in ROM 802 and / or RAM 803. It should be noted that the program can also be stored in one or more memories other than ROM 802 and RAM 803. Processor 801 can also perform various operations of the method flow according to the embodiment of the present disclosure by executing the program stored in the one or more memories.

[0151] According to an embodiment of the present disclosure, the electronic device 800 may further include an input / output (I / O) interface 805, which is also connected to the bus 804. The electronic device 800 may further include one or more of the following components connected to the I / O interface 805: an input portion 806 including a keyboard, a mouse, etc.; an output portion 807 including a cathode ray tube (CRT), a liquid crystal display (LCD), etc., and a speaker, etc.; a storage portion 808 including a hard disk, etc.; and a communication portion 809 including a network interface card such as a LAN card, a modem, etc. The communication portion 809 performs communication processing via a network such as the Internet. A drive 810 is also connected to the I / O interface 805 as needed. A removable medium 811, such as a magnetic disk, an optical disk, a magneto-optical disk, a semiconductor memory, etc., is installed on the drive 810 as needed, so that a computer program read therefrom is installed into the storage portion 808 as needed.

[0152] The present disclosure also provides a computer-readable storage medium, which may be included in the device / apparatus / system described in the above embodiments; or may exist independently without being assembled into the device / apparatus / system. The above computer-readable storage medium carries one or more programs, and when the above one or more programs are executed, the method according to the embodiment of the present disclosure is implemented.

[0153] According to an embodiment of the present disclosure, the computer-readable storage medium may be a non-volatile computer-readable storage medium, for example, may include but is not limited to: a portable computer disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), a portable compact disk read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination thereof. In the present disclosure, a computer-readable storage medium may be any tangible medium containing or storing a program, which may be used by or in combination with an instruction execution system, an apparatus or a device. For example, according to an embodiment of the present disclosure, a computer-readable storage medium may include the ROM 802 and / or RAM 803 described above and / or one or more memories other than ROM 802 and RAM 803.

[0154] The embodiment of the present disclosure also includes a computer program product, which includes a computer program, and the computer program contains program code for executing the method shown in the flowchart. When the computer program product is run in a computer system, the program code is used to enable the computer system to implement the item recommendation method provided by the embodiment of the present disclosure.

[0155] The above functions defined in the system / device of the embodiment of the present disclosure are executed when the computer program is executed by the processor 801. According to the embodiment of the present disclosure, the system, device, module, unit, etc. described above can be implemented by a computer program module.

[0156] In one embodiment, the computer program may rely on tangible storage media such as optical storage devices, magnetic storage devices, etc. In another embodiment, the computer program may also be transmitted and distributed in the form of signals on a network medium, and downloaded and installed through the communication part 809, and / or installed from a removable medium 811. The program code contained in the computer program may be transmitted using any appropriate network medium, including but not limited to: wireless, wired, etc., or any suitable combination of the above.

[0157] In such an embodiment, the computer program can be downloaded and installed from the network through the communication part 809, and / or installed from the removable medium 811. When the computer program is executed by the processor 801, the above functions defined in the system of the embodiment of the present disclosure are performed. According to the embodiment of the present disclosure, the system, device, means, module, unit, etc. described above can be implemented by a computer program module.

[0158] According to an embodiment of the present disclosure, the program code for executing the computer program provided by the embodiment of the present disclosure can be written in any combination of one or more programming languages. Specifically, these computing programs can be implemented using high-level process and / or object-oriented programming languages, and / or assembly / machine languages. Programming languages ​​include, but are not limited to, Java, C++, python, "C" language or similar programming languages. The program code can be executed entirely on the user computing device, partially on the user device, partially on the remote computing device, or entirely on the remote computing device or server. In the case of a remote computing device, the remote computing device can be connected to the user computing device through any type of network, including a local area network (LAN) or a wide area network (WAN), or can be connected to an external computing device (for example, using an Internet service provider to connect through the Internet).

[0159] The flow charts and block diagrams in the accompanying drawings illustrate the possible architecture, functions and operations of the systems, methods and computer program products according to various embodiments of the present disclosure. In this regard, each box in the flow chart or block diagram can represent a module, a program segment, or a part of a code, and the above-mentioned module, program segment, or a part of a code contains one or more executable instructions for realizing the specified logical function. It should also be noted that in some alternative implementations, the functions marked in the box can also occur in a different order from the order marked in the accompanying drawings. For example, two boxes represented in succession can actually be executed substantially in parallel, and they can sometimes be executed in the opposite order, depending on the functions involved. It should also be noted that each box in the block diagram or flow chart, and the combination of the boxes in the block diagram or flow chart can be implemented with a dedicated hardware-based system that performs a specified function or operation, or can be implemented with a combination of dedicated hardware and computer instructions.

[0160] It will be appreciated by those skilled in the art that the features described in the various embodiments and / or claims of the present disclosure may be combined and / or combined in a variety of ways, even if such combinations and / or combinations are not explicitly described in the present disclosure. In particular, the features described in the various embodiments and / or claims of the present disclosure may be combined and / or combined in a variety of ways without departing from the spirit and teachings of the present disclosure. All of these combinations and / or combinations fall within the scope of the present disclosure.

[0161] The embodiments of the present disclosure are described above. However, these embodiments are only for illustrative purposes and are not intended to limit the scope of the present disclosure. Although the embodiments are described above separately, this does not mean that the measures in the various embodiments cannot be used in combination to advantage. The scope of the present disclosure is defined by the attached claims and their equivalents. Without departing from the scope of the present disclosure, those skilled in the art may make a variety of substitutions and modifications, which should all fall within the scope of the present disclosure.

Claims

1. A data processing method for a reconfigurable cryptographic computing array, characterized in that: The reconfigurable cryptographic computing array includes at least one group of cryptographic computing cores, each group of the cryptographic computing cores is used to process data of a preset business type, and the method includes: In response to at least one service request sent by the host end, cache at least one service request, wherein the service request includes a service type; In the case where there is a cryptographic core group in an idle state, searching for a service request consistent with a preset service type of the cryptographic core group; Obtaining the to-be-processed data indicated by the service request from the host end; Sending the data to be processed to the cryptographic core group in an idle state for data processing; Wherein, each group of the cryptographic core groups has a group of transmission interfaces, and the transmission interfaces are used to transmit information related to the corresponding cryptographic core group. The method further includes: Constructing at least one group of access interfaces having the same number as the transmission interfaces, wherein at least one group of access interfaces corresponds one-to-one to at least one group of transmission interfaces; Information related to the cryptographic core group associated with the access interface is transmitted through a preset access interface.

2. The data processing method according to claim 1, characterized in that: The caching of at least one of the service requests comprises: At least one of the service requests is cached in at least one preset service request cache space, and each of the service request cache spaces caches one of the service requests.

3. The data processing method according to claim 2, characterized in that: After searching for a service request that is consistent with a preset service type of the cryptographic core group, the method includes: Retrieving the service request from the service request cache space corresponding to the service request; The cache state of the service request cache space is marked as an empty state, wherein the cache state includes an empty state and a full state, wherein the empty state indicates that the service request cache space has not cached a service request, and the full state indicates that the service request cache space has cached a service request.

4. The data processing method according to claim 3, characterized in that: The caching at least one of the service requests into at least one preset service request cache space comprises: Acquire the service request cache space in the empty cache state and the number of service request cache spaces in the empty cache state; When the number of the service request cache spaces in the empty cache state is not less than the number of at least one service request, cache at least one service request to the service request cache space in the empty cache state; When the number of service request cache spaces in the empty cache state is less than the number of at least one service request, obtaining a first number of service requests, and caching the first number of service requests into the service request cache space in the empty cache state, the first number being the same as the number of service request cache spaces in the empty cache state; The operation of obtaining the service request cache space whose cache state is empty and the number of the service request cache spaces whose cache state is empty is performed again.

5. The data processing method according to claim 1, characterized in that: The access interface includes a state access interface and a data access interface; The state access interface is used to transmit the idle state, input full state and output full state of the corresponding cryptographic core group, the idle state indicates that the cryptographic core group is not currently performing a data processing task, the input full state indicates that the length of the data currently received by the cryptographic core group reaches the input length specified in the business request, and the output full state indicates that the length of the data output by the cryptographic core group currently performing the data processing task reaches the output length specified in the business request; The data access interface is used to transmit the data to be processed and the processed data corresponding to the data to be processed.

6. The data processing method according to claim 1, characterized in that: The method comprises: Real-time monitoring of the working status of all cryptographic computing core groups in the reconfigurable cryptographic computing array, wherein the working status includes an idle state and a busy state; When there is a cryptographic core group whose working state is idle, searching for a transmission interface and an access interface corresponding to the cryptographic core group; A message indicating that the cryptographic core group is in an idle state and sent by the transmission interface is received through the access interface.

7. The data processing method according to claim 1, characterized in that: Before searching for a service request that is consistent with a preset service type of the cryptographic core group, the method includes: Parsing the service request to obtain service information, wherein the service information includes service type, service source address, service source length, service destination address, and service destination length; The acquiring the to-be-processed data indicated by the service request from the host side includes: Based on the service source address and the service source length, obtaining the to-be-processed data indicated by the service request from the host end; After sending the data to be processed to the cryptographic core group in an idle state for data processing, the method includes: The processed data corresponding to the data to be processed is sent to the storage space corresponding to the business destination address and the business destination length.

8. A data processing device for a reconfigurable cryptographic computing array, characterized in that: The reconfigurable cryptographic computing array includes at least one group of cryptographic computing cores, each group of the cryptographic computing cores is used to process data of a preset business type, and the device includes: A service cache module, configured to cache at least one service request in response to at least one service request sent by the host end, wherein the service request includes a service type; A service search module, used for searching for a service request consistent with a preset service type of the cryptographic core group when a cryptographic core group is in an idle state; A data acquisition module, used for acquiring the to-be-processed data indicated by the service request from the host end; A data sending module, used for sending the data to be processed to the cryptographic core group in an idle state for data processing; Each of the cryptographic core groups has a set of transmission interfaces, and the transmission interfaces are used to transmit information related to the corresponding cryptographic core group; The data processing device includes at least one group of access interfaces, the number of which is the same as that of at least one group of transmission interfaces, and at least one group of access interfaces corresponds one-to-one to at least one group of transmission interfaces. The access interfaces are used to transmit information related to the relevant cryptographic core group.

9. A data processing system, characterized in that: include: A host end, a system bus connected to the host end, a data processing device for a reconfigurable cryptographic computing array as claimed in claim 8, a transmission interface and the reconfigurable cryptographic computing array; The data processing device for the reconfigurable cryptographic computing array is disposed between the system bus and the reconfigurable cryptographic computing array.

10. A computer-readable storage medium having executable instructions stored thereon, which, when executed by a processor, causes the processor to execute the method according to any one of claims 1 to 7.

11. A computer program product, comprising a computer program, wherein when the computer program is executed by a processor, the method according to any one of claims 1 to 7 is implemented.

Citation Information

Patent Citations

  • Method and system for task allocation of reconfigurable processing system

    CN108363615A