IP Library Granted Patent US 10,614,012
Granted Patent B2
US 10,614,012 · App. 16/197,109 · Granted Apr 7, 2020

System and method for controlling the performance of serial attached SCSI (SAS) target devices

Inventor: Sanjay Goyal (Roseville, CA)
Assignee: Microsemi Storage Solutions, Inc.
G06F13/385G06F3/06G06F11/3409G06F13/4022G06F13/4045H04L43/0817H04L43/0894G06F2213/0028
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 10,614,012
App. No.
16/197,109
Granted
Apr 7, 2020
Kind
B2
Abstract

A system and method for controlling the performance of one or more target devices. A connection request for a target device of a plurality of target devices is received at a serial attached SCSI (SAS) Expander from an SAS initiator device, wherein a maximum performance availability value is associated with the target device. If the current performance availability value of the target device indicates that the target device does have availability to service the connection request, the connection request from the SAS initiator device is accepted and a connection is established between the SAS initiator device and the target device. Alternatively, if the current performance availability value of the target device indicates that the target device does not have availability to service the connection request, the connection request from the SAS initiator device is rejected and a connection is not established between the SAS initiator device and the target device. Traffic flow between the devices is measured and the current performance availability value of the target device is updated to control the performance of the target device.

Claims (58)

1. A method for controlling the performance of target devices, the method comprising:

receiving, at a serial attached small computer system interface (SAS) expander, a connection request for a target device of a plurality of target devices coupled to the SAS expander, wherein a maximum performance availability value is associated with the target device;

determining a current performance availability value for the target device, wherein the current performance availability value of the target device is less than or equal to the maximum performance availability value of the target device;

determining if the current performance availability value of the target device indicates that the target device has availability to service the connection request;

accepting the connection request for the target device if the current performance availability value of the target device indicates that the target device does have availability to service the connection request; and

rejecting the connection request for the target device if the current performance availability value of the target device indicates that the target device does not have availability to service the connection request,

wherein if the SAS expander does not receive a next connection request for the target device within a predetermined time period, the method further comprises, until the next connection request for the target device is received, updating the current performance availability value of the target device after the predetermined time period by increasing the current performance availability value of the target device by the maximum performance availability value of the target device up to the maximum performance availability value of the target device.

2. The method of claim 1 , wherein accepting the connection request for the target device if the current performance availability value of the target device indicates that the target device does have availability to service the connection request further comprises, after accepting the connection request:

opening a connection between the SAS expander and the target device;

measuring traffic between the SAS expander and the target device during the connection to determine a measured traffic value;

closing the connection between the SAS expander and the target device; and

updating the current performance availability value of the target device by reducing the maximum performance availability value of the target device by the measured traffic value.

3. The method of claim 1 , wherein if the SAS expander receives the next connection request for the target device, the method further comprises repeating the determining if a current performance availability value of the target device indicates that the target device does or does not have availability to service the connection request and the accepting or rejecting the next connection request as indicated by the performance availability value of the target device.

4. The method of claim 1 , wherein at least some of the plurality of target devices are selected from buffered Hard Disk Drives (HDDs), unbuffered HDDs, buffered Solid State Drives (SSDs) and unbuffered SSDs.

5. The method of claim 2 , wherein measuring the traffic between the SAS expander and the target device during the connection to determine a measured traffic value further comprises, measuring a bandwidth (BW) or an input/output operations per second (IOPS) of the traffic during the connection between the SAS expander and the target device.

6. The method of claim 1 , wherein rejecting the connection request for the target device if the current performance availability value of the target device indicates that the target device does not have availability to service the connection request further comprises, determining a delay for the next connection request for the target device.

7. A method for controlling the performance of target devices, the method comprising:

receiving, at a serial attached small computer system interface (SAS) expander, a connection request for a target device of a plurality of target devices coupled to the SAS expander, wherein a maximum performance availability value is associated with the target device;

determining a current performance availability value for the target device, wherein the current performance availability value of the target device is less than or equal to the maximum performance availability value of the target device;

determining if the current performance availability value of the target device indicates that the target device has availability to service the connection request;

accepting the connection request for the target device if the current performance availability value of the target device indicates that the target device does have availability to service the connection request; and

rejecting the connection request for the target device if the current performance availability value of the target device indicates that the target device does not have availability to service the connection request, and after the rejecting the connection request for the target device, updating the current performance availability value of the target device after a predetermined time period by increasing the current performance availability value of the target device by the maximum performance availability value of the target device up to the maximum performance availability value of the target device.

8. The method of claim 7 , wherein if the SAS expander receives a next connection request for the target device, the method further, comprises repeating the determining if a current performance availability value of the target device indicates that the target device does or does not have availability to service the connection request and the accepting or rejecting the next connection request as indicated by the current performance availability value of the target device.

9. The method of claim 7 , wherein if the SAS expander does not receive a next connection request for the target device within a predetermined time period, the method further comprises:

updating the current performance availability value of the target device after the predetermined time period by increasing the current performance availability value of the target device by the maximum performance availability of the target device up to the maximum performance availability of the target device.

10. A serial attached small computer system interface (SAS) expander for controlling the performance of one or more target devices, the SAS expander comprising:

circuitry for coupling to one or more target devices;

circuitry for receiving a connection request for one or more of the target device; and

a resolver, the resolver configured to

determine a current performance availability value for the target device, wherein the current performance availability value of the target device is less than or equal to the maximum performance availability value of the target device;

determine if the current performance availability value of the target device indicates that the target device has availability to service the connection request;

accept the connection request for the target device if the current performance availability value of the target device indicates that the target device does have availability to service the connection request;

reject the connection request for the target device if the current performance availability value of the target device indicates that the target device does not have availability to service the connection request; and

if the SAS expander does not receive a next connection request for the target device within a predetermined time period, the resolver is further configured to update the current performance availability value of the target device after the predetermined time period by increasing the current performance availability value of the target device by the maximum performance availability of the target device up to the maximum performance availability of the target device and to continue to update the current performance availability value of the target device up to the maximum performance availability of the target device after each subsequent predetermined time period until the next connection request for the target device is received.

11. The SAS expander of claim 10 , wherein, when if the SAS expander receives the next connection request for the target device, the resolver is further configured to again determine if a current performance availability value of the target device indicates that the target device does or does not have availability to service the connection request and to accept or reject the next connection request as indicated by the current performance availability value of the target device.

12. The SAS expander of claim 10 , further comprising a target device performance table associated with the target device, the target device performance table for storing the maximum performance availability value and the current performance availability value of the target device.

13. A system comprising:

a target device, wherein a maximum performance availability value is associated with the target device;

a serial attached small computer system interface (SAS) expander coupled to the target device and configured to receive a connection request for the target device, the SAS expander including a resolver configured to:

determine a current performance availability value for the target device, wherein the current performance availability value of the target device is less than or equal to the maximum performance availability value of the target device;

determine if the current performance availability value of the target device indicates that the target device has availability to service the connection request;

accept the connection request for the target device if the current performance availability value of the target device indicates that the target device does have availability to service the connection request;

reject the connection request for the target device if the current performance availability value of the target device indicates that the target device does not have availability to service the connection request; and

if the SAS expander does not receive a next connection request for the target device within a predetermined time period, update the current performance availability value of the target device after the predetermined time period by increasing the current performance availability value of the target device by the maximum performance availability value of the target device up to the maximum performance availability value of the target device and continue to update the current performance availability value of the target device up to the maximum performance availability of the target device after each subsequent predetermined time period until the next connection request for the target device is received at the SAS expander.

14. The system of claim 13 , wherein, if the resolver accepts the connection request, the SAS expander is further configured to:

open a connection between the SAS expander and the target device;

measure traffic between the SAS expander and the target device during the connection to determine a measured traffic value; and

close the connection between the SAS expander and the target device.

15. The system of claim 14 , wherein, if the resolver accepts the connection request, the SAS expander is further configured to update the current performance availability value of the target device by reducing the maximum performance availability value of the target device by the measured traffic value.

16. The system of claim 13 , wherein when the SAS expander receives the next connection request for the target device, the resolver is further configured to again determine if a current performance availability value of the target device indicates that the target device does or does not have availability to service the connection request and to accept or reject the next connection request as indicated by the current performance availability value of the target device.

17. The system of claim 13 , the target device is selected from a buffered Hard Disk Drive (HDDs), an unbuffered HDD, a buffered Solid State Drive (SSD) and an unbuffered SSD.

18. A system comprising:

a target device, wherein a maximum performance availability value is associated with the target device;

a serial attached small computer system interface (SAS) expander coupled to the target device and configured to receive a connection request for the target device, the SAS expander including a resolver configured to:

determine a current performance availability value for the target device, wherein the current performance availability value of the target device is less than or equal to the maximum performance availability value of the target device;

determine if the current performance availability value of the target device indicates that the target device has availability to service the connection request;

accept the connection request for the target device if the current performance availability value of the target device indicates that the target device does have availability to service the connection request; and

reject the connection request for the target device if the current performance availability value of the target device indicates that the target device does not have availability to service the connection request and if the connection request for the target device is rejected, update the current performance availability value of the target device after a predetermined time period by increasing the current performance availability value of the target device by the maximum performance availability value of the target device up to the maximum performance availability value of the target device.

Assignments (13)
RELEASE OF SECURITY INTEREST Recorded Mar 14, 2022
From: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
To: MICROCHIP TECHNOLOGY INCORPORATED; SILICON STORAGE TECHNOLOGY, INC.; ATMEL CORPORATION; MICROSEMI CORPORATION; MICROSEMI STORAGE SOLUTIONS, INC.
Reel/Frame 060894/0437 →
RELEASE OF SECURITY INTEREST Recorded Mar 11, 2022
From: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
To: MICROCHIP TECHNOLOGY INCORPORATED; SILICON STORAGE TECHNOLOGY, INC.; ATMEL CORPORATION; MICROSEMI CORPORATION; MICROSEMI STORAGE SOLUTIONS, INC.
Reel/Frame 059363/0001 →
RELEASE OF SECURITY INTEREST Recorded Mar 10, 2022
From: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
To: MICROCHIP TECHNOLOGY INCORPORATED; SILICON STORAGE TECHNOLOGY, INC.; ATMEL CORPORATION; MICROSEMI CORPORATION; MICROSEMI STORAGE SOLUTIONS, INC.
Reel/Frame 059863/0400 →
RELEASE OF SECURITY INTEREST Recorded Mar 9, 2022
From: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
To: MICROCHIP TECHNOLOGY INCORPORATED; SILICON STORAGE TECHNOLOGY, INC.; ATMEL CORPORATION; MICROSEMI CORPORATION; MICROSEMI STORAGE SOLUTIONS, INC.
Reel/Frame 059358/0335 →
RELEASE OF SECURITY INTEREST Recorded Feb 28, 2022
From: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
To: MICROCHIP TECHNOLOGY INCORPORATED; SILICON STORAGE TECHNOLOGY, INC.; ATMEL CORPORATION; MICROSEMI CORPORATION; MICROSEMI STORAGE SOLUTIONS, INC.
Reel/Frame 059263/0001 →
GRANT OF SECURITY INTEREST IN PATENT RIGHTS Recorded Nov 19, 2021
From: MICROCHIP TECHNOLOGY INCORPORATED; SILICON STORAGE TECHNOLOGY, INC.; ATMEL CORPORATION; MICROSEMI CORPORATION; MICROSEMI STORAGE SOLUTIONS, INC.
To: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 058214/0625 →
SECURITY INTEREST Recorded Jun 4, 2021
From: MICROCHIP TECHNOLOGY INCORPORATED; SILICON STORAGE TECHNOLOGY, INC.; ATMEL CORPORATION; MICROSEMI CORPORATION; MICROSEMI STORAGE SOLUTIONS, INC.
To: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 057935/0474 →
SECURITY INTEREST Recorded Dec 24, 2020
From: MICROCHIP TECHNOLOGY INCORPORATED; SILICON STORAGE TECHNOLOGY, INC.; ATMEL CORPORATION; MICROSEMI CORPORATION; MICROSEMI STORAGE SOLUTIONS, INC.
To: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 055671/0612 →
SECURITY INTEREST Recorded Jun 5, 2020
From: MICROCHIP TECHNOLOGY INC.; SILICON STORAGE TECHNOLOGY, INC.; ATMEL CORPORATION; MICROSEMI CORPORATION; MICROSEMI STORAGE SOLUTIONS, INC.
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 052856/0909 →
SECURITY INTEREST Recorded Jun 5, 2020
From: MICROCHIP TECHNOLOGY INC.; SILICON STORAGE TECHNOLOGY, INC.; ATMEL CORPORATION; MICROSEMI CORPORATION; MICROSEMI STORAGE SOLUTIONS, INC.
To: WELLS FARGO BANK, NATIONAL ASSOCIATION
Reel/Frame 053468/0705 →
RELEASE OF SECURITY INTEREST Recorded May 30, 2020
From: JPMORGAN CHASE BANK, N.A, AS ADMINISTRATIVE AGENT
To: MICROCHIP TECHNOLOGY INC.; SILICON STORAGE TECHNOLOGY, INC.; ATMEL CORPORATION; MICROSEMI CORPORATION; MICROSEMI STORAGE SOLUTIONS, INC.
Reel/Frame 053466/0011 →
SECURITY INTEREST Recorded Apr 24, 2020
From: MICROCHIP TECHNOLOGY INC.; SILICON STORAGE TECHNOLOGY, INC.; ATMEL CORPORATION; MICROSEMI CORPORATION; MICROSEMI STORAGE SOLUTIONS, INC.
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 053311/0305 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 20, 2018
From: GOYAL, SANJAY
To: MICROSEMI STORAGE SOLUTIONS, INC
Reel/Frame 047557/0996 →
Continuity (2)
Provisional Application 62615273 · Jan 9, 2018
Related Publication 20190213156A1 · Jul 11, 2019