Patent US6851074B2 successfully refreshed from Google Patents.
← Back to Patent Explorer
US6851074B2 Expired / Lapsed US ⏱️ 0.0 years remaining

System and method for recovering from memory failures in computer systems

Assignee: Valtrus Innovations Ltd
•
Filing: 2001-04-30
•
Granted: 2005-02-01
•
Expires: 2021-04-30
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract The present invention is a system and method for recovering from memory failures in computer systems. The method of the present invention includes the steps of: identifying a predetermined instruction sequence; monitoring for memory access errors in response to the request; logging a memory access error in an error logging register; polling the register for any logged memory access error during execution of the instruction sequence; and raising exceptions, if the memory access error is logged. Within the system of the present invention, memory access errors are stored in an error logging register, machine check abort handles are masked, and memory controllers are under full control of the software so that memory access errors can be intercepted and responded to without necessitating a system reboot or application restart. The present invention is particularly applicable to O/S code which can not otherwise recover from memory errors except by rebooting.

Inventors

  • 👤 Dejan S. Miloiicic
  • 👤 Thomas Wylegala
  • 👤 Fong Pong
  • 👤 Stephen Hoyle
  • 👤 Lance W. Russell
  • 👤 Lu Xu
  • 👤 Alberto J. Munoz

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-05 16:41
CPC Classifications
G; G06; G06F; G06F11/00; G06F11/07; G06F11/0703; G06F11/0766; G06F11/0772; G06F11/0706; G06F11/073; G06F11/14; G06F11/1402; G06F11/1405; G06F11/141; G06F11/0793

Claims Analysis

Total Claims: 32
Claim 1
Independent Claim 98 words
A method for recoverable programming, comprising the steps of: identifying a predetermined instruction sequence containing a memory access request; checkpointing a predetermined set of system data; executing the memory access request after the checkpointing; monitoring for memory access errors; logging any memory access errors in an error logging register; polling the register for any logged memory access error during execution of the instruction sequence; raising exceptions, if any memory access error is logged; and recovering from any memory access error using the checkpointed system data, if the memory access error is logged during execution of the instruction sequence.
Claim 2
Independent Claim 98 words
A method for recoverable programming, comprising the steps of: identifying a predetermined instruction sequence containing a memory access request; checkpointing a predetermined set of system data; executing the memory access request after the checkpointing; monitoring for memory access errors; logging any memory access errors in an error logging register; polling the register for any logged memory access error during execution of the instruction sequence; raising exceptions, if any memory access error is logged; and recovering from any memory access error using the checkpointed system data, if the memory access error is logged during execution of the instruction sequence.
Claim 3
Dependent Claim 43 words
The method of claim 1 , further comprising the steps of: checkpointing a predetermined set of system data; and recovering from the memory access error using the checkpointed system data, if the memory access error is logged during execution of the instruction sequence.
Claim 4
Dependent Claim 42 words
The method of claim 1 , further comprising the step of: setting data returned in response to the memory access request equal to a set of predefined fake data, if the memory access error is logged during execution of the instruction sequence.
Claim 5
Dependent Claim 36 words
The method of claim 3 , further comprising the step of: skipping the polling and raising steps if the data returned in response to the memory access request is not equivalent to the predefined fake data.
Claim 6
Dependent Claim 17 words
The method of claim 1 , further comprising the step of: masking a machine check abort handle.
Claim 7
Dependent Claim 21 words
The method of claim 5 , after the raising step, further comprising the steps of: enabling the machine check abort handle.
Claim 8
Dependent Claim 20 words
The method of claim 1 , further comprising the step of: updating pointers, if the memory access error is logged.
Claim 9
Dependent Claim 20 words
The method of claim 1 , further comprising the step of: re-executing the memory access request, if software so commands.
Claim 10
Independent Claim 115 words
A method for recoverable programming, comprising the steps of: identifying a predetermined instruction sequence; checkpointing a predetermined set of system data; masking a machine check abort handle; monitoring for memory access errors; logging a memory access error in an error logging register; polling the register for any logged memory access error during execution of the instruction sequence; raising exceptions, if the memory access error is logged; updating pointers, if the memory access error is logged; recovering from the memory access error using the checkpointed system data, if the memory access error is logged during execution of the instruction sequence; re-executing the memory access request, if software so commands; and enabling the machine check abort handle.
Claim 11
Independent Claim 115 words
A method for recoverable programming, comprising the steps of: identifying a predetermined instruction sequence; checkpointing a predetermined set of system data; masking a machine check abort handle; monitoring for memory access errors; logging a memory access error in an error logging register; polling the register for any logged memory access error during execution of the instruction sequence; raising exceptions, if the memory access error is logged; updating pointers, if the memory access error is logged; recovering from the memory access error using the checkpointed system data, if the memory access error is logged during execution of the instruction sequence; re-executing the memory access request, if software so commands; and enabling the machine check abort handle.
Claim 12
Dependent Claim 108 words
A computer-usable medium embodying computer program code for commanding a computer to perform recoverable programming, comprising the steps of: identifying a predetermined instruction sequence containing a memory access request; checkpointing a predetermined set of system data; executing the memory access request after the checkpointing; monitoring for memory access errors; logging any memory access errors in an error logging register; polling the register for any logged memory access error during execution of the instruction sequence; raising exceptions, if any memory access error is logged; and recovering from any memory access error using the checkpointed system data, if the memory access error is logged during execution of the instruction sequence.
Claim 13
Dependent Claim 108 words
A computer-usable medium embodying computer program code for commanding a computer to perform recoverable programming, comprising the steps of: identifying a predetermined instruction sequence containing a memory access request; checkpointing a predetermined set of system data; executing the memory access request after the checkpointing; monitoring for memory access errors; logging any memory access errors in an error logging register; polling the register for any logged memory access error during execution of the instruction sequence; raising exceptions, if any memory access error is logged; and recovering from any memory access error using the checkpointed system data, if the memory access error is logged during execution of the instruction sequence.
Claim 14
Dependent Claim 43 words
The medium of claim 10 , further comprising the steps of: checkpointing a predetermined set of system data; and recovering from the memory access error using the checkpointed system data, if the memory access error is logged during execution of the instruction sequence.
Claim 15
Dependent Claim 42 words
The medium of claim 10 , further comprising the step of: setting data returned in response to the memory access request equal to a set of predefined fake data, if the memory access error is logged during execution of the instruction sequence.
Claim 16
Dependent Claim 36 words
The medium of claim 10 , further comprising the step of: skipping the polling and raising steps if the data returned in response to the memory access request is not equivalent to the predefined fake data.
Claim 17
Dependent Claim 17 words
The medium of claim 10 , further comprising the step of: masking a machine check abort handle.
Claim 18
Independent Claim 111 words
A system for recoverable programming, comprising: means for identifying a predetermined instruction sequence containing a memory access request; means for checkpointing a predetermined set of system data; means for executing the memory access request after the checkpointing; means for monitoring for memory access errors; means for logging any memory access errors in an error logging register; means for polling the register for any logged memory access error during execution of the instruction sequence; means for raising exceptions, if any memory access error is logged; and means for recovering from any memory access error using the checkpointed system data, if the memory access error is longed during execution of the instruction sequence.
Claim 19
Independent Claim 111 words
A system for recoverable programming, comprising: means for identifying a predetermined instruction sequence containing a memory access request; means for checkpointing a predetermined set of system data; means for executing the memory access request after the checkpointing; means for monitoring for memory access errors; means for logging any memory access errors in an error logging register; means for polling the register for any logged memory access error during execution of the instruction sequence; means for raising exceptions, if any memory access error is logged; and means for recovering from any memory access error using the checkpointed system data, if the memory access error is longed during execution of the instruction sequence.
Claim 20
Dependent Claim 44 words
The system of claim 15 , further comprising: means for checkpointing a predetermined set of system data; and means for recovering from the memory access error using the checkpointed system data, if the memory access error is logged during execution of the instruction sequence.
Claim 21
Dependent Claim 41 words
The system of claim 15 , further comprising: means for setting data returned in response to the memory access request equal to a set of predefined fake data, if the memory access error is logged during execution of the instruction sequence.
Claim 22
Dependent Claim 38 words
The system of claim 17 , further comprising: means for bypassing the means for polling and means for raising if the data returned in response to the memory access request is not equivalent to the predefined fake data.
Claim 23
Dependent Claim 19 words
The system of claim 15 , further comprising the step of: means for masking a machine check abort handle.
Claim 24
Independent Claim 85 words
A method for recoverable programming, comprising the steps of: identifying a predetermined instruction sequence; monitoring for memory access errors; logging a memory access error in an error logging register; polling the register for any logged memory access error during execution of the instruction sequence; raising exceptions, if the memory access error is logged; and setting data returned in response to the memory access request equal to a set of predefined fake data, if the memory access error is logged during execution of the instruction sequence.
Claim 25
Independent Claim 85 words
A method for recoverable programming, comprising the steps of: identifying a predetermined instruction sequence; monitoring for memory access errors; logging a memory access error in an error logging register; polling the register for any logged memory access error during execution of the instruction sequence; raising exceptions, if the memory access error is logged; and setting data returned in response to the memory access request equal to a set of predefined fake data, if the memory access error is logged during execution of the instruction sequence.
Claim 26
Dependent Claim 36 words
The method of claim 20 , further comprising the step of: skipping the polling and raising steps if the data returned in response to the memory access request is not equivalent to the predefined fake data.
Claim 27
Dependent Claim 95 words
A computer-usable medium embodying computer program code for commanding a computer to perform recoverable programming, comprising the steps of: identifying a predetermined instruction sequence; monitoring for memory access errors; logging a memory access error in an error logging register; polling the register for any logged memory access error during execution of the instruction sequence; raising exceptions, if the memory access error is logged; and setting data returned in response to the memory access request equal to a set of predefined fake data, if the memory access error is logged during execution of the instruction sequence.
Claim 28
Dependent Claim 95 words
A computer-usable medium embodying computer program code for commanding a computer to perform recoverable programming, comprising the steps of: identifying a predetermined instruction sequence; monitoring for memory access errors; logging a memory access error in an error logging register; polling the register for any logged memory access error during execution of the instruction sequence; raising exceptions, if the memory access error is logged; and setting data returned in response to the memory access request equal to a set of predefined fake data, if the memory access error is logged during execution of the instruction sequence.
Claim 29
Dependent Claim 36 words
The medium of claim 22 , further comprising the step of: skipping the polling and raising steps if the data returned in response to the memory access request is not equivalent to the predefined fake data.
Claim 30
Independent Claim 94 words
A system for recoverable programming, comprising: means for identifying a predetermined instruction sequence; means for monitoring for memory access errors; means for logging a memory access error in an error logging register; means for polling the register for any logged memory access error during execution of the instruction sequence; means for raising exceptions, if the memory access error is logged; and means for setting data returned in response to the memory access request equal to a set of predefined fake data, if the memory access error is logged during execution of the instruction sequence.
Claim 31
Independent Claim 94 words
A system for recoverable programming, comprising: means for identifying a predetermined instruction sequence; means for monitoring for memory access errors; means for logging a memory access error in an error logging register; means for polling the register for any logged memory access error during execution of the instruction sequence; means for raising exceptions, if the memory access error is logged; and means for setting data returned in response to the memory access request equal to a set of predefined fake data, if the memory access error is logged during execution of the instruction sequence.
Claim 32
Dependent Claim 38 words
The system of claim 24 , further comprising: means for bypassing the means for polling and means for raising if the data returned in response to the memory access request is not equivalent to the predefined fake data.

References Cited (Backward Citations)

US4174537A Cited
US4371949A Cited
US4811347A Cited
US5261084A Cited
US5428766A Cited
US5644709A Cited
US5953530A Cited
US5867642A Cited
US6505305B1 Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2008-02-01 2008-08-02 2009-02-01 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2012-02-01 2012-08-02 2013-02-01 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2016-02-01 2016-08-02 2017-02-01 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag