IP Library Granted Patent US 9,727,494
Granted Patent B1
US 9,727,494 · App. 13/649,391 · Granted Aug 8, 2017

Method and system for communication between a computing device and a peripheral device

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,727,494
App. No.
13/649,391
Granted
Aug 8, 2017
Kind
B1
Abstract

Methods and systems for a device interfacing with a computing system are provided. The device is configured to send an input/output status block (IOSB) and an interrupt message to the processor of a computing system interfacing upon completion of an operation. The device generates the interrupt message while the IOSB is waiting to be transmitted; and transmits the IOSB to the processor, followed by the interrupt message, using a same data path for both the IOSB and the interrupt message. Furthermore, the device is configured to detect a request from the processor of the computing system interfacing to clear an interrupt status maintained by the device at a hardware location; send a message to the processor to de-assert the interrupt status and in parallel, clear the hardware location to clear the interrupt status such that the computing system can transfer information to the device for a next operation.

Claims (52)

1. A machine implemented method for sending an input/output status block (IOSB) and an interrupt message to a processor of a computing system interfacing with a device, comprising:

placing an input/output command block (IOCB) by the processor of the computing system at a memory of the computing system with a command for the device to perform a task;

retrieving the IOCB with the command by the device from the memory of the computing system using a direct memory access (DMA) operation;

executing a task associated with the command by the device from one of reading and writing data to and from a networked storage device;

configuring a DMA channel by a processor of the device for sending the IOSB indicating a status of the IOCB and for sending the interrupt message immediately after the IOSB using a same data path used for the interrupt message and the IOSB;

generating the IOSB by the processor of the device;

queuing by the device, the IOSB for transmission using the DMA channel;

setting by the device, an indicator associated with the IOSB that triggers sending the interrupt message associated with the IOSB immediately after the IOSB is sent using the same data path;

retrieving information by the device for generating the interrupt message after the IOSB is queued for transmission to the processor of the computing system;

generating the interrupt message by the device while the IOSB is waiting to be transmitted;

queuing the interrupt message behind the IOSB by the device; and

transmitting the IOSB to the processor of the computing system by the device, followed immediately by the interrupt message, using the same data path for sending both the IOSB and the interrupt message to maintain an order between the IOSB and the interrupt message such that the interrupt message is sent after the IOSB.

2. The method of claim 1 , wherein the device is a PCI-Express device.

3. The method of claim 1 , wherein the device is a host bus adapter coupled to the computing system using a PCI-Express link.

4. The method of claim 1 , wherein the device is a converged network adapter coupled to the computing system using a PCI-Express link.

5. The method of claim 1 , wherein the device is an adapter coupled to the computing system using a PCI-Express link.

6. The method of claim 1 , wherein an interrupt generation module at a host interface module generates the interrupt message for the processor of the computing system.

7. A non-transitory, machine readable storage medium having stored thereon instructions for performing a method for sending an input/output status block (IOSB) and an interrupt message to a processor of a computing system interfacing with a device, comprising machine executable code which when executed by at least one machine, causes the machine to:

place an input/output command block (IOCB) by the processor of the computing system at a memory of the computing system with a command for the device to perform a task;

retrieve the IOCB with the command by the device from the memory of the computing system using a direct memory access (DMA) operation;

execute a task associated with the command by the device from one of reading and writing data to and from a networked storage device;

configure a DMA channel by a processor of the device for sending the IOSB indicating a status of the IOCB and for sending the interrupt message immediately after the IOSB using a same data path used for the interrupt message and the IOSB;

generate the IOSB by the processor of the device;

queue by the device, the IOSB for transmission using the DMA channel;

set by the device an indicator associated with the IOSB that triggers sending the interrupt message associated with the IOSB immediately after the IOSB is sent using the same data path;

retrieve information by the device for generating the interrupt message after the IOSB is queued for transmission to the processor of the computing system;

generate the interrupt message by the device while the IOSB is waiting to be transmitted;

queuing the interrupt message behind the IOSB by the device; and

transmit the IOSB to the processor of the computing system, followed immediately by the interrupt message, using the same data path for sending both the IOSB and the interrupt message to maintain an order between the IOSB and the interrupt message such that the interrupt message is sent after the IOSB.

8. The machine readable storage medium of claim 7 , wherein the device is a PCI-Express device.

9. The machine readable storage medium of claim 7 , wherein the device is a host bus adapter coupled to the computing system using a PCI-Express link.

10. The machine readable storage medium of claim 7 , wherein the device is a converged network adapter coupled to the computing system using a PCI-Express link.

11. The machine readable storage medium of claim 7 , wherein the device is an adapter coupled to the computing system using a PCI-Express link.

12. The machine readable storage medium of claim 7 , wherein an interrupt generation module at a host interface module generates the interrupt message for the processor of the computing system.

13. A system, comprising:

a computing system having a memory and a processor; and

a device having a processor for accessing a storage device via a network connection;

wherein the processor of the computing system places an input/output command block (IOCB) at the memory of the computing system with a command for the device to perform a task; and

wherein the device:

retrieves the IOCB with the command from the memory of the computing system using a direct memory access (DMA) operation;

executes a task associated with the command from one of reading and writing data to and from a networked storage device;

configures a DMA channel for sending an input/output status block (IOSB) indicating a status of the IOCB and for sending an interrupt message immediately after the IOSB using a same data path used for the interrupt message and the IOSB;

generates the IOSB and queues the IOSB for transmission using the DMA channel;

sets an indicator associated with the IOSB that triggers sending the interrupt message associated with the IOSB immediately after the IOSB is sent using the same data path;

retrieves information for generating the interrupt message after the IOSB is queued for transmission to the processor of the computing system;

generates the interrupt message while the IOSB is waiting to be transmitted; queues the interrupt message behind the IOSB; and

transmits the IOSB to the processor of the computing system, followed immediately by the interrupt message, using the same data path for sending both the IOSB and the interrupt message to maintain an order between the IOSB and the interrupt message such that the interrupt message is sent after the IOSB.

14. The system of claim 13 , wherein the device is a PCI-Express device.

15. The system of claim 13 , wherein the device is a host bus adapter coupled to the computing system using a PCI-Express link.

16. The system of claim 13 , wherein the device is a converged network adapter coupled to the computing system using a PCI-Express link.

17. The system of claim 13 , wherein the device is an adapter coupled to the computing system using a PCI-Express link.

18. The system of claim 13 , wherein an interrupt generation module at a host interface module generates the interrupt message for the processor of the computing system.

Assignments (7)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 15, 2020
From: CAVIUM INTERNATIONAL
To: MARVELL ASIA PTE, LTD.
Reel/Frame 053179/0320 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 17, 2020
From: CAVIUM, LLC
To: CAVIUM INTERNATIONAL
Reel/Frame 051948/0807 →
CHANGE OF NAME Recorded Oct 8, 2018
From: CAVIUM, INC.
To: CAVIUM, LLC
Reel/Frame 047205/0953 →
RELEASE OF SECURITY INTEREST Recorded Jul 6, 2018
From: JP MORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: CAVIUM, INC; CAVIUM NETWORKS LLC; QLOGIC CORPORATION
Reel/Frame 046496/0001 →
MERGER Recorded Oct 18, 2017
From: QLOGIC CORPORATION
To: CAVIUM, INC.
Reel/Frame 044812/0504 →
SECURITY AGREEMENT Recorded Mar 1, 2017
From: QLOGIC CORPORATION
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 041854/0119 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 11, 2012
From: GANDHI, RAJENDRA R.; SONKSEN, BRADLEY S.; CHU, KUANGFU DAVID; CHAU, VI
To: QLOGIC, CORPORATION
Reel/Frame 029112/0152 →