IP Library › Granted Patent US 11,392,441
Granted Patent B2
US 11,392,441 · App. 16/730,113 · Granted Jul 19, 2022

Error reporting for non-volatile memory modules

Inventors: James R. Magro (Austin, TX); Kedarnath Balakrishnan (Bangalore, IN); Vilas Sridharan (Brookline, MA)
Assignee: Advanced Micro Devices, Inc.
G06F11/0772G06F3/0679G06F11/073G06F11/141
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 11,392,441
App. No.
16/730,113
Granted
Jul 19, 2022
Kind
B2
Abstract

A memory controller includes a command queue, a memory interface queue, and a non-volatile error reporting circuit. The command queue receives memory access commands including volatile reads, volatile writes, non-volatile reads, and non-volatile writes, and an output. The memory interface queue has an input coupled to the output of the command queue, and an output for coupling to a non-volatile storage class memory (SCM) module. The non-volatile error reporting circuit identifies error conditions associated with the non-volatile SCM module and maps the error conditions from a first number of possible error conditions associated with the non-volatile SCM module to a second, smaller number of virtual error types for reporting to an error monitoring module of a host operating system, the mapping based at least on a classification that the error condition will or will not have a deleterious effect on an executable process running on the host operating system.

Claims (33)

1. A memory controller, comprising:

a command queue having a first input for receiving memory access commands including volatile reads, volatile writes, non-volatile reads, and non-volatile writes, and an output, and having a plurality of entries;

a memory interface queue having an input coupled to the output of the command queue, and an output for coupling to a non-volatile storage class memory (SCM) module; and

a non-volatile error reporting circuit operable to identify error conditions associated with the non-volatile SCM module and map the error conditions from a first number of possible error conditions associated with the non-volatile SCM module to a second, smaller number of virtual error types for reporting to an error monitoring module of a host operating system, the mapping based at least on a classification that the error condition will or will not have a deleterious effect on an executable process running on the host operating system.

2. The memory controller of claim 1 , wherein the non-volatile error reporting circuit is further operable to report the virtual error types to the error monitoring module of the host operating system.

3. The memory controller of claim 1 , wherein the non-volatile error reporting circuit is further operable to report the error conditions to a baseboard management controller of a host data processing system.

4. The memory controller of claim 1 , wherein the error conditions include interrupt type errors and urgent type errors.

5. The memory controller of claim 1 , wherein the non-volatile error reporting circuit includes a lookup table indexed at least by error codes associated with the error conditions and containing associated virtual error types for the error codes.

6. The memory controller of claim 1 , wherein the mapping includes a determination of a type of effect that the error condition will have on the executable process.

7. The memory controller of claim 1 , wherein the mapping includes a determination of a severity level reported to the error monitoring module.

8. A method, comprising:

receiving a plurality of memory access requests including volatile memory reads, volatile memory writes, non-volatile memory reads, and non-volatile memory writes;

placing memory access commands for fulfilling the memory access requests in a memory interface queue and transmitting the memory access commands from the memory interface queue to a memory channel coupled to a non-volatile storage class memory (SCM) module;

based on information received over the memory channel, identifying error conditions associated with the memory channel; and

mapping the error conditions from a first number of possible error conditions associated with the non-volatile SCM module to a second, smaller number of virtual error types for reporting to an error monitoring module of a host operating system, the mapping based at least on a classification that the error condition will or will not have a deleterious effect on an executable process running on the host operating system.

9. The method of claim 8 , further comprising reporting the virtual error types to the error monitoring module of the host operating system.

10. The method of claim 8 , further comprising reporting the error conditions to a baseboard management controller.

11. The method of claim 8 , wherein the error conditions include interrupt type errors and urgent type errors.

12. The method of claim 8 , further comprising indexing a lookup table at least by error codes associated with the error conditions obtaining associated virtual error types for the error codes.

13. The method of claim 8 , wherein the mapping includes a determination of a type of effect that the error condition will have on the executable process.

14. The method of claim 8 , wherein the mapping includes determining a severity level to be reported to the error monitoring module.

15. A data processing system, comprising:

a central processing unit;

a data fabric coupled to the central processing unit; and

a memory controller coupled to the data fabric for fulfilling memory access requests made through the data fabric, the memory controller comprising:

a command queue having a first input for receiving memory access commands including volatile reads, volatile writes, non-volatile reads, and non-volatile writes, and an output, and having a plurality of entries;

a memory interface queue having an input coupled to the output of the command queue, and an output for coupling to a non-volatile storage class memory (SCM) module; and

a non-volatile error reporting circuit operable to identify error conditions associated with the non-volatile SCM module and map the error conditions from a first number of possible error conditions associated with the non-volatile SCM module to a second, smaller number of virtual error types for reporting to an error monitoring module of a host operating system, the mapping based at least on a classification that the error condition will or will not have a deleterious effect on an executable process running on the host operating system.

16. The data processing system of claim 15 , wherein the non-volatile error reporting circuit is further operable to report the virtual error types to the error monitoring module of the host operating system.

17. The data processing system of claim 15 , further comprising a baseboard management controller coupled to the central processing unit, wherein the non-volatile error reporting circuit is further operable to report the error conditions to a baseboard management controller.

18. The data processing system of claim 15 , wherein the error conditions include interrupt type errors and urgent type errors.

19. The data processing system of claim 15 , wherein the non-volatile error reporting circuit includes a lookup table indexed at least by error codes associated with the error conditions and containing associated virtual error types for the error codes.

20. The data processing system of claim 15 , wherein the mapping includes a determination of a severity level reported to the error monitoring module.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 22, 2020
From: MAGRO, JAMES R.; BALAKRISHNAN, KEDARNATH; SRIDHARAN, VILAS
To: ADVANCED MICRO DEVICES, INC.
Reel/Frame 051586/0542 →
Continuity (1)
Related Publication 20210200618A1 · Jul 1, 2021