Patent ID: 8626963

Claim:
A data transfer method implemented in a host of a host-slave system, comprising: receiving one or more data streams from the slave, the data streams containing a first plurality of data segments and a plurality of auxiliary segments; obtaining, by a processor, data segment size information from at least a portion of the plurality of auxiliary segments, the data segment size information specifying sizes a size of each of a second plurality of data segments stored in the slave, the second plurality of data segments being different from the first plurality of data segments; generating, one or more descriptor tables comprising a plurality of descriptors each defining a data transfer between the slave and a system memory of the host, each of the plurality of descriptors specifying an address in the system memory and a length of data to be transferred, wherein the length specified in each of the descriptors is based partially on the size of one of the second plurality of data segments obtained in the obtaining step; issuing a transfer command to the slave to transfer the second plurality of data segments as a data stream; executing, a direct memory access according to the descriptor tables to store individual ones of the second plurality of data segments in the data stream from the slave in the system memory of the host at the specified addresses, wherein execution of each descriptor of the descriptor tables causes one of the second plurality of data segments to be stored in the system memory.