Legal claims defining the scope of protection, as filed with the USPTO.
1. A processor, comprising: a reorder buffer circuit configured to track a plurality of operations and to provide a retire pointer indicating an oldest operation of the plurality of operations that has not been retired from the reorder buffer circuit; a plurality of functional unit circuits individually configured to independently execute respective operations of the plurality of operations tracked in the reorder buffer circuit; and a livelock resolution circuit comprising a counter configured to reset when the oldest operation indicated by the retire pointer of the reorder buffer circuit changes from one operation to another operation, wherein the livelock resolution circuit is configured to: determine if a value in the counter of the livelock resolution circuit exceeds a threshold value; and responsive to a determination that the value in the counter exceeds the threshold value: cause a plurality of stop signals to be sent respectively to the plurality of functional unit circuits to stop the plurality of functional unit circuits from executing operations; and cause a particular signal to be sent to a first functional unit circuit of the stopped plurality of functional unit circuits to execute only the oldest operation indicated by the retire pointer of the reorder buffer circuit.
2. The processor of claim 1, wherein the livelock resolution circuit is further configured to: receive one or more status signals respectively from the plurality of functional unit circuits indicating status of execution of the oldest operation indicated by the retire pointer at the plurality of functional unit circuits.
3. The processor of claim 2, wherein one of the one or more status signals received from one of the plurality of functional unit circuits indicates that (1) execution of the oldest operation is completed at the one of the plurality of functional unit circuits, or (2) the oldest operation does not exist in the one of the plurality of functional unit circuits.
4. The processor of claim 1, wherein the oldest operation indicated by the retire pointer corresponds to a plurality of microoperations, wherein the particular signal is one of a plurality of signals including a first signal and a second signal, and wherein the livelock resolution circuit is further configured to: identify a first microoperation of the plurality of microoperations that is indicated by the retire pointer and a sub-index; cause the first signal to be sent to the first functional unit circuit to execute the identified first microoperation; receive a status signal from the first functional unit circuit indicating status of execution of the identified first microoperation at the first functional unit circuit; update the sub-index; identify a second microoperation of the plurality of microoperations that is indicated by the retire pointer and the updated sub-index; and cause the second signal to be sent to a second functional unit circuit of the plurality of functional unit circuits to execute the second microoperation.
5. The processor of claim 1, wherein the oldest operation indicated by the retire pointer corresponds to a plurality of microoperations to be executed in combination, and wherein the livelock resolution circuit is further configured to: identify a microoperation of the plurality of microoperations that is indicated by the retire pointer and a sub-index; cause the particular signal to be sent to the first functional unit circuit to execute the identified microoperation; update the sub-index; identify one or more additional microoperations of the plurality of microoperations indicated by the retire pointer and the updated sub-index; cause one or more additional signals to be sent respectively to at least a portion of the plurality of functional unit circuits to execute the one or more additional microoperations; and until after an additional signal of the one or more additional signals is sent to a second functional unit circuit of the plurality of functional unit circuits to execute a last one of the one or more additional microoperations, receive one or more status signals respectively from the at least a portion of the plurality of functional unit circuits indicating status of execution of the one or more additional microoperations at the at least a portion of the plurality of functional unit circuits.
6. The processor of claim 1, wherein the plurality of functional unit circuits comprise an integer execution unit, a floating point execution unit, and a load/store unit, wherein individual ones of the plurality of functional unit circuits include a reservation station, and wherein the plurality of stop signals sent respectively to the plurality of functional unit circuits to stop the plurality of functional unit circuits from executing operations and the particular signal sent to the first functional unit circuit to execute only the oldest operation are sent to respective reservation stations of the individual ones of the plurality of functional unit circuits.
7. The processor of claim 1, wherein the livelock resolution circuit is further configured to: increment the value in the counter of the livelock resolution circuit; receive at least one signal from at least one of the plurality of functional unit circuits to pause the increment of the value in the counter; and responsive to receiving the at least one signal, pause the increment of the value in the counter.
8. The processor of claim 7, wherein the at least one signal indicates that an operation of the plurality of operations tracked in the reorder buffer circuit requires time to be executed that is longer than a specified duration of time.
9. The processor of claim 1, wherein the oldest operation indicated by the retire pointer corresponds to an interrupt request, and wherein the processor is configured to serve the interrupt request.
10. The processor of claim 1, wherein the livelock resolution circuit is further configured to: prior to causing the particular signal to be sent to the first functional unit circuit to execute only the oldest operation, receive a signal from one of the plurality of functional unit circuits indicating that load/store operations older than the oldest operation indicated by the retire pointer of the reorder buffer circuit have been executed at the one of the plurality of functional unit circuits.
11. A method, comprising: determining, using a livelock resolution circuit, if a value in a counter of the livelock resolution circuit exceeds a threshold value, wherein the value in the counter of the livelock resolution circuit resets to zero when a retire pointer of a reorder buffer circuit indicating an oldest operation moves from one operation to another operation; and in response to determining that the value in the counter exceeds the threshold value: instructing, by the livelock resolution circuit, a plurality of stop signals to be sent respectively to a plurality of functional unit circuits to stop the plurality of functional unit circuits from executing operations; and instructing, by the livelock resolution circuit, a particular signal to be sent to a first functional unit circuit of the stopped plurality of functional unit circuits to execute only the oldest operation indicated by the retire pointer of the reorder buffer circuit.
12. The method of claim 11, further comprising: receiving, at the livelock resolution circuit, a status signal from the first functional unit circuit indicating status of execution of the oldest operation indicated by the retire pointer at the first functional unit circuit.
13. The method of claim 12, wherein the status signal received from the first functional unit circuit indicates that (1) execution of the oldest operation is completed at the first functional unit circuit, or (2) the oldest operation does not exist in the first functional unit circuit.
14. The method of claim 11, wherein the oldest operation indicated by the retire pointer corresponds to a plurality of microoperations, wherein the particular signal is one of a plurality of signals including a first signal and a second signal, and wherein the method further comprises: identifying a first microoperation of the plurality of microoperations that is indicated by the retire pointer and a sub-index; instructing the first signal to be sent to the first functional unit circuit to execute the identified first microoperation; receiving a status signal from the first functional unit circuit indicating status of execution of the identified first microoperation at the first functional unit circuit; incrementing the sub-index; identifying a second microoperation of the plurality of microoperations that is indicated by the retire pointer and the incremented sub-index; and instructing the second signal to be sent to a second functional unit circuit of the plurality of functional unit circuits to execute the second microoperation.
15. The method of claim 11, wherein the oldest operation indicated by the retire pointer corresponds to a plurality of microoperations to be executed in combination, and wherein the method further comprises: identifying a microoperation of the plurality of microoperations that is indicated by the retire pointer and a sub-index; instructing the particular signal to be sent to the first functional unit circuit to execute the identified microoperation; incrementing the sub-index; identifying one or more additional microoperations of the plurality of microoperations indicated by the retire pointer and the incremented sub-index; instructing one or more additional signals to be sent respectively to at least a portion of the plurality of functional unit circuits to execute the one or more additional microoperations; and until after an additional signal of the one or more additional signals is sent to a second functional unit circuit of the plurality of functional unit circuits to execute a last one of the plurality of microoperations, receiving one or more status signals respectively from the at least a portion of the plurality of functional unit circuits indicating status of execution of the one or more additional microoperations at the at least a portion of the plurality of functional unit circuits.
16. The method of claim 11, wherein the plurality of functional unit circuits include an integer execution unit, a floating point execution unit, and a load/store unit, wherein individual ones of the plurality of functional unit circuits, including the first functional unit circuit, include a reservation station, wherein the plurality of stop signals sent respectively to the plurality of functional unit circuits to stop the plurality of functional unit circuits from executing operations are sent respectively to respective reservation stations of the individual ones of the plurality of functional unit circuits, and wherein the particular signal sent to the first functional unit circuit to execute only the oldest operation is sent to the reservation station of the first functional unit circuit.
17. The method of claim 11, further comprising: incrementing the value in the counter of the livelock resolution circuit; receiving at least one signal from at least one of the plurality of functional unit circuits to pause the incrementing of the value in the counter; and in response to receiving the at least one signal, pausing the incrementing of the value in the counter.
18. The method of claim 11, further comprising: prior to instructing the particular signal to be sent to the first functional unit circuit to execute only the oldest operation, receiving a signal from one of the plurality of functional unit circuits indicating that load/store operations older than the oldest operation indicated by the retire pointer of the reorder buffer circuit have been executed at the one of the plurality of functional unit circuits.
19. A system, comprising: a processor comprising: a reorder buffer circuit configured to track a plurality of operations and to provide a retire pointer indicating an oldest operation of the plurality of operations that has not been retired from the reorder buffer circuit; a plurality of functional unit circuits individually configured to independently execute respective operations of the plurality of operations tracked in the reorder buffer circuit; and a livelock resolution circuit comprising a counter configured to reset when the oldest operation indicated by the retire pointer of the reorder buffer circuit changes from one operation to another operation, wherein the livelock resolution circuit is configured to: determine if a value in the counter of the livelock resolution circuit exceeds a threshold value; and responsive to a determination that the value in the counter exceeds the threshold value: cause a plurality of stop signals to be sent respectively to the plurality of functional unit circuits to stop the plurality of functional unit circuits from executing operations; and cause a first signal to be sent to a first functional unit circuit of the stopped plurality of functional unit circuits to execute only the oldest operation indicated by the retire pointer of the reorder buffer circuit; and receive a status signal from the first functional unit circuit indicating status of execution of the oldest operation indicated by the retire pointer at the first functional unit circuit.
20. The system of claim 19, wherein the oldest operation indicated by the retire pointer corresponds to a plurality of microoperations, and wherein to cause the first signal to be sent to the first functional unit circuit to execute only the oldest operation, the livelock resolution circuit is configured to: identify one of the plurality of microoperations that is indicated by the retire pointer and a sub-index; cause the first signal to be sent to the first functional unit circuit to execute the identified microoperation; receive a status signal from the first functional unit circuit indicating status of execution of the identified microoperation at the first functional unit circuit; update the sub-index; identify a next microoperation of the plurality of microoperations that is indicated by the retire pointer and the updated sub-index; and cause an additional signal to be sent to another functional unit circuit to execute the next microoperation.
Unknown
May 20, 2025
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.