Patent ID: 8219726

Claim:
Method for data transfer between a host and a device through pipes wherein an available memory in the host is divided into multiple segments, the method comprising assigning a segment of memory to a control pipe, identifying a mode of data transfer, determine a number of input pipes and output pipes to be established if a bulk transfer mode is identified, and assigning each memory segment to at maximum a single pipe at one time, wherein at least one memory segment is allocated to and shared by at least one input pipe and output pipe pair, and the allocation of the at least one memory segment is switched between pipes of the at least one pipe pair upon detection of a change in transmission mode, and wherein all memory segments assigned to the at least one pipe pair are assigned only to the output pipes or only to the input pipes of the at least one pipe pair at one time, and wherein if a memory segment ahead assigned is available for a new pipe to be established with a new endpoint, a flag indicating a number of pipes have access to the memory segment already assigned is increased by one.