← Back to Patent Explorer
US5867642A Expired / Lapsed US ⏱️ 0.0 years remaining

System and method to coherently and dynamically remap an at-risk memory area by simultaneously writing two memory areas

Assignee: Dell USA LP
•
Filing: 1995-08-10
•
Granted: 1999-02-02
•
Expires: 2015-08-10
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract In a computer system comprising a CPU, main memory, and a memory controller, a system and method to dynamically remap memory while maintaining memory coherency. The main memory is divided into memory areas, one of which is a reserve memory area. Memory accesses are checked for errors and the errors are logged, as is the memory area in which the error occurred. The error log for each memory area is compared to an acceptable error frequency level. If a particular memory area exceeds the acceptable error frequency level, the memory area will be dynamically remapped to the reserve memory area while memory coherency is maintained. The dynamic remapping is performed by copying the memory from the memory area which exceeded the acceptable error frequency level, to the reserve memory are. During the copying, all writes to the memory area which exceeded the acceptable error frequency level are concurrently performed to both the memory area which exceeded the acceptable error frequency level and to the reserve memory area, thus preserving memory coherency. Also, the copying is performed in small blocks to avoid system timing problems.

Inventors

  • 👤 Joseph Vivio
  • 👤 Richard Chan

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-05 20:18
CPC Classifications
G; G11; G11C; G11C29/00; G11C29/70; G11C29/76; G11C29/765; G11C29/74; G06; G06F; G06F11/00; G06F11/07; G06F11/0703; G06F11/0751; G06F11/0754; G06F11/076; G06F11/08; G06F11/10; G06F11/1008; G06F11/1044

Claims Analysis

Total Claims: 32
Claim 1
Independent Claim 233 words
In a computer system comprising a central processing unit (CPU), a memory controller coupled to the CPU, and a memory coupled to the memory controller, wherein the memory is divided into areas, wherein the CPU performs read and write accesses of the memory through the memory controller, the computer system further comprising at least one other device performing write accesses of the memory through the memory controller, a method for dynamically remapping an at risk memory area to a reserve memory area, the method comprising: determining if one of said memory areas is at risk for failure; concurrently performing all write accesses of said at risk memory area to both said at risk memory area and to said reserve memory area, wherein said concurrently performing all write accesses is performed in response to determining that one of said memory areas is at risk for failure; copying said at risk memory area to said reserve memory area, wherein said copying is performed in response to determining that one of said memory areas is at risk for failure; wherein said concurrently performing all write accesses continues until said copying is completed and wherein memory coherency is maintained during said copying; and upon completion of said copying, mapping all accesses which were previously mapped to said at risk memory area, to said reserve memory area only, wherein said at risk memory area is no longer accessed.
Claim 2
Dependent Claim 233 words
In a computer system comprising a central processing unit (CPU), a memory controller coupled to the CPU, and a memory coupled to the memory controller, wherein the memory is divided into areas, wherein the CPU performs read and write accesses of the memory through the memory controller, the computer system further comprising at least one other device performing write accesses of the memory through the memory controller, a method for dynamically remapping an at risk memory area to a reserve memory area, the method comprising: determining if one of said memory areas is at risk for failure; concurrently performing all write accesses of said at risk memory area to both said at risk memory area and to said reserve memory area, wherein said concurrently performing all write accesses is performed in response to determining that one of said memory areas is at risk for failure; copying said at risk memory area to said reserve memory area, wherein said copying is performed in response to determining that one of said memory areas is at risk for failure; wherein said concurrently performing all write accesses continues until said copying is completed and wherein memory coherency is maintained during said copying; and upon completion of said copying, mapping all accesses which were previously mapped to said at risk memory area, to said reserve memory area only, wherein said at risk memory area is no longer accessed.
Claim 3
Dependent Claim 101 words
The method of claim 1, wherein said determining if one of said memory areas is at risk comprises: determining an error frequency level that indicates one of said memory areas is at risk for failure; detecting if an error occurs whenever said memory areas are accessed; tracking the frequency of said errors detected in each one of said memory areas; and for each one of said memory areas, comparing said frequency of said errors detected in each one of said memory areas to said error frequency level and thereby determining if one of said memory areas is at risk for failure.
Claim 4
Dependent Claim 24 words
The method of claim 2, wherein said detecting comprises using error correction codes stored in said memory to detect errors without halting system operation.
Claim 5
Dependent Claim 63 words
The method of claim 2, wherein said tracking comprises: interrupting said CPU when one of said errors is detected for said one of said memory areas; and logging the occurrence of said one of said errors for said one of said memory areas, wherein said logging is performed, in response to said interrupting, by a system management computer program executed by said CPU.
Claim 6
Dependent Claim 20 words
The method of claim 2, wherein said comparing is performed by a system management computer program executed by said CPU.
Claim 7
Dependent Claim 77 words
The method of claim 1, wherein said memory controller asserts a row address strobe (RAS) for one of said memory areas when said one of said memory areas is accessed; and wherein said concurrently performing all write accesses of said at risk memory area comprises programming said memory controller to concurrently assert both the row address strobe for said at risk memory area and the row address strobe for said reserve memory area during said write accesses.
Claim 8
Dependent Claim 50 words
The method of claim 6, wherein said programming said memory controller to assert both the row address strobe for said at risk memory area and the row address strobe for said reserve memory area during said write accesses is performed by a system management computer program executed by said CPU.
Claim 9
Dependent Claim 90 words
The method of claim 1, wherein said computer system farther comprises devices and applications that require frequent accesses to said memory; wherein said copying is performed by a system management computer program executed by said CPU; and wherein said copying is performed in small blocks, wherein said copying of each of said blocks is performed in a relatively small amount of time so that said copying does not prevent said devices and applications that require frequent accesses to said memory from accessing said memory for an extended amount of time.
Claim 10
Dependent Claim 38 words
The method of claim 1, wherein said mapping all accesses which were previously mapped to said at risk memory area to said reserve memory area only is performed by a system management computer program executed by said CPU.
Claim 11
Dependent Claim 46 words
The method of claim 1, wherein each of said memory areas comprise a single in-line memory module, the method further comprising generating a message identifying the single in-line memory module associated with said at risk memory area and recommending replacement of said single in-line memory module.
Claim 12
Dependent Claim 73 words
The method of claim 1 further comprising selecting between a first mode and a second mode, wherein when said first mode is selected, said determining, said performing, said copying, and said programming are performed; but when said second mode is selected, said determining, said performing, said copying, and said programing are not performed and said reserve memory area is used as a normal memory area, thereby increasing the total amount of memory available.
Claim 13
Independent Claim 294 words
A system for coherent, dynamic remapping of memory in a computer system from an at risk memory area to a reserve memory area, comprising: a central processing unit (CPU); a memory controller coupled to said CPU and comprising error detection and correction logic, concurrent write logic, and mapping logic; memory, coupled to said memory controller, physically divided into areas, wherein one of said memory areas is a reserve memory area used for remapping of at risk memory, and wherein said CPU performs read and write accesses of said memory through said memory controller; and a bus master device which performs write accesses of said memory through said memory controller; wherein said error detection and correction logic detects if an error occurs when each of said memory areas is accessed and stores error information associated with each of said memory areas; wherein one of said memory areas is copied to said reserve memory area in response to said error detection and correction logic detecting a first number of errors in one of said memory areas; wherein said concurrent write logic operates in response to said error detection and correction logic detecting said first number of errors in one of said memory areas to concurrently perform all write accesses directed to said one of said memory areas to both said one of said memory areas and to said reserve memory area; wherein memory coherency is maintained when said one of said memory areas is copied to said reserve memory area; and wherein said mapping logic operates in response to said detection and correction logic detecting said first number of errors in one of said memory areas to change mapping of said read and write accesses from one of said memory areas to said reserve memory area.
Claim 14
Independent Claim 294 words
A system for coherent, dynamic remapping of memory in a computer system from an at risk memory area to a reserve memory area, comprising: a central processing unit (CPU); a memory controller coupled to said CPU and comprising error detection and correction logic, concurrent write logic, and mapping logic; memory, coupled to said memory controller, physically divided into areas, wherein one of said memory areas is a reserve memory area used for remapping of at risk memory, and wherein said CPU performs read and write accesses of said memory through said memory controller; and a bus master device which performs write accesses of said memory through said memory controller; wherein said error detection and correction logic detects if an error occurs when each of said memory areas is accessed and stores error information associated with each of said memory areas; wherein one of said memory areas is copied to said reserve memory area in response to said error detection and correction logic detecting a first number of errors in one of said memory areas; wherein said concurrent write logic operates in response to said error detection and correction logic detecting said first number of errors in one of said memory areas to concurrently perform all write accesses directed to said one of said memory areas to both said one of said memory areas and to said reserve memory area; wherein memory coherency is maintained when said one of said memory areas is copied to said reserve memory area; and wherein said mapping logic operates in response to said detection and correction logic detecting said first number of errors in one of said memory areas to change mapping of said read and write accesses from one of said memory areas to said reserve memory area.
Claim 15
Dependent Claim 17 words
The system of claim 12 wherein each of said memory areas comprises a single in-line memory module.
Claim 16
Dependent Claim 35 words
The system of claim 12 wherein each of said memory areas comprises error correction codes used by said error detection and correction logic to correct simple errors in said memory areas without halting system operation.
Claim 17
Dependent Claim 58 words
The system of claim 12, wherein each of said memory areas has an associated row address strobe (RAS), and wherein said concurrent write logic performs said concurrently performed writes by concurrently asserting both the row address strobe for said one of said memory areas and the row address strobe for said reserve memory area during said write accesses.
Claim 18
Dependent Claim 118 words
The system of claim 12, further comprising a plurality of subcontrollers which include: a subcontroller configured to determine if one of said memory areas is at risk based upon said error information stored by said error detection and correction logic; a subcontroller configured to operate said concurrent write logic to concurrently perform all writes directed to said at risk memory area, to both said at risk memory area and to said reserve memory area; a subcontroller configured to copy said at risk memory area to said reserve memory area; and a subcontroller configured to operate said mapping logic to map said read and write accesses previously mapped to said at risk memory area to said reserve memory area.
Claim 19
Dependent Claim 78 words
The system of claim 16, wherein said subcontroller configured to copy said at risk memory area to said reserve memory area is further configured to copy said at risk memory area to said reserve memory area in small blocks, wherein each of said blocks is copied in a relatively short amount of time so that devices and applications that require frequent access to said memory are not prevented from accessing said memory for an extended amount of time.
Claim 20
Dependent Claim 113 words
The system of claim 17, wherein said subcontroller configured to determine if one of said memory areas is at risk comprises: a subcontroller configured to determine an error frequency level that indicates one of said memory areas is at risk for failure; a subcontroller configured to retrieve said error information from said error detection and correction logic each time said errors occur; a subcontroller configured to track the frequency of said errors detected in each one of said memory areas; and a subcontroller configured to compare said frequency to said error frequency level for said each one of said memory areas, and thereby determining if one of said memory areas is at risk.
Claim 21
Dependent Claim 22 words
The system of claim 18, wherein at least one of said plurality of subcontrollers comprises a computer program executed on said CPU.
Claim 22
Dependent Claim 39 words
The system of claim 18, wherein said system further comprises a system management controller coupled to said memory controller, and wherein at least one of said plurality of subcontrollers comprises a computer program executed on said system management controller.
Claim 23
Dependent Claim 20 words
The system of claim 18, wherein at least one of said plurality of subcontrollers comprises circuitry within said memory controller.
Claim 24
Dependent Claim 108 words
The system of claim 12, further comprising: means for determining if one of said memory areas is at risk based upon said error information stored by said error detection and correction logic; means for operating said concurrent write logic to concurrently perform all writes directed to said at risk memory area, to both said at risk memory area and to said reserve memory area; means for operating said CPU to copy said at risk memory area to said reserve memory area; and means for operating said mapping logic to map said read and write accesses previously mapped to said at risk memory area to said reserve memory area.
Claim 25
Dependent Claim 102 words
The system of claim 22, wherein said computer system comprises devices and applications that require frequent accesses to said memory; and wherein said means for operating said CPU to copy said at risk memory area to said reserve memory area is further configured to operate said CPU to copy said at risk memory area to said reserve memory area in small blocks, wherein each of said blocks is copied in a relatively short amount of time so that said devices and applications that require frequent access to said memory are not prevented from accessing said memory for an extended amount of time.
Claim 26
Dependent Claim 106 words
The system of claim 23, wherein said means for determining if one of said memory areas is at risk comprises: means for determining an error frequency level that indicates one of said memory areas is at risk for failure; means for retrieving said error information from said error detection and correction logic each time said errors occur; means for tracking the frequency of said errors detected in each one of said memory areas; and means for comparing said frequency to said error frequency level for said each one of said memory areas, and thereby performing said determining if one of said memory areas is at risk.
Claim 27
Dependent Claim 17 words
The system of claim 24, wherein each said means comprises a computer program executed on said CPU.
Claim 28
Dependent Claim 106 words
The system of claim 12, wherein said CPU determines if one of said memory areas is at risk based upon said error information stored by said error detection and correction logic; wherein said CPU operates said concurrent write logic to concurrently perform all writes directed to said at risk memory area, to both said at risk memory area and to said reserve memory area; wherein said CPU copies said at risk memory area to said reserve memory area; and wherein said CPU operates said mapping logic to map said read and write accesses previously mapped to said at risk memory area to said reserve memory area.
Claim 29
Dependent Claim 63 words
The system of claim 26, wherein said CPU copies said at risk memory area to said reserve memory area in small blocks, wherein said CPU copies each of said blocks in a relatively short amount of time so that said devices and applications that require frequent access to said memory are not prevented from accessing said memory for an extended amount of time.
Claim 30
Dependent Claim 95 words
The system of claim 27, wherein said CPU determines an error frequency level that indicates one of said memory areas is at risk for failure; wherein said CPU retrieves said error information from said error detection and correction logic each time said errors occur; wherein said CPU tracks the frequency of said errors detected in each one of said memory areas; and wherein said CPU compares said frequency to said error frequency level for said each one of said memory areas, and thereby performing said determining if one of said memory areas is at risk.
Claim 31
Dependent Claim 227 words
A memory controller for a computer system comprising a central processing unit (CPU) and memory areas, wherein the CPU performs read and write accesses of the memory areas through the memory controller, the memory controller comprising: error detection and correction logic for detecting if an error occurs when each of said memory areas is accessed, and for storing error information associated with each of said memory areas; wherein said CPU copies one of said memory areas to a reserve memory area in response to said detection and correction logic detecting a first number of errors in one of said memory areas; concurrent write logic for concurrently performing all write accesses directed to one OF said memory areas to both said one of said memory areas and to said reserve memory area in response to said detection and correction logic detecting said first number of errors in one of said memory areas, wherein memory coherency is maintained when said CPU copies one of said memory areas to said reserve memory area; and mapping logic for mapping of read and write accesses to said memory areas, wherein said mapping logic changes mapping of said read and write accesses from one of said memory areas to said reserve memory area in response to said detection and correction logic detecting said first number of errors in one of said memory areas.
Claim 32
Dependent Claim 227 words
A memory controller for a computer system comprising a central processing unit (CPU) and memory areas, wherein the CPU performs read and write accesses of the memory areas through the memory controller, the memory controller comprising: error detection and correction logic for detecting if an error occurs when each of said memory areas is accessed, and for storing error information associated with each of said memory areas; wherein said CPU copies one of said memory areas to a reserve memory area in response to said detection and correction logic detecting a first number of errors in one of said memory areas; concurrent write logic for concurrently performing all write accesses directed to one OF said memory areas to both said one of said memory areas and to said reserve memory area in response to said detection and correction logic detecting said first number of errors in one of said memory areas, wherein memory coherency is maintained when said CPU copies one of said memory areas to said reserve memory area; and mapping logic for mapping of read and write accesses to said memory areas, wherein said mapping logic changes mapping of said read and write accesses from one of said memory areas to said reserve memory area in response to said detection and correction logic detecting said first number of errors in one of said memory areas.

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2002-02-01 2002-08-03 2003-02-02 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2006-02-01 2006-08-03 2007-02-02 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2010-02-01 2010-08-03 2011-02-02 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag