IP Library Granted Patent US 10,628,350
Granted Patent B1
US 10,628,350 · App. 15/874,727 · Granted Apr 21, 2020

Methods and systems for generating interrupts by a response direct memory access module

Inventors: Dharma Konda (Aliso Viejo, CA); Ben Hui (Irvine, CA)
Assignee: Cavium, LLC
G06F13/24G06F13/287
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,628,350
App. No.
15/874,727
Granted
Apr 21, 2020
Kind
B1
Abstract

Methods and systems for generating interrupts are provided. One method includes maintaining an in-pointer array by a response direct memory access (DMA) module of an adapter indicating that a message has been posted at a host memory of a host system coupled to the adapter for sending and receiving data using a network; updating an out-pointer array at the response DMA module by a host system processor, after the host system processor reads the message posted at the host memory; receiving event information by a hardware based, interrupt module of the response DMA module, the interrupt module using the event information and information stored at an interrupt array to determine that an interrupt is to be generated for the host processor; and generating the interrupt for the host processor by the interrupt module, without using an adapter processor.

Claims (41)

1. A machine implemented method, comprising:

maintaining an in-pointer array by a response direct memory access (DMA) module of an adapter indicating that a message has been posted at a host memory of a host system the host system having a host system processor interfacing with the adapter, for sending and receiving data using a network connection; wherein the response DMA module sends data to the host memory via a DMA operation;

updating an out-pointer array at the response DMA module by the host system processor, after the host system processor reads the message posted at the host memory;

receiving event information by a hardware based, interrupt module of the response DMA module, the interrupt module using the event information and information stored at an interrupt array to determine that an interrupt is to be generated for the host processor;

wherein the event information includes one of an update to the in-pointer array; an update to the out-pointer array, and a message from the adapter processor to clear the in-pointer array and the out-pointer array;

updating a shadow pointer array at the host memory by the adapter processor, when the event information includes an up-date to the in-pointer array, the shadow pointer array configured to store information of the in-pointer array at the host memory;

generating the interrupt for the host processor by the interrupt module, without using an adapter processor; and

updating the interrupt array by the interrupt module with the event information for generating another interrupt for a next event, without using the adapter processor;

wherein when multiple event information are received at a same time, then one of the multiple event formation is selected by an arbiter of the interrupt module and provided to control logic of the interrupt module.

2. The method of claim 1 , wherein an update to the in-pointer array is an event for which an interrupt is generated.

3. The method of claim 1 , wherein the interrupt array stores a timer state that triggers an interrupt by the interrupt module.

4. The method of claim 1 , wherein an interrupt is generated when the adapter processor sets a bit indicating an immediate action operation and a host queue status indicates a non-empty status prior to an update of the in-pointer array.

5. The method of claim 1 , wherein an interrupt is generated when a present run timer state transitions to a load timer state and a host queue status is non-empty.

6. The method of claim 1 , wherein the control logic scans the interrupt array and uses the event information to determine if an interrupt is to be generated.

7. A non-transitory, machine readable storage medium having stored thereon instructions for performing a method, comprising machine executable code which when executed by at least one machine, causes the machine to:

maintain an in-pointer array by a response direct memory access (DMA) module of an adapter indicating that a message has been posted at a host memory of a host system, the host system having a host system processor interfacing with the adapter, for sending and receiving data using a network connection; wherein the response DMA module sends data to the host memory via a DMA operation;

update an out-pointer array at the response DMA module by the host system processor, after the host system processor reads the message posted at the host memory;

receive event information by a hardware based, interrupt module of the response DMA module, the interrupt module using the event information and information stored at an interrupt array to determine that an interrupt is to be generated for the host processor; wherein the event information includes one of an update to the in-pointer array; an update to the out-pointer array, and a message from the adapter processor to clear the in-pointer array and the out-pointer array;

update a shadow pointer array at the host memory by the adapter processor, when the event information includes an up-date to the in-pointer array, the shadow pointer array configured to store information of the in-pointer array at the host memory;

generate the interrupt for the host processor by the interrupt module, without using an adapter processor; and

update the interrupt array by the interrupt module with the event information for generating another interrupt for a next event, without using the adapter processor; wherein when multiple event information are received at a same time, then one of the multiple event formation is selected by an arbiter of the interrupt module and provided to control logic of the interrupt module.

8. The storage medium of claim 7 , wherein an update to the in-pointer array is an event for which an interrupt is generated.

9. The storage medium of claim 7 , wherein the interrupt array stores a timer state that triggers an interrupt by the interrupt module.

10. The storage medium of claim 7 , wherein an interrupt is generated when the adapter processor sets a bit indicating an immediate action operation and a host queue status indicates a non-empty status prior to an update of the in-pointer array.

11. The storage medium of claim 7 , wherein an interrupt is generated when a present run timer state transitions to a load timer state and a host queue status is non-empty.

12. The storage medium of claim 7 , wherein the control logic scans the interrupt array and uses the event information to determine if an interrupt is to be generated.

13. An adapter, comprising:

a response direct memory access (DMA) module having:

an in-pointer array stored at an adapter memory indicating that a message has been posted at a host memory of a host system having a host processor interfacing with the adapter for sending and receiving data using a network;

an out-pointer array that is updated by the host system processor, after the host system processor reads the message posted at the host memory; and

an interrupt module that receives event information, uses the event information and information stored at an interrupt array to determine that an interrupt is to be generated for the host processor; generates the interrupt for the host processor, without using an adapter processor; and updates the interrupt array with the event information for generating another interrupt for a next event, without using the adapter processor;

wherein the event information includes one of an update to the in-pointer array; an update to the out-pointer array, and a message from the adapter processor to clear the in-pointer array and the out-pointer array;

wherein a shadow pointer array is updated at the host memory by the adapter processor, when the event information includes an up-date to the in-pointer array, the shadow pointer array configured to store pointer information of the in-pointer array at the host memory; wherein when multiple event information are received at a same time, then one of the multiple event formation is selected by an arbiter of the interrupt module and provided to control logic of the interrupt module.

14. The adapter of claim 13 , wherein an update to the in-pointer array is an event for which an interrupt is generated.

15. The adapter of claim 13 , wherein the interrupt array stores a timer state that triggers an interrupt by the interrupt module.

16. The adapter of claim 13 , wherein an interrupt is generated when the adapter processor sets a bit indicating an immediate action operation and a host queue status indicates a non-empty status prior to an update of the in-pointer array.

17. The adapter of claim 13 , wherein an interrupt is generated when a present run timer state transitions to a load timer state and a host queue status is non-empty.

18. The adapter of claim 13 , wherein the control logic scans the interrupt array and uses the event information to determine if an interrupt is to be generated.

19. The method of claim 1 , wherein the adapter is configured to process network traffic, storage traffic or both network and storage traffic using the network connection.

20. The storage medium of claim 7 , wherein the adapter is configured to process network traffic, storage traffic or both network and storage traffic using the network connection.

21. The adapter of claim 13 , wherein the adapter is configured to process network traffic, storage traffic or both network and storage traffic using the network connection.

Assignments (5)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 2, 2020
From: CAVIUM INTERNATIONAL
To: MARVELL ASIA PTE, LTD.
Reel/Frame 053957/0838 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 18, 2020
From: CAVIUM, LLC
To: CAVIUM INTERNATIONAL
Reel/Frame 053526/0174 →
CHANGE OF NAME Recorded Dec 16, 2019
From: CAVIUM, INC.
To: CAVIUM, LLC
Reel/Frame 051301/0387 →
CHANGE OF NAME Recorded Oct 8, 2018
From: CAVIUM, INC.
To: CAVIUM, LLC
Reel/Frame 047205/0953 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 18, 2018
From: KONDA, DHARMA; HUI, BEN
To: CAVIUM, INC.
Reel/Frame 044660/0608 →
Cited By (1)
US 12,326,824