IP Library Granted Patent US 8,495,251
Granted Patent B2
US 8,495,251 · App. 13/247,364 · Granted Jul 23, 2013

Hardware method for detecting timeout conditions in a large number of data connections

Inventor: Jeffrey T. McLamb (Raleigh, NC)
Assignee: EMC Corporation
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 8,495,251
App. No.
13/247,364
Granted
Jul 23, 2013
Kind
B2
Abstract

Tracking several open data connections is difficult with a large number of connections. Checking for timeouts in software uses valuable processor resources. Employing a co-processor dedicated to checking timeouts uses valuable logic resources and consumes extra space. In one embodiment, a finite state machine implemented in hardware increases the speed connections can be checked for timeouts. The finite state machine stores a last accessed time stamp for each connection in a memory, and loops through the memory to compare each last accessed time stamp with a current time stamp of the system minus a global timeout value. In this manner, the finite state machine can efficiently find and react to timed out connections.

Claims (47)

1. A method comprising:

a) initializing a finite state machine including

(i) an interface with a plurality of connections,

(ii) a memory buffer including a plurality of locations for storing a last accessed timestamp by setting a status property of the locations to inactive, and

(iii) a memory pointer, the memory pointer initialized by setting it to point to one of the plurality of locations;

b) performing a timestamp analysis by:

i) when the status property of the location of the memory pointer is active

A) reading a last accessed timestamp corresponding to the location of the memory pointer;

B) determining whether a timeout has occurred based on the last accessed timestamp, a current timestamp and a stored timeout value;

C) if a timeout has not occurred or the location of the memory pointer is inactive, repeating step (b)(ii);

D) if a timeout has occurred and the location of the memory pointer is active, notifying a higher communication layer and updating the status property of the location of the memory pointer to inactive; and

ii) incrementing the memory pointer;

c) if an incoming data packet is received, handling the packet by:

i) processing the incoming data packet with an incoming data handler configured to process the incoming data packet in the higher communication layer;

ii) if the incoming data packet is part of a new connection, the new connection status of the incoming data packet indicated by a lack of an entry corresponding to the connection of the incoming data packet in the plurality of memory locations, storing the data packet in one of the locations in the memory buffer;

iii) updating the status property of the location to active and setting the last accessed timestamp in one of the plurality of locations in the memory buffer; and

d) repeating step (b).

2. The method of claim 1 further comprising determining whether a timeout has occurred by calculating an expiration timestamp based on the difference of the current timestamp and the stored timeout value and triggering a timeout if the expiration timestamp is greater than the last accessed timestamp.

3. The method of claim 1 where the finite state machine includes a clock cycle, further comprising incrementing the current timestamp on each clock cycle.

4. The method of claim 1 wherein the incoming data handler is Fibre Channel.

5. The method of claim 1 wherein the memory buffer includes a connection tracking memory buffer.

6. The method of claim 5 wherein the incoming data handler processes data by detecting a new frame on a receive buffer, reading the header of the new frame to update or create timestamp data in a location in the connection tracking memory buffer, and storing the new frame in one of a plurality of data storing memory locations.

7. The method of claim 1 wherein the stored timeout value is at least one of a global timeout value based on a connection protocol and a local timeout value based on an individual connection.

8. A system comprising:

a finite state machine configured to:

a) initialize

(i) an interface with a plurality of connections,

(ii) a memory buffer including a plurality of locations for storing a last accessed timestamp by setting a status property of the locations to inactive, and

(iii) a memory pointer by setting it to point to one of the locations;

b) perform a timestamp analysis by:

i) when the status property of the location of the memory pointer is active;

A) reading a last accessed timestamp corresponding to the location of the memory pointer;

B) determining whether a timeout has occurred based on the last accessed timestamp, a current timestamp and a stored timeout value;

C) if a time out has not occurred or the location of the memory pointer is inactive, repeating step (b)(ii); and

D) if a timeout has occurred and the location of the memory pointer is active, notifying a higher communication layer and updating the status property of the location of the memory pointer to inactive; and

ii) incrementing the memory pointer;

c) if an incoming data packet is received, handle the packet by:

i) processing the incoming data packet with an incoming data handler configured to process the incoming data packet in the higher communication layer;

ii) if the incoming data packet is part of a new connection, the new connection status of the incoming data packet indicated by a lack of an entry corresponding to the connection of the incoming data packet in the plurality of memory locations, storing the data packet in one of the locations in the memory buffer; and

iii) updating the status property of the location to active and setting the last accessed timestamp in one of the plurality of locations in the memory buffer; and

d) repeat step (b).

9. The system of claim 8 , further comprising determining whether a timeout has occurred by calculating an expiration timestamp based on the difference of the current timestamp and the stored timeout value and triggering a timeout if the expiration timestamp is greater than the last accessed timestamp.

10. The system of claim 8 further comprising a clock cycle, wherein the state machine is further configured to increment the current timestamp on each clock cycle.

11. The system of claim 8 wherein the incoming data handler is Fibre Channel.

12. The system of claim 8 wherein the memory buffer includes a connection tracking memory buffer.

13. The system of claim 8 wherein the incoming data handler processes data by detecting a new frame on a receive buffer, reading the header of the new frame to update or create timestamp data in a location in the connection tracking memory buffer, and storing the new frame in one of a plurality of data storing memory locations.

14. The system of claim 8 wherein the stored timeout value is at least one of a global timeout value based on a connection protocol and a local timeout value based on an individual connection.

Assignments (10)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (045455/0001) Recorded May 20, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061753/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040136/0001) Recorded Apr 26, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061324/0001 →
RELEASE OF SECURITY INTEREST Recorded Nov 3, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL, L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; WYSE TECHNOLOGY L.L.C.
Reel/Frame 058216/0001 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
SECURITY AGREEMENT Recorded Mar 21, 2019
From: CREDANT TECHNOLOGIES, INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 049452/0223 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 29, 2016
From: EMC CORPORATION
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 040203/0001 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 040136/0001 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040134/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 13, 2011
From: MCLAMB, JEFFREY T.
To: EMC CORPORATION
Reel/Frame 027374/0889 →
Continuity (1)
Related Publication 20130080710A1 · Mar 28, 2013