Error detection and recovery in a DMA controller
First Claim
1. In a data processing system--containing a processor (CPU), a memory subsystem, I/O devices, and a bus linking said memory subsystem to said CPU and devices--apparatus responsive to control information supplied by said CPU, and designating one of said devices, for operating transparent to said CPU to control said bus and conduct a series of multiple DMA data transfer operations over said bus between said memory subsystem and said designated one of said devices;
- said apparatus comprisingmeans effective during each DMA data transfer in said series of data transfers for storing information indicating a predetermined prior state of operation of said DMA controller at completion of a prior data transfer in the same series,an error detection circuit,said error detection circuit detecting error in individual said data transfer operations in said series of operations, by monitoring signals indicating the progress of the respective operation, and generating an error indication upon detecting a said error,a direct memory access control circuit,said direct memory access control circuit directly controlling said DMA data transfer operations,said direct memory access control circuit being responsive to said error indication for terminating a respective said series of DMA data transfer operations and performing predetermined completion tasks;
said predetermined completion tasks including tasks for presenting a non-maskable interrupt to said CPU requiring said CPU to recognize said information indicating said predetermined prior state, and tasks for placing said bus under exclusive control of said CPU until it has responded to said interrupt and recognized said predetermined prior state;
recognition of said predetermined prior state enabling said CPU to restart said series of DMA data transfer operations where it had been terminated, rather than requiring repetition of the entire series of data transfer operations including operations that had been successfully completed prior to detection of said error.
1 Assignment
0 Petitions
Accused Products
Abstract
A DMA controller with error circuitry which detects DMA error conditions is disclosed. The error circuitry causes the DMA controller to perform completion tasks before terminating a DMA transfer, advantageously providing a DMA controller which may exit gracefully upon detection of an error condition with the potential of error recovery.
-
Citations
15 Claims
-
1. In a data processing system--containing a processor (CPU), a memory subsystem, I/O devices, and a bus linking said memory subsystem to said CPU and devices--apparatus responsive to control information supplied by said CPU, and designating one of said devices, for operating transparent to said CPU to control said bus and conduct a series of multiple DMA data transfer operations over said bus between said memory subsystem and said designated one of said devices;
- said apparatus comprising
means effective during each DMA data transfer in said series of data transfers for storing information indicating a predetermined prior state of operation of said DMA controller at completion of a prior data transfer in the same series, an error detection circuit, said error detection circuit detecting error in individual said data transfer operations in said series of operations, by monitoring signals indicating the progress of the respective operation, and generating an error indication upon detecting a said error, a direct memory access control circuit, said direct memory access control circuit directly controlling said DMA data transfer operations, said direct memory access control circuit being responsive to said error indication for terminating a respective said series of DMA data transfer operations and performing predetermined completion tasks;
said predetermined completion tasks including tasks for presenting a non-maskable interrupt to said CPU requiring said CPU to recognize said information indicating said predetermined prior state, and tasks for placing said bus under exclusive control of said CPU until it has responded to said interrupt and recognized said predetermined prior state;
recognition of said predetermined prior state enabling said CPU to restart said series of DMA data transfer operations where it had been terminated, rather than requiring repetition of the entire series of data transfer operations including operations that had been successfully completed prior to detection of said error. - View Dependent Claims (2, 3, 4, 5, 6, 7)
- said apparatus comprising
-
8. An apparatus for allowing direct access to memory in an information handling system comprising
a processor, a system memory, an I/O bus said I/O bus allowing transfer of information between said processor, said system memory and expansion devices, an error detection circuit, said error detection circuit monitoring transfers of information on said bus and generating an error indication upon detecting an error in a said transfer, and a direct memory access control circuit, said direct memory access control circuit controlling a direct memory access transfer, said direct memory access control circuit terminating a direct memory transfer operation, in response to receipt of a said error indication from said error detection circuit, and performing predetermined completion tasks prior to terminating said direct memory access transfer operation, said predetermined completion tasks including tasks to interrupt said processor for notifying said processor of a state said direct memory access control circuit was in prior to said error indication, tasks to present an interrupt for communicating said prior state to said CPU, and tasks to place said bus under exclusive control of said CPU until it has responded to said interrupt and recognized said prior state.
-
15. In a computer system including a CPU, a memory subsystem, at least one I/O device, at least one DMA controller having direct access to said memory subsystem, and a bus linking said DMA controller and other elements of said system to said memory subsystem--wherein said DMA controller interfaces between said at least one I/O device and said memory subsystem for conducting DMA data transfers transparent to said CPU in response to control information supplied to said DMA controller by said CPU, wherein said DMA controller has plural internal DMA channels for conducting DMA data transfers concurrently relative to plural I/O devices, and wherein said DMA controller includes means for arbitrating for access to said bus when it is ready to conduct portions of said DMA data transfers relative to individual said DMA channels--error detection and recovery apparatus comprising:
-
means for detecting an error in a DMA data transfer occurring in any one of said DMA channels; means effective for each state of operation of said DMA controller, relative to each said DMA channel, for storing information indicating a predetermined prior state of operation of said DMA controller relative to the same DMA channel;
said prior state corresponding to a state the controller was in when it completed a data transfer representing a last valid transfer of data prior to detection of said error;means responsive to detection of said error for presenting an interrupt to communicate said prior state to said CPU; means cooperative with said interrupt presenting means for rendering said bus accessible only to said CPU until said CPU responds to said interrupt; and means for enabling said controller to continue conducting DMA transfers relative to DMA channels other than the channel in which said error was detected, after said CPU has responded to said interrupt, but before said CPU has taken any recovery action relative to the operation that was being conducted relative to the channel in which said error was detected.
-
Specification