IP Library Granted Patent US 9,934,174
Granted Patent B2
US 9,934,174 · App. 14/858,716 · Granted Apr 3, 2018

Selectively enable data transfer based on accrued data credits

Inventors: Ramdas Kachare (Cupertino, CA); Timothy Canepa (Los Gatos, CA)
Assignee: Seagate Technology LLC
G06F13/28G06F13/1605G06F13/4022G06F13/4282
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,934,174
App. No.
14/858,716
Granted
Apr 3, 2018
Kind
B2
Abstract

An apparatus to arbitrate data transfer between a computing host and a storage device across an interface includes a data transfer limiter configured to track an amount of data credits used by a data transfer across the interface and an amount of accrued data credits available to the interface. The apparatus further includes a data transfer arbiter configured to selectively disable the data transfer across the interface when the amount of data credits used by the data transfer across the interface exceeds a first threshold, and to selectively enable the data transfer across the interface when the amount of data credits used by the data transfer across the interface does not exceed a second threshold. The amount of accrued data credits reduces the amount of data credits used by the data transfer.

Claims (53)

1. An apparatus to arbitrate data transfer between a computing host and a storage device across an interface, the apparatus comprising:

a read data transfer limiter configured to

track an amount of used read data credits comprising read data credits used by a read data transfer across the interface,

track an amount of accrued read data credits available to the interface,

monitor a bandwidth usage of the read data transfer,

control a transfer rate of the read data transfer,

store a first read threshold, the first read threshold defined by a maximum amount of read data credits, expressed in units of bytes, that the interface can support, and

store a second read threshold, the second read threshold defined by a predetermined maximum amount of read data credits, expressed in units of bytes totaling less than the first read threshold, beyond which resumption of read data transfer across the interface is not permitted following a disabling of the read data transfer across the interface;

a read data transfer arbiter in communication with the read data transfer limiter, the read data transfer arbiter configured to

disable the read data transfer across the interface when the amount of used read data credits tracked by the read data transfer limiter exceeds the first read threshold, and

enable resumption of read data transfer across the interface, following a disabling of the read data transfer across the interface, when the amount of used read data credits tracked by the read data transfer limiter does not exceed the second read threshold, wherein the amount of accrued read data credits reduces an amount of read data credits used by the read data transfer;

a write data transfer limiter configured to

track an amount of used write data credits comprising write data credits used by a write data transfer across the interface

track an amount of accrued write data credits available to the interface,

monitor a bandwidth usage of the write data transfer,

control a transfer rate of the write data transfer,

store a first write threshold, the first write threshold defined by a maximum amount of write data credits, expressed in units of bytes, that the interface can support, and

store a second write threshold, the second write threshold defined by a predetermined maximum amount of write data credits, expressed in units of bytes totaling less than the first write threshold, beyond which resumption of write data transfer across the interface is not permitted following a disabling of the write data transfer across the interface; and

a write data transfer arbiter in communication with the write data transfer limiter, the write data transfer arbiter configured to

disable the write data transfer across the interface when the amount of used write data credits tracked by the write data transfer limiter exceeds the first write threshold, and

enable resumption of write data transfer across the interface, following a disabling of the write data transfer across the interface, when the amount of used write data credits tracked by the write data transfer limiter does not exceed the second write threshold, wherein the amount of accrued write data credits reduces the amount of write data credits used by the write data transfer.

2. The apparatus of claim 1 , further comprising:

a time source, wherein the amount of accrued read data credits and accrued write data credits available to the interface increases over time.

3. The apparatus of claim 1 , further comprising:

a control line status register (CSR) configured to implement control and status registers utilized by each data transfer arbiter.

4. The apparatus of claim 1 , further comprising

a front end direct memory access engine configured to manage data relating to the data transfer comprising at least one of the read data transfer and the write data transfer.

5. The apparatus of claim 1 , further comprising

a front end processing unit configured to process a command relating to the data transfer comprising at least one of the read data transfer and the write data transfer.

6. The apparatus of claim 1 , wherein the interface supports one of a peripheral component interconnect express (PCIe) interface, a serial ATA interface, a small computer system interface (SCSI), and a serial attached SCSI (SAS) interface.

7. A system to arbitrate data transfer between a computing host and a storage device across an interface, the system comprising:

a memory to store data accessed by the computing host; and

a storage controller comprising

a read data transfer limiter configured to

track an amount of used read data credits comprising read data credits used by a read data transfer across the interface

track an amount of accrued read data credits available to the interface,

monitor a bandwidth usage of the read data transfer,

control a transfer rate of the read data transfer,

store a first read threshold, the first read threshold defined by a maximum amount of read data credits, expressed in units of bytes, that the interface can support, and

store a second read threshold, the second read threshold defined by a predetermined maximum amount of read data credits, expressed in units of bytes totaling less than the first read threshold, beyond which resumption of read data transfer across the interface is not permitted following a disabling of the read data transfer across the interface;

a read data transfer arbiter in communication with the read data transfer limiter, the read data transfer arbiter configured to

disable the read data transfer across the interface when the amount of used read data credits tracked by the read data transfer limiter exceeds the first read threshold, and

enable resumption of read data transfer across the interface, following a disabling of the read data transfer across the interface, when the amount of used read data credits tracked by the read data transfer limiter does not exceed the second read threshold, wherein the amount of accrued read data credits reduces an amount of read data credits used by the read data transfer;

a write data transfer limiter configured to

track an amount of used write data credits comprising write data credits used by a write data transfer across the interface

track an amount of accrued write data credits available to the interface,

monitor a bandwidth usage of the write data transfer,

control a transfer rate of the write data transfer,

store a first write threshold, the first write threshold defined by a maximum amount of write data credits, expressed in units of bytes, that the interface can support, and

store a second write threshold, the second write threshold defined by a predetermined maximum amount of write data credits, expressed in units of bytes totaling less than the first write threshold, beyond which resumption of write data transfer across the interface is not permitted following a disabling of the write data transfer across the interface; and

a write data transfer arbiter in communication with the write data transfer limiter, the write data transfer arbiter configured to

disable the write data transfer across the interface when the amount of used write data credits tracked by the write data transfer limiter exceeds the first write threshold, and

enable resumption of write data transfer across the interface, following a disabling of the write data transfer across the interface, when the amount of used write data credits tracked by the write data transfer limiter does not exceed the second write threshold, wherein the amount of accrued write data credits reduces the amount of write data credits used by the write data transfer.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 23, 2015
From: KACHARE, RAMDAS; CANEPA, TIMOTHY
To: SEAGATE TECHNOLOGY LLC
Reel/Frame 036634/0709 →
Continuity (1)
Related Publication 20170083463A1 · Mar 23, 2017