Method and apparatus for implementing a DMA timeout counter feature
First Claim
1. A bus interface apparatus for interfacing a host system through a first bus not supporting direct memory access (DMA) and a peripheral device through a second bus supporting direct memory access and for converting programmed input/output (PIO) cycles from the first bus into direct memory access (DMA) cycles on the second bus, said bus interface apparatus comprising:
- a DMA timeout counter comprising;
a counter, coupled to the first bus and the second bus and clocked by a clock signal from the first bus for counting to a predetermined value and outputting a first signal when said predetermined value is reached,a counter reset, coupled to said counter, and said second bus, for clearing and starting the counter when a DMA cycle on the second bus is initialized by the bus interface apparatus,a first detector, coupled to said counter and said second bus for detecting when a peripheral device asserts a DMA request signal on said second bus and stopping and clearing said counter in response to such a detection, anda second detector coupled to said counter and said second bus for detecting when a peripheral device de-asserts the DMA request signal and starting said counter in response to such detection anda first bus state machine, coupled to said DMA timeout counter, for terminating a PIO cycle on said first bus in response to the first signal from said DMA timeout counter.
2 Assignments
0 Petitions
Accused Products
Abstract
A high performance Local Bus Peripheral Interface (LBPI) for a computer local bus and high performance peripheral interface(s) uses a pipelined architecture to increase use of available data transfer bandwidth. The LBPI coupled between the computer local bus and peripheral interface(s) is provided a pipelined architecture including a Read Ahead Buffer, a Read Ahead Counter, a Data Out Latch, and a controlling State Machine with a Configuration Register. The LBPI supports DMA and PIO data transfers on the peripheral side. In another embodiment, the LBPI translates memory data transfers into IO data transfers to improve efficiency of IO data transfers. A DMA Timeout Counter is used during DMA mode data transfer operations to prevent the system from indefinitely waiting for an appropriate DMA Request Signal from a selected peripheral. During a DMA mode data transfer operation, forced interrupts may be generated and transmitted to the host in order to emulate a PIO mode data transfer operation. During a DMA mode data transfer operation, an imposed status or "Fake 3F6" register is utilized to transmit status information to the host system.
-
Citations
11 Claims
-
1. A bus interface apparatus for interfacing a host system through a first bus not supporting direct memory access (DMA) and a peripheral device through a second bus supporting direct memory access and for converting programmed input/output (PIO) cycles from the first bus into direct memory access (DMA) cycles on the second bus, said bus interface apparatus comprising:
-
a DMA timeout counter comprising; a counter, coupled to the first bus and the second bus and clocked by a clock signal from the first bus for counting to a predetermined value and outputting a first signal when said predetermined value is reached, a counter reset, coupled to said counter, and said second bus, for clearing and starting the counter when a DMA cycle on the second bus is initialized by the bus interface apparatus, a first detector, coupled to said counter and said second bus for detecting when a peripheral device asserts a DMA request signal on said second bus and stopping and clearing said counter in response to such a detection, and a second detector coupled to said counter and said second bus for detecting when a peripheral device de-asserts the DMA request signal and starting said counter in response to such detection and a first bus state machine, coupled to said DMA timeout counter, for terminating a PIO cycle on said first bus in response to the first signal from said DMA timeout counter. - View Dependent Claims (2, 3)
-
-
4. A method, in a bus interface apparatus for interfacing a host system through a first bus not supporting direct memory access (DMA) and a peripheral device through a second bus supporting direct memory access and for converting programmed input/output (PIO) cycles from the first bus into direct memory access (DMA) cycles on the second bus, and for preventing the bus interface apparatus from waiting indefinitely for an assertion of DMA request signal from a peripheral device coupled to the second bus, said method comprising the steps of:
-
initiating a transfer on the second bus upon receipt of a PIO transfer command from the host system over the first bus; resetting a counter and beginning counting from a first predetermined value to a second predetermined value when A DMA transfer is initiated; stopping and clearing the counter if assertion of a DMA request is detected on the second bus; generating and transmitting a second signal if the second predetermined value is reached by the counter and terminating a PIO cycle on the first bus in response to the second signal; and clearing the counter and re-starting counting from the first predetermined value if a DMA request is de-assertion is detected on the second bus.
-
-
5. A bus interface apparatus for interfacing a host system through a system bus not supporting direct memory access (DMA) and at least one peripheral device through a peripheral bus supporting direct memory access and for converting programmed input/output (PIO) cycles from the system bus into direct memory access (DMA) cycles on the peripheral bus, said bus interface apparatus comprising:
-
a system bus interface circuit coupled to the system bus for communicating with the host system using a PIO protocol; a peripheral bus interface circuit coupled to the at least one peripheral device through the peripheral bus for communicating with the at least one peripheral device using a selected one of the PIO protocol and a DMA protocol; a control circuit coupled to the system bus interface, and to the peripheral bus interface circuit for controlling communications between the host system and the at least one peripherals device; a counter circuit coupled to said control circuit for counting to a predetermined value and signalling to said control circuit when the predetermined value has been reached, wherein said counter circuit is started when a data transfer operation using the DMA protocol is initiated by the interface apparatus, stopped and cleared when a a DMA request is asserted on the peripheral bus by the at least one peripheral device engaged in the DMA data transfer operation, and restarted when the first signal is de-asserted by the at least one peripheral engaged in the DMA data transfer operation; and a system bus state machine, coupled to said control circuit, for terminating a PIO cycle on said system bus in response to receipt of a signal by said control circuit when the predetermined value has been reached. - View Dependent Claims (6, 7, 8, 9, 10, 11)
-
Specification