Claims Analysis
Total Claims: 25
Claim 1
Independent Claim
439 words
A dual mode direct memory access (DMA) controller for controlling communication between a module bus, which communicates with a processor and a main memory, and an input/output (I/O) bus, which communicates with an external device, the DMA controller comprising: a mode controller subsystem for providing a mode bit having a first state and a second state; a data controller subsystem for receiving and selectively storing I/O bus input data from the I/O bus to provide module bus output data to the module bus, and for receiving and selectively storing module bus input data from the module bus to provide I/O bus output data to the I/O bus; a device address controller subsystem for receiving and selectively storing a device address from the module bus to provide an I/O device output address to the I/O bus, the device address representing the external device; a memory addressing subsystem for storing and providing a memory address to the module bus representative of a storage location in the main memory, the memory addressing subsystem receiving module bus input data to form an initial memory address, the memory addressing subsystem including an incrementer for repeatedly incrementing by at least one count the memory address from the initial memory address through a selected range of memory addresses representing a grouping of storage locations, the incrementing means being responsive to the mode bit being in a first state to increment an upper multiple bit portion from an overflow carry from a lower multiple bit portion, and blocking means for blocking the overflow carry from the lower multiple bit portion in response to the mode bit being in the second state to restart the memory address at the initial memory address after the incrementer has incremented the memory address a selected number of addresses above the initial memory address to cause the memory address to wrap around at the initial memory address to thereby form a wrap around buffer in the main memory; a transfer counter for calculating and storing a transfer count representing the number of selected data groupings of the I/O bus output data written into the main memory from the module bus; and a detector for detecting when the transfer count stored in the transfer count storage means has reached a selected value to indicate that a normal DMA operation of storing module bus output data to main memory is complete in response to the mode bit being in the first state, and for detecting when the wrap-around buffer in the main memory is full based on transfer count signalling an error condition in response to the mode bit being in the second state.
Claim 2
Dependent Claim
439 words
A dual mode direct memory access (DMA) controller for controlling communication between a module bus, which communicates with a processor and a main memory, and an input/output (I/O) bus, which communicates with an external device, the DMA controller comprising: a mode controller subsystem for providing a mode bit having a first state and a second state; a data controller subsystem for receiving and selectively storing I/O bus input data from the I/O bus to provide module bus output data to the module bus, and for receiving and selectively storing module bus input data from the module bus to provide I/O bus output data to the I/O bus; a device address controller subsystem for receiving and selectively storing a device address from the module bus to provide an I/O device output address to the I/O bus, the device address representing the external device; a memory addressing subsystem for storing and providing a memory address to the module bus representative of a storage location in the main memory, the memory addressing subsystem receiving module bus input data to form an initial memory address, the memory addressing subsystem including an incrementer for repeatedly incrementing by at least one count the memory address from the initial memory address through a selected range of memory addresses representing a grouping of storage locations, the incrementing means being responsive to the mode bit being in a first state to increment an upper multiple bit portion from an overflow carry from a lower multiple bit portion, and blocking means for blocking the overflow carry from the lower multiple bit portion in response to the mode bit being in the second state to restart the memory address at the initial memory address after the incrementer has incremented the memory address a selected number of addresses above the initial memory address to cause the memory address to wrap around at the initial memory address to thereby form a wrap around buffer in the main memory; a transfer counter for calculating and storing a transfer count representing the number of selected data groupings of the I/O bus output data written into the main memory from the module bus; and a detector for detecting when the transfer count stored in the transfer count storage means has reached a selected value to indicate that a normal DMA operation of storing module bus output data to main memory is complete in response to the mode bit being in the first state, and for detecting when the wrap-around buffer in the main memory is full based on transfer count signalling an error condition in response to the mode bit being in the second state.
Claim 3
Dependent Claim
48 words
The DMA controller of claim 1 wherein the I/O bus communicates with a universal asynchronous receiver/transmitter (UART) to receive data from and transmit data to a serial device, the UART providing translation between serial data provided by the serial device and parallel data provided by the I/O bus.
Claim 4
Dependent Claim
28 words
The DMA controller of claim 2 wherein the DMA controller controls a plurality of UARTs to receive data from and transmit data to a plurality of serial devices.
Claim 5
Dependent Claim
35 words
The DMA controller of claim 3 wherein the data controller subsystem, the device address controller subsystem, the transfer counter, the memory addressing subsystem, and the mode controller subsystem are implemented in a register file structure.
Claim 6
Dependent Claim
26 words
The DMA controller of claim 4 further comprising: an arbitrator to select a serial device to match a channel which corresponds to a register file address.
Claim 7
Dependent Claim
60 words
The DMA controller of claim 1 wherein the data controller subsystem further includes packing means for packing I/O bus input data and module bus input data into words having at least two bytes in response to the mode bit being in the first state, and for holding a byte in response to the mode bit being in the second state.
Claim 8
Dependent Claim
30 words
The DMA controller of claim 1 wherein the wrap-around buffer formed in the main memory is utilized by software operating the processor as a first in first out (FIFO) buffer.
Claim 9
Dependent Claim
45 words
The DMA controller of claim 1 wherein the transfer counter includes means for modifying the transfer count based on a number of selected data groupings read from the wrap-around buffer in the main memory in response to the mode bit being in the second state.
Claim 10
Dependent Claim
42 words
The DMA controller of claim 1 wherein the detector detects when a selected amount of data is written in the wrap-around buffer in the main memory to indicate an interrupt condition in response to the mode bit being in the second state.
Claim 11
Dependent Claim
409 words
In a direct memory access (DMA) controller which controls communication between a module bus communicating with a processor and a main memory, and an input/output (I/O) bus communicating with an external device, the DMA controller including a data storage subsystem for receiving and selectively storing I/O bus input data from the I/O bus to provide module bus output data to the module bus, and for receiving and selectively storing module bus input data from the module bus to provide an I/O bus output data to the I/O bus; a device addressing subsystem for receiving and selectively storing a device address from the module bus to provide an I/O device output address to the I/O bus, the device address representing the external device; a memory address subsystem for storing and providing a memory address to the module bus representing a storage location in the main memory, the memory addressing subsystem receiving module bus input data to form an initial memory address and including an incrementer for repeatedly incrementing by at least one count the memory address from the initial memory address through a selected range of memory addresses representing a grouping of storage locations; a transfer counter for calculating and storing a transfer count representing a number of selected data groupings of the I/O bus output data written into the main memory from the module bus; and a detector for detecting when the transfer count stored in the transfer counter has reached a selected value to indicate that a DMA operation of storing module bus output data to main memory is complete, wherein the improvement comprises: a mode controller subsystem for selectively placing the DMA controller in a normal mode or a buffer mode; the incrementer being responsive to the DMA controller being in a normal state to increment an upper multiple bit portion from an overflow carry from a lower multiple bit portion; first means responsive to the DMA controller being in the buffer mode to restart the memory address at the initial memory address after the incrementer has incremented the memory address a selected number of addresses above the initial memory address to cause the memory address to wrap-around at the initial memory address to thereby form a wrap-around buffer in the main memory; and second means responsive to the DMA controller being in the buffer mode to detect when the wrap-around buffer in the main memory is full based on the transfer count signalling an error condition.
Claim 12
Dependent Claim
409 words
In a direct memory access (DMA) controller which controls communication between a module bus communicating with a processor and a main memory, and an input/output (I/O) bus communicating with an external device, the DMA controller including a data storage subsystem for receiving and selectively storing I/O bus input data from the I/O bus to provide module bus output data to the module bus, and for receiving and selectively storing module bus input data from the module bus to provide an I/O bus output data to the I/O bus; a device addressing subsystem for receiving and selectively storing a device address from the module bus to provide an I/O device output address to the I/O bus, the device address representing the external device; a memory address subsystem for storing and providing a memory address to the module bus representing a storage location in the main memory, the memory addressing subsystem receiving module bus input data to form an initial memory address and including an incrementer for repeatedly incrementing by at least one count the memory address from the initial memory address through a selected range of memory addresses representing a grouping of storage locations; a transfer counter for calculating and storing a transfer count representing a number of selected data groupings of the I/O bus output data written into the main memory from the module bus; and a detector for detecting when the transfer count stored in the transfer counter has reached a selected value to indicate that a DMA operation of storing module bus output data to main memory is complete, wherein the improvement comprises: a mode controller subsystem for selectively placing the DMA controller in a normal mode or a buffer mode; the incrementer being responsive to the DMA controller being in a normal state to increment an upper multiple bit portion from an overflow carry from a lower multiple bit portion; first means responsive to the DMA controller being in the buffer mode to restart the memory address at the initial memory address after the incrementer has incremented the memory address a selected number of addresses above the initial memory address to cause the memory address to wrap-around at the initial memory address to thereby form a wrap-around buffer in the main memory; and second means responsive to the DMA controller being in the buffer mode to detect when the wrap-around buffer in the main memory is full based on the transfer count signalling an error condition.
Claim 13
Dependent Claim
48 words
The DMA controller of claim 10 wherein the I/O bus communicates with a universal asynchronous receiver/transmitter (UART) to receive data from and transmit data to a serial device, the UART providing translation between serial data provided by the serial device and parallel data provided by the I/O bus.
Claim 14
Dependent Claim
28 words
The DMA controller of claim 11 wherein the DMA controller controls a plurality of UARTs to receive data from and transmit data to a plurality of serial devices.
Claim 15
Dependent Claim
29 words
The DMA controller of claim 10 wherein the wrap-around buffer formed in the memory is utilized by software operating the processor as a first in first out (FIFO) buffer.
Claim 16
Dependent Claim
43 words
The DMA controller of claim 10 wherein the improvement further comprises means responsive to the DMA controller being in the buffer mode to modify the transfer count based on a number of selected data groupings read from the wrap-around buffer in the memory.
Claim 17
Dependent Claim
45 words
The DMA controller of claim 10 wherein the improvement further comprises means responsive to the DMA controller being in the buffer mode to detect when a selected amount of data is written in the wrap-around buffer in the main memory to indicate an interrupt condition.
Claim 18
Independent Claim
365 words
A method for controlling communication between a module bus, which communicates with a processor and a main memory, and an input/output (I/O) bus, which communicates with an external device, the method comprising: providing a mode bit having a first state and a second state; receiving and selectively storing I/O bus input data from the I/O bus to provide module bus output data to the module bus; receiving and selectively storing module bus input data from the module bus to provide I/O bus output data to the I/O bus; receiving and selectively storing a device address from the module bus to provide an I/O device output address to the I/O bus, the device address representing the external device; providing a memory address to the module bus representative of a storage location in the main memory by receiving module bus input data to form an initial memory address, and by repeatedly incrementing by at least one count the memory address from the initial memory address through a selected range of memory addresses representing a grouping of storage location, the memory address having an upper multiple bit portion that is incremented by an overflow carry from a lower multiple bit portion when the mode bit is in its first state; responding to the mode bit being in the second state to restart the memory address at the initial memory address after the memory address has been incremented a selected number of addresses above the initial memory address to cause the memory address to wrap around at the initial memory address to thereby form a wrap-around buffer in the main memory: calculating and storing a transfer count representing the number of selected data groupings of the I/O bus output data written into the main memory from the module bus; detecting when the transfer count has reached a selected value to indicate that a normal operation of storing module bus output data to main memory is complete in response to the mode bit being in the first state; and detecting when the wrap-around buffer in the main memory is full based on the transfer count signalling an error condition in response to the mode bit being in the second state.
Claim 19
Independent Claim
365 words
A method for controlling communication between a module bus, which communicates with a processor and a main memory, and an input/output (I/O) bus, which communicates with an external device, the method comprising: providing a mode bit having a first state and a second state; receiving and selectively storing I/O bus input data from the I/O bus to provide module bus output data to the module bus; receiving and selectively storing module bus input data from the module bus to provide I/O bus output data to the I/O bus; receiving and selectively storing a device address from the module bus to provide an I/O device output address to the I/O bus, the device address representing the external device; providing a memory address to the module bus representative of a storage location in the main memory by receiving module bus input data to form an initial memory address, and by repeatedly incrementing by at least one count the memory address from the initial memory address through a selected range of memory addresses representing a grouping of storage location, the memory address having an upper multiple bit portion that is incremented by an overflow carry from a lower multiple bit portion when the mode bit is in its first state; responding to the mode bit being in the second state to restart the memory address at the initial memory address after the memory address has been incremented a selected number of addresses above the initial memory address to cause the memory address to wrap around at the initial memory address to thereby form a wrap-around buffer in the main memory: calculating and storing a transfer count representing the number of selected data groupings of the I/O bus output data written into the main memory from the module bus; detecting when the transfer count has reached a selected value to indicate that a normal operation of storing module bus output data to main memory is complete in response to the mode bit being in the first state; and detecting when the wrap-around buffer in the main memory is full based on the transfer count signalling an error condition in response to the mode bit being in the second state.
Claim 20
Dependent Claim
47 words
The method of claim 16 wherein the I/O bus communicates with a universal asynchronous receiver/transmitter (UART) to receive data from and transmit data to a serial device, the UART providing translation between serial data provided by the serial device and parallel data provided by the I/O bus.
Claim 21
Dependent Claim
26 words
The method of claim 17 wherein the method controls a plurality of UARTs to receive data from and transmit data to a plurality of serial devices.
Claim 22
Dependent Claim
53 words
The method of claim 16 further comprising the steps of packing I/O bus input data and module bus input data into words having at least two bytes in response to the mode bit being in the first state, and holding a byte in response to the mode bit being in the second state.
Claim 23
Dependent Claim
29 words
The method of claim 16 wherein the wrap-around buffer formed in the main memory is utilized by software operating the processor as a first in first out (FIFO) buffer.
Claim 24
Dependent Claim
42 words
The method of claim 16 further comprising the step of modifying the transfer count based on a number of selected data groupings read from the wrap-around buffer in the main memory in response to the mode bit being in the second state.
Claim 25
Dependent Claim
43 words
The method of claim 16 further comprising the step of detecting when a selected amount of data is written in the wrap-around buffer in the main memory to indicate an interrupt condition in response to the mode bit being in the second state.