Determining timeout values for computing systems
First Claim
Patent Images
1. An integrated circuit, comprising:
- an initiator configured to send commands to a plurality of destinations; and
a timer engine configured to;
for the initiator, measure a respective time delay for each of a plurality of routes between the initiator and the plurality of destinations, wherein the respective time delay indicates a time period from when the initiator sends a command to one of the plurality of destinations to when the initiator receives a corresponding response;
for each of the plurality of routes, determine a respective timeout value based on the measured respective time delay for the route;
for each of the plurality of routes, determine a unique memory mapped address identifying the route; and
wherein the initiator is further configured to;
upon determining to send a command to one of the plurality of destinations, send a request to the timer engine for a timeout value, wherein the request includes a memory address for an operation;
receive the requested timeout value from the timer engine; and
after sending the command to the destination, determine whether a response to the command is received within a time period indicated by the received timeout value.
1 Assignment
0 Petitions
Accused Products
Abstract
A Local Timer Engine (LTE) is disclosed. For an initiator in a computing system, the LTE measures a respective time delay for each of a plurality of routes between the initiator and a plurality of destinations. For each of the plurality of routes, the LTE determines a respective timeout value based on the measured respective time delay for the route and determines a unique memory mapped address identifying the route. The initiator sends a request to the LTE for a timeout value. The LTE determines a proper timeout value and provides the proper timeout value to the initiator.
14 Citations
20 Claims
-
1. An integrated circuit, comprising:
-
an initiator configured to send commands to a plurality of destinations; and a timer engine configured to; for the initiator, measure a respective time delay for each of a plurality of routes between the initiator and the plurality of destinations, wherein the respective time delay indicates a time period from when the initiator sends a command to one of the plurality of destinations to when the initiator receives a corresponding response; for each of the plurality of routes, determine a respective timeout value based on the measured respective time delay for the route; for each of the plurality of routes, determine a unique memory mapped address identifying the route; and wherein the initiator is further configured to; upon determining to send a command to one of the plurality of destinations, send a request to the timer engine for a timeout value, wherein the request includes a memory address for an operation; receive the requested timeout value from the timer engine; and after sending the command to the destination, determine whether a response to the command is received within a time period indicated by the received timeout value. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A computing system, comprising:
-
an initiator configured to send commands; a plurality of destinations configured to respond to the commands sent by the initiator;
wherein the initiator is coupled to the plurality of destinations through one or more buses; anda timer engine configured to; for the initiator, measure a respective time delay for each of a plurality of routes between the initiator and the plurality of destinations, wherein the respective time delay indicates a time period from when the initiator sends a command to one of the plurality of destinations to when the initiator receives a corresponding response; for each of the plurality of routes, determine a respective timeout value based on the measured respective time delay for the route; for each of the plurality of routes, determine a unique memory mapped address identifying the route; and wherein the initiator is further configured to; upon determining to send a command to one of the plurality of destinations, send a request to the timer engine for a timeout value, wherein the request includes a memory address for an operation; receive the requested timeout value from the timer engine; and after sending the command to the destination, determine whether a response to the command is received within a time period indicated by the received timeout value. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. A method, comprising:
-
measuring, by a timer engine, a respective time delay for each of a plurality of routes between an initiator and a plurality of destinations, wherein the respective time delay indicates a time period from when the initiator sends a command to one of the plurality of destinations to when the initiator receives a corresponding response; for each of the plurality of routes, determining a respective timeout value based on the measured respective time delay for the route; for each of the plurality of routes, determining a unique memory mapped address identifying the route; upon determining to send a command to one of the plurality of destinations, sending, by the initiator, a request to the timer engine for a timeout value, wherein the request includes a memory address for an operation; receiving the requested timeout value from the timer engine; and after sending the command to the destination, determining whether a response to the command is received within a time period indicated by the received timeout value. - View Dependent Claims (16, 17, 18, 19, 20)
-
Specification