IP Library Granted Patent US 8,554,968
Granted Patent B1
US 8,554,968 · App. 13/052,388 · Granted Oct 8, 2013

Interrupt technique for a nonvolatile memory controller

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,554,968
App. No.
13/052,388
Granted
Oct 8, 2013
Kind
B1
Abstract

A nonvolatile memory controller processes a nonvolatile memory command and generates a completion status for the nonvolatile memory command. The nonvolatile memory controller transmits the completion status to a host processing unit for storage in a completion queue of the host processing unit. An interrupt manager in the nonvolatile memory controller determines the completion queue contains an unprocessed completion status and generates an interrupt message packet. The nonvolatile memory controller transmits the interrupt message packet to the host processing unit for triggering an interrupt in the host processing unit and alerting the host processing unit to the unprocessed completion status.

Claims (27)

1. A nonvolatile memory controller for alerting a host processing unit to an unprocessed completion status contained in a completion queue of the host processing unit, the nonvolatile memory controller comprising:

an interrupt manager configured to generate a completion queue state for indicating the occurrence of a completion queue event associated with the completion queue, generate an interrupt vector state based on the completion queue state, determine the completion queue of the host processing unit contains an unprocessed completion status based on the interrupt vector state, and generate an interrupt message packet for triggering an interrupt in the host processing unit to alert the host processing unit of the unprocessed completion status in the completion queue, and wherein the completion queue state includes a doorbell update status indicating whether the host processing unit has performed a doorbell update event in which the host processing unit updates a head pointer stored in the nonvolatile memory controller for the completion queue.

2. The nonvolatile memory controller of claim 1 , wherein the interrupt is a hardware interrupt.

3. The nonvolatile memory controller of claim 1 , wherein the interrupt message packet includes an interrupt vector associated with the completion queue for triggering the interrupt in the host processing unit.

4. The nonvolatile memory controller of claim 3 , wherein completion queue state includes an event count indicating a number of completion message packets received by the host controller interface for the completion queue associated with the completion queue state.

5. The nonvolatile memory controller of claim 4 , wherein the interrupt vector state includes an aggregate event count for aggregating event counts of the completion queue state over a plurality of update operations, and wherein the interrupt manager is inhibited from generating an interrupt message packet if the aggregate event count is below an aggregate event count threshold.

6. The nonvolatile memory controller of claim 3 , wherein the interrupt vector state includes an aggregate time indicator for indicating, a time period between the last time the interrupt manager generated an interrupt message packet for the completion queues associated with the interrupt vector state.

7. The nonvolatile memory controller of claim 3 , wherein the completion queue state includes an empty queue indicator for indicating whether the completion queue is empty, and wherein the interrupt manager is inhibited from generating an interrupt message packet if the empty queue indicator indicates the completion queue is empty.

8. A nonvolatile memory controller comprising:

a completion queue state memory configured to store a plurality of completion queue states corresponding to a plurality of completion queues in a host processing unit;

an interrupt vector state memory configured to store a plurality of interrupt vector states corresponding to a plurality of interrupt vectors in the host processing unit; and

an interrupt manager controller coupled to the completion queue state memory and the interrupt vector state memory, the interrupt manager controller configured to map at least one completion queue state of the plurality of completion queue states to an interrupt vector state of the plurality of interrupt vector states, generate the interrupt vector state based on each completion queue state mapped to the interrupt vector state, determine a completion queue corresponding to a completion queue state mapped to the interrupt vector state contains an unprocessed completion status based on the interrupt vector state, and to generate an interrupt message packet based on the interrupt vector state for triggering an interrupt in the host processing unit to alert the host processing unit of the unprocessed completion status in the completion queue.

9. The nonvolatile memory controller of claim 8 , wherein the interrupt manager controller is configured to map at least two completion queue states of the plurality of completion queue states to the interrupt vector state.

10. The nonvolatile memory controller of claim 8 , wherein the interrupt manager controller is a sequential logic circuit.

11. The nonvolatile memory controller of claim 8 , wherein a completion queue state of the plurality of completion queue states includes a doorbell update status indicating whether the host processing unit has performed a doorbell update event in which the host processing unit updates a head pointer stored in the nonvolatile memory controller for the completion queue.

12. The nonvolatile memory controller of claim 8 , wherein a completion queue state of the plurality of completion queue states includes an event count indicating a number of completion message packets received by a host controller interface and including a completion status for the completion queue associated with the completion queue state.

13. The nonvolatile memory controller of claim 12 , wherein the interrupt vector state includes an aggregate event count for aggregating event counts of the completion queue state over a plurality of update operations, and wherein the interrupt manager is inhibited from generating an interrupt message packet if the aggregate event count is below an aggregate event count threshold.

14. The nonvolatile memory controller of claim 8 , wherein the interrupt vector state includes an aggregate time indicator for indicating a time period between the last time the interrupt manager generated an interrupt message packet for the completion queues associated with the interrupt vector state, and wherein the interrupt manager is inhibited from generating an interrupt message packet if the aggregate time indicator is below an aggregate time threshold.

15. The nonvolatile memory controller of claim 8 , wherein a completion queue state of the plurality of completion queue states includes an empty queue indicator for indicating whether the completion queue is empty, and wherein the interrupt manager is inhibited from generating an interrupt message packet if the empty queue indicator indicates the completion queue is empty.

16. A method comprising:

generating a completion queue state by a nonvolatile memory controller for indicating the occurrence of a completion queue event associated with a completion queue in a host processing unit, the completion queue state including a doorbell update status indicating whether the host processing unit has performed a doorbell update event in which the host processing unit updates a head pointer stored in the nonvolatile memory controller for the completion queue;

generating an interrupt vector state by the nonvolatile memory controller based on the completion queue state, the interrupt vector state associated with an interrupt vector in the host processing unit;

determining by the nonvolatile memory controller based on the interrupt vector state that the completion queue contains an unprocessed completion status; and

generating an interrupt message packet by a nonvolatile memory interface for triggering an interrupt in the host processing unit to alert the host processing unit of the unprocessed completion status in the completion queue.

17. The method of claim 16 , further comprising sending the interrupt message packet to the host processing unit.

18. The method of claim 16 , wherein the completion queue event is the host processing unit updating a head pointer stored in the nonvolatile memory controller for the completion queue.

19. The method of claim 16 , wherein the completion queue event is detecting a completion queue event flag set in a completion message packet containing a completion status.

Assignments (12)
CONFIRMATORY ASSIGNMENT Recorded Sep 7, 2022
From: IP GEM GROUP, LLC
To: POLARIS POWERLED TECHNOLOGIES, LLC
Reel/Frame 061372/0947 →
RELEASE OF SECURITY INTEREST Recorded May 29, 2018
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: MICROSEMI STORAGE SOLUTIONS, INC.; MICROSEMI STORAGE SOLUTIONS (U.S.), INC.
Reel/Frame 046251/0271 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 7, 2017
From: MICROSEMI SOLUTIONS (U.S.), INC.
To: IP GEM GROUP, LLC
Reel/Frame 043212/0001 →
CHANGE OF NAME Recorded Aug 7, 2017
From: MICROSEMI STORAGE SOLUTIONS (U.S.), INC.
To: MICROSEMI SOLUTIONS (U.S.), INC.
Reel/Frame 043458/0351 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE NAME AND ADDRESS PREVIOUSLY RECORDED AT REEL: 037961 FRAME: 0519. ASSIGNOR(S) HEREBY CONFIRMS THE CHANGE OF NAME. Recorded Mar 15, 2016
From: PMC-SIERRA US, INC.
To: MICROSEMI STORAGE SOLUTIONS (US), INC.
Reel/Frame 038102/0874 →
CHANGE OF NAME Recorded Mar 1, 2016
From: PMC-SIERRA US, INC.
To: MICROSEMI STORAGE SOLUTIONS (U.S.), INC.
Reel/Frame 037961/0519 →
PATENT SECURITY AGREEMENT Recorded Feb 3, 2016
From: MICROSEMI STORAGE SOLUTIONS, INC. (F/K/A PMC-SIERRA, INC.); MICROSEMI STORAGE SOLUTIONS (U.S.), INC. (F/K/A PMC-SIERRA US, INC.)
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 037689/0719 →
RELEASE OF SECURITY INTEREST Recorded Feb 1, 2016
From: BANK OF AMERICA, N.A.
To: PMC-SIERRA, INC.; PMC-SIERRA US, INC.; WINTEGRA, INC.
Reel/Frame 037675/0129 →
SECURITY INTEREST IN PATENTS Recorded Aug 6, 2013
From: PMC-SIERRA, INC.; PMC-SIERRA US, INC.; WINTEGRA, INC.
To: BANK OF AMERICA, N.A.
Reel/Frame 030947/0710 →
CORRECTIVE ASSIGNMENT TO CORRECT THE CONVEYING AND RECEIVING PARTIES PREVIOUSLY RECORDED ON REEL 030832 FRAME 0604. ASSIGNOR(S) HEREBY CONFIRMS THE CONVEYING PARTY DATA: INTEGRATED DEVICE TECHNOLOGY, INC. TECEIVING: PMC-SIERRA US, INC. Recorded Jul 23, 2013
From: INTEGRATED DEVICE TECHNOLOGY, INC.
To: PMC-SIERRA US, INC.
Reel/Frame 030919/0040 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 19, 2013
From: PMC-SIERRA US, INC.
To: INTEGRATED DEVICE TECHNOLOGY, INC.
Reel/Frame 030832/0604 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 21, 2011
From: ONUFRYK, PETER Z; PATEL, JAYESH; JASER, IHAB
To: INTEGRATED DEVICE TECHNOLOGY, INC.
Reel/Frame 025988/0934 →