IP Library Granted Patent US 9,026,713
Granted Patent B2
US 9,026,713 · App. 13/713,363 · Granted May 5, 2015

Expander for loop architectures

Inventors: Naresh Madhusudana (Devarabeesanahalli Bangalore, IN); Raghavendra Channagiri Nagendra (Devarabeesanahalli Bangalore, IN); Giridhar Danayakanakeri (Devarabeesanahalli Bangalore, IN)
Assignee: Avago Technologies General IP (Singapore) Pte Ltd
G06F13/4282G06F13/4022G06F9/4411G06F13/385G06F2213/0028G06F3/0607G06F3/0632G06F3/0689
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,026,713
App. No.
13/713,363
Granted
May 5, 2015
Kind
B2
Abstract

An expander for a device architecture, such as a SAS-compatible expander for a SAS architecture, is configured to follow a set of discovery rules that are applied following detection of a discovery-triggering event, such as system power up or reset. According to one of the discovery rules, the expander waits until after a specified duration following the detected discovery-triggering event before passing on, to any other expanders, any requests to check the status of their discovery processing. Using appropriate values for the specified durations for different expanders, the discovery procedure will be performed without any infinite-messaging problems, even when the device architecture has a loop.

Claims (54)

1. An expander for a device architecture having at least one controller and one or more target devices, wherein:

(1) the expander is configured with a specified duration value;

(2) the expander is configured to detect occurrence of a discovery-triggering event;

(3) the expander is configured to receive, from another device in the device architecture, an incoming request to check status of discovery processing; and

(4) the expander is configured to wait until after the specified duration value has elapsed following the expander's detection of the occurrence of the discovery-triggering event before transmitting, to an other expander in the device architecture, an outgoing request to check the status of the discovery processing, if the expander determines that it has not previously received, from the other expander, an incoming request to check the status of the discovery processing.

2. The expander of claim 1 , wherein, following the expander's detection of the occurrence of the discovery-triggering event, the expander automatically identifies all devices to which the expander is directly connected.

3. The expander of claim 2 , wherein the expander automatically identifies its directly connected devices immediately after detecting the occurrence of the discovery-triggering event without waiting for any specified non-zero duration value to elapse.

4. The expander of claim 1 , wherein, after receiving at least one incoming request to check the status of the discovery processing and after waiting until after the specified duration value has elapsed following the expander's detection of the occurrence of the discovery-triggering event, if there are no other directly connected expanders to which to send an outgoing request to check the status of the discovery processing, then the expander transmits a device list of its connected devices to each connected device that previously sent it an incoming request to check the status of the discovery processing.

5. The expander of claim 4 , wherein the expander is configured to omit from the device list any other connected device from which an incoming request to check the status of the discovery processing was previously received.

6. The expander of claim 1 , wherein, after receiving a device list from each other expander that was previously sent an outgoing request to check the status of the discovery processing, the expander provides a consolidated device list to each device from which an incoming request to check the status of the discovery processing was previously received.

7. The expander of claim 6 , wherein the expander is configured to omit from the consolidated device list any other connected device from which an incoming request to check the status of the discovery processing was previously received.

8. The expander of claim 1 , wherein the expander is a SAS-compatible expander and the device architecture is a SAS architecture.

9. The expander of claim 1 , wherein the specified duration value is programmable.

10. The expander of claim 1 , wherein the device architecture has a loop formed by a number of expanders.

11. The expander of claim 1 , wherein:

during a first stage of the discovery processing, the controller transmits, to a highest-level expander in the device architecture, a request to check the status of the discovery processing; and

during a final stage of the discovery processing, the highest-level expander transmits, to the controller, a consolidated device list identifying all available paths to other devices in the device architecture.

12. The expander of claim 11 , wherein:

the device architecture has at least one loop; and

the available paths do not include any loops.

13. The expander of claim 1 , wherein:

following the expander's detection of the occurrence of the discovery-triggering event, the expander automatically identifies all devices to which the expander is directly connected;

the expander automatically identifies its directly connected devices immediately after detecting the occurrence of the discovery-triggering event without waiting for any specified non-zero duration value to elapse;

after receiving at least one incoming request to check the status of the discovery processing and after waiting until after the specified duration value has elapsed following the expander's detection of the occurrence of the discovery-triggering event, if there are no other directly connected expanders to which to send an outgoing request to check the status of the discovery processing, then the expander transmits a device list of its connected devices to each connected device that previously sent it an incoming request to check the status of the discovery processing;

the expander is configured to omit from the device list any other connected device from which an incoming request to check the status of the discovery processing was previously received;

after receiving a device list from each other expander that was previously sent an outgoing request to check the status of the discovery processing, the expander provides a consolidated device list to each device from which an incoming request to check the status of the discovery processing was previously received;

the expander is configured to omit from the consolidated device list any other connected device from which an incoming request to check the status of the discovery processing was previously received;

the expander is a SAS-compatible expander and the device architecture is a SAS architecture;

the specified duration value is programmable;

the device architecture has a loop formed by a number of expanders;

during a first stage of the discovery processing, the controller transmits, to a highest-level expander in the device architecture, a request to check the status of the discovery processing;

during a final stage of the discovery processing, the highest-level expander transmits, to the controller, a consolidated device list identifying all available paths to other devices in the device architecture;

the device architecture has at least one loop; and

the available paths do not include any loops.

14. A device architecture comprising the expander of claim 1 .

15. The device architecture of claim 14 , wherein:

following the expander's detection of the occurrence of the discovery-triggering event, the expander automatically identifies all devices to which the expander is directly connected;

the expander automatically identifies its directly connected devices immediately after detecting the occurrence of the discovery-triggering event without waiting for any specified non-zero duration value to elapse;

after receiving at least one incoming request to check the status of the discovery processing and after waiting until after the specified duration value has elapsed following the expander's detection of the occurrence of the discovery-triggering event, if there are no other directly connected expanders to which to send an outgoing request to check the status of the discovery processing, then the expander transmits a device list of its connected devices to each connected device that previously sent it an incoming request to check the status of the discovery processing;

the expander is configured to omit from the device list any other connected device from which an incoming request to check the status of the discovery processing was previously received;

after receiving a device list from each other expander that was previously sent an outgoing request to check the status of the discovery processing, the expander provides a consolidated device list to each device from which an incoming request to check the status of the discovery processing was previously received;

the expander is configured to omit from the consolidated device list any other connected device from which an incoming request to check the status of the discovery processing was previously received;

the expander is a SAS-compatible expander and the device architecture is a SAS architecture;

the specified duration value is programmable;

the device architecture has a loop formed by a number of expanders;

during a first stage of the discovery processing, the controller transmits, to a highest-level expander in the device architecture, a request to check the status of the discovery processing;

during a final stage of the discovery processing, the highest-level expander transmits, to the controller, a consolidated device list identifying all available paths to other devices in the device architecture;

the device architecture has at least one loop; and

the available paths do not include any loops.

16. The device architecture of claim 14 , wherein, following the expander's detection of the occurrence of the discovery-triggering event, the expander automatically identifies all devices to which the expander is directly connected.

17. The device architecture of claim 16 , wherein the expander automatically identifies its directly connected devices immediately after detecting the occurrence of the discovery-triggering event without waiting for any specified non-zero duration value to elapse.

18. The device architecture of claim 14 , wherein, after receiving at least one incoming request to check the status of the discovery processing and after waiting until after the specified duration value has elapsed following the expander's detection of the occurrence of the discovery-triggering event, if there are no other directly connected expanders to which to send an outgoing request to check the status of the discovery processing, then the expander transmits a device list of its connected devices to each connected device that previously sent it an incoming request to check the status of the discovery processing.

19. The device architecture of claim 18 , wherein the expander is configured to omit from the device list any other connected device from which an incoming request to check the status of the discovery processing was previously received.

20. The device architecture of claim 14 , wherein, after receiving a device list from each other expander that was previously sent an outgoing request to check the status of the discovery processing, the expander provides a consolidated device list to each device from which an incoming request to check the status of the discovery processing was previously received.

Assignments (8)
CORRECTIVE ASSIGNMENT TO CORRECT THE EXECUTION DATE OF THE MERGER PREVIOUSLY RECORDED ON REEL 047642 FRAME 0417. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT, Recorded Mar 6, 2019
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 048521/0395 →
MERGER Recorded Oct 5, 2018
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047642/0417 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Feb 3, 2017
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Reel/Frame 041710/0001 →
PATENT SECURITY AGREEMENT Recorded Feb 11, 2016
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 037808/0001 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS (RELEASES RF 032856-0031) Recorded Feb 2, 2016
From: DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT
To: LSI CORPORATION; AGERE SYSTEMS LLC
Reel/Frame 037684/0039 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 3, 2015
From: LSI CORPORATION
To: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Reel/Frame 035390/0388 →
PATENT SECURITY AGREEMENT Recorded May 8, 2014
From: LSI CORPORATION; AGERE SYSTEMS LLC
To: DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT
Reel/Frame 032856/0031 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 13, 2012
From: MADHUSUDANA, NARESH; NAGENDRA, RAGHAVENDRA CHANNAGIRI; DANAYAKANAKERI, GIRIDHAR
To: LSI CORPORATION
Reel/Frame 029462/0331 →
Continuity (1)
Related Publication 20140173165A1 · Jun 19, 2014