IP Library Granted Patent US 9,037,754
Granted Patent B2
US 9,037,754 · App. 14/546,743 · Granted May 19, 2015

Systems and methods for initialization and link management of NICS in a multi-core environment

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,037,754
App. No.
14/546,743
Granted
May 19, 2015
Kind
B2
Abstract

The present application is directed towards systems and methods for coordination and management of a shared resource in a multi-core system. In a multi-core system, multiple cores may be utilizing a shared resource. However, internal resources common to the shared resource may need to be initialized by only one core, and independent and uncoordinated initialization by multiple cores may cause errors. The present invention provides systems and methods for coordinating such initialization and use through a handshaking protocol.

Claims (33)

1. A method comprising:

(a) identifying, by an interface master executing on a multi-core device, a state of a shared resource shared by each core of the multi-core device;

(b) determining, by the interface master, that the state of the resource is down;

(c) communicating, by the interface master responsive to the state of the resource being down, a first message to each of the one or more interface slaves executing on a corresponding core of the multi-core device, the first message indicating that the state of the shared resource is being changed to up;

(d) receiving, by the interface master, a second message from each of the one or more interface slaves indicating that the one or more interface slaves completed actions on local resources of the corresponding core responsive to the first message; and

(e) initializing, by the interface master responsive to receiving the second message from each of the one or more interface slaves, the shared resource.

2. The method of claim 1 , further comprising communicating, by the interface master, a third message to the one or more interface slaves indicating that the shared resource is up.

3. The method of claim 1 , wherein (a) further comprises checking, by the interface master, the state of the shared resourced on a periodic basis.

4. The method of claim 3 , wherein (a) further comprises checking, by the interface master, the state of the shared resourced via a bit-mask representing the state of the shared resource.

5. The method of claim 1 , wherein (b) further comprised determining, by the interface master, the state is down based on a setting of a bit mask.

6. The method of claim 1 , wherein (c) further comprises communicating, by the interface master, the first message to indicate that the shared resource is being enabled.

7. The method of claim 1 , wherein (d) further comprises one of resetting a queue or enabling a buffer by the one or more interface slaves responsive to the first message.

8. The method of claim 1 , wherein (d) further comprises initializing, by the one or more interface slaves, one or more local resources responsive to the first message.

9. The method of claim 8 , further comprising initializing, by the one or more interface slaves, local transmit and receive buffers.

10. The method of claim 1 , further comprising determining, by the one or more interface slaves, that the shared resource is available for use responsive to the third message.

11. A system comprising:

a device comprising a plurality of cores;

one or more interface slaves configured to execute on a corresponding core of the plurality of cores; and

an interface master configured to execute on a core of the plurality of cores, the interface master configured to:

identify a state of a shared resource shared by each core of the plurality of cores;

determine that the state of the resource is down;

communicate, responsive to the state of the resource being down, a first message to each of the one or more interface slave, the first message indicating that the state of the shared resource is being changed to up;

receive a second message from each of the one or more interface slaves indicating that the one or more interface slaves completed actions on local resources of the corresponding core responsive to the first message; and

initialize, responsive to receiving the second message from each of the one or more interface slaves, the shared resource.

12. The system of claim 11 , wherein the interface master is further configured to communicate a third message to the one or more interface slaves indicating that the shared resource is up.

13. The system of claim 11 , wherein the interface master is further configured to check the state of the shared resourced on a periodic basis.

14. The system of claim 13 , wherein the interface master is further configured to check the state of the shared resourced via a bit-mask representing the state of the shared resource.

15. The system of claim 11 , wherein the interface master is further configured to determine that the state is down based on a setting of a bit mask.

16. The system of claim 11 , wherein the interface master is further configured to communicate the first message indicating that the shared resource is being enabled.

17. The system of claim 11 , wherein the one or more interface slaves are configured to one of reset a queue or enable a buffer responsive to the first message.

18. The system of claim 11 , wherein the one or more interface slaves are configured to initialize one or more local resources responsive to the first message.

19. The system of claim 18 , wherein the one or more interface slaves are configured to initialize, local transmit and receive buffers.

20. The system of claim 11 , wherein the one or more interface slaves are configured to determine that the shared resource is available for use responsive to the third message.

Assignments (9)
PATENT SECURITY AGREEMENT Recorded Aug 15, 2025
From: CLOUD SOFTWARE GROUP, INC.; CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 072488/0172 →
SECURITY INTEREST Recorded May 24, 2024
From: CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.); CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 067662/0568 →
RELEASE AND REASSIGNMENT OF SECURITY INTEREST IN PATENT (REEL/FRAME 062113/0001) Recorded Apr 14, 2023
From: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
To: CITRIX SYSTEMS, INC.; CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.)
Reel/Frame 063339/0525 →
PATENT SECURITY AGREEMENT Recorded Apr 14, 2023
From: CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.); CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 063340/0164 →
PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 062112/0262 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 062113/0001 →
PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 062113/0470 →
SECURITY INTEREST Recorded Sep 30, 2022
From: CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION
Reel/Frame 062079/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 19, 2014
From: TALLA, RAMANJANEYULU Y.
To: CITRIX SYSTEMS, INC.
Reel/Frame 034294/0950 →