A USB controller is provided with multiple logic channels that share same physical
address and data bus at an interface between the host system and the USB Host Controller;
and dataports used by the host system to read and/or write data to the USB Host
Controller. Also provided is a data packet format for transferring data, which
comprises of an Endpoint Transfer Descriptor ("ETD") that includes an EndPoint
Descriptor and a Transfer Descriptor, wherein the host system programs the parameters
of a communication channel for a particular Endpoint. Also included is a technique
for partitioning a memory storage device into a first memory buffer and a second
memory buffer; wherein the size of the first and second memory buffer may be programmed
by the host system and the first and/or second memory buffer may contain more than
one USB packet.