System and method to coherently and dynamically remap an at-risk memory area by simultaneously writing two memory areas
First Claim
1. 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.
7 Assignments
0 Petitions
Accused Products
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.
-
Citations
29 Claims
-
1. 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. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. 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; andwherein 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. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28)
-
-
29. 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.
-
Specification