System and method for independent synchronous and asynchronous transaction requests
AssigneeJuniper Networks, Inc.
InventorsJeffrey G. Libby, Jean-Marc Frailong, Avanindra Godbole, Sharada Yeluri, Anurag P. Gupta, John Keen
Life of this patent
Estimating the term…
Abstract
Systems and methods of various embodiments provide mechanisms to support synchronous and asynchronous transactions. Distinct encodings allow an instruction to choose whether to perform any operation synchronously or asynchronously. Separate synchronous and asynchronous result registers hold the data returned in the most recent replies received for synchronous and asynchronous transaction requests, respectively. A status bit indicates whether an asynchronous transaction request is currently outstanding.
Claims19
A method comprising:
- sending, by a data processing system, a transaction request for a transaction,
- the transaction request comprising an indicator that indicates whether the transaction is synchronous or asynchronous,
- the transaction being processed based on the indicator included in the transaction request,
- the transaction request further comprising a thread identifier of a thread associated with the transaction request, and
- the thread being associated with a synchronous result register and an asynchronous result register;
- receiving, by the data processing system, a transaction reply for the transaction,
- the transaction reply comprising the indicator and the thread identifier;
- determining, by the data processing system, whether the transaction is synchronous or asynchronous based on the indicator that is included in the transaction reply;
- determining, by the data processing system, that the transaction reply includes an error message that indicates that an error occurred during a processing of the transaction;
- and
- placing, by the data processing system and based on the thread identifier, the error message into the synchronous result register when the transaction is synchronous,
- the error message being a result of synchronous processing of the transaction when the transaction is synchronous, and
- the data processing system placing the error message into the asynchronous result register when the transaction is asynchronous.
A non-transitory computer-readable medium comprising:
- one or more instructions that, when executed by at least one processor, cause the at least one processor to:
- send a request for a transaction,
- the request comprising an indicator and a thread identifier of a thread associated with the request,
- the indicator indicating that the transaction is synchronous or asynchronous,
- the transaction being processed based on the indicator, and
- the thread being associated with a synchronous result register and an asynchronous result register;
- receive a reply for the transaction,
- the reply comprising the indicator and the thread identifier;
- determine that the transaction is synchronous based on the indicator included in the reply;
- determine that the reply includes an error message that indicates that an error occurred during a processing of the transaction;
- and
- store, based on the thread identifier, the error message in the synchronous result register associated with the thread.
A network device comprising:
- one or more hardware-implemented processors to:
- initiate a transaction with one or more functional components by sending a transaction request for the transaction to the one or more functional components,
- the transaction request comprising an indicator that indicates whether the transaction is synchronous or asynchronous,
- the transaction being processed by the one or more functional components based on the indicator,
- the transaction request including a thread identifier of a thread associated with the transaction request, and
- the thread being associated with a synchronous result register and an asynchronous result register;
- receive a reply, for the transaction, from the one or more functional components,
- the reply comprising the indicator and the thread identifier;
- determine whether the transaction is asynchronous based on the indicator;
- determine that the reply includes an error message that indicates that an error occurred during a processing of the transaction;
- and
- store, based on the thread identifier, the error message in the asynchronous result register associated with the thread when the transaction is asynchronous.
A device comprising:
- one or more hardware-implemented processors to:
- indicate within a transaction request, for a transaction, that the transaction is synchronous,
- the transaction request including a thread identifier of a thread associated with the transaction, and
- the thread being associated with a synchronous result register and an asynchronous result register;
- send the transaction request to a functional component,
- the transaction being synchronously processed by the functional component based on the indicator;
- receive a transaction reply, for the transaction, from the functional component,
- the transaction reply including the indicator and the thread identifier;
- determine that the transaction is synchronous based on the indicator included in the transaction reply;
- determine that the transaction reply includes an error message that indicates that an error occurred during a processing of the transaction;
- determine the thread associated with the transaction based on the thread identifier included in the transaction reply;
- and
- load, based on the thread identifier and after determining that the transaction is synchronous, the error message into the synchronous result register of the thread.
Dependencies are inferred from the claim text.