IP Library Granted Patent US 9,465,406
Granted Patent B1
US 9,465,406 · App. 14/067,815 · Granted Oct 11, 2016

Timers and methods thereof for computing devices

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 9,465,406
App. No.
14/067,815
Granted
Oct 11, 2016
Kind
B1
Abstract

Method and system for a device having a processor module for maintaining a connection with another device are provided. The device includes a timer module having a plurality of timers, where the resolution for each timer is maintained by one or more processor modules; and a timer state module that stores an indicator value for indicating a timer state. A timer is assigned to the connection and the processor module manages the resolution of the timer. The processor module sends a request to the timer module for arming the timer and the timer module sets the timer state as active in a first storage location maintained by the timer state module; and responds to the processor module after the timer is activated. The processor module uses the information in the response for requesting a disarm operation.

Claims (40)

1. A machine implemented method, comprising:

assigning a timer from a plurality of timers maintained by a timer state module to a connection maintained by a processor module from among a plurality of processor modules of a device;

initializing a counter module and compare module included on the processor module and maintained by the processor module for a resolution for the timer; wherein the plurality of processor modules include and maintain associated counter modules and compare modules for different connections for tracking time based on different resolutions;

initializing the timer state module for storing an indicator value indicating a timer state for the timer;

sending a request with an input-timer identifier for arming the timer, the request sent by the processor module to a timer module, the timer module including the plurality of timers and the timer state module;

setting the timer state for the timer as active in a first storage location of the timer state module;

responding to the processor module by the timer module after the timer is activated with an armed-timer identifier indicating that the timer is active, where the armed-timer identifier is based on the input-timer identifier and encoding for the first storage location;

storing the armed-timer identifier by the processor module;

using the armed-timer identifier by the processor module for requesting a disarm operation; and

decoding the armed-timer identifier by the timer module to determine the first storage location for disarming the timer.

2. The method of claim 1 , wherein the timer state module stores timer state information at the first storage location and a second storage location.

3. The method of claim 2 , wherein the timer state module includes a pointer logic for managing a first pointer and a second pointer.

4. The method of claim 3 , wherein the first pointer is a firing pointer that points to the first storage location and is used to determine which of the plurality of timers need to be fired based on status indicators for each of the plurality of timers.

5. The method of claim 3 , wherein the second pointer points to the second storage location and is used to mark any active timers from among the plurality of timers.

6. The method of claim 5 , wherein the second pointer points to the first storage location after the first pointer is used to fire any timers based on status indicators.

7. A device, comprising:

a processor module from among a plurality of processor modules for maintaining a connection with another device; wherein the plurality of processor modules include and maintain associated counter modules and compare modules for different connections for tracking time based on different resolutions; and

a timer module having a plurality of timers and a timer state module, where the resolution for a timer is maintained by one or more processor modules using an associated counter module and compare module; wherein the timer state module stores an indicator value for indicating a timer state for the timer; wherein the timer is assigned to the connection and the processor module manages the resolution of the timer;

wherein the processor module sends a request with an input-timer identifier to the timer module for arming the timer and the timer module sets the timer state as active in a first storage location maintained by the timer state module; wherein the timer module responds to the processor module after the timer is activated with an armed-timer identifier that is based on the input-timer identifier and encoding for the first storage location; and

wherein the processor module uses the armed-timer identifier for requesting a disarm operation and the timer module decodes the armed-timer identifier to determine the first storage location for disarming the timer.

8. The device of claim 7 , wherein the timer state module stores timer state information at the first storage location and a second storage location.

9. The device of claim 8 , wherein the timer state module includes a pointer logic for managing a first pointer and a second pointer.

10. The device of claim 9 , wherein the first pointer is a firing pointer that points to the first storage location and is used to determine which of the plurality of timers need to be fired based on status indicators for each of the plurality of timers.

11. The device of claim 9 , wherein the second pointer points to the second storage location and is used to mark any active timers from among the plurality of timers.

12. The device of claim 11 , wherein the second pointer points to the first storage location after the first pointer is used to fire any timers based on status indicators.

13. A non-transitory, machine readable storage medium having stored thereon instructions for performing a method, comprising machine executable code which when executed by at least one machine, causes the machine to:

assign a timer from a plurality of timers maintained by a timer state module to a connection maintained by a processor module from among a plurality of processor modules of a device;

initialize a counter module and compare module included on the processor module and maintained by the processor module for a resolution for the timer: wherein the plurality of processor modules include and maintain associated counter modules and compare modules for different connections for tracking time based on different resolutions;

initialize the timer state module for storing an indicator value indicating a timer state for the timer;

send a request with an input-timer identifier for arming the timer, the request sent by the processor module to a timer module, the timer module including the plurality of timers and the timer state module;

set the timer state for the timer as active in a first storage location of the timer state module;

respond to the processor module by the timer module after the timer is activated with an armed-timer identifier indicating that the timer is active, where the armed-timer identifier is based on the input-timer identifier and encoding for the first storage location;

store the armed-timer identifier by the processor module;

use the armed-timer identifier by the processor module for requesting a disarm operation; and

decode the armed-timer identifier by the timer module to determine the first storage location for disarming the timer.

14. The non-transitory, storage medium of claim 13 , wherein the timer state module stores timer state information at the first storage location and a second storage location.

15. The non-transitory, storage medium of claim 14 , wherein the timer state module includes a pointer logic for managing a first pointer and a second pointer.

16. The non-transitory, storage medium of claim 15 , wherein the first pointer is a firing pointer that points to the first storage location and is used to determine which of the plurality of timers need to be fired based on status indicators for each of the plurality of timers.

17. The non-transitory, storage medium of claim 15 , wherein the second pointer points to the second storage location and is used to mark any active timers from among the plurality of timers.

18. The non-transitory, storage medium of claim 17 , wherein the second pointer points to the first storage location after the first pointer is used to fire any timers based on status indicators.

Assignments (7)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 15, 2020
From: CAVIUM INTERNATIONAL
To: MARVELL ASIA PTE, LTD.
Reel/Frame 053179/0320 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 17, 2020
From: CAVIUM, LLC
To: CAVIUM INTERNATIONAL
Reel/Frame 051948/0807 →
CHANGE OF NAME Recorded Oct 8, 2018
From: CAVIUM, INC.
To: CAVIUM, LLC
Reel/Frame 047205/0953 →
RELEASE OF SECURITY INTEREST Recorded Jul 6, 2018
From: JP MORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: CAVIUM, INC; CAVIUM NETWORKS LLC; QLOGIC CORPORATION
Reel/Frame 046496/0001 →
MERGER Recorded Oct 18, 2017
From: QLOGIC CORPORATION
To: CAVIUM, INC.
Reel/Frame 044812/0504 →
SECURITY AGREEMENT Recorded Mar 1, 2017
From: QLOGIC CORPORATION
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 041854/0119 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 30, 2013
From: SARCAR, KANOJ; CAMPBELL, RALPH B.; PEARSON, DANIEL R.
To: QLOGIC, CORPORATION
Reel/Frame 031514/0257 →