System and method for transferring data over a communication medium using double-buffering
First Claim
1. A method for transferring data in a system including a host computer system coupled to a device, the method comprising:
- a first direct memory access (DMA) channel of the device transferring first data from the host computer system into a first buffer of the device;
a second DMA channel of the device transferring the first data from the first buffer;
the first DMA channel of the device transferring second data from the host computer system into a second buffer of the device concurrently with said second DMA channel transferring the first data from the first buffer;
synchronizing the first DMA channel and the second DMA channel, after said first DMA channel transferring second data into the second buffer concurrently with the second DMA channel transferring the first data from the first buffer;
wherein said synchronizing comprises;
the first DMA channel entering a synchronization point;
the first DMA channel issuing a continue command to the second DMA channel, thereby awakening the second DMA channel if the second DMA channel is paused;
the first DMA channel issuing a pause command to itself, thereby pausing itself;
the second DMA channel entering the synchronization point;
the second DMA channel issuing a continue command to the first DMA channel, thereby awakening the first DMA channel;
the second DMA channel issuing a pause command to itself, thereby pausing itself; and
the first DMA channel issuing a continue command to the second DMA channel, thereby awakening the second DMA channel;
wherein, after said first DMA channel issuing the continue command to the second DMA channel, the first DMA channel and the second DMA channel are operable to proceed with further transferring data in a concurrent manner.
5 Assignments
0 Petitions
Accused Products
Abstract
System and method for transferring data to a device using double buffered data transfers. A host computer system couples to a data acquisition device. The device includes a first read buffer and a second read buffer for storing output data received from the host computer. The device reads first data from the computer and stores it in the first read buffer. The first data is transferred out from the first read buffer while the device reads second data from the computer and stores it in the second read buffer. The second data is transferred out from the second read buffer (after the transfer of the first data) while the device reads third data from the host computer and stores the third data in the first read buffer. Thus, the data acquisition device successively reads data into one read buffer concurrently with transferring data out from the other buffer, respectively.
-
Citations
36 Claims
-
1. A method for transferring data in a system including a host computer system coupled to a device, the method comprising:
-
a first direct memory access (DMA) channel of the device transferring first data from the host computer system into a first buffer of the device;
a second DMA channel of the device transferring the first data from the first buffer;
the first DMA channel of the device transferring second data from the host computer system into a second buffer of the device concurrently with said second DMA channel transferring the first data from the first buffer;
synchronizing the first DMA channel and the second DMA channel, after said first DMA channel transferring second data into the second buffer concurrently with the second DMA channel transferring the first data from the first buffer;
wherein said synchronizing comprises;
the first DMA channel entering a synchronization point;
the first DMA channel issuing a continue command to the second DMA channel, thereby awakening the second DMA channel if the second DMA channel is paused;
the first DMA channel issuing a pause command to itself, thereby pausing itself;
the second DMA channel entering the synchronization point;
the second DMA channel issuing a continue command to the first DMA channel, thereby awakening the first DMA channel;
the second DMA channel issuing a pause command to itself, thereby pausing itself; and
the first DMA channel issuing a continue command to the second DMA channel, thereby awakening the second DMA channel;
wherein, after said first DMA channel issuing the continue command to the second DMA channel, the first DMA channel and the second DMA channel are operable to proceed with further transferring data in a concurrent manner. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19)
-
-
20. A method for transferring data in a system including a host computer system coupled through a communication medium to a device, wherein the device comprises a first direct memory access (DMA) channel, a second DMA channel, a first buffer, and a second buffer, wherein the first buffer stores first data, the method comprising:
-
the second DMA channel of the device transferring the first data from the first buffer of the device;
the first DMA channel reading second data from the host computer system;
the first DMA channel storing the second data in the second buffer;
wherein said second DMA channel of the device transferring the first data from the first buffer and said first DMA channel storing the second data in the second buffer are performed concurrently;
the method further comprising;
synchronizing the first DMA channel and the second DMA channel after said second DMA channel of the device transferring the first data from the first buffer and said first DMA channel storing the second data in the second buffer, wherein said synchronizing comprises;
the first DMA channel entering a synchronization point;
the first DMA channel issuing a pause command, thereby pausing itself;
the second DMA channel entering the synchronization point; and
the second DMA channel issuing a continue command to the first DMA channel, thereby awakening the first DMA channel;
wherein, after said second DMA channel issuing the continue command to the first DMA channel, the first DMA channel and the second DMA channel are operable to proceed transferring data in a concurrent manner. - View Dependent Claims (21, 22, 23, 24, 25, 26, 27)
-
-
28. A system for transferring data, the system comprising:
-
a device, comprising;
a first buffer;
a second buffer;
a first direct memory access (DMA) channel; and
a second DMA channel; and
a host computer system coupled to the device via a communication medium;
wherein the first DMA channel is operable to transfer first data from the host computer system into the first buffer;
wherein the second DMA channel is operable to transfer the first data from the first buffer;
wherein the first DMA channel is further operable to transfer second data from the host computer system into the second buffer concurrently with said second DMA channel transferring the first data from the first buffer;
wherein the first DMA channel is further operable to;
enter a synchronization point;
issue a continue command to the second DMA channel, thereby awakening the second DMA channel if the second DMA channel is paused;
issue a pause command to the first DMA channel, thereby pausing the first DMA channel;
wherein the second DMA channel is further operable to;
enter the synchronization point;
issue a continue command to the first DMA channel, thereby awakening the first DMA channel;
issue a pause command to the second DMA channel, thereby pausing the second DMA channel;
wherein the first DMA channel is further operable to;
issue a continue command to the second DMA channel, thereby awakening the second DMA channel;
wherein, after the first DMA channel issues the continue command to the second DMA channel, the first DMA channel and the second DMA channel are operable to proceed with further data transfers in a concurrent manner. - View Dependent Claims (29, 30, 31, 32, 33, 34, 35, 36)
-
Specification