IP Library Granted Patent US 6,931,571
Granted Patent B2
US 6,931,571 · App. 09/991,575 · Granted Aug 16, 2005

Method and apparatus for handling transient memory errors

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 6,931,571
App. No.
09/991,575
Granted
Aug 16, 2005
Kind
B2
Abstract

Method and apparatus for managing memory of a data processing system. In one embodiment, memory objects are allocated in response to memory allocation requests. Each object has an associated plurality of addresses. Type-identifier codes are respectively stored in association with the memory objects. Upon detection of a transient memory error at a memory address a recovery action is selected and performed based on the type-identifier code of the object that is associated with the erring memory address.

Claims (37)

1. A computer-implemented method of managing memory of a data processing system, comprising:

allocating memory objects in response to memory allocation requests, each object having an associated a plurality of addresses;

storing type-identifier codes in association with memory objects, respectively, wherein each type-identifier code is a program counter value from which allocation of memory is requested; and

responsive to a transient memory error at a memory address, identifying the memory object associated with the memory address, obtaining the type-identifier code associated with the memory object, selecting one of a plurality of recovery actions using the type-identifier code as selection criteria, and performing the one of the recovery actions.

2. The method of claim 1 , further comprising storing the type-identifier codes within the memory objects, respectively.

3. The method of claim 2 , wherein an operating system manages resources of the data processing system for use by application programs executing on the data processing system, and a first type-identifier code identifies memory objects used by the operating system and a second type-identifier code identifies memory objects used by the application programs.

4. The method of claim 2 , wherein the one of the recovery actions comprises disregarding the error.

5. The method of claim 2 , wherein the one of the recovery actions comprises signaling an application program if the address of the memory error is associated with a memory object allocated to the application program.

6. The method of claim 2 , wherein the one of the recovery actions comprises halting the operating system.

7. The method of claim 2 , wherein the one of the recovery actions comprises logging information that describes the memory error.

8. The method of claim 2 , wherein an operating system manages resources of the data processing system for use by application programs executing on the data processing system, and a first type-identifier code identifies memory objects of a first type used by the operating system, a second type-identifier code identifies memory objects of a second type used by the operating system, a third type-identifier code identifies memory objects used by the application programs, and for errors in memory objects associated with the second type-identifier code, the one of the recovery actions logs information that describes the memory error.

9. The method of claim 1 , wherein an operating system manages resources of the data processing system for use by application programs executing on the data processing system, and a first type-identifier code identifies memory objects used by the operating system and a second type-identifier code identifies memory objects used by the application programs.

10. The method of claim 1 , wherein the one of the recovery actions comprises disregarding the error.

11. The method of claim 1 , wherein the one of the recovery actions comprises signaling an application program if the address of the memory error is associated with a memory object allocated to the application program.

12. The method of claim 1 , wherein the one of the recovery actions comprises halting the operating system.

13. The method of claim 1 , wherein the one of the recovery actions comprises logging information that describes the memory error.

14. The method of claim 1 , wherein an operating system manages resources of the data processing system for use by application programs executing on the data processing system, and a first type-identifier code identifies memory objects of a first type used by the operating system, a second type-identifier code identifies memory objects of a second type used by the operating system, a third type-identifier code identifies memory objects used by the application programs, and for errors in memory objects associated with the second type-identifier code, the one of the recovery actions logs information that describes the memory error.

15. An apparatus for managing memory of a data processing system, comprising:

means for allocating memory objects in response to memory allocation requests, each object having an associated a plurality of addresses;

means for storing type-identifier codes in association with memory objects, respectively, wherein each type-identifier code is a program counter value from which allocation of memory is requested; and

means, responsive to a transient memory error at a memory address, for identifying the memory object associated with the memory address, obtaining the type-identifier code associated with the memory object, selecting one of a plurality of recovery actions using the type-identifier code as selection criteria, and performing the one of the recovery actions.

16. A processor-based method of managing memory of a data processing system, comprising:

allocating memory objects by an operating system in response to random access memory (RAM) allocation requests, each object having an associated a plurality of RAM addresses, the memory allocation requests received from operating system processes and non-operating system processes;

storing type-identifier codes in association with allocated memory objects, respectively, wherein a first type-identifier code identifies memory objects of a first type used by an operating system process, a second type-identifier code identifies memory objects of a second type used by an operating system process, and a third type-identifier code identifies memory objects used by a non-operating system process; and

responsive to an error detected at a RAM memory address and not corrected, identifying the memory object associated with the RAM memory address, obtaining the type-identifier code associated with the memory object, selecting one of a plurality of recovery actions using the type-identifier code as selection criteria, halting the operating system process in response to an error detected for a memory object having an associated first type-identifier code, and logging information that describes the error in response to an error detected for a memory object having a second type-identifier code.

17. The method of claim 16 further comprising storing the type-identifier codes within the memory objects, respectively.

18. The method of claim 17 , wherein the type-identifier code is a program counter value from which allocation of memory is requested.

19. The method of claim 17 , further comprising responsive to an error detected at a RAM memory address and not corrected, signaling a non-operating system process in response to an error detected for a memory object having a third type-identifier code.

20. An apparatus for managing memory of a data processing system, comprising:

means for allocating memory objects by an operating system in response to random access memory (RAM) allocation requests, each object having an associated a plurality of RAM addresses, the memory allocation requests received from operating system processes and non-operating system processes;

means for storing type-identifier codes in association with allocated memory objects, respectively, wherein a first type-identifier code identifies memory objects of a first type used by an operating system process, a second type-identifier code identifies memory objects of a second type used by an operating system process, and a third type-identifier code identifies memory objects used by a non-operating system process; and

means, responsive to an error detected at a RAM memory address and not corrected, for identifying the memory object associated with the RAM memory address, for obtaining the type-identifier code associated with the memory object, for selecting one of a plurality of recovery actions using the type-identifier code as selection criteria, for halting the operating system process in response to an error detected for a memory object having an associated first type-identifier code, and for logging information that describes the error in response to an error detected for a memory object having a second type-identifier code.

21. A program storage device, comprising:

a processor-readable medium configured with instructions for causing a processor to manage memory of a data processing system by,

allocating memory objects by an operating system in response to random access memory (RAM) allocation requests, each object having an associated a plurality of RAM addresses, the memory allocation requests received from operating system processes and non-operating system processes;

storing type-identifier codes in association with allocated memory objects, respectively, wherein a first type-identifier code identifies memory objects of a first type used by an operating system process, a second type-identifier code identifies memory objects of a second type used by an operating system process, and a third type-identifier code identifies memory objects used by a non-operating system process; and

responsive to an error detected at a RAM memory address and not corrected, identifying the memory object associated with the RAM memory address, obtaining the type-identifier code associated with the memory object, selecting one of a plurality of recovery actions using the type-identifier code as selection criteria, halting the operating system process in response to an error detected for a memory object having an associated first type-identifier code, and logging information that describes the error in response to an error detected for a memory object having a second type-identifier code.

Assignments (5)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 6, 2021
From: OT PATENT ESCROW, LLC
To: VALTRUS INNOVATIONS LIMITED
Reel/Frame 056157/0492 →
PATENT ASSIGNMENT, SECURITY INTEREST, AND LIEN AGREEMENT Recorded Jan 26, 2021
From: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP; HEWLETT PACKARD ENTERPRISE COMPANY
To: OT PATENT ESCROW, LLC
Reel/Frame 055269/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 9, 2015
From: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
To: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
Reel/Frame 037079/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 30, 2003
From: HEWLETT-PACKARD COMPANY
To: HEWLETT-PACKARD DEVELOPMENT COMPANY L.P.
Reel/Frame 014061/0492 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 22, 2002
From: BERNADAT, PHILIPPE; MILOJICIC, DEJAN; FU, GUANGRUI; MESSER, ALAN
To: HEWLETT-PACKARD COMPANY
Reel/Frame 012850/0170 →