CN115033904A - Data processing method, apparatus, system, medium, and product - Google Patents
Data processing method, apparatus, system, medium, and product Download PDFInfo
- Publication number
- CN115033904A CN115033904A CN202210683607.9A CN202210683607A CN115033904A CN 115033904 A CN115033904 A CN 115033904A CN 202210683607 A CN202210683607 A CN 202210683607A CN 115033904 A CN115033904 A CN 115033904A
- Authority
- CN
- China
- Prior art keywords
- service request
- service
- cryptographic
- data
- state
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/36—Handling requests for interconnection or transfer for access to common bus or bus system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7867—Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
- G06F15/7871—Reconfiguration support, e.g. configuration loading, configuration switching, or hardware OS
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Storage Device Security (AREA)
Abstract
The invention provides a data processing method for a reconfigurable cryptographic calculation array, which is applied to the technical field of computers and comprises the following steps: responding to at least one service request sent by a host end, caching the at least one service request, wherein the service request comprises a service type, searching the service request consistent with a preset service type of a cryptographic core group under the condition that the cryptographic core group is in an idle state, acquiring data to be processed indicated by the service request from the host end, and sending the data to be processed to the cryptographic core group in the idle state for data processing. The invention also provides a data processing device, a system, a medium and a program product for the reconfigurable password computing array, DMA (direct memory access) is not required to be called to carry data, the data carrying efficiency of the reconfigurable password computing array is improved, on-chip CPU participation is hardly required, and on-chip CPU resources are released.
Description
Technical Field
The present invention relates to the field of computer technologies, and in particular, to a data processing method, apparatus, system, medium, and product for a reconfigurable cryptographic computational array.
Background
The reconfigurable cipher computing array is a software defined chip hardware architecture developed by using coarse-grained reconfigurable computing technology, and is a new form between a field programmable gate array and an application specific integrated circuit. The array structure has excellent energy efficiency ratio and is widely applied to the fields of password security, artificial intelligence, communication and the like. The reconfigurable cryptographic calculation array has the characteristics of large scale, high bandwidth, high speed and the like, and generally has uniform interfaces and operation flows, so that the reconfigurable cryptographic calculation array has high requirements on data bandwidth in practical application. At present, the schemes for solving the high bandwidth requirement of the reconfigurable cryptographic calculation array are various, and the following two schemes are commonly used: 1) a high-performance CPU calls a Direct Memory Access (DMA) module; 2) and directly communicating with the reconfigurable cryptographic calculation array through a high-speed interface.
Both of these approaches have some design drawbacks in the application of reconfigurable cryptographic computational arrays: firstly, a CPU is required to configure a path accessed by a plurality of paths of direct memory and return a plurality of interrupt sources, the hardware design structure is simple, but the load of the CPU is too heavy to process other services; secondly, the reconfigurable password computing array is directly accessed by the host end through a high-speed interface, or the host end directly accesses the reconfigurable password computing array through the high-speed interface, the interface conversion module is complex in design, the reconfigurable password computing array is required to be matched with corresponding service scheduling, and data congestion can be caused by service processing delay of the reconfigurable password computing array.
Disclosure of Invention
It is a primary object of the present invention to provide a data processing method, apparatus, system, medium, and program product for a reconfigurable cryptographic calculation array, which can perform data processing with a reconfigurable cryptographic calculation array in a highly energy-efficient manner.
In order to achieve the above object, a first aspect of embodiments of the present invention provides a data processing method for a reconfigurable cryptographic calculation array, including:
the reconfigurable cipher computing array comprises at least one group of cipher computing core groups, and each group of cipher computing core groups is used for processing data of a preset service type, and the method comprises the following steps:
responding at least one service request sent by a host terminal, caching the at least one service request, wherein the service request comprises a service type;
under the condition that the cryptographic computation group is in an idle state, searching a service request consistent with a preset service type of the cryptographic computation group;
acquiring the data to be processed indicated by the service request from the host side;
and sending the data to be processed to the cryptographic kernel group in an idle state for data processing.
In an embodiment of the present invention, the caching at least one service request includes:
and caching at least one service request to at least one preset service request caching space, wherein each service request caching space caches one service request.
In an embodiment of the present invention, after the searching for the service request that is consistent with the preset service type of the cryptographic kernel group, the method includes:
taking out the service request from a service request cache space corresponding to the service request;
and marking the cache state of the service request cache space as an empty state, wherein the cache state comprises an empty state and a full state, the empty state indicates that the service request cache space does not cache the service request, and the full state indicates that the service request cache space caches the service request.
In an embodiment of the present invention, the caching at least one service request into at least one preset service request caching space includes:
acquiring the number of the service request cache spaces with the cache state being an empty state and the number of the service request cache spaces with the cache state being an empty state;
under the condition that the number of the service request cache spaces with the cache state being an empty state is not less than the number of at least one service request, caching at least one service request into the service request cache spaces with the cache state being an empty state;
under the condition that the number of the service request cache spaces with the cache state being an empty state is smaller than the number of at least one service request, obtaining a first number of service requests, and caching the first number of service requests to the service request cache spaces with the cache state being an empty state, wherein the first number is the same as the number of the service request cache spaces with the cache state being an empty state;
and executing the operation of obtaining the number of the service request cache space with the cache state being an empty state and the number of the service request cache space with the cache state being an empty state again.
In an embodiment of the present invention, each of the cryptographic core groups has a group of transmission interfaces, and the transmission interfaces are used for transmitting information related to the corresponding cryptographic core group;
the method further comprises the following steps:
constructing at least one group of access interfaces with the same number as the transmission interfaces, wherein the at least one group of access interfaces corresponds to the at least one group of transmission interfaces one to one;
and transmitting information related to a cryptographic core group related to the access interface through a preset access interface.
In an embodiment of the present invention, the transmission interface includes a status transmission interface and a data transmission interface;
the state transmission interface is used for transmitting an idle state, an input full state and an output full state of the corresponding cryptographic core group, wherein the idle state indicates that the cryptographic core group does not execute the data processing task currently, the input full state indicates that the length of data currently received by the cryptographic core group reaches the input length specified in the service request, and the output full state indicates that the length of data output by the cryptographic core group to execute the data processing task currently reaches the output length specified in the service request;
the data transmission interface is used for transmitting data to be processed and processed data corresponding to the data to be processed.
In an embodiment of the present invention, the method includes:
monitoring the working states of all the password computation core groups in the reconfigurable password computation array in real time, wherein the working states comprise an idle state and a busy state;
searching a transmission interface corresponding to the password computation core group under the condition that the working state of the password computation core group is an idle state;
and receiving the message, which is sent by the transmission interface and in an idle state, of the cryptographic computation core group through the access interface.
In an embodiment of the present invention, before searching for a service request that is consistent with a preset service type of the cryptographic kernel group, the method includes:
analyzing the service request to obtain service information, wherein the service information comprises a service type, a service source address, a service source length, a service destination address and a service destination length;
the obtaining the to-be-processed data indicated by the service request from the host side includes:
acquiring the data to be processed indicated by the service request from the host side based on the service source address and the service source length;
after the data to be processed is sent to the cryptographic kernel group in an idle state for data processing, the method includes:
and sending the processed data corresponding to the data to be processed to a storage space corresponding to the service destination address and the service destination length.
A second aspect of the embodiments of the present invention provides a data processing apparatus for a reconfigurable cryptographic computation array, where the reconfigurable cryptographic computation array includes at least one cryptographic core group, and each cryptographic core group is configured to process data of a preset service type, and the apparatus includes:
the service caching module is used for responding to at least one service request sent by the host terminal and caching the at least one service request, wherein the service request comprises a service type;
the service searching module is used for searching a service request consistent with the preset service type of the cryptographic computation core group under the condition that the cryptographic computation core group is in an idle state;
a data obtaining module, configured to obtain, from the host, to-be-processed data indicated by the service request;
and the data sending module is used for sending the data to be processed to the cryptographic computation core group in an idle state for data processing.
In an embodiment of the present invention, the service caching module is specifically configured to cache at least one service request to at least one preset service request caching space, where each service request caching space caches one service request.
In one embodiment of the present invention, the apparatus includes:
and the logic control module is used for taking out the service request from a service request cache space corresponding to the service request, and marking the cache state of the service request cache space as an empty state, wherein the cache state comprises an empty state and a full state, the empty state indicates that the service request cache space does not cache the service request, and the full state indicates that the service request cache space caches the service request.
In an embodiment of the present invention, the caching at least one service request into at least one preset service request caching space includes:
acquiring the number of the service request cache spaces with the cache state being an empty state and the number of the service request cache spaces with the cache state being an empty state;
under the condition that the number of the service request cache spaces with the cache state being an empty state is not less than the number of at least one service request, caching at least one service request into the service request cache spaces with the cache state being an empty state;
under the condition that the number of the service request cache spaces with the cache state being an empty state is smaller than the number of at least one service request, obtaining a first number of service requests, and caching the first number of service requests to the service request cache spaces with the cache state being an empty state, wherein the first number is the same as the number of the service request cache spaces with the cache state being an empty state;
and executing the operation of obtaining the number of the service request cache space with the cache state being an empty state and the number of the service request cache space with the cache state being an empty state again.
In an embodiment of the present invention, each cryptographic core group has a group of transmission interfaces, and the transmission interfaces are used for transmitting information related to the corresponding cryptographic core group;
the data processing device comprises at least one group of access interfaces with the same number as at least one group of transmission interfaces, at least one group of access interfaces corresponds to at least one group of transmission interfaces one to one, and the access interfaces are used for transmitting information related to related cryptographic core groups.
In an embodiment of the present invention, the access interface includes a status access interface and a data access interface;
the state access interface is used for transmitting an idle state, an input full state and an output full state of the corresponding cryptographic core group, wherein the idle state indicates that the cryptographic core group does not execute the data processing task currently, the input full state indicates that the length of data currently received by the cryptographic core group reaches the input length specified in the service request, and the output full state indicates that the length of data output by the cryptographic core group to execute the data processing task currently reaches the output length specified in the service request;
the data access interface is used for transmitting data to be processed and processed data corresponding to the data to be processed.
In one embodiment of the present invention, the apparatus includes:
the state monitoring module is used for monitoring the working states of all the cryptographic core groups in the reconfigurable cryptographic calculation array in real time, wherein the working states comprise an idle state and a busy state;
the searching module is used for searching a transmission interface corresponding to the cryptographic core group under the condition that the working state of the cryptographic core group is an idle state;
and the sending module is used for receiving the message, which is sent by the transmission interface and in the idle state, of the cryptographic computation core group through the access interface.
In one embodiment of the present invention, the apparatus includes:
the analysis module is used for analyzing the service request to obtain service information, wherein the service information comprises a service type, a service source address, a service source length, a service destination address and a service destination length;
the data acquisition module is used for acquiring the data to be processed indicated by the service request from the host terminal based on the service source address and the service source length;
the device further comprises:
and the return module is used for 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.
A third aspect of the present disclosure provides a data processing system comprising: a host end, a system bus connected with the host end, the data processing device for the reconfigurable cryptographic calculation array, the transmission interface and the reconfigurable cryptographic calculation array according to the second aspect;
the data processing device for the reconfigurable computing array is arranged between the system bus and the reconfigurable computing array.
A fourth aspect of the present disclosure also provides a computer-readable storage medium having stored thereon executable instructions that, when executed by a processor, cause the processor to perform the above-described data processing method for a reconfigurable cryptographic computational array.
A fifth aspect of the present disclosure also provides a computer program product comprising a computer program which, when executed by a processor, implements the above-described data processing method for a reconfigurable cryptographic computational array.
According to an embodiment of the present invention, a data processing method, an apparatus, a system, a medium, and a program product for a reconfigurable cryptographic computation array are provided, where the reconfigurable cryptographic computation array includes at least one cryptographic core group, and each cryptographic core group is configured to process data of a preset service type, and the method includes: responding to at least one service request sent by a host end, caching the at least one service request, wherein the service request comprises a service type, searching the service request consistent with a preset service type of a cryptographic core group under the condition that the cryptographic core group is in an idle state, acquiring data to be processed indicated by the service request from the host end, and sending the data to be processed to the cryptographic core group in the idle state for data processing. DMA (direct memory access) is not required to be called for carrying data, the data carrying efficiency of the reconfigurable password computing array is improved, an on-chip CPU is hardly required to participate, and on-chip CPU resources are released.
Drawings
In order to more clearly illustrate the embodiments of the present invention or the technical solutions in the prior art, the drawings used in the description of the embodiments or the prior art will be briefly described below, it is obvious that the drawings in the following description are only some embodiments of the present invention, and for those skilled in the art, other drawings can be obtained according to the drawings without creative efforts.
FIG. 1 is a flowchart illustrating a data processing method for a reconfigurable cryptographic computing array according to an embodiment of the present invention;
fig. 2 is a schematic flow chart illustrating a process of caching at least one service request into at least one preset service request caching space according to an embodiment of the present invention;
FIG. 3 is a flow chart illustrating a data processing method for a reconfigurable cryptographic computational array according to an embodiment of the present invention;
fig. 4 is a schematic flow chart illustrating a process of caching at least one service request into at least one preset service request caching space according to an embodiment of the present invention;
FIG. 5 is a block diagram of a data processing apparatus for a reconfigurable cryptographic computational array according to an embodiment of the present invention;
FIG. 6 schematically shows a block diagram of a data processing system according to an embodiment of the present disclosure;
FIG. 7 is a schematic flow chart diagram illustrating the completion of a service request according to an embodiment of the present disclosure;
fig. 8 shows a hardware structure diagram of an electronic device.
Detailed Description
In order to make the objects, features and advantages of the present invention more obvious and understandable, the technical solutions in the embodiments of the present invention will be clearly and completely described below with reference to the accompanying drawings in the embodiments of the present invention, and it is apparent that the described embodiments are only a part of the embodiments of the present invention, and not all of the embodiments. All other embodiments, which can be derived by a person skilled in the art from the embodiments given herein without making any creative effort, shall fall within the protection scope of the present invention.
The invention provides a data processing method for a reconfigurable cipher calculation array, wherein the reconfigurable cipher calculation array comprises at least one cipher calculation core group, and each cipher calculation core group is used for processing data of a preset service type, and the method comprises the following steps: responding to at least one service request sent by a host end, caching the at least one service request, wherein the service request comprises a service type, searching the service request consistent with a preset service type of a cryptographic core group under the condition that the cryptographic core group is in an idle state, acquiring data to be processed indicated by the service request from the host end, and sending the data to be processed to the cryptographic core group in the idle state for data processing. DMA (direct memory access) is not required to be called for carrying data, the data carrying efficiency of the reconfigurable password computing array is improved, an on-chip CPU is hardly required to participate, and on-chip CPU resources are released.
Some embodiments of the invention are described in detail below with reference to the accompanying drawings. The embodiments and features of the embodiments described below can be combined with each other without conflict between the embodiments.
Referring to fig. 1, fig. 1 is a schematic flow chart of a data processing method for a reconfigurable cryptographic calculation array according to an embodiment of the present invention, where the reconfigurable cryptographic calculation array includes at least one cryptographic core group, and each cryptographic core group is used to process data of a preset service type, the method includes the following operations:
operation S110 is to respond to at least one service request sent by the host, and cache at least one service request, where the service request includes a service type.
In operation S120, in the case that there is a cryptographic operation core group in an idle state, a service request consistent with a preset service type of the cryptographic operation core group is searched.
In operation S130, the to-be-processed data indicated by the service request is obtained from the host.
In operation S140, the data to be processed is sent to the cryptographic core group in an idle state for data processing.
In the present invention, the reconfigurable cipher computing array is a coarse-grained reconfigurable cipher multi-core architecture, and the structure thereof is arranged according to the array, each row may be used as a group of cipher computing core groups capable of independently implementing an encryption/decryption algorithm, or a plurality of rows may be used as a group of cipher computing core groups capable of independently implementing an encryption/decryption algorithm, which is not limited in the present invention.
In the present invention, each group of cryptographic core groups is used for processing data of a preset service type, and the service type may be different encryption/decryption algorithms, for example, algorithms such as AES, SM4, SM3, and the like, and for example, encryption/decryption algorithms including ECB, CBC, and the like modes of the block algorithm. It can be understood that the specific service type of each cryptographic core group may be configured in advance, and the specific service type of each cryptographic core group may be the same or different.
In the invention, the service request, the data to be processed and the processed data can be transmitted through a system bus (AIX bus), wherein the system bus interface comprises a slave interface and a master interface, the slave interface transmits the service request of the host end, and the master interface is used for accessing the storage space of the host end to transmit the data to be processed and the processed data.
In the present invention, in operation S110, the service request sent by the host includes who (service type, which indicates which cryptographic core group is selected for data processing), where to go (service source address, service source length), where to go (service destination address, service destination length), and derived questions (service identifier, service response, key address length), etc.
In the present invention, in operation S120, the cryptographic core group being in the idle state means that no data processing task is performed. And searching a service request consistent with the preset service type of the encryption core group, for example, if the encryption core group in the idle state is the encryption core group with the service type of the AES-ECB encryption algorithm, searching the service request with the service type of the AES-ECB encryption algorithm.
In the present invention, in operation S130, the to-be-processed data indicated by the service request is obtained from the host, 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 through the system bus.
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 service destination address and the service destination length, and optionally, a service request return packet may also be returned to the host end to indicate that the service request is completed.
According to the embodiment of the invention, at least one service request is cached in response to the at least one service request sent by a host, the service request contains a service type, under the condition that a cryptographic core group is in an idle state, the service request consistent with the preset service type of the cryptographic core group is searched, the data to be processed indicated by the service request is obtained from the host, the data to be processed is sent to the cryptographic core group in the idle state for data processing, DMA (direct memory access) is not required for carrying out data, the data carrying efficiency of the reconfigurable cryptographic computing array is improved, on-chip CPU (central processing unit) participation is hardly required, and on-chip CPU resources are released.
In an embodiment of the present invention, the step S110 of caching at least one service request includes: and caching at least one service request to at least one preset service request caching space, wherein each service request caching space caches one service request. The problem of data congestion of multi-path data flow is solved, and the data scheduling speed is improved.
In an embodiment of the present invention, after the operation S120, the method further includes: and taking out the service request from a service request cache space corresponding to the service request, and marking the cache state of the service request cache space as an empty state, wherein the cache state comprises an empty state and a full state, the empty state indicates that the service request cache space does not cache the service request, and the full state indicates that the service request cache space caches the service request. According to the embodiment of the invention, the service request cache space state is marked, so that the service request cache space state can be obtained in real time, and whether the service request cache space and which service request cache space can be written in can be determined, and the service request cache space can be efficiently utilized in real time.
Referring to fig. 2, fig. 2 is a schematic flow chart illustrating a process of caching at least one service request into at least one predetermined service request caching space according to an embodiment of the present invention, which includes the following operations:
in operation S210, the number of the service request buffer space in which the buffer status is empty and the number of the service request buffer spaces in which the buffer status is empty are obtained.
In operation S220, when the number of the service request buffer spaces in the buffer status is not less than the number of at least one service request, at least one service request is buffered to the service request buffer space in the buffer status.
In operation S230, when the number of the service request cache spaces in the cache state is less than the number of at least one service request, a first number of service requests are obtained, and the first number of service requests are cached to the service request cache spaces in the cache state, where the first number is the same as the number of the service request cache spaces in the cache state.
Operation S210 is performed again.
In an example of the present invention, taking 30 service request buffer spaces and 15 service requests as an example, assuming that the number of the service request buffer spaces whose buffer status is empty is 20, the number of service request buffer spaces whose buffer status is empty is 20 or more than 15, then 15 service requests are buffered into any 15 of the 20 service request buffer spaces with empty buffer status, and it is assumed that the number of the service request buffer spaces with empty buffer status is 10, in case that the number of service request buffer spaces 10 whose buffer status is empty is smaller than the number of 15 service requests, the 10 service requests are buffered to any of the 10 service request buffer spaces whose buffer states are empty, and after the cache is finished, obtaining the number of the service request cache space with the cache state being an empty state and the number of the service request cache space with the cache state being an empty state again.
According to the embodiment of the invention, the service processing progress state is acquired in real time, so that the time for writing the service cache request space and the service quantity are determined, and the service cache space can be efficiently utilized in real time.
Referring to fig. 3, fig. 3 is a schematic flowchart of a data processing method for a reconfigurable cryptographic calculation array according to an embodiment of the present invention, where each cryptographic calculation core group has a set of transmission interfaces for transmitting information related to the corresponding cryptographic calculation core group, and the method includes the following operations:
operation S310 is performed to construct at least one group of access interfaces with the same number as the transmission interfaces, where at least one group of access interfaces corresponds to at least one group of transmission interfaces one to one.
In operation S320, information related to a cryptographic core group associated with a preset access interface is transmitted through the access interface.
In an embodiment of the present invention, the related information may be a computation state of the cryptographic core group, including a working state, an input buffer state, an output buffer state, data input into the cryptographic core group, data output by the cryptographic core group, whether a service data stream is abnormal, and the like. According to the embodiment of the invention, each group of the computing group corresponds to one group of interfaces (a transmission interface and an access interface) and one service request buffer space, so that the problem of data congestion of multiple paths of data streams can be solved.
In the present invention, each cryptographic core group corresponds to a group of transmission interfaces and a group of access interfaces, for example, if there are 30 cryptographic core groups, there are 30 transmission interfaces and 30 access interfaces, and a group of cryptographic core group corresponds to a group of transmission interfaces and a group of access interfaces, each transmission interface and each access interface work independently and can be processed in parallel. The number of the groups of the transmission interfaces and the access interfaces can be 16-32 groups, and can be any number, and the number of the groups of the transmission interfaces is not particularly limited in the disclosure. In an example, the maximum bandwidth of the system bus (AXI4.0)128bit data bandwidth is the same as the maximum bandwidth of the data transmission of the cryptographic computation core groups, the influence of factors such as chip power consumption and area is considered, the number of the cryptographic computation core groups can generally select the scale of 16 groups or 32 groups, and the data handling bandwidth of the 32 cryptographic computation core groups is generally configured to be far larger than the data bandwidth of the cryptographic computation core group processing algorithm, so that the data processing method for the reconfigurable cryptographic computation array, which is provided by the invention, can completely meet the bandwidth requirement of the reconfigurable cryptographic computation array.
In an embodiment of the present invention, the access interface includes a state access interface and a data access interface, the state access interface is configured to transmit an idle state, an input full state, and an output full state of a corresponding cryptographic core group, and the data access interface is configured to transmit data to be processed and processed data corresponding to the data to be processed. Understandably, the transmission interface of the cryptographic core group comprises a state transmission interface and a data transmission interface, the state transmission interface is used for transmitting the idle state, the input full state and the output full state of the corresponding cryptographic core group to the corresponding access interface, and the data transmission interface is used for transmitting the data to be processed and the processed data corresponding to the data to be processed to the corresponding access interface.
In the invention, the idle state indicates that the cryptographic core group does not execute the data processing task currently, 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 service request, and the output full state indicates that the length of the data output by the cryptographic core group to execute the data processing task currently reaches the output length specified in the service request. Therefore, the computing state of each cryptographic core group in the reconfigurable cryptographic computing array can be detected in real time, including working state (idle state and busy state), input buffer state (input is not full and input is full), output buffer state (output is not full and output is full), and whether the service data flow is abnormal or not can be detected, so as to provide basis for service distribution, for example, detecting that one computing core group is in an idle state, a message that the cryptographic kernel group is in an idle state is sent through a state transfer interface of the kernel group, for returning to the corresponding service request of the cryptographic core group consistent with the service type, for example, the cache data output by the cryptographic core group is detected to reach the data length contained in the service request, a message to encrypt the out-of-order full state of the compute group is sent through the state transfer interface of the compute group, so that the processed data output by the cryptographic kernel group is sent to the storage space at the host end.
In an embodiment of the present invention, after the operation S140 sends the data to be processed to the cryptographic core group in the idle state for data processing, the method includes: and sending the processed data corresponding to the data to be processed to the host end by using the transmission interface corresponding to the cryptographic kernel group.
Referring to fig. 4, fig. 4 is a schematic flowchart illustrating a process of caching at least one service request into at least one preset service request caching space according to an embodiment of the present invention, including the following operations:
in operation S410, the working states of all the cryptographic core groups in the reconfigurable cryptographic calculation array are monitored in real time, where the working states include an idle state and a busy state.
In operation S420, if the working state of the cryptographic core group is an idle state, the transmission interface corresponding to the cryptographic core group is searched.
Operation S430, receiving, through the access interface, a message that the cryptographic core group is in an idle state, where the message is sent by the transmission interface.
In the embodiment of the invention, the working states of all the cryptographic core groups in the reconfigurable cryptographic computing array are monitored in real time, the working states comprise an idle state and a busy state, under the condition that the working state of the cryptographic core group is the idle state, the transmission interface corresponding to the cryptographic core group is searched, and the message that the cryptographic core group is in the idle state and is sent by the transmission interface is received through the access interface. Each group of transmission interfaces works independently, and multi-path parallel state monitoring and state transmission can be performed, so that the data carrying efficiency is improved.
In an embodiment of the present invention, before searching for a service request that is consistent with a preset service type of the cryptographic core group in operation S120, the method includes: and analyzing the service request to obtain service information, wherein the service information comprises a service type, a service source address, a service source length, a service destination address and a service destination length. In operation S130, the obtaining the to-be-processed data indicated by the service request from the host includes: and acquiring the data to be processed indicated by the service request from the host side 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 the idle state for data processing, includes: and 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.
Referring to fig. 5, fig. 5 is a data processing apparatus for a reconfigurable cryptographic calculation array according to an embodiment of the present invention, where the reconfigurable cryptographic calculation array includes at least one cryptographic core group, and each cryptographic core group is used to process data of a predetermined service type, and the apparatus 500 includes:
a service caching module 510, configured to respond to at least one service request sent by a host, and cache the at least one service request, where the service request includes a service type;
a service searching module 520, configured to search, in the presence of a condition that the cryptographic processing group is in an idle state, a service request that is consistent with a preset service type of the cryptographic processing group;
a data obtaining module 530, configured to obtain, from the host, to-be-processed data indicated by the service request;
and a data sending module 540, configured to send the data to be processed to the cryptographic core group in an idle state for data processing.
In an embodiment of the present invention, the service caching module 510 is specifically configured to cache at least one service request to at least one preset service request caching space, where each service request caching space caches one service request.
In one embodiment of the present invention, the apparatus includes:
and the logic control module is used for taking out the service request from the service request cache space corresponding to the service request, and marking the cache state of the service request cache space as an empty state, wherein the cache state comprises an empty state and a full state, the empty state indicates that the service request cache space does not cache the service request, and the full state indicates that the service request cache space caches the service request.
In an embodiment of the present invention, the caching at least one service request into at least one preset service request caching space includes:
acquiring the number of the service request cache spaces with the cache state being an empty state and the number of the service request cache spaces with the cache state being an empty state;
under the condition that the number of the service request cache spaces with the cache state being an empty state is not less than the number of at least one service request, caching at least one service request into the service request cache spaces with the cache state being an empty state;
under the condition that the number of the service request cache spaces with the cache state being an empty state is smaller than the number of at least one service request, acquiring a first number of service requests, and caching the first number of service requests to the service request cache spaces with the cache state being an empty state, wherein the first number is the same as the number of the service request cache spaces with the cache state being an empty state;
and executing the operation of obtaining the number of the service request cache space with the cache state being an empty state and the number of the service request cache space with the cache state being an empty state again.
In an embodiment of the present invention, each cryptographic core group has a group of transmission interfaces, and the transmission interfaces are used for transmitting information related to the corresponding cryptographic core group;
the data processing device comprises at least one group of access interfaces with the same number as at least one group of transmission interfaces, at least one group of access interfaces corresponds to at least one group of transmission interfaces one to one, and the access interfaces are used for transmitting information related to related cryptographic core groups.
In one embodiment of the invention, the access interface comprises a state access interface and a data access interface;
the state access interface is used for transmitting an idle state, an input full state and an output full state of the corresponding cryptographic core group, wherein the idle state indicates that the cryptographic core group does not execute the data processing task currently, the input full state indicates that the length of data currently received by the cryptographic core group reaches the input length specified in the service request, and the output full state indicates that the length of data output by the cryptographic core group to execute the data processing task currently reaches the output length specified in the service request;
the data access interface is used for transmitting data to be processed and processed data corresponding to the data to be processed.
In one embodiment of the present invention, the apparatus includes:
the state monitoring module is used for monitoring the working states of all the cryptographic core groups in the reconfigurable cryptographic calculation array in real time, wherein the working states comprise an idle state and a busy state;
the searching module is used for searching the transmission interface corresponding to the password computation core group under the condition that the working state of the password computation core group is an idle state;
and the sending module is used for receiving the message which is sent by the transmission interface and in which the cryptographic kernel group is in an idle state through the access interface.
In one embodiment of the present invention, the apparatus includes:
the analysis module is used for analyzing the service request to obtain service information, wherein the service information comprises a service type, a service source address, a service source length, a service destination address and a service destination length;
the data obtaining module 530 is configured to obtain, from the host side, to-be-processed data indicated by the service request based on the service source address and the service source length;
the device also includes:
and the return module is used for 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.
According to the embodiment of the present disclosure, for example, any multiple modules of the service caching module 510, the service searching module 520, the data acquiring module 530, and the data sending module 540 may be combined and implemented in one module, or any one of the modules may be split into multiple modules. Alternatively, at least part of the functionality of one or more of these modules may be combined with at least part of the functionality of the other modules and implemented in one module. According to an embodiment of the present disclosure, at least one of the service acquisition caching module 510, the service searching module 520, the data acquisition module 530 and the data transmission module 540 may be implemented at least partially 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 may be implemented by hardware or firmware in any other reasonable manner of integrating or packaging a circuit, or implemented by any one of three implementation manners of software, hardware and firmware, or implemented by any suitable combination of any of the three. Alternatively, at least one of the service caching module 510, the service lookup module 520, the data acquisition module 530, and the data transmission module 540 may be at least partially implemented as a computer program module, which when executed may perform a corresponding function.
FIG. 6 schematically shows a block diagram of a data processing system according to an embodiment of the present disclosure. Fig. 7 schematically shows a flow diagram for completing a service request according to an embodiment of the disclosure.
As shown in fig. 6, the data processing system includes a host side, a system bus connected to the host side, a data processing apparatus for the reconfigurable cryptographic calculation array, a transmission interface, and the reconfigurable cryptographic calculation array. The data processing device for the reconfigurable cryptographic calculation array is disposed between the system bus and the reconfigurable cryptographic calculation array. Each group of the cryptographic kernel groups is provided with a group of transmission interfaces used for transmitting information related to the corresponding cryptographic kernel group, the data processing device comprises at least one group of access interfaces with the same number as that of at least one group of the transmission interfaces, at least one group of the access interfaces corresponds to at least one group of the transmission interfaces one by one, and the access interfaces are used for transmitting the information related to the related cryptographic kernel groups.
Fig. 8 schematically shows a block diagram of an electronic device according to an embodiment of the disclosure.
As shown in fig. 8, an electronic device 800 according to an embodiment of the present disclosure includes a reconfigurable processor 801, and the reconfigurable processor 801 includes a reconfigurable cryptographic calculation array that can perform various appropriate actions and processes according to a program stored in a Read Only Memory (ROM)802 or a program loaded from a storage section 808 into a Random Access Memory (RAM) 803. The processor 801 is connected to the bus by the data processing apparatus 500 of fig. 5 shown in the above embodiments, and the processor 801 may include, for example, a general purpose microprocessor (e.g., CPU), an instruction set processor and/or related chip set and/or a special purpose microprocessor (e.g., Application Specific Integrated Circuit (ASIC)), and so on. The processor 801 may also include onboard memory for caching purposes. The processor 801 may include a single processing unit or multiple processing units for performing different actions of the method flows according to embodiments of the present disclosure.
In the RAM 803, various programs and data necessary for the operation of the electronic apparatus 800 are stored. The processor 801, the ROM 802, and the RAM 803 are connected to each other by a bus 804. The processor 801 performs various operations of the method flows according to the embodiments of the present disclosure by executing programs in the ROM 802 and/or RAM 803. Note that the program may also be stored in one or more memories other than the ROM 802 and the RAM 803. The processor 801 may also perform various operations of method flows according to embodiments of the present disclosure by executing programs stored in the one or more memories.
The present disclosure also provides a computer-readable storage medium, which may be embodied in the device/apparatus/system described in the above embodiments; or may exist alone without being assembled into the device/apparatus/system. The computer-readable storage medium carries one or more programs which, when executed, implement the method according to an embodiment of the disclosure.
According to embodiments of the present disclosure, the computer-readable storage medium may be a non-volatile computer-readable storage medium, which may include, for example but is not limited to: a portable computer diskette, 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 disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing. In the present disclosure, a computer readable storage medium may be any tangible medium that can contain, or store a program for use by or in connection with an instruction execution system, apparatus, or device. For example, according to embodiments 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 the ROM 802 and RAM 803.
Embodiments of the present disclosure also include a computer program product comprising a computer program containing program code for performing the method illustrated in the flow chart. When the computer program product runs in a computer system, the program code is used for causing the computer system to realize the item recommendation method provided by the embodiment of the disclosure.
The computer program performs the above-described functions defined in the system/apparatus of the embodiments of the present disclosure when executed by the processor 801. The systems, apparatuses, modules, units, etc. described above may be implemented by computer program modules according to embodiments of the present disclosure.
In one embodiment, the computer program may be hosted on a tangible storage medium such as an optical storage device, a magnetic storage device, or the like. In another embodiment, the computer program may also be transmitted in the form of a signal, distributed over a network medium, downloaded and installed via communications portion 809, and/or installed from removable media 811. The computer program containing program code may be transmitted using any suitable network medium, including but not limited to: wireless, wired, etc., or any suitable combination of the foregoing.
In such an embodiment, the computer program may be downloaded and installed from a network through the communication section 809 and/or installed from the removable medium 811. The computer program, when executed by the processor 801, performs the above-described functions defined in the system of the embodiments of the present disclosure. The systems, devices, apparatuses, modules, units, etc. described above may be implemented by computer program modules according to embodiments of the present disclosure.
In accordance with embodiments of the present disclosure, program code for executing computer programs provided by embodiments of the present disclosure may be written in any combination of one or more programming languages, and in particular, these computer programs may be implemented using high level procedural and/or object oriented programming languages, and/or assembly/machine languages. The programming language includes, but is not limited to, programming languages such as Java, C + +, python, the "C" language, or the like. The program code may execute entirely on the user computing device, partly on the user device, partly on a remote computing device, or entirely on the remote computing device or server. In the case of a remote computing device, the remote computing device may be connected to the user computing device through any kind of network, including a Local Area Network (LAN) or a Wide Area Network (WAN), or may be connected to an external computing device (e.g., through the internet using an internet service provider).
The flowchart and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods and computer program products according to various embodiments of the present disclosure. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s). It should also be noted that, in some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams or flowchart illustration, and combinations of blocks in the block diagrams or flowchart illustration, can be implemented by special purpose hardware-based systems which perform the specified functions or acts, or combinations of special purpose hardware and computer instructions.
It will be appreciated by a person skilled in the art that various combinations or/and combinations of features recited in the various embodiments of the disclosure and/or in the claims may be made, even if such combinations or combinations are not explicitly recited in the disclosure. In particular, various combinations and/or combinations of the features recited in the various embodiments of the present disclosure and/or the claims may be made without departing from the spirit and teachings of the present disclosure. All such combinations and/or associations are within the scope of the present disclosure.
The embodiments of the present disclosure are described above. However, these examples are for illustrative purposes only and are not intended to limit the scope of the present disclosure. Although the embodiments are described separately above, this does not mean that the measures in the embodiments cannot be used in advantageous combination. The scope of the disclosure is defined by the appended claims and equivalents thereof. Various alternatives and modifications can be devised by those skilled in the art without departing from the scope of the present disclosure, and such alternatives and modifications are intended to be within the scope of the present disclosure.
Claims (13)
1. A data processing method for a reconfigurable cryptographic calculation array, wherein the reconfigurable cryptographic calculation array comprises at least one set of cryptographic core groups, and each set of cryptographic core group is used for processing data of a preset service type, the method comprising:
responding at least one service request sent by a host terminal, caching the at least one service request, wherein the service request comprises a service type;
under the condition that the cryptographic computation group is in an idle state, searching a service request consistent with a preset service type of the cryptographic computation group;
acquiring the data to be processed indicated by the service request from the host side;
and sending the data to be processed to the cryptographic kernel group in an idle state for data processing.
2. The data processing method of claim 1, wherein the caching at least one of the service requests comprises:
and caching at least one service request to at least one preset service request caching space, wherein each service request caching space caches one service request.
3. The data processing method of claim 2, wherein after searching for the service request consistent with the preset service type of the cryptographic core group, the method comprises:
taking out the service request from a service request cache space corresponding to the service request;
and marking the cache state of the service request cache space as an empty state, wherein the cache state comprises an empty state and a full state, the empty state indicates that the service request cache space does not cache the service request, and the full state indicates that the service request cache space caches the service request.
4. The data processing method according to claim 3, wherein the caching the at least one service request into at least one preset service request cache space comprises:
acquiring the number of the service request cache spaces with the cache states being in the empty state and the number of the service request cache spaces with the cache states being in the empty state;
under the condition that the number of the service request cache spaces with the cache state being an empty state is not less than the number of at least one service request, caching at least one service request into the service request cache spaces with the cache state being an empty state;
under the condition that the number of the service request cache spaces with the cache state being an empty state is smaller than the number of at least one service request, obtaining a first number of service requests, and caching the first number of service requests to the service request cache spaces with the cache state being an empty state, wherein the first number is the same as the number of the service request cache spaces with the cache state being an empty state;
and executing the operation of obtaining the number of the service request cache spaces with the cache state being an empty state and the number of the service request cache spaces with the cache state being an empty state again.
5. The data processing method according to any one of claims 1 to 4, wherein each of the cryptographic core groups has a set of transmission interfaces for transmitting information relating to the corresponding cryptographic core group;
the method further comprises the following steps:
constructing at least one group of access interfaces with the same number as the transmission interfaces, wherein the at least one group of access interfaces corresponds to the at least one group of transmission interfaces one to one;
and transmitting information related to a cryptographic core group related to the access interface through a preset access interface.
6. The data processing method of claim 5, wherein the access interface comprises a state access interface and a data access interface;
the state access interface is used for transmitting an idle state, an input full state and an output full state of the corresponding cryptographic core group, wherein the idle state indicates that the cryptographic core group does not execute the data processing task currently, the input full state indicates that the length of data currently received by the cryptographic core group reaches the input length specified in the service request, and the output full state indicates that the length of data output by the cryptographic core group to execute the data processing task currently reaches the output length specified in the service request;
the data access interface is used for transmitting data to be processed and processed data corresponding to the data to be processed.
7. The data processing method of claim 5, wherein the method comprises:
monitoring the working states of all the cryptographic calculation core groups in the reconfigurable cryptographic calculation array in real time, wherein the working states comprise an idle state and a busy state;
under the condition that the working state of the password computation core group is an idle state, searching a transmission interface and an access interface corresponding to the password computation core group;
and receiving the message, which is sent by the transmission interface and in an idle state, of the cryptographic computation core group through the access interface.
8. The data processing method of claim 1, wherein the searching for the service request consistent with the preset service type of the cryptographic core group comprises:
analyzing the service request to obtain service information, wherein the service information comprises a service type, a service source address, a service source length, a service destination address and a service destination length;
the obtaining the to-be-processed data indicated by the service request from the host side includes:
acquiring the data to be processed indicated by the service request from the host side based on the service source address and the service source length;
after the data to be processed is sent to the cryptographic kernel group in an idle state for data processing, the method includes:
and sending the processed data corresponding to the data to be processed to a storage space corresponding to the service destination address and the service destination length.
9. A data processing apparatus for a reconfigurable cryptographic computation array, wherein the reconfigurable cryptographic computation array includes at least one cryptographic core group, and each cryptographic core group is configured to process data of a preset service type, the apparatus comprising:
the service caching module is used for responding to at least one service request sent by the host terminal and caching the at least one service request, wherein the service request comprises a service type;
the service searching module is used for searching a service request consistent with the preset service type of the cryptographic computation core group under the condition that the cryptographic computation core group is in an idle state;
a data obtaining module, configured to obtain, from the host, to-be-processed data indicated by the service request;
and the data sending module is used for sending the data to be processed to the cryptographic computation core group in an idle state for data processing.
10. The data processing apparatus of claim 9, wherein each of the cryptographic core groups has a set of transmission interfaces for transmitting information relating to the corresponding cryptographic core group;
the data processing device comprises at least one group of access interfaces with the same number as at least one group of transmission interfaces, at least one group of access interfaces corresponds to at least one group of transmission interfaces one to one, and the access interfaces are used for transmitting information related to related cryptographic core groups.
11. A data processing system, comprising:
a host side, a system bus connected to the host side, a data processing apparatus for a reconfigurable cryptographic calculation array according to claim 9 or 10, a transmission interface, and the reconfigurable cryptographic calculation array;
the data processing device for the reconfigurable computing array is arranged between the system bus and the reconfigurable computing array.
12. A computer readable storage medium having stored thereon executable instructions which, when executed by a processor, cause the processor to perform the method of any one of claims 1 to 8.
13. A computer program product comprising a computer program which, when executed by a processor, implements a method according to any one of claims 1 to 8.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210683607.9A CN115033904A (en) | 2022-06-15 | 2022-06-15 | Data processing method, apparatus, system, medium, and product |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210683607.9A CN115033904A (en) | 2022-06-15 | 2022-06-15 | Data processing method, apparatus, system, medium, and product |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115033904A true CN115033904A (en) | 2022-09-09 |
Family
ID=83124268
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210683607.9A Pending CN115033904A (en) | 2022-06-15 | 2022-06-15 | Data processing method, apparatus, system, medium, and product |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115033904A (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116166402A (en) * | 2023-02-20 | 2023-05-26 | 广州万协通信息技术有限公司 | Data security processing method, system, security chip and electronic equipment |
-
2022
- 2022-06-15 CN CN202210683607.9A patent/CN115033904A/en active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116166402A (en) * | 2023-02-20 | 2023-05-26 | 广州万协通信息技术有限公司 | Data security processing method, system, security chip and electronic equipment |
CN116166402B (en) * | 2023-02-20 | 2023-11-24 | 广州万协通信息技术有限公司 | Data security processing method, system, security chip and electronic equipment |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110401720B (en) | Information processing method, device, system, application server and medium | |
US7797445B2 (en) | Dynamic network link selection for transmitting a message between compute nodes of a parallel computer | |
US10341264B2 (en) | Technologies for scalable packet reception and transmission | |
CN112685159B (en) | Federal learning calculation task processing scheme based on FPGA heterogeneous processing system | |
US9161064B2 (en) | Auto-scaling management of web content | |
CN111831330B (en) | Heterogeneous computing system device interaction scheme for federated learning | |
US20080313376A1 (en) | Heuristic Status Polling | |
WO2011128369A1 (en) | Querying performance data on a parallel computer system having compute nodes | |
CN111813526A (en) | Heterogeneous processing system, processor and task processing method for federal learning | |
CN112000598B (en) | Processor for federal learning, heterogeneous processing system and private data transmission method | |
US11190620B2 (en) | Methods and electronic devices for data transmission and reception | |
US9251078B2 (en) | Acquiring remote shared variable directory information in a parallel computer | |
CN115033904A (en) | Data processing method, apparatus, system, medium, and product | |
CN112799851B (en) | Data processing method and related device in multiparty security calculation | |
CN117370046A (en) | Inter-process communication method, system, device and storage medium | |
CN115577397B (en) | Data processing method, device, equipment and storage medium | |
CN110750210B (en) | Storage system | |
US20230153153A1 (en) | Task processing method and apparatus | |
CN114969851A (en) | Data processing method, device, equipment and medium based on FPGA | |
CN113779021A (en) | Data processing method, device, computer system and readable storage medium | |
US9176910B2 (en) | Sending a next request to a resource before a completion interrupt for a previous request | |
CN110209477A (en) | A kind of calculating task dispatching method based on self study | |
US10142245B2 (en) | Apparatus and method for parallel processing | |
CN115297169B (en) | Data processing method, device, electronic equipment and medium | |
US11689605B2 (en) | In-network compute assistance |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |