System and method for transferring data over a communication medium using data transfer links
First Claim
1. A method for transferring data in a system including a host computer system coupled through a communication medium to a data acquisition device, the method comprising:
- configuring a data acquisition device for a data input/output (I/O) operation, wherein the data acquisition device comprises a link buffer;
the host computer system preparing a plurality of transfer links, wherein each of the plurality of transfer links specifies a transfer of data between the data acquisition device and the host computer system;
transferring a first portion of the plurality of transfer links from the host computer system to a first portion of the link buffer of the data acquisition device over the communication medium;
the data acquisition device initiating the data I/O operation;
the data acquisition device executing the first portion of the plurality of transfer links from the first portion of the link buffer to transfer data between a data buffer in the data acquisition device and host memory in the host computer system; and
transferring a second portion of the plurality of transfer links from the host computer system to a second portion of the link buffer of the data acquisition device over the communication medium, wherein at least a portion of said transferring the second portion of the plurality of transfer links and at least a portion of said executing the first portion of the plurality of transfer links are performed concurrently.
5 Assignments
0 Petitions
Accused Products
Abstract
A system and method for transferring data over a communications medium using data transfer links. A host computer may couple to a device through a serial bus. A buffer of contiguous virtual memory addresses may correspond to non-contiguous physical addresses, which may be stored in a linked list of transfer nodes, preserving the order of the original virtual buffer elements. Each transfer node specifies a data transfer between the host and device, and may be executed by the device DMA Controller. Each node may contain source and/or destination address information, size of the data to be transferred, and a link to the next node. The transfer nodes may be transferred to the device using a double-buffering scheme wherein the device executes the nodes from one half of the link buffer while the host computer transfers further nodes to be executed to the other half of the link buffer. The buffer halves may be switched back and forth between these two processes until all links are executed. To prevent overruns, safety and message links may be inserted into the transfer link list. The safety link may prevent the DMA channel from executing the next half of the link list until it has been updated by the host. The safety link may then be turned into a connection link. The host may update the used half of the link chain only after it receives a message initiated by the message link that the DMA Channel is done with its half of the linked list.
50 Citations
48 Claims
-
1. A method for transferring data in a system including a host computer system coupled through a communication medium to a data acquisition device, the method comprising:
-
configuring a data acquisition device for a data input/output (I/O) operation, wherein the data acquisition device comprises a link buffer;
the host computer system preparing a plurality of transfer links, wherein each of the plurality of transfer links specifies a transfer of data between the data acquisition device and the host computer system;
transferring a first portion of the plurality of transfer links from the host computer system to a first portion of the link buffer of the data acquisition device over the communication medium;
the data acquisition device initiating the data I/O operation;
the data acquisition device executing the first portion of the plurality of transfer links from the first portion of the link buffer to transfer data between a data buffer in the data acquisition device and host memory in the host computer system; and
transferring a second portion of the plurality of transfer links from the host computer system to a second portion of the link buffer of the data acquisition device over the communication medium, wherein at least a portion of said transferring the second portion of the plurality of transfer links and at least a portion of said executing the first portion of the plurality of transfer links are performed concurrently. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
-
-
15. A system for transferring data over a communication medium, the system comprising:
-
a data acquisition device coupled to a first end of the communication medium, wherein the data acquisition device comprises a link buffer; and
a host computer system coupled to a second end of the communication medium, wherein the host computer system is operable to communicate through the communication medium to the data acquisition device;
wherein the host computer system is further operable to prepare a plurality of transfer links and transfer a first portion of the plurality of transfer links to a first portion of the link buffer of the data acquisition device, wherein each of the plurality of transfer links specifies a transfer of data between the data acquisition device and the host computer system;
wherein the data acquisition device is operable to execute the first portion of the transfer links;
wherein the host computer system is further operable to transfer a second portion of the plurality of transfer links to a second portion of the link buffer of the data acquisition device; and
wherein at least a portion of said executing the first portion of the transfer links and at least a portion of said transferring the second portion of the plurality of transfer links to the second portion of the link buffer of the data acquisition device are performed concurrently. - View Dependent Claims (16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29)
-
-
30. A method for transferring data in a system including a host computer system coupled through a communication medium to a data acquisition device, the method comprising:
-
configuring a data acquisition device for a data input/output (I/O) operation, wherein the data acquisition device comprises a link buffer;
the host computer system preparing a linked list of transfer nodes, wherein each of the linked list of transfer nodes includes a true address of physical memory of the host computer system;
the host computer system preparing a plurality of transfer links, wherein each of the plurality of transfer links specifies a transfer node and a transfer of data between the data acquisition device and the host computer system;
the host computer system transferring the plurality of transfer links to the link buffer of the data acquisition device over the communication medium;
the data acquisition device initiating the data I/O operation; and
the data acquisition device executing the plurality of transfer links from the link buffer to transfer data between a data buffer in the data acquisition device and the physical memory of the host computer system;
wherein, for each transfer node of the linked list of transfer nodes, the true address of the transfer node corresponds to a virtual address of a buffer, wherein the buffer spans contiguous virtual addresses mapping to the physical memory of the host computer system, wherein an Nth transfer node corresponds to an Nth virtual address of the buffer. - View Dependent Claims (31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48)
-
Specification