Request processing method, apparatus, request processing device, electronic device, and storage medium
By using two storage areas at the sending end to store request data and relationships, the problems of storage resource consumption and network overhead during request processing at the sending end are solved, achieving more efficient request processing and memory utilization.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- KUNLUNXIN TECHNOLOGY (BEIJING) CO LTD
- Filing Date
- 2024-12-19
- Publication Date
- 2026-06-30
AI Technical Summary
In information communication, when the sending end sends a large number of requests, existing technologies require a lot of storage resources, which leads to an increase in chip area and power consumption, and a large network overhead when searching for the target request to respond.
Two storage areas are used to store request data and associated relationships with different request identifiers. The first storage area records the address association of the request data, and the second storage area records the start and end identifiers to ensure that the requests follow the order preservation principle and reduce the occupation of on-chip memory.
By reducing the amount of on-chip memory used, chip area consumption is reduced, memory utilization is improved, and the orderliness and efficiency of request processing are ensured.
Smart Images

Figure CN122309097A_ABST
Abstract
Description
Technical Field
[0001] This disclosure relates to the field of computer technology, and more particularly to the fields of chips, processors, and communication technologies. More specifically, this disclosure provides a request processing method, apparatus, request processing device, electronic device, and storage medium. Background Technology
[0002] In information communication applications, the sending end allocates a memory space to cache information related to sent requests. When the sending end sends a large number of requests, it consumes a significant amount of storage resources, which has a substantial impact on on-chip memory and poses a significant challenge to chip area and power consumption. Summary of the Invention
[0003] This disclosure provides a request processing method, apparatus, request processing device, electronic device, and storage medium.
[0004] According to one aspect of this disclosure, a request processing method is provided, comprising: writing currently sent request data to a first address of a first storage area, wherein the first storage area is used to store request data of sent requests, and the storage addresses of request data of multiple sent requests having the same request identifier are associated; when it is determined that a second storage area has stored the current request identifier, updating the tail identifier associated with the current request identifier to the first address, wherein the second storage area stores a head identifier and a tail identifier representing the association relationship; and in response to receiving return information for a sent request, reading target request data for the return information from the first storage area based on the storage address indicated by the target head identifier, wherein the target head identifier is a head identifier associated with the return identifier of the return information in the second storage area.
[0005] According to another aspect of this disclosure, a request processing apparatus is provided, comprising: a first writing module, configured to write currently sent request data to a first address of a first storage area, wherein the first storage area is used to store request data of multiple sent requests, and the storage addresses of the request data of multiple sent requests having the same request identifier are associated; a first updating module, configured to update a tail identifier associated with the current request identifier to the first address when it is determined that a second storage area has stored the current request identifier, wherein the second storage area stores a head identifier and a tail identifier representing the association relationship; and a reading module, configured to, in response to receiving return information for a sent request, read target request data for the return information from the first storage area based on a storage address indicated by a target head identifier, wherein the target head identifier is a head identifier associated with the return identifier of the return information in the second storage area.
[0006] According to another aspect of this disclosure, a request processing apparatus is provided, including the request processing device provided in the embodiments of this disclosure.
[0007] According to another aspect of this disclosure, an electronic device is provided, comprising: at least one processor; and a memory communicatively connected to the at least one processor; wherein the memory stores instructions executable by the at least one processor, the instructions being executed by the at least one processor to enable the at least one processor to perform the request processing method described above.
[0008] According to another aspect of this disclosure, a non-transitory computer-readable storage medium is provided storing computer instructions, wherein the computer instructions are used to cause a computer to perform the request processing method described above.
[0009] According to another aspect of this disclosure, a computer program product is provided, including a computer program that, when executed by a processor, implements the request processing method described above.
[0010] It should be understood that the description in this section is not intended to identify key or essential features of the embodiments of this disclosure, nor is it intended to limit the scope of this disclosure. Other features of this disclosure will become readily apparent from the following description. Attached Figure Description
[0011] The accompanying drawings are provided to better understand this solution and do not constitute a limitation of this disclosure. Wherein:
[0012] Figure 1 This illustration shows an application scenario in which the request processing method and apparatus can be applied according to embodiments of the present disclosure;
[0013] Figure 2 A flowchart illustrating a request processing method according to an embodiment of the present disclosure is shown schematically.
[0014] Figure 3 A schematic diagram of a first storage area and a second storage area according to an embodiment of the present disclosure is shown.
[0015] Figure 4 A schematic diagram of a first storage area and a second storage area according to another embodiment of the present disclosure is shown;
[0016] Figure 5 A schematic diagram illustrating a transmission request according to an embodiment of the present disclosure is shown.
[0017] Figure 6 A schematic diagram illustrating the receipt of returned information according to an embodiment of the present disclosure is shown.
[0018] Figure 7 This schematically illustrates a structural block diagram of a request processing apparatus according to an embodiment of the present disclosure;
[0019] Figure 8A schematic block diagram of a request processing device according to an embodiment of the present disclosure is shown; and
[0020] Figure 9 A block diagram of an electronic device according to an embodiment of the present disclosure is shown schematically. Detailed Implementation
[0021] The exemplary embodiments of this disclosure are described below with reference to the accompanying drawings, including various details of the embodiments to aid understanding, and should be considered merely exemplary. Therefore, those skilled in the art will recognize that various changes and modifications can be made to the embodiments described herein without departing from the scope and spirit of this disclosure. Similarly, for clarity and brevity, descriptions of well-known functions and structures are omitted in the following description.
[0022] Figure 1 The illustration shows an application scenario in which the request processing method and apparatus can be applied according to embodiments of the present disclosure.
[0023] It is important to note that Figure 1 The examples shown are merely examples of system architectures that can be applied to the embodiments of this disclosure, to help those skilled in the art understand the technical content of this disclosure, but do not mean that the embodiments of this disclosure cannot be used in other devices, systems, environments, or scenarios. For example, in another embodiment, an exemplary system architecture to which the request processing method and apparatus can be applied may include a terminal device, but the terminal device can implement the request processing method and apparatus provided by the embodiments of this disclosure without interacting with the server.
[0024] like Figure 1 As shown, application scenario 100 according to this embodiment may include electronic devices 101, 102, 103, and 104. For example, electronic devices 101, 102, 103, and 104 may be servers, processors, memory, and terminal devices, etc.
[0025] In one embodiment, electronic device 101 is the sending end, and electronic devices 102, 103, and 104 are the receiving ends. Electronic device 101 sends a request to electronic devices 102, 103, and 104, and electronic devices 102, 103, and 104 can return a response to electronic device 101 in response to the received request.
[0026] For example, electronic device 101 can be a processor, and electronic device 102 can be a memory. Electronic device 101 sends a data read request to electronic device 102, and electronic device 102 returns data to electronic device 101 in response to the data read request.
[0027] For example, electronic device 101 can be a processor, and electronic device 103 can be a terminal device. Electronic device 102 sends a request to electronic device 103 to obtain feedback information, and electronic device 103 can collect the feedback information and return the collected feedback information to electronic device 101.
[0028] The requests sent by electronic device 101 may carry a request identifier. Multiple requests may each carry a different request identifier, or they may carry the same request identifier.
[0029] For example, the request identifier can be determined based on the receiving end. Multiple requests sent to the same receiving end can have the same request identifier, while multiple requests sent to different receiving ends can have different request identifiers.
[0030] For example, a request identifier can be determined based on the transaction to which the request is indicated. For instance, if multiple request-indicated transactions are related, multiple requests can have the same request identifier. If multiple request-indicated transactions are unrelated, multiple requests can have different request identifiers.
[0031] In this embodiment of the disclosure, for multiple requests with the same request identifier, the multiple requests follow a pre-order principle. The pre-order principle means that transactions indicated by multiple requests with the same request identifier will arrive at the receiving end in the order they were sent, or will be completed sequentially in the order they were sent. For example, the request sent first will arrive at the corresponding receiving end first, and the request sent first will also receive the information returned by the corresponding receiving end first. The pre-order requirement ensures the sequentiality of multiple transactions indicated by multiple requests and the data consistency during transaction execution.
[0032] Upon receiving a response, electronic device 101 needs to determine the target request corresponding to the response from among multiple sent and pending requests, and then complete the target request based on the received response. However, electronic device 101 typically has multiple sent and pending requests. It needs to determine the target request corresponding to the response from among the multiple requests based on the information carried by each request and response. If the response corresponds to multiple requests with the same request identifier, electronic device 101 also needs to determine the first sent request among the multiple requests to complete the transaction execution based on the order preservation principle. In this case, electronic device 101, as the sender, can utilize a dedicated memory space to cache the relevant information of multiple requests throughout the entire request sending period.
[0033] In some examples, the sender can allocate different memory spaces for requests with different request identifiers. This allows each memory space to record multiple requests with the same request identifier. By using multiple memory spaces to record information about multiple requests with different request identifiers and the sending order of multiple requests with the same request identifier, the sender can find the target request corresponding to the response received by the sender from multiple memory spaces. This also ensures that multiple sent and pending requests with the same identifier are processed sequentially.
[0034] However, when there are a large number of concurrent, distinct request identifiers, allocating separate memory space for each request identifier consumes a significant amount of memory, greatly impacting on-chip memory. Furthermore, searching for the target request corresponding to a response across multiple memory spaces can trigger substantial network overhead, negatively affecting chip area and power consumption.
[0035] Since on-chip memory has a significant impact on the overall chip area and power consumption, the size requirements for on-chip memory are becoming increasingly stringent in applications with ever-increasing communication traffic. Therefore, reducing on-chip memory size while ensuring chip performance has become crucial.
[0036] It should be noted that the request processing method provided in this embodiment can generally be executed by the electronic device 101 as the sending end. Correspondingly, the request processing device provided in this embodiment can also be disposed in the electronic device 101. The request processing method provided in this embodiment can also be executed by a server or server cluster that is different from the electronic device 101 and capable of communicating with the electronic devices 102, 103, and 104 as the receiving end. Correspondingly, the request processing device provided in this embodiment can also be disposed in a server or server cluster that is different from the electronic device 101 and capable of communicating with the electronic devices 102, 103, and 104 as the receiving end.
[0037] Alternatively, when the electronic device 103 acts as the sender of the request, the request processing method provided in this embodiment can generally also be executed by the electronic device 103. Accordingly, the request processing apparatus provided in this embodiment can generally be disposed in the electronic device 103.
[0038] It should be understood that Figure 1 The number and type of electronic devices shown are merely illustrative. Any number and type of electronic devices can be included depending on implementation needs.
[0039] In the technical solution disclosed herein, the collection, storage, use, processing, transmission, provision, disclosure, and application of user personal information comply with the provisions of relevant laws and regulations, necessary confidentiality measures have been taken, and there is no violation of public order and good morals.
[0040] In the technical solution disclosed herein, the user's authorization or consent is obtained before acquiring or collecting the user's personal information.
[0041] In view of this, embodiments of this disclosure provide a request processing method. By storing relevant information of multiple requests with different request identifiers in two storage areas when the sending end sends a request, the sending end can determine the corresponding target request based on the information recorded in the two storage areas when receiving the returned response. Furthermore, for multiple requests with the same request identifier that follow the order preservation principle, sequential processing can be ensured. When the number of different request identifiers is large, using two storage areas for information recording can reduce the on-chip memory usage, thereby reducing chip area consumption and facilitating chip size reduction.
[0042] The following will combine Figures 2-6 The request processing method provided in this disclosure is described in detail.
[0043] Figure 2 A flowchart illustrating a request processing method according to an embodiment of the present disclosure is shown schematically.
[0044] like Figure 2 As shown, method 200 includes operations S210 to S230. The executing entity of method 200 can be an electronic device acting as a transmitting end.
[0045] In operation S210, the currently requested data is written to the first address of the first storage area.
[0046] In the embodiments of this disclosure, the current request data is the request data associated with the request sent by the sender to the receiver. When the sender sends a request to the receiver, the sender can synchronously write the request data of the request to the first address of the first storage area.
[0047] In embodiments of this disclosure, a first storage area is used to store request data for sent requests. The request identifiers corresponding to multiple request data items stored in the first storage area may be the same or different. The storage addresses of request data for multiple sent requests with the same request identifier are associated. The request data stored in the first storage area consists of request data for requests sent but not yet processed by the sending end; the request identifiers of these sent but unprocessed requests may be different. The request identifier can be the request's identity document (ID), which can be determined based on the receiving end or based on the association between the transactions indicated by the respective requests sent by the sending end.
[0048] The request data is the post-processing information for the corresponding request. For example, when the sending end receives a return message for a sent request, the sending end needs to process the subsequent transactions of the request based on the received return message and the request data pre-stored in the first storage area.
[0049] For example, the sending end needs to perform an addition operation on a first source operand and a second source operand. If the sending end has obtained the first source operand but not the second source operand, it sends a request to the receiving end to obtain the second source operand and stores the first source operand in a first storage area. If the sending end receives the second source operand returned by the receiving end, it reads the first source operand from the first storage area and performs an addition operation on the first and second source operands. Here, the first source operand is the request data for the request.
[0050] In this embodiment, the first storage area can be a storage area inside the sending end. For example, the first storage area can be a storage area in the memory of the sending end. The first storage area can also be a storage area outside the sending end, for example, the first storage area can be a memory connected to the sending end. The first address is the storage address of the currently requested data in the first storage area.
[0051] In embodiments of this disclosure, the storage addresses of request data for multiple sent requests with the same request identifier are associated in the first storage area. This association characterizes the sending order among the multiple sent requests with the same request. For example, for multiple sent requests with the same request identifier, based on the storage address of the request data of any sent request in the first storage area, the storage address of the request data of a subsequent request in the first storage area can be determined, and the subsequent request has the same request identifier as the sent request.
[0052] For multiple sent requests with the same request identifier, the subsequent request is the next sent request to be executed after the first sent request has been completed. The execution order of multiple sent requests with the same request is consistent with the order in which they were sent.
[0053] For example, multiple sent requests with the same request identifier can be considered as a request sequence based on their sending order. This request sequence includes multiple requests with the same request identifier, and the sequence is also recorded as the order in which the sender sent the multiple requests. The multiple requests included in the request sequence need to be executed sequentially.
[0054] For example, the first request and the second request sent by the sending end have the same request identifier. The first request and the second request follow the order-preserving principle, where the sending end sends the first request first and then the second request. If the sending end receives the return information corresponding to the request identifier and neither the first request nor the second request has been processed, the return information belongs to the first request.
[0055] For example, based on the association between the request data of multiple requests with the same request identifier in the first storage area, the sending end can find the request data of the first request sent first. After the first request is processed, based on this association, the storage address of the request data of the second request can be determined using the storage address of the request data of the first request. Therefore, if the sending end receives the return information corresponding to the same request identifier again, the sending end can find the request data of the subsequent request (the second request) of the first request based on this association.
[0056] In this embodiment of the disclosure, when the current request is a subsequent request to a previously sent request to which a certain request data stored in the first storage area belongs, the first address of the current request data is associated with the storage address of the request data of the previously sent request.
[0057] In operation S220, if it is determined that the current request identifier has been stored in the second storage area, the tail identifier associated with the current request identifier is updated to the first address.
[0058] In this embodiment of the disclosure, the current request identifier is the request identifier of the request associated with the current request data. When the current request data is written to the first storage area, the sending end also needs to update the information recorded in the second storage area based on the current request identifier.
[0059] In this embodiment of the disclosure, the second storage area can be a storage area inside the transmitting end or a storage area outside the transmitting end. The second storage area and the first storage area can be two independent storage areas within the same storage area, or they can be two storage areas in different storage areas.
[0060] In this embodiment, the second storage area stores a start identifier and a end identifier representing an association relationship. Both the start identifier and the end identifier are associated with a request identifier. Start identifiers and end identifiers associated with the same request identifier can form an identifier pair. Each request identifier has one identifier pair in the second storage area. In the first storage area, the association relationship between multiple storage addresses of request data for multiple requests with the same request identifier represents the order relationship that the multiple requests need to follow. The identifier pairs in the second storage area can represent the association relationships in the first storage area.
[0061] In this embodiment of the disclosure, the first identifier may indicate the first request in the sequential relationship represented by the association relationship, and the last identifier may indicate the last request in the sequential relationship represented by the association relationship.
[0062] For example, the first identifier can be the storage address of the request data of the first request sent by the sender among multiple sent requests with the same request identifier, and the last identifier can be the storage address of the request data of the last request sent by the sender among multiple sent requests with the same request identifier.
[0063] In this embodiment of the disclosure, for multiple requests with the same request identifier, the sending end writes the storage address of the request data of the first request sent in the first storage area as the first identifier into the second storage area, and the sending end writes the storage address of the request data of the last request sent in the first storage area as the last identifier into the second storage area. At this time, the second storage area records the identifier pair corresponding to each request identifier.
[0064] In this embodiment of the disclosure, when the identifier pair corresponding to the current request identifier has already been recorded in the second storage area, the request to which the current request data sent by the sending end belongs becomes the last request with the current request identifier. The request indicated by the tail identifier corresponding to the current request identifier originally recorded in the second storage area becomes the penultimate request. Therefore, when the current request identifier is consistent with the request identifier associated with a certain identifier pair stored in the second storage area, the current request data is recorded in the second storage area at the first address of the first storage area as the tail identifier of the identifier pair.
[0065] In operation S230, in response to receiving return information for the sent request, target request data for the return information is read from the first storage area based on the storage address indicated by the target header identifier.
[0066] In this embodiment of the disclosure, the target first identifier is the first identifier associated with the return identifier of the return information in the second storage area.
[0067] In this embodiment of the disclosure, the return information received by the sending end can be for any request data stored in the first storage area. The return information also has a return identifier, and the method for determining the return identifier of the return information is the same as the method for determining the request identifier of the request. For example, the return identifier of the return information for the request to which the current request data belongs can be consistent with the current request identifier. For example, in response to a received request, the receiving end can obtain the request identifier of that request. When the receiving end sends return information to the sending end, the receiving end uses the obtained request identifier as the return identifier and sends it to the sending end along with the return information.
[0068] In this embodiment, the sending end can search for a target identifier pair corresponding to the target request identifier in the second storage area based on the returned identifier. The first identifier in the target identifier pair is the target first identifier. Based on the target first identifier in the target identifier pair, the request that needs to be processed first among multiple requests with that target request identifier can be determined. Based on the order preservation principle, the return information of multiple requests with the same request identifier can be returned sequentially. Therefore, the return information received by the sending end is the return information of the first request sent by the sending end among multiple requests, and the request sent by the sending end first among multiple requests is the request that needs to be processed first.
[0069] For example, the target request identifier is the target storage address in the first storage area for the request data of the first request that needs to be processed among multiple requests with this target request identifier. The sending end reads the target request data of the first request that needs to be processed from the target storage address in the first storage area.
[0070] Through the embodiments of this disclosure, a first storage area is used to store request data with different request identifiers, and identifier pairs with different request identifiers are recorded in the first storage area. In a second storage area, the sending order of multiple requests with the same request identifier is recorded by associating the storage addresses of the request data. Based on this, when a return information is received, the sending end can accurately locate the request data of the request that needs to be processed first using the information recorded in the first and second storage areas respectively. Request data of multiple requests with different request identifiers can all be stored in the same storage area. When different request identifiers are added, the sending end stores the request data of the request with the newly added request identifier in the first storage area without allocating additional storage area. Furthermore, this can improve the utilization rate of the first storage area and avoid unused idle areas in the first storage area. Using the information recording method of the first and second storage areas provided by this disclosure, storage space used for storing request data can be saved, reducing the memory occupation of the sending end and thus reducing the size of the memory.
[0071] The following will combine Figure 3 The storage contents of the first and second storage areas are illustrated. Figure 3 A schematic diagram of a first storage area and a second storage area according to an embodiment of the present disclosure is shown.
[0072] like Figure 3 As shown, the first storage area M1 records the association of storage addresses of request data for multiple sent requests with the same request identifier.
[0073] In this embodiment of the disclosure, the association includes: for multiple sent requests with the same request identifier, the storage address tag of the request data of the earlier sent request is associated with the storage address of the request data of the later sent request.
[0074] The order in which requests that have been sent earlier and those that have been sent later is that the sender sends the requests that have been sent earlier first, followed by the requests that have been sent later.
[0075] For example, request data 1, request data 2, request data 3, request data 4, and request data 5 are the request data for requests 1, 2, 3, 4, and 5, respectively. Request 1, 2, and 4 can have the same request identifier 1, and request 3 and 5 can have the same request identifier 2. Request identifier 1 and request identifier 2 are different.
[0076] For example, the sender can send requests 1 through 5 sequentially. Therefore, for multiple sent requests with the same request identifier, the sending order includes request 1 → request 2 → request 4 and request 3 → request 5. The sending order between multiple sent requests with different request identifiers does not need to be recorded.
[0077] For example, request 1 is a request that was sent before request 2, and request 2 is a request that was sent after request 1. Request 2 is a request that was sent before request 4, and request 4 is a request that was sent after request 2. Request 3 is a request that was sent before request 5, and request 5 is a request that was sent after request 3.
[0078] In the first storage area M1, the storage address tag of request data 1 of request 1 is associated with the storage address of request data 2 of request 2, the storage address tag of request data 2 of request 2 is associated with the storage address of request data 4 of request 4, and the storage address tag of request data 3 of request 3 is associated with the storage address of request data 5 of request 5.
[0079] For example, the marker can be a pointer, and each requested data storage address can have a pointer. The storage address of a previously sent request points to the storage address of a subsequently sent request.
[0080] The association between storage addresses is unidirectional. For example, the request data of a previously sent request is unidirectionally associated with the request data of a subsequently sent request. Therefore, the storage address of the request data of a subsequently sent request can be determined based on the storage address of the request data of the previously sent request. For each sent request, the storage address of its own request data can only be used to retrieve the storage address of the request data of its subsequently sent requests.
[0081] For example, pointers point in a unidirectional direction. For instance, a pointer to the memory address of requested data 1 points to the memory address of requested data 2, and a pointer to the memory address of requested data 2 points to the memory address of requested data 4. A pointer to the memory address of requested data 2 cannot point to the memory address of requested data 1, and a pointer to the memory address of requested data 4 cannot point to the memory address of requested data 2.
[0082] In the first storage area M1, the sequential relationship between multiple requests corresponding to multiple request data can be determined based on the unidirectional association of the storage address tags of multiple request data. Since a previously sent request is unidirectionally associated with a subsequently sent request, the first storage area M1 can accurately record the sending order of multiple sent requests from the first request to the last request based on this unidirectional association.
[0083] The second storage area M2 can record the request identifier req_id and the identifier pair, which includes the header identifier and the tail identifier.
[0084] In this embodiment of the disclosure, there is a correspondence between the request identifier req_id, the header identifier, and the tail identifier, and the header identifier and the tail identifier belong to the corresponding request identifier req_id.
[0085] For example, based on the request data currently stored in the first storage area M1, the storage address of the request data of the first request sent by the sender among multiple sent requests with request identifier req_id is recorded as the header identifier of the request identifier req_id in the first storage area M1, and the storage address of the request data of the last request sent by the sender among multiple sent requests with request identifier req_id is recorded as the tail identifier of the request identifier req_id in the first storage area M1.
[0086] For example, the first storage area M1 stores the request data for requests 1, 2, and 4 that have been sent but not yet processed. In the second storage area M2, the request identifier req_id is request identifier 1, the header identifier is the storage address of request data 1, and the tail identifier is the storage address of request data 4.
[0087] In the second storage area M2, the request identifier `req_id` can also be represented by the storage address of the identifier pair corresponding to the request identifier `req_id` in the second storage area M2. For example, the storage address of the identifier pair in the second storage area M2 can be the same as the request identifier `req_id`. For example, an identifier pair stored at a specific address in the second storage area M2 corresponds to a specific request identifier `req_id`. For example, the second storage area M2 may not directly record the request identifier `req_id`, and the identifier pair read by the sending end from the storage address corresponding to the request identifier `req_id` in the second storage area M2 belongs to the request identifier `req_id`.
[0088] In this embodiment of the disclosure, in response to a request sent by the sending end, if it is determined that the second storage area M2 has stored the current request identifier, the sending end associates the tag of the storage address indicated by the tail identifier associated with the current request identifier in the first storage area M1 with the first address.
[0089] In this embodiment of the disclosure, if it is determined that there is an identifier pair in the second storage area M2 whose corresponding request identifier is consistent with the current request identifier, the sending end associates the storage address indicated by the tail identifier of the identifier pair with the first address of the current request data.
[0090] The request corresponding to the storage address indicated by the tail identifier of the identifier pair was originally the last request among multiple sent but unprocessed requests corresponding to this request identifier. Since the current request data is written to the first storage area M1, the request to which the current request data belongs becomes the new last request among multiple sent but unprocessed requests corresponding to this request identifier. Therefore, the sender also determines that the tail identifier in the identifier pair of this request identifier needs to be updated. The sender updates the tail identifier to record the latest last request among multiple sent but unprocessed requests with this request identifier. By associating the new storage address in the first storage area M1 with the tail identifier in the second storage area M2, the order relationship between multiple sent but unprocessed requests with this request identifier can be updated in both the first storage area M1 and the second storage area M2.
[0091] For example, the current request identifier of the current request data is request identifier 2, and the tail identifier corresponding to request identifier 2 in the second storage area M2 was originally the storage address of request data 5. Based on this, the sending end can determine that the current request is a subsequent sent request of request 5 corresponding to request data 5. The sending end associates the storage address of request data 5 in the first storage area M1 with the first address, so that the marker of the storage address of request data 5 points to the first address. When the sending end sends the current request, the sending end synchronously writes the current request data to the first address of the first storage area M1, and updates the tail identifier corresponding to request identifier 2 in the second storage area M2 to the first address.
[0092] In this embodiment of the disclosure, when the target request data has been read, the sending end determines the second address associated with the storage address tag of the target request data from the first storage area M1, and updates the target header identifier to the second address.
[0093] Based on the association relationship of the first storage area M1 record, the sending end can determine the storage address of the subsequently sent requests of the target request to which the target request data belongs. The second address is the storage address of the subsequently sent requests of the target request to which the target request data belongs.
[0094] The target header identifier indicates the first request among multiple sent but unprocessed requests with the corresponding request identifier that needs to be processed. Once the target request is processed as the first request to be processed, subsequent sent requests to the target request become the new first requests to be processed.
[0095] For example, the request identifier of the target request data is request identifier 1, and the header corresponding to request identifier 1 in the second storage area M2 was originally the storage address of request data 1. The sending end can determine that the subsequent sent request to request 1, to which the target request data belongs, is request 2, based on the storage address associated with the storage address of request data 1. If the sending end has already read request data 1, it synchronously updates the header corresponding to request identifier 1 in the second storage area M2 to the storage address of request data 2.
[0096] In this embodiment of the disclosure, after receiving the return information for the sent request and reading the target request data, the sending end also needs to synchronously update the information recorded in the first storage area M1 and the second storage area M2 to update the sending relationship between multiple sent but unprocessed requests.
[0097] In this embodiment of the disclosure, if it is determined that the second storage area M2 does not store the current request identifier, the first address is written into the second storage area M2, and the first address is used as the first identifier and the last identifier associated with the current request identifier.
[0098] In this embodiment of the disclosure, if it is determined that all the request identifiers corresponding to all the identifier pairs stored in the second storage area M2 are consistent with the current request identifier, the sending end determines that the current request identifier is the newly added request identifier and adds the identifier pair of the newly added request identifier to the second storage area M2.
[0099] In this scenario, the request to which the current request data belongs is both the first request sent by the sender that has this current request identifier, and also the last request sent by the sender that has this current request identifier. In this case, the header and tail identifiers of the current request identifier pair are both the first address.
[0100] In this embodiment of the disclosure, if the sender determines that the header and tail identifiers of the identifier pair are consistent, the sender can determine that only one request with the request identifier corresponding to the identifier pair has been sent.
[0101] The following will combine Figure 4 The storage configuration of the first and second storage areas is illustrated.
[0102] Figure 4 A schematic diagram of a first storage area and a second storage area according to another embodiment of the present disclosure is shown.
[0103] like Figure 4 As shown, the first storage area can be a first linked list L1 that records the request data and related information. The second storage area can be a second linked list L2 that records the request data and related information.
[0104] In this embodiment of the disclosure, when the target request data has been read, the storage address of the target request data is changed from an occupied state to an idle state, wherein the storage address in the idle state allows the request data to be rewritten.
[0105] When requested data is read from a specific storage address in the first storage area, that storage address can be rewritten with new requested data. For example, when requested data is read from a specific storage address in the first storage area, the sender can clear the requested data stored at that address, making it available to store new requested data. The sender can also change the storage address from an occupied state to an idle state, and new data can be written to the idle address, overwriting the original stored data.
[0106] For example, the storage address of the first storage area can be the entry ID of an entry in the first linked list L1. Each entry can store the request data of a request and a tag associated with the storage address of the subsequently sent data.
[0107] For example, each entry in the first linked list L1 includes a valid field, a next-id field, and a payload field. The valid field records whether the entry is idle or occupied. The next-id field records the next entry associated with this entry, and the payload field stores the request data.
[0108] For example, if the valid field is written with 1, the entry is in an occupied state, and the request data stored in the entry has not been read. If the valid field is written with 0, the entry is in an idle state, and the request data stored in the entry has been read, and the entry can be written with new request data.
[0109] Each entry in the first linked list L1 has an entry ID. For example, the entry IDs of multiple entries in the first linked list L1 are numbered 0 to 7, and each entry ID is the address of that entry. The tag field next-id can record the entry ID of the entry containing the request data of the subsequently sent request to the request data of the request data stored in this entry.
[0110] In this embodiment of the disclosure, when it is determined that the target tail identifier and the target head identifier associated with the response identifier are consistent and the target request data has been read, the storage address of the target tail identifier and the target head identifier in the second storage area is changed from occupied to idle. The storage address in the idle state is allowed to be rewritten with request data.
[0111] If, in the second storage area, the target tail identifier and the target head identifier of a certain identifier pair match, and the target request data corresponding to the target head identifier is read, then the request data of the request with the corresponding request identifier of that identifier pair has been completely read. In this case, the identifier pair becomes invalid, and the storage address in the second storage area that records the identifier pair can be rewritten with a new identifier pair.
[0112] For example, the sending end can clear the identifier pair of the storage address record in the second storage area, allowing the storage address to store new request data. The sending end can also change the storage address from an occupied state to an idle state. A new identifier pair can be written to an idle storage address, and the newly written identifier pair can overwrite the original stored identifier pair.
[0113] For example, the storage address of the second storage area can be the entry ID of an entry in the second linked list L2. Each entry can store a header and a tail identifier for a request.
[0114] For example, each entry in the second linked list L2 includes a valid field, a header field, and a tail field. The valid field records whether the entry is idle or occupied. The header field records the first identifier (header), and the tail field records the last identifier (tail).
[0115] For example, if the valid field is written with 1, the entry is in an occupied state. At this time, the identifier pair stored in the entry is valid, and the request data corresponding to the request identifier with that identifier pair has not yet been fully read. If the valid field is written with 0, the entry is in an idle state. At this time, the identifier pair stored in the entry is invalid.
[0116] Each entry in the second linked list L2 has an entry ID. For example, the entry IDs of multiple entries in the second linked list L2 are 0 to 3, and each entry ID is the address of that entry.
[0117] In the embodiments of this disclosure, during request processing, the entry IDs of idle entries in the first linked list L1 and the second linked list L2 may be scattered and discontinuous. The request data associated with the new request identifier is recorded in any idle entry. Without limiting the write address of any request in the first and second storage areas, the request processing method provided by this disclosure can accurately determine the sequential relationship between multiple requests and the target request data corresponding to each returned information.
[0118] The following will combine Figure 5 and Figure 6 The update process of the first and second storage areas during the sending of requests and receiving of return information is illustrated.
[0119] Figure 5 A schematic diagram illustrating a sending request according to an embodiment of the present disclosure is shown.
[0120] like Figure 5 As shown, the first entry of the first linked list L1 has a first entry ID, and the second entry of the second linked list L2 has a second entry ID. The two first entries in the first linked list L1 with IDs 0 and 2 record two request data entries. The second entry in the second linked list L2 with ID 0 can record the identifier pair for the request with request identifier 0.
[0121] In the first linked list L1, the first entry with ID 0 is entry 0, which stores the request data payload0, and its valid field is set to 1. The next-id field of entry 0 also records the ID of the first entry of entry 2. Therefore, entry 0 is unidirectionally associated with entry 2. Entry 2 stores the request data payload1, and its valid field is set to 1. The next-id field of entry 2 records the tag x, which indicates that the request data stored in this entry belongs to the last request.
[0122] In the second linked list L2, the valid field of the second entry 0 is 1, the header identifier is 0, and the tail identifier is 2. Combined with the first linked list L1, it can be seen that the request identifiers of both request data payload0 and request data payload1 are request identifier 0.
[0123] Upon receiving a request with request identifier req_id as request identifier 2, the sender writes the request data payload2 into the first idle entry 1 of the first linked list L1. Since the second linked list L2 does not record the identifier pair corresponding to request identifier 2, the sender records the corresponding identifier pair in the second entry 2 of the second linked list L2, with both the header and tail identifiers being the entry ID of the first entry 1. Because this request is the last request corresponding to the newly added request identifier, the tag x is recorded in the next-id field of the first entry 1.
[0124] Upon receiving a request with request identifier req_id of request identifier 0, the sender writes the request data payload3 into the first idle entry 3 of the first linked list L1. Since the second linked list L2 records the identifier pair corresponding to request identifier 0, the sender updates the tail identifier of the identifier pair recorded in the second entry 2 of the second linked list L2 with the entry ID of the first entry 3. Furthermore, the sender also updates the next-id field of the second entry 2 with the entry ID of the first entry 3.
[0125] Figure 6 A schematic diagram illustrating the receipt of returned information according to an embodiment of the present disclosure is shown. Figure 6 The information recorded in the first linked list L1 and the second linked list L2 can be referenced. Figure 5 For the sake of brevity, similar parts will not be repeated.
[0126] like Figure 6 As shown, when a return message with the return identifier rsp_id set to return identifier 0 is received, the sending end determines the first identifier header as 0 in the second entry 0 of the second linked list L2, and reads the request data payload0 from the first entry 0.
[0127] If the sending end has already read the request data payload0, it modifies the valid field of the first entry 0 to 0, at which point the first entry 0 is in an idle state. Since the first entry ID recorded in the next-i field of the first entry 0 is 2, the sending end also updates the header of the first entry 0 of the second linked list L2 to 2.
[0128] Upon receiving a return message with the return identifier rsp_id set to return identifier 2, the sending end determines the first identifier header as 1 in the second entry 2 of the second linked list L2, and reads the request data payload2 from the first entry 1.
[0129] If the sending end has already read the request data payload2, it modifies the valid field of the first entry 1 to 0, at which point the first entry 1 is in an idle state. Since the header and tail identifiers in the second entry 2 are the same, the sending end also modifies the valid field of the second entry 2 of the second linked list L2 to 0, at which point the second entry 2 is in an idle state.
[0130] Based on the request processing method provided in this disclosure, this disclosure also provides a request processing apparatus. The following will be combined with... Figure 7 The device is described in detail.
[0131] Figure 7 A block diagram of a request processing apparatus according to an embodiment of the present disclosure is shown schematically.
[0132] like Figure 7 As shown, the request processing device 700 may include: a first writing module 710, a first updating module 720, and a reading module 730.
[0133] The first write module 710 is used to write the currently sent request data to a first address in the first storage area. The first storage area is used to store request data for multiple sent requests, and the storage addresses of request data for multiple sent requests with the same request identifier are associated.
[0134] The first update module 720 is used to update the tail identifier associated with the current request identifier to the first address when it is determined that the second storage area has already stored the current request identifier. The second storage area stores the start identifier and the tail identifier representing the association relationship.
[0135] The read module 730 is configured to, in response to receiving return information for a sent request, read the target request data for the return information from the first storage area based on the storage address indicated by the target header address. The target header address is a header in the second storage area associated with the return identifier of the return information.
[0136] According to an embodiment of this disclosure, the request processing apparatus 700 further includes a first determining module, configured to associate a marker of the storage address indicated by the tail identifier associated with the current request identifier in the first storage area with a first address when it is determined that the second storage area has stored the current request identifier.
[0137] According to embodiments of this disclosure, the request processing apparatus 700 further includes a second determining module, configured to determine a second address associated with the storage address tag of the target request data from a first storage area when the target request data has been read; and a second updating module, configured to update the target header identifier to the second address.
[0138] According to an embodiment of this disclosure, the request processing apparatus 700 further includes a second writing module, configured to write a first address into the second storage area when it is determined that the second storage area does not store the current request identifier, and to use the first address as a start identifier and a tail identifier associated with the current request identifier.
[0139] According to an embodiment of this disclosure, the request processing apparatus 700 further includes a first adjustment module, configured to adjust the storage address of the target request data from an occupied state to an idle state when the target request data has been read, wherein the storage address in the idle state allows the request data to be rewritten.
[0140] According to an embodiment of this disclosure, the request processing apparatus 700 further includes a second adjustment module, configured to adjust the storage address of the target tail identifier and the target head identifier in the second storage area from an occupied state to an idle state when it is determined that the target tail identifier and the target head identifier associated with the response identifier are consistent and the target request data has been read, wherein the storage address in the idle state allows the request data to be rewritten.
[0141] Based on the data display method provided in this disclosure, this disclosure also provides a request processing device. The following will be combined with... Figure 8 The device is described in detail.
[0142] Figure 8 This is a structural block diagram of a data display device according to an embodiment of the present disclosure.
[0143] like Figure 8 As shown, the request processing device 800 of this embodiment includes a data processing unit 810. The data processing unit 810 can be a processor of any embodiment of this disclosure. For example, the request processing device 800 may include, for example, a processor such as... Figure 1 The data processing device 100 shown or such Figure 2 The data processing device 200 is shown. For example, the request processing device 800 can be a chip.
[0144] According to embodiments of this disclosure, the request processing device 800 can be a processor. Any plurality of modules in the request processing device 800 can be combined into one module, or any one of the modules can be split into multiple modules. Alternatively, at least a portion of the functionality of one or more of these modules can be combined with at least a portion of the functionality of other modules and implemented in one module. According to embodiments of this disclosure, at least one of the request processing devices 800 can be at least partially implemented as hardware circuitry, 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-package, an application-specific integrated circuit (ASIC), or any other reasonable means of integrating or packaging circuitry, or implemented in software, hardware, or firmware, or in any suitable combination of any of these three implementation methods. Alternatively, at least one of the chips 800 can be at least partially implemented as a computer program module, which, when run, can perform corresponding functions.
[0145] According to embodiments of this disclosure, this disclosure also provides an electronic device, a readable storage medium, and a computer program product.
[0146] According to an embodiment of the present disclosure, an electronic device includes: at least one processor; and a memory communicatively connected to the at least one processor; wherein the memory stores instructions executable by the at least one processor, the instructions being executed by the at least one processor to enable the at least one processor to perform the method described above.
[0147] According to embodiments of the present disclosure, a non-transitory computer-readable storage medium stores computer instructions, wherein the computer instructions are used to cause a computer to perform the methods described above.
[0148] According to an embodiment of this disclosure, a computer program product includes a computer program that, when executed by a processor, implements the method described above.
[0149] Figure 9 A schematic block diagram of an example electronic device 900 that can be used to implement embodiments of the present disclosure is shown. The electronic device is intended to represent various forms of digital computers, such as laptop computers, desktop computers, workstations, personal digital assistants, servers, blade servers, mainframe computers, and other suitable computers. The electronic device may also represent various forms of mobile devices, such as personal digital processors, cellular phones, smartphones, wearable devices, and other similar computing devices. The components shown herein, their connections and relationships, and their functions are merely illustrative and are not intended to limit the implementation of the present disclosure described and / or claimed herein.
[0150] like Figure 9 As shown, the electronic device 900 includes a computing unit 901, which can perform various appropriate actions and processes according to a computer program stored in a read-only memory (ROM) 902 or a computer program loaded from a storage unit 908 into a random access memory (RAM) 903. The RAM 903 may also store various programs and data required for the operation of the device 900. The computing unit 901, ROM 902, and RAM 903 are interconnected via a bus 904. An input / output (I / O) interface 905 is also connected to the bus 904.
[0151] Multiple components in electronic device 900 are connected to I / O interface 905, including: input unit 906, such as keyboard, mouse, etc.; output unit 907, such as various types of displays, speakers, etc.; storage unit 908, such as disk, optical disk, etc.; and communication unit 909, such as network card, modem, wireless transceiver, etc. Communication unit 909 allows electronic device 900 to exchange information / data with other devices through computer networks such as the Internet and / or various telecommunications networks.
[0152] The computing unit 901 can be a variety of general-purpose and / or special-purpose processing components with processing and computing capabilities. Some examples of the computing unit 901 include, but are not limited to, a central processing unit (CPU), a graphics processing unit (GPU), various special-purpose artificial intelligence (AI) computing chips, various computing units running machine learning model algorithms, a digital signal processor (DSP), and any suitable processor, controller, microcontroller, etc. The computing unit 901 performs the various methods and processes described above, such as request processing methods. For example, in some embodiments, the request processing method may be implemented as a computer software program tangibly contained in a machine-readable medium, such as storage unit 908. In some embodiments, part or all of the computer program may be loaded and / or installed on the electronic device 900 via ROM 902 and / or communication unit 909. When the computer program is loaded into RAM 803 and executed by the computing unit 801, one or more steps of the request processing method described above may be performed. Alternatively, in other embodiments, the computing unit 801 may be configured to perform request processing methods by any other suitable means (e.g., by means of firmware).
[0153] Various embodiments of the systems and techniques described above herein can be implemented in digital electronic circuit systems, integrated circuit systems, field-programmable gate arrays (FPGAs), application-specific integrated circuits (ASICs), application-specific standard products (ASSPs), systems-on-a-chip (SoCs), complex programmable logic devices (CPLDs), computer hardware, firmware, software, and / or combinations thereof. These various embodiments may include implementations in one or more computer programs that can be executed and / or interpreted on a programmable system including at least one programmable processor, which may be a dedicated or general-purpose programmable processor, capable of receiving data and instructions from a storage system, at least one input device, and at least one output device, and transmitting data and instructions to the storage system, the at least one input device, and the at least one output device.
[0154] The program code used to implement the methods of this disclosure may be written in any combination of one or more programming languages. This program code may be provided to a processor or controller of a general-purpose computer, special-purpose computer, or other programmable data processing apparatus, such that when executed by the processor or controller, the program code causes the functions / operations specified in the flowcharts and / or block diagrams to be implemented. The program code may be executed entirely on a machine, partially on a machine, as a standalone software package partially on a machine and partially on a remote machine, or entirely on a remote machine or server.
[0155] In the context of this disclosure, a machine-readable medium can be a tangible medium that may contain or store a program for use by or in conjunction with an instruction execution system, apparatus, or device. A machine-readable medium can be a machine-readable signal medium or a machine-readable storage medium. A machine-readable medium can be, but is not limited to, electronic, magnetic, optical, electromagnetic, infrared, or semiconductor systems, apparatus, or devices, or any suitable combination of the foregoing. More specific examples of machine-readable storage media include electrical connections based on one or more wires, portable computer disks, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), optical fiber, portable compact disk read-only memory (CD-ROM), optical storage devices, magnetic storage devices, or any suitable combination of the foregoing.
[0156] To provide interaction with a user, the systems and techniques described herein can be implemented on a computer having: a display device for displaying information to the user (e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor); and a keyboard and pointing device (e.g., a mouse or trackball) through which the user provides input to the computer. Other types of devices can also be used to provide interaction with the user; for example, feedback provided to the user can be any form of sensory feedback (e.g., visual feedback, auditory feedback, or tactile feedback); and input from the user can be received in any form (including sound input, voice input, or tactile input).
[0157] The systems and technologies described herein can be implemented in computing systems that include backend components (e.g., as a data server), or computing systems that include middleware components (e.g., an application server), or computing systems that include frontend components (e.g., a user computer with a graphical user interface or web browser through which a user can interact with implementations of the systems and technologies described herein), or any combination of such backend, middleware, or frontend components. The components of the system can be interconnected via digital data communication of any form or medium (e.g., a communication network). Examples of communication networks include local area networks (LANs), wide area networks (WANs), and the Internet.
[0158] Computer systems can include clients and servers. Clients and servers are generally located far apart and typically interact via communication networks. Client-server relationships are created by computer programs running on the respective computers and having a client-server relationship with each other. Servers can be cloud servers, distributed system servers, or servers incorporating blockchain technology.
[0159] It should be understood that the various forms of processes shown above can be used to rearrange, add, or delete steps. For example, the steps described in this disclosure can be executed in parallel, sequentially, or in different orders, as long as the desired result of the technical solution disclosed in this disclosure can be achieved, and this is not limited herein.
[0160] The specific embodiments described above do not constitute a limitation on the scope of protection of this disclosure. Those skilled in the art should understand that various modifications, combinations, sub-combinations, and substitutions can be made according to design requirements and other factors. Any modifications, equivalent substitutions, and improvements made within the spirit and principles of this disclosure should be included within the scope of protection of this disclosure.
Claims
1. A request processing method, comprising: The current request data is written to the first address of the first storage area, wherein the first storage area is used to store the request data of the sent request, and the storage addresses of the request data of multiple sent requests with the same request identifier are associated. If it is determined that the second storage area already stores the current request identifier, the tail identifier associated with the current request identifier is updated to the first address, wherein the second storage area stores a start identifier and a tail identifier representing the association; and In response to receiving a return information for the sent request, target request data for the return information is read from the first storage area based on the storage address indicated by the target first identifier, wherein the target first identifier is a first identifier associated with the return identifier of the return information in the second storage area.
2. The method according to claim 1, wherein, The association includes: for multiple sent requests with the same request identifier, the storage address tag of the request data of the earlier sent request is associated with the storage address of the request data of the later sent request.
3. The method according to claim 1 or 2, further comprising: If it is determined that the current request identifier has been stored in the second storage area, the tag of the storage address indicated by the tail identifier associated with the current request identifier in the first storage area is associated with the first address.
4. The method according to claim 1 or 2, further comprising: If the target request data has been read, determine a second address associated with the storage address tag of the target request data from the first storage area; as well as Update the target identifier to the second address.
5. The method according to claim 1, further comprising: If it is determined that the second storage area does not store the current request identifier, the first address is written into the second storage area, and the first address is used as the first identifier and the last identifier associated with the current request identifier.
6. The method according to claim 1, further comprising: If the target request data has been read, the storage address of the target request data is changed from occupied to idle, wherein the storage address in the idle state is allowed to be rewritten with request data.
7. The method according to claim 1, further comprising: If it is determined that the target tail identifier and the target head identifier associated with the response identifier are consistent and the target request data has been read, the storage addresses of the target tail identifier and the target head identifier in the second storage area are changed from occupied to idle, wherein the storage addresses in the idle state are allowed to be rewritten with request data.
8. A request processing apparatus, comprising: The first writing module is used to write the sent current request data to the first address of the first storage area, wherein the first storage area is used to store the request data of multiple sent requests, and the storage addresses of the request data of multiple sent requests with the same request identifier are associated. The first update module is used to update the tail identifier associated with the current request identifier to the first address when it is determined that the second storage area has stored the current request identifier. The second storage area stores the head identifier and the tail identifier representing the association relationship. The reading module is configured to, in response to receiving return information for the sent request, read target request data for the return information from the first storage area based on the storage address indicated by the target first identifier, wherein the target first identifier is a header in the second storage area associated with the return identifier of the return information.
9. The apparatus according to claim 8, further comprising: The first determining module is configured to, when determining that the second storage area has stored the current request identifier, associate the tag of the storage address indicated by the tail identifier associated with the current request identifier in the first storage area with the first address.
10. The apparatus of claim 8, further comprising: The second determining module is configured to determine, in the case that the target request data has been read, a second address associated with the storage address tag of the target request data from the first storage area; as well as The second update module is used to update the target first identifier to the second address.
11. The apparatus of claim 8, further comprising: The second write module is used to write the first address into the second storage area when it is determined that the second storage area does not store the current request identifier, and to use the first address as the first identifier and the last identifier associated with the current request identifier.
12. The apparatus according to claim 8, further comprising: The first adjustment module is used to adjust the storage address of the target request data from an occupied state to an idle state when the target request data has been read, wherein the storage address in the idle state allows the request data to be rewritten.
13. The apparatus of claim 8, wherein the apparatus comprises: The second adjustment module is used to adjust the storage addresses of the target tail identifier and the target head identifier in the second storage area from occupied to idle when it is determined that the target tail identifier and the target head identifier associated with the response identifier are consistent and the target request data has been read. The storage addresses in the idle state are allowed to be rewritten with request data.
14. A request processing device, comprising: The request processing apparatus according to any one of claims 9 to 12.
15. An electronic device comprising: At least one processor; as well as A memory communicatively connected to the at least one processor; wherein, The memory stores instructions that can be executed by the at least one processor to enable the at least one processor to perform the method of any one of claims 1 to 7.
16. A non-transitory computer-readable storage medium storing computer instructions, wherein, The computer instructions are used to cause the computer to perform the method according to any one of claims 1 to 7.
17. A computer program product comprising a computer program that, when executed by a processor, implements the method according to any one of claims 1 to 7.