IP Library Granted Patent US 7,016,996
Granted Patent B1
US 7,016,996 · App. 10/123,553 · Granted Mar 21, 2006

Method and apparatus to detect a timeout condition for a data item within a process

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,016,996
App. No.
10/123,553
Granted
Mar 21, 2006
Kind
B1
Abstract

A method for detecting a timeout condition for a data item (e.g., a request) within the process (e.g., within an arbitration process) includes maintaining a current time as a first N-bit binary number (A). An event time of an occurrence of an event pertaining to the data item within the process is recorded and stored as a second N-bit binary number (B). A predetermined time limit, expressed as a non-negative integer K, is configured. K is less than N and K is a logarithm base 2 of the predetermined time limit. A timeout condition pertaining to the data item is detected when a difference between the current time and the event time exceeds the predetermined time limit. The detection of the timeout condition is performed utilizing a single-stage operation. This single stage operation may include computing A (current time)−B (event time) modulo 2 n ≧2 k .

Claims (85)

1. A method to detect a timeout condition for a data item within the process, the method including:

maintaining a current time as a first N-bit binary number (A);

recording an event time of an occurrence of an event pertaining to the data item within the process, and storing the event time as a second N-bit binary number (B);

configuring a predetermined time limit expressed as a non-negative integer K, where K is less than N and K is a logarithm base 2 of the predetermined time limit; and

detecting a timeout condition pertaining to the data item when a difference between the current time and the event time exceeds the predetermined time limit,

wherein the detection of the timeout condition is performed as a single-stage operation.

2. The method of claim 1 wherein the single-stage operation is a single O (log 2 n) computation.

3. The method of claim 1 wherein the single-stage operation is performed as a single combinatorial operation.

4. The method of claim 1 wherein, if N>=1 and K=0, the timeout condition is detected if a positive Boolean value results from a first computation (A#B).

5. The method of claim 1 wherein, if N>=2 and K=1, the timeout condition is detected if a positive Boolean value z results from a second computation:

Where:

A=a n-1 a n-2 a n-3 . . . a i . . . a 2 a 1 a 0 .

B=b n-1 b n-2 b n-3 . . . b i . . . b 2 b 1 b 0 ; and

z←((a n-1 {circumflex over (+)}b n-1 ){circumflex over (+)}(α n-2 ·b n-2 ))

|((a n-2 {circumflex over (+)}b n-2 ){circumflex over (+)}(α n-3 ·b n-3 ))

((a n-3 {circumflex over (+)}b n-3 ){circumflex over (+)}({overscore (α)} n-4 ·b n-4 ))

:

|((a i {circumflex over (+)}b i ){circumflex over (+)}({overscore (α)} i-1 ·b i-1 ))

:

|((a 3 {circumflex over (+)}b 3 ){circumflex over (+)}({overscore (α)} 2 ·b 2 ))

|((a 2 {circumflex over (+)}b 2 ){circumflex over (+)}({overscore (α)}·b 1 ))

|((a 1 {circumflex over (+)}b 1 ){circumflex over (+)}({overscore (α)} 0 ·b 0 )).

6. The method of claim 1 wherein, if N>=3 and K=N−1, the timeout condition is detected if a positive Boolean value z results from a third computation:

Where:

A=a n-1 a n-2 a n-3 . . . a i . . . . a 2 a 1 a 0 .

B=b n-1 b n-2 b n-3 . . . b i . . . b 2 b 1 b 0 ; and

z←(a n-1 {circumflex over (+)}b n-1 ){circumflex over (+)}(A[n−2 . . . 0]<B[n−2 . . . 0]).

7. The method of claim 1 wherein, if N>=4 and N−2>=K>=1, the timeout condition is detected if a positive Boolean value z results from a fourth computation:

Where:

A=a n-1 a n-2 a n-3 . . . a i . . . a 2 a 1 a 0 .

B=b n-1 b n-2 b n-3 . . . b i . . . b 2 b 1 b 0 , and

z←(((A[n−1 . . . k]−B[n−1 . . . k]) modulo 2 n-k )≧2)

|((A[n−1 . . . k]≠B[n−1 . . . k]){circumflex over (+)}(A[k−1 . . . 0])).

8. The method of claim 1 wherein the data item comprises a resource request, the process comprises an arbitration process between competing requests.

9. The method of claim 8 wherein the event comprises an arrival of the resource request at an interconnect device, and the event time comprises an interconnect device arrival time of the arrival of the resource request at the interconnect device.

10. The method of claim 9 wherein the event comprises an arrival of the resource request at a resource allocator of an arbiter for the interconnect device, and the event time comprises an allocator arrival time of the arrival of the resource request at the resource allocator.

11. The method of claim 8 wherein the event comprises an arrival of the resource request at the head of a queue within the arbitration process, and the event time comprises a head-of-queue arrival time.

12. A system to detect a timeout condition for a data item within the process, the system including:

a memory to store a current time as a first N-bit binary number (A) and to store an event time as a second N-bit binary number (B), the event time being of the time of an occurrence of an event pertaining to the data item within the process, and

a detector to detect a timeout condition pertaining to the data item when a difference between the current time and the event time exceeds a predetermined time limit,

wherein the predetermined time limit is expressed as a non-negative integer K, where K is less than N and K is a logarithm base 2 of the predetermined time limit, and wherein the detection of the timeout condition is performed as a single-stage operation.

13. The system of claim 12 wherein the single-stage operation is a single O (log 2 n) computation.

14. The system of claim 12 wherein the detect the comprises combination logic, and wherein the single-stage operation is performed as a single combinatorial operation.

15. The system of claim 12 wherein, if N>=1 and K=0, the timeout condition is detected if a positive Boolean value results from a first computation (A≠B).

16. The system of claim 12 wherein, if N>=2 and K=1, the timeout condition is detected if a positive Boolean value results from a second computation:

Where:

A=a n-1 a n-2 a n-3 . . . a i . . . a 2 a 1 a 0 .

B=b n-1 b n-2 b n-3 . . . b i . . . b 2 b 1 b 0 ; and

z←(a n-1 {circumflex over (+)}b n-1 ){circumflex over (+)}({overscore (α)} n-2 ·b n-2 ))

((an n-2 {circumflex over (+)}b n-2 ){circumflex over (+)}({overscore (α)} n-3 ·b n-3 ))

((a n' {circumflex over (+)}b n-3 ){circumflex over (+)}({overscore (α)} n-4 ·b n-4 ))

:

|((a i {circumflex over (+)}b i ){circumflex over (+)}({overscore (α)} i-1  b i-1 ))

:

|(a 3 {circumflex over (+)}b 3 ){circumflex over (+)}({overscore (α)} 2 ·b 2 ))

|((a 2 {circumflex over (+)}b 2 ){circumflex over (+)}({overscore (α)} 1 ·b 1 ))

|((a 2 {circumflex over (+)}b 2 ){circumflex over (+)}({overscore (α)} 0 ·b 0 )).

17. The system of claim 12 wherein, if N>=3 and K=N−1, the timeout condition is detected if a positive Boolean value results from a third computation:

Where:

A=a n-1 a n-2 a n-3 . . . a i . . . a 2 a 1 a 0 .

B=b n-1 b n-2 b n-3 . . . b i . . . b 2 b 1 b 0 ; and

z←(a n-1 {circumflex over (+)}b n-1 ){circumflex over (+)}(A [n−2 . . . 0]<B[n−2 . . . 0]).

18. The system of claim 12 wherein, if N>=4 and N-2>=K>=1, the timeout condition is detected if a positive Boolean value results from a fourth computation:

Where:

A=a n-1 a n-2 a n-3 . . . a i . . . a 2 a 1 a 0 .

B=b n-1 b n-2 b n-3 . . . b i . . . b 2 b 1 b 0 ; and

z←(((A[n−1 . . . k]−B[n−1 . . . k]) modulo 2 n-k )≧2)

|((A[n−1 . . . k]≠B[n−1 . . . k]){circumflex over (+)}(A[k−1 . . . 0]<B[k−1 . . . 0])).

19. The system of claim 12 wherein the data item comprises a resource request, the process comprises an arbitration process between competing requests, and the memory and detector are associated with an arbiter that performs the arbitration process.

20. The system of claim 19 wherein the event comprises an arrival of the resource request at an interconnect device, and the event time comprises an interconnect device arrival time of the arrival of the resource request at the interconnect device.

21. The system of claim 20 wherein the event comprises an arrival of the resource request at a resource allocator of an arbiter for the interconnect device, and the event time comprises an allocator arrival time of the arrival of the resource request at the resource allocator.

22. The system of claim 19 wherein the event comprises an arrival of the resource request at the head of a queue within the arbitration process, and the event time comprises a head-of-queue arrival time.

23. Apparatus to detect a timeout condition for a data item within the process, the system including:

first means for storing a current time as a first N-bit binary number (A) and for storing an event time as a second N-bit binary number (B), the event time being of the time of an occurrence of an event pertaining to the data item within the process, and

second means for detecting a timeout condition pertaining to the data item when a difference between the current time and the event time exceeds a predetermined time limit,

wherein the predetermined time limit is expressed as a non-negative integer K, where K is less than N and K is a logarithm base 2 of the predetermined time limit, and wherein the detection of the timeout condition is performed as a single-stage operation.

24. A machine-readable medium storing a description of a circuit, said circuit comprising:

a memory to store a current time as a first N-bit binary number (A) and to store an event time as a second N-bit binary number (B), the event time being of the time of an occurrence of an event pertaining to the data item within the process, and

a detector to detect a timeout condition pertaining to the data item when a difference between the current time and the event time exceeds a predetermined time limit,

wherein the predetermined time limit is expressed as a non-negative integer K, where K is less than N and K is a logarithm base 2 of the predetermined time limit, and wherein the detection of the timeout condition is performed as a single-stage operation.

25. The machine-readable medium of claim 24 wherein the description comprises a behavioral level description of the circuit.

26. The machine-readable medium of claim 25 wherein the behavioral level description is compatible with a VHDL format.

27. The machine-readable medium of claim 25 wherein the behavioral level description is compatible with a Verilog format.

28. The machine-readable medium of claim 24 wherein the description comprises a register transfer level netlist.

29. The machine-readable medium of claim 24 wherein the description comprises a transistor level netlist.

Assignments (14)
RELEASE OF SECURITY INTEREST Recorded May 29, 2018
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: MICROSEMI STORAGE SOLUTIONS, INC.; MICROSEMI STORAGE SOLUTIONS (U.S.), INC.
Reel/Frame 046251/0271 →
CHANGE OF NAME Recorded Jun 16, 2017
From: MICROSEMI STORAGE SOLUTIONS (U.S.), INC.
To: MICROSEMI SOLUTIONS (U.S.), INC.
Reel/Frame 042836/0046 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE NAME PREVIOUSLY RECORDED AT REEL: 017206 FRAME: 0666. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded May 6, 2016
From: AGILENT TECHNOLOGIES, INC.
To: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Reel/Frame 038632/0662 →
CHANGE OF NAME Recorded Mar 22, 2016
From: PMC-SIERRA US, INC.
To: MICROSEMI STORAGE SOLUTIONS (U.S.), INC.
Reel/Frame 038213/0291 →
PATENT SECURITY AGREEMENT Recorded Feb 3, 2016
From: MICROSEMI STORAGE SOLUTIONS, INC. (F/K/A PMC-SIERRA, INC.); MICROSEMI STORAGE SOLUTIONS (U.S.), INC. (F/K/A PMC-SIERRA US, INC.)
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 037689/0719 →
RELEASE OF SECURITY INTEREST Recorded Feb 1, 2016
From: BANK OF AMERICA, N.A.
To: PMC-SIERRA, INC.; PMC-SIERRA US, INC.; WINTEGRA, INC.
Reel/Frame 037675/0129 →
SECURITY INTEREST IN PATENTS Recorded Aug 6, 2013
From: PMC-SIERRA, INC.; PMC-SIERRA US, INC.; WINTEGRA, INC.
To: BANK OF AMERICA, N.A.
Reel/Frame 030947/0710 →
MERGER Recorded Jan 22, 2010
From: PALAU ACQUISITION CORPORATION
To: PMC-SIERRA US, INC.
Reel/Frame 023832/0744 →
CORRECTIVE ASSIGNMENT TO CORRECT THE THE EFFECTIVE DATE FROM MARCH 1, 2006 TO JANUARY 2, 2007 PREVIOUSLY RECORDED ON REEL 018184 FRAME 0063. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT OF ASSIGNOR'S INTEREST (SEE DOCUMENT FOR DETAILS). Recorded Jun 28, 2007
From: AVAGO TECHNOLOGIES STORAGE IP (SINGAPORE) PTE. LTD.
To: PALAU ACQUISITION CORPORATION (DELAWARE)
Reel/Frame 019492/0584 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 29, 2006
From: AVAGO TECHNOLOGIES STORAGE IP (SINGAPORE) PTE. LTD.
To: PALAU ACQUISITION CORPORATION (DELAWARE)
Reel/Frame 018184/0063 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 25, 2006
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES STORAGE IP (SINGAPORE) PTE. LTD.
Reel/Frame 017675/0497 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 22, 2006
From: AGILENT TECHNOLOGIES, INC.
To: AVAGO TECHNOLOGIES GENERAL IP PTE. LTD.
Reel/Frame 017206/0666 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 29, 2003
From: REDSWITCH, INC.
To: AGLIENT TECHNOLOGIES INC.
Reel/Frame 014089/0055 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 15, 2002
From: SCHOBER, RICHARD L.
To: REDSWITCH, INC.
Reel/Frame 012815/0373 →