IP Library Granted Patent US 8,392,635
Granted Patent B2
US 8,392,635 · App. 12/976,608 · Granted Mar 5, 2013

Selectively enabling a host transfer interrupt

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 8,392,635
App. No.
12/976,608
Granted
Mar 5, 2013
Kind
B2
Abstract

Embodiments of the invention are directed to systems and methods for reducing the number of interrupts on a controller for a non-volatile storage device to improve data transfer performance of the storage system. The embodiments described herein selectively enable an interrupt generated by host transfer hardware for a host command. The interrupt can be enabled or disabled by considering the command type, availability of interface resources to accept additional host transfers, and the command size. Embodiments described herein are useful for host interfaces implementing a tagging scheme for host transfers with a limited range of identification tags.

Claims (28)

1. A non-volatile storage system capable of reducing interrupt overhead, comprising:

an interface configured to receive a command from a host device, the command including an identification tag, the identification tag chosen from a limited set of identification tags, each identification tag being unique to an outstanding command, the interface additionally configured to schedule host data transfers using a host communication thread, the host communication thread configured to produce an interrupt upon host transfer completion; and

a processor configured to manage communications with the host device through the interface, to determine whether to place the command in a first queue to be executed based on an available capacity of the first queue, to place the command in a second queue if it is determined that the first queue is filled to capacity, and to, upon placing the command in said first queue, selectively disable generation of an interrupt by the interface upon host transfer completion, said interrupt indicating a completion of a data transfer to the host device or from the host device, the selective disablement based at least in part on one of a command type, availability of interface resources to accept additional host transfers, and a command size, whereby the selective disablement reduces an overhead associated with executing the command.

2. The non-volatile storage system of claim 1 , wherein the processor selectively disables generation of an interrupt for a read command.

3. The non-volatile storage system of claim 1 , wherein the non-volatile storage system comprises a solid-state non-volatile memory array.

4. The non-volatile storage system of claim 1 , wherein the identification tag comprises one of a tagged command queuing tag and a native command queuing tag.

5. The non-volatile storage system of claim 1 , wherein the interface communicates to the host device using a Serial ATA (SATA) interface.

6. The non-volatile storage system of claim 1 , wherein the interface communicates to the host device using a Serial Attached SCSI (SAS) interface.

7. The non-volatile storage system of claim 1 , wherein the identification tag is assigned by a specific protocol.

8. The non-volatile storage system of claim 1 , wherein the processor is further configured to respond to an interrupt by de-allocating resources allocated to a command for which a host data transfer is completed.

9. The non-volatile storage system of claim 8 , wherein the processor is further configured to re-use resources allocated to the command when the interrupt is selectively disabled.

10. The non-volatile storage system of claim 9 , wherein the resources are re-used by another command which includes the same identification tag included in the command, said another command stored in the second queue and to be transferred to the first queue upon said de-allocation.

11. The non-volatile storage system of claim 1 , wherein the interrupt produced by the interface is configurably produced according to completion of each host transfer.

12. The non-volatile storage system of claim 1 , wherein the interrupt produced by the interface is configurably produced according to completion of a batch of host transfers.

13. A method of host transfer request handling, comprising:

by a non-volatile storage device that communicates with a host system:

receiving a host transfer request from the host system, the host transfer request associated with an identification tag chosen from a limited set of identification tags, each identification tag being unique to an outstanding command;

storing the host transfer request in a queue of the non-volatile storage device:

executing the host transfer request using a host interface; and

determining, upon receiving and queuing the host transfer request, whether to interrupt a processor of the non-volatile storage device upon completion of the host transfer request to indicate a completion of a data transfer to the host system or from the host system, the determination on whether to interrupt the processor based at least in part on at least one of allocated resources associated with the host transfer request and an availability of interface resources to accept additional host transfer requests.

14. The method of host transfer request handling of claim 13 , further comprising allocating resources for use with host transfer requests, the allocated resources associated with each identification tag within the limited set of identification tags, wherein the allocating step is performed prior to the receiving step.

15. A method performed by a storage subsystem that implements native command queuing, the method comprising:

receiving a tagged read command from a host system, and storing the tagged read command in a queue of the storage subsystem;

executing the tagged read command from the queue, wherein executing the tagged read command comprises transferring data stored by the storage subsystem to the host system; and

determining, upon storing the tagged read command in the queue, whether to execute an interrupt process associated with the tagged read command based at least partly on whether any other commands are stored in the queue, wherein the interrupt process indicates a completion of a data transfer to or from the host system.

16. The method of claim 15 , wherein the method comprises inhibiting the interrupt process in response to determining that no other commands are stored in the queue, whereby overhead associated with the interrupt process is avoided.

17. The method of claim 15 , wherein the storage subsystem receives and executes the tagged read command in accordance with a SATA interface.

18. The method of claim 15 , wherein the storage subsystem receives and executes the tagged read command in accordance with a SAS interface.

Assignments (10)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 17, 2025
From: SANDISK TECHNOLOGIES INC.
To: PALISADE TECHNOLOGIES, LLP
Reel/Frame 071435/0290 →
CHANGE OF NAME Recorded Jun 27, 2024
From: SANDISK TECHNOLOGIES, INC.
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 067982/0032 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 29, 2024
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 067567/0682 →
PATENT COLLATERAL AGREEMENT - DDTL LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 067045/0156 →
PATENT COLLATERAL AGREEMENT - A&R LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 064715/0001 →
RELEASE OF SECURITY INTEREST AT REEL 038744 FRAME 0481 Recorded Feb 8, 2022
From: JPMORGAN CHASE BANK, N.A.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 058982/0556 →
RELEASE OF SECURITY INTEREST Recorded Mar 5, 2018
From: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 045501/0714 →
SECURITY AGREEMENT Recorded May 17, 2016
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 038722/0229 →
SECURITY AGREEMENT Recorded May 17, 2016
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 038744/0281 →
SECURITY AGREEMENT Recorded May 17, 2016
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 038744/0481 →