Claims
- 1. A method of operating a computer system comprising at least one central processing unit and at least one direct memory access controller comprising the steps of:
- at least one requesting device transmitting at least one request signal for access to certain ones of a plurality of addressable memory locations; and
- in response to said at least one request signal performing the steps including;
- A) using said direct memory access controller to transfer a plurality of data elements and associated check bits stored in a corresponding plurality of said addressable memory locations, to said requesting device;
- B) using the associated check bit data of each of said plurality of data elements to detect the occurrence of an error in each of said plurality of data elements;
- C) recording the memory address of a first of said plurality of data elements for which an error is detected;
- D) using said direct memory access controller to read data from the memory address for which said error was detected;
- E) correcting said data using said direct memory access controller, to provide a corrected data element; and
- F) storing said corrected data element in said memory.
- 2. The method as recited in claim 1 wherein said step of using said direct memory access controller to read the data for which said error was detected, occurs after said transfer of the block of memory is completed.
- 3. The method as recited in claim 2 wherein said method further comprises the step of:
- sending a request from said central processing unit to said direct memory access controller, initiating said transfer of said block of data.
- 4. The method as recited in claim 3 further comprising the step of:
- transferring said block of data without said central processing unit exercising control over said transfer of said block of data.
- 5. The method as recited in claim 4 wherein said step of using said direct memory access controller to read said data from the memory address for which said error was detected is not under the control of said central processing unit.
- 6. A method of operating a fault tolerant computer system comprises the steps of:
- using a direct memory access controller operating separately from a central processing unit for transferring a block of data elements and corresponding check bits from a memory device;
- using said direct memory access controller to check each data element in said block of data for the occurrence of an error in said data;
- storing the address of a data element for which an error was detected;
- using said direct memory access controller to transfer data elements from said address for which an error in said data element was detected and correct the error in said data to provide a corrected data element; and
- writing said corrected data element back to said memory location using said direct memory access controller.
- 7. The method as recited in claim 6 wherein said step of using said direct memory access controller to retransfer the data for which an error was detected, occurs after said transfer of the block of memory is completed.
- 8. The method as recited in claim 6 wherein said method further comprises the step of:
- sending a request from said central processing unit to said direct memory access controller, initiating said transfer of said block of data.
- 9. The method as recited in claim 8 further comprising the step of:
- transferring said block of data using said direct memory access controller without said central processing unit exercising control over said transfer.
- 10. An apparatus comprising:
- a central processing unit and a direct memory access (DMA) controller, said controller comprising:
- a storage register; and
- a plurality of registers with one of said plurality of registers coupled to said storage register, with said plurality of registers arranged in a pipelined delay of a corresponding number of clock periods related to the number of clock periods required for the DMA controller to complete processing of a signal indicating an error in reading a location in memory and to store in said storage register an address of a location in memory for which said error in data read from said location is detected; and
- means for reading from said storage register said location in memory, for correcting said error in data read from said location, and for writing said corrected data back to said memory location.
- 11. The apparatus as recited in claim 10 wherein said direct memory access (DMA) controller further comprises:
- means for holding said address in said storage means upon the detection of an error; and
- means for delaying said means for reading, correcting and writing said corrected data, until said DMA controller has completed a transfer of a block of data.
- 12. The apparatus as recited in claim 11 wherein said DMA controller further comprises:
- means for reading a block of data from a memory and for transferring said data to a requesting device.
- 13. The apparatus as recited in claim 12 further comprising:
- a central processing unit;
- a memory device;
- an input/output device; and
- a bus disposed to couple said central processing unit to said memory device and said input/output device; and
- wherein said data transfer of said DMA is initiated by said CPU but is not under the control of the CPU.
- 14. A fault tolerant computer comprising:
- a first computing zone comprising:
- a first direct memory access (DMA) controller, said first controller comprising:
- first means for storing an address of a location in memory for which an error in data read from said location is detected;
- first means for reading said location in memory, for correcting said error in data read from said location, and for writing said corrected data back to said memory location;
- a second computing zone, comprising
- a second direct memory access (DMA) controller, said second controller comprising:
- second means for storing an address of a location in memory for which an error in data read from said location is detected;
- second means for reading said location in memory, for correcting said error in data read from said location, and for writing said corrected data back to said memory location; and
- means for synchronizing the correction of the memory in the first zone with correction of the memory in the second zone.
- 15. The apparatus of claim 14 wherein said means for synchronizing comprises:
- means for providing a signal from a first one of said zones indicating whether an error has occured in data read from the DMA controller of said zone and for delaying said address with the error until said signal is processed in the other one of said two zones.
- 16. The apparatus as recited in claim 15 wherein said means for storing said location of the detected error is a register.
- 17. The apparatus as recited in claim 16 wherein said register is a storage register and wherein said means for delaying further comprises:
- a plurality of registers including said storage register, with said registers arranged in a pipelined delay of a corresponding number of clock periods related to the number of clock periods required for the DMA controller to complete processing of an error signal of a location in memory between each of the zones of the fault tolerant computer system.
- 18. The apparatus as recited in claim 17 wherein said direct memory access controller further comprises:
- means for holding said address in said storage means upon the detection of an error;
- means for delaying said means for reading, correcting and writing said corrected data, until said first and second DMA controllers have completed transfers of blocks of data.
- 19. The apparatus as recited in claim 18 wherein each of said DMA controllers further comprises:
- means for reading a block of data from a memory and for transferring said data to a requesting device.
- 20. The apparatus as recited in claim 19 wherein each zone further comprises:
- a central processing unit;
- a memory device;
- an input/output device; and
- a bus disposed to couple said central processing unit to said memory device and said input/output device; and
- wherein said data transfer of said DMA is initiated by said CPU but is not under the control of the CPU.
Parent Case Info
This application is a continuation of application Ser. No. 07/998,717, filed Dec. 30, 1992, now abandoned.
US Referenced Citations (12)
Continuations (1)
|
Number |
Date |
Country |
Parent |
998717 |
Dec 1992 |
|